LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
目录
STORM系统简介
1、Co-STORM
2、更新新闻
STORM系统安装和使用方法
1、安装
pip安装
直接克隆GitHub仓库
2、模型和数据集
两个数据集
FreshWiki数据集
WildSeek数据集
支持的模型
3、使用方法
STORM (STORMWikiRunner)
Co-STORM (CoStormRunner)
4、管道定制
STORM
Co-STORM
案例应用
1、STORM示例
2、Co-STORM示例
STORM系统简介
2024年4月发布,STORM是一个基于大型语言模型(LLM)的知识整理系统,能够根据互联网搜索结果从零开始撰写类似维基百科的文章,并包含参考文献。它将长文章的生成过程分解为两个阶段:
>> 预写阶段:系统进行基于互联网的调研,收集参考资料并生成提纲。
>> 写作阶段:系统利用提纲和参考资料生成包含引文的完整文章。
STORM的核心在于自动提出高质量问题的机制。它采用两种策略来提高问题的深度和广度:
>> 视角引导式提问:根据输入主题,STORM通过调查类似主题的现有文章来发现不同的视角,并利用这些视角来控制提问过程。
>> 模拟对话:STORM模拟维基百科撰写者和主题专家之间的对话,这些对话以互联网资源为基础,使语言模型能够更新对主题的理解并提出后续问题。
STORM无法生成可以直接发表的文章(这通常需要大量编辑),但经验丰富的维基百科编辑发现它在写作前的准备阶段非常有用。超过70,000人体验过它的在线研究预览版。
GitHub地址:https://github.com/stanford-oval/storm
1、Co-STORM
Co-STORM是STORM的增强版,它允许人机协作,以支持更一致和更符合用户偏好的信息查找和知识整理。Co-STORM引入了协作式话语协议,通过轮次管理策略支持人机之间的流畅协作,包含以下几个角色:
>> Co-STORM LLM专家:基于外部知识源生成答案,或根据对话历史提出后续问题。
>> 主持人:根据检索器发现但未在之前的轮次中直接使用到的信息,生成发人深省的问题。问题生成也可以基于外部信息!
>> 人类用户:人类用户可以(1)观察对话以更深入地理解主题,或(2)主动参与对话,通过插入话语来引导讨论重点。
Co-STORM还维护一个动态更新的思维导图,它将收集到的信息组织成层次化的概念结构,旨在构建人类用户和系统之间的共享概念空间。思维导图已被证明有助于减少长时间深入讨论时的认知负担。
STORM和Co-STORM都以高度模块化的方式使用dspy实现。总而言之,STORM和Co-STORM提供了一个强大的框架,用于构建基于LLM的知识整理系统,并支持高度的自定义和扩展。
2、更新新闻
[2025/01] 在知识风暴 v1.1.0 版本中,我们为语言模型和嵌入模型添加了 litellm 集成。
[2024/09] Co-STORM 代码库现已发布,并集成到 knowledge-storm Python 包 v1.0.0 中。运行 pip install knowledge-storm --upgrade 进行查看。
[2024 年 9 月] 我们推出协作式 STORM(Co-STORM)以支持人类与 AI 协同进行知识整理!Co-STORM 论文已被 EMNLP 2024 主会议录用。
[2024/07] 您现在可以使用“pip install knowledge-storm”来安装我们的软件包!
[2024/07] 我们新增了 VectorRM 以支持基于用户提供的文档进行知识关联,这补充了现有的搜索引擎支持(YouRM、BingSearch)。(详情请见 #58)
[2024/07] 我们为开发者发布了演示版的轻量级界面,这是一个使用 Python 中的 Streamlit 框架构建的极简用户界面,非常适合本地开发和演示托管(查看 #54)
[2024 年 6 月] 我们将在 2024 年北美计算语言学协会年会(NAACL 2024)上展示 STORM!6 月 17 日请在海报展示会 2 找到我们,或者查看我们的展示材料。
[2024/05] 我们在 rm.py 中添加了必应搜索支持。使用 GPT-4o 测试 STORM - 我们现在在演示中使用 GPT-4o 模型配置文章生成部分。
[2024/04] 我们发布了 STORM 代码库的重构版本!我们为 STORM 管道定义了接口,并重新实现了 STORM-wiki(请查看 src/storm_wiki),以展示如何实例化该管道。我们提供了 API 以支持不同语言模型的定制以及检索/搜索集成。
STORM系统安装和使用方法
1、安装
pip安装
pip install knowledge-storm
直接克隆GitHub仓库
安装源码,以便直接修改STORM引擎的行为:
git clone https://github.com/stanford-oval/storm.gitcd storm
conda create -n storm python=3.11
conda activate stormpip install -r requirements.txt
2、模型和数据集
两个数据集
FreshWiki和WildSeek,分别用于研究自动知识整理和复杂信息检索。
FreshWiki数据集
包含 100 篇高质量的维基百科文章,这些文章聚焦于 2022 年 2 月至 2023 年 9 月期间编辑次数最多的页面。更多详情请参阅 STORM 论文的 2.1 节。可以直接从 Huggingface 下载数据集。为缓解数据污染问题,我们存档了数据构建流程的源代码,以便日后重复使用。
WildSeek数据集
为了研究用户在复杂信息搜索任务中的兴趣,我们在野外利用从网络研究预览中收集的数据创建了 WildSeek 数据集。我们对数据进行了下采样,以确保主题的多样性和数据的质量。每个数据点都是一对,包括一个主题和用户针对该主题进行深度搜索的目标。更多详情,请参阅 Co-STORM 论文的第 2.2 节和附录 A。
支持的模型
>> 语言模型组件:litellm 支持的所有语言模型,https://docs.litellm.ai/docs/providers。
>> 嵌入模型组件:litellm 支持的所有嵌入模型,https://docs.litellm.ai/docs/embedding/supported_embedding。
>> 检索模块组件:YouRM、BingSearch、VectorRM、SerperRM、BraveRM、SearXNG、DuckDuckGoSearchRM、TavilySearchRM、GoogleSearch 和 AzureAISearch
无论是 STORM 还是 Co-STORM,它们都在信息整理层工作,您需要分别设置信息检索模块和语言模型模块,以创建它们各自的运行器类。
3、使用方法
STORM和Co-STORM都提供了Python接口。
STORM (STORMWikiRunner)
STORM的知识整理引擎定义为一个简单的Python STORMWikiRunner 类。以下是一个使用You.com搜索引擎和OpenAI模型的例子:
# 导入所需的模块
import os
from knowledge_storm import STORMWikiRunnerArguments, STORMWikiRunner, STORMWikiLMConfigs
from knowledge_storm.lm import LitellmModel
from knowledge_storm.rm import YouRM# 初始化语言模型配置
lm_configs = STORMWikiLMConfigs()# 获取环境变量中的OpenAI API密钥,并设置模型参数
openai_kwargs = {'api_key': os.getenv("OPENAI_API_KEY"), # 从环境变量中获取API密钥'temperature': 1.0, # 控制生成文本的随机性'top_p': 0.9, # 控制生成文本的多样性
}# STORM是一个语言模型系统,不同的组件可以使用不同的模型以达到成本和质量之间的平衡
# 实践中,选择一个更便宜/更快的模型用于`conv_simulator_lm`,用于拆分查询和在对话中合成答案
# 选择一个更强大的模型用于`article_gen_lm`,以生成带有引用的可验证文本
gpt_35 = LitellmModel(model='gpt-3.5-turbo', max_tokens=500, **openai_kwargs) # 创建一个GPT-3.5模型实例
gpt_4 = LitellmModel(model='gpt-4o', max_tokens=3000, **openai_kwargs) # 创建一个GPT-4模型实例# 设置不同的语言模型用于不同的任务
lm_configs.set_conv_simulator_lm(gpt_35) # 对话模拟器
lm_configs.set_question_asker_lm(gpt_35) # 问题提问器
lm_configs.set_outline_gen_lm(gpt_4) # 大纲生成器
lm_configs.set_article_gen_lm(gpt_4) # 文章生成器
lm_configs.set_article_polish_lm(gpt_4) # 文章润色器# 查看STORMWikiRunnerArguments类以获取更多配置选项
engine_args = STORMWikiRunnerArguments(...) # 初始化运行参数# 初始化资源管理器
rm = YouRM(ydc_api_key=os.getenv('YDC_API_KEY'), k=engine_args.search_top_k) # 使用环境变量中的API密钥和搜索参数# 创建STORMWikiRunner实例
runner = STORMWikiRunner(engine_args, lm_configs, rm)# 使用简单的run方法调用STORMWikiRunner实例
topic = input('Topic: ') # 获取用户输入的主题
runner.run(topic=topic, # 传入主题do_research=True, # 是否进行研究do_generate_outline=True, # 是否生成大纲do_generate_article=True, # 是否生成文章do_polish_article=True, # 是否润色文章
)
runner.post_run() # 运行后处理
runner.summary() # 输出摘要# 参数说明:
# do_research: 如果为True,模拟不同观点的对话以收集关于主题的信息;否则,加载结果。
# do_generate_outline: 如果为True,为该主题生成大纲;否则,加载结果。
# do_generate_article: 如果为True,基于大纲和收集的信息生成文章;否则,加载结果。
# do_polish_article: 如果为True,通过添加摘要部分和(可选)删除重复内容来润色文章;否则,加载结果。
Co-STORM (CoStormRunner)
Co-STORM的知识整理引擎定义为一个简单的Python CoStormRunner 类。以下是一个使用Bing搜索引擎和OpenAI模型的例子:
# 导入协同STORM引擎的相关模块
from knowledge_storm.collaborative_storm.engine import CollaborativeStormLMConfigs, RunnerArgument, CoStormRunner
from knowledge_storm.lm import LitellmModel
from knowledge_storm.logging_wrapper import LoggingWrapper
from knowledge_storm.rm import BingSearch# Co-STORM采用了与STORM相同的多个LM系统范式
lm_config = CollaborativeStormLMConfigs() # 初始化协同STORM的语言模型配置# 设置OpenAI API的参数
openai_kwargs = {"api_key": os.getenv("OPENAI_API_KEY"), # 从环境变量中获取API密钥"api_provider": "openai", # API提供商"temperature": 1.0, # 控制生成文本的随机性"top_p": 0.9, # 控制生成文本的多样性"api_base": None, # API基础URL
}# 创建不同用途的语言模型实例
question_answering_lm = LitellmModel(model=gpt_4o_model_name, max_tokens=1000, **openai_kwargs) # 问题回答模型
discourse_manage_lm = LitellmModel(model=gpt_4o_model_name, max_tokens=500, **openai_kwargs) # 话语管理模型
utterance_polishing_lm = LitellmModel(model=gpt_4o_model_name, max_tokens=2000, **openai_kwargs) # 话语润色模型
warmstart_outline_gen_lm = LitellmModel(model=gpt_4o_model_name, max_tokens=500, **openai_kwargs) # 大纲生成模型
question_asking_lm = LitellmModel(model=gpt_4o_model_name, max_tokens=300, **openai_kwargs) # 问题提问模型
knowledge_base_lm = LitellmModel(model=gpt_4o_model_name, max_tokens=1000, **openai_kwargs) # 知识库模型# 将创建的模型实例设置到配置中
lm_config.set_question_answering_lm(question_answering_lm)
lm_config.set_discourse_manage_lm(discourse_manage_lm)
lm_config.set_utterance_polishing_lm(utterance_polishing_lm)
lm_config.set_warmstart_outline_gen_lm(warmstart_outline_gen_lm)
lm_config.set_question_asking_lm(question_asking_lm)
lm_config.set_knowledge_base_lm(knowledge_base_lm)# 查看Co-STORM的RunnerArguments类以获取更多配置选项
topic = input('Topic: ') # 获取用户输入的主题
runner_argument = RunnerArgument(topic=topic, ...) # 初始化运行参数# 初始化日志包装器
logging_wrapper = LoggingWrapper(lm_config)# 初始化Bing搜索资源管理器
bing_rm = BingSearch(bing_search_api_key=os.environ.get("BING_SEARCH_API_KEY"),k=runner_argument.retrieve_top_k) # 使用环境变量中的API密钥和检索参数# 创建CoStormRunner实例
costorm_runner = CoStormRunner(lm_config=lm_config,runner_argument=runner_argument,logging_wrapper=logging_wrapper,rm=bing_rm)# 使用warmstart()和step(...)方法调用CoStormRunner实例# 热启动系统,建立Co-STORM与用户之间的共享概念空间
costorm_runner.warm_start()# 通过协作话语逐步进行
# 可以按任意顺序运行以下任一代码片段,次数不限
# 观察对话:
conv_turn = costorm_runner.step()
# 主动引导对话,注入用户话语:
costorm_runner.step(user_utterance="YOUR UTTERANCE HERE")# 根据协作话语生成报告
costorm_runner.knowledge_base.reorganize() # 重新组织知识库
article = costorm_runner.generate_report() # 生成报告
print(article) # 打印报告
4、管道定制
STORM
如果您已安装源代码,可以根据自己的使用场景对 STORM 进行定制。STORM 引擎由 4 个模块组成:
>> 知识整理模块:收集给定主题的广泛信息。
>> 大纲生成模块:通过生成分层大纲来组织收集到的信息。
>> 文章生成模块:用收集到的信息填充生成的大纲。
>> 文章润色模块:优化和改进所写的文章,使其呈现效果更佳。
每个模块的接口在 knowledge_storm/interface.py 中定义,而它们的实现则在 knowledge_storm/storm_wiki/modules/ 中实例化。这些模块可以根据您的具体需求进行定制(例如,以项目符号格式生成章节,而非完整段落)。
Co-STORM
如果您已安装源代码,可以根据自己的使用场景对 Co-STORM 进行自定义。
Co-STORM 引入了多种 LLM 代理类型(即 Co-STORM 专家和调解员)。LLM 代理接口在 knowledge_storm/interface.py 中定义,而其实现则在 knowledge_storm/collaborative_storm/modules/co_storm_agents.py 中实例化。不同的 LLM 代理策略可以进行自定义。
Co-STORM 引入了一种协作式对话协议,其核心功能集中在回合策略管理上。我们通过 knowledge_storm/collaborative_storm/engine.py 中的 DiscourseManager 提供了回合策略管理的一个示例实现。它可以进行自定义和进一步改进。
5、在线测试
Write a hot news article about the DeepSeek-R1 model based on the latest authoritative sources
案例应用
GitHub项目提供了示例脚本(位于examples文件夹),用于快速启动STORM和Co-STORM,并配置不同的参数。建议使用secrets.toml文件设置API密钥。
项目还提供了自定义流水线的方法,允许用户根据自身需求修改知识整理模块、提纲生成模块、文章生成模块和文章润色模块。 Co-STORM的自定义则更加灵活,允许自定义LLM代理策略和协作式话语协议。
1、STORM示例
运行以下命令可以使用GPT系列模型和默认配置运行STORM:
python examples/storm_examples/run_storm_wiki_gpt.py \--output-dir $OUTPUT_DIR \--retriever bing \--do-research \--do-generate-outline \--do-generate-article \--do-polish-article
更多自定义语言模型或自定义语料库的例子,请参考examples/storm_examples/README.md。
2、Co-STORM示例
运行以下命令可以使用GPT系列模型和默认配置运行Co-STORM (需要在secrets.toml中设置BING_SEARCH_API_KEY和ENCODER_API_TYPE):
python examples/costorm_examples/run_costorm_gpt.py \--output-dir $OUTPUT_DIR \--retriever bing
相关文章:
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略 目录 STORM系统简介 1、Co-STORM 2、更新新闻 STORM系统安装和使用方法 1、安装 pip安装 直接克隆GitHub仓库 2、模型和数据集 两个数据集 FreshWiki数据集 WildSeek数据集 支持…...
菜鸟之路Day11-12一一集合进阶(四)
菜鸟之路Day11-12一一集合进阶(四) 作者:blue 时间:2025.1.29-1.30 文章目录 菜鸟之路Day11-12一一集合进阶(四)0.概述1.可变参数2.Collections3.综合练习4.不可变的集合5.Stream流 0.概述 内容学习自黑…...
在Ubuntu下编译VLC
参考链接: https://blog.csdn.net/zyhse/article/details/113662686...
python开发,最好的环境是什么
目录 1. 集成开发环境(IDE) 1.1 PyCharm 1.2 Visual Studio Code (VSCode) 2. 文本编辑器 2.1 Sublime Text 2.2 Vim/NeoVim 3. 虚拟环境管理 4. 版本控制与协作 5. 容器化开发 6. 项目管理与依赖管理工具 7. 单元测试与调试 最佳组合推荐 …...
Maui学习笔记- SQLite简单使用案例02添加详情页
我们继续上一个案例,实现一个可以修改当前用户信息功能。 当用户点击某个信息时,跳转到信息详情页,然后可以点击编辑按钮导航到编辑页面。 创建项目 我们首先在ViewModels目录下创建UserDetailViewModel。 实现从详情信息页面导航到编辑页面…...
创建前端项目的方法
目录 一、创建前端项目的方法 1.前提:安装Vue CLI 2.方式一:vue create项目名称 3.方式二:vue ui 二、Vue项目结构 三、修改Vue项目端口号的方法 一、创建前端项目的方法 1.前提:安装Vue CLI npm i vue/cli -g 2.方式一&…...
好用的AI/解析网站
文件解析 json文件解析:http://www.yunjson.com/jsoncheck/...
C语言练习(31)
有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课程成绩如下&am…...
《深入浅出HTTPS》读书笔记(31):HTTPS和TLS/SSL
《深入浅出HTTPS》读书笔记(31):HTTPS和TLS/SSL TLS/SSL协议和应用层协议无关,它只是加密应用层协议(比如HTTP)并传递给下层的TCP。 HTTP和TLS/SSL协议组合在一起就是HTTPS, HTTPS等…...
SpringBoot AOP 和 事务
SpringBoot 整合 AOP 动态代理技术 JDK 动态代理 JDK 动态代理是 Java 自带的一种代理方式。它要求目标类必须有接口,基于这个接口,JDK 在运行时会动态生成一个代理对象。这个代理对象和目标对象就像 “拜把子” 的兄弟,因为它们都实现了相同…...
如何使用Python调用大语言模型的API接口?
以下是使用 Python 调用几种常见大语言模型 API 接口的详细步骤和示例代码: 1. 调用 OpenAI 的 GPT 模型 API OpenAI 提供了强大的 GPT 系列模型,使用其 API 需要先注册 OpenAI 账号并获取 API 密钥。 步骤: 安装openai库:pip…...
如何监控ubuntu系统某个程序的运行状态,如果程序出现异常,对其自动重启。
在Ubuntu系统中,可以通过编写脚本结合cron或systemd来监控程序的运行状态,并在程序异常时自动重启。以下是具体步骤: 方法一:使用Shell脚本和Cron 编写监控脚本 创建一个Shell脚本来检查程序是否运行,并在程序异常时重…...
Kafka 压缩算法详细介绍
文章目录 一 、Kafka 压缩算法概述二、Kafka 压缩的作用2.1 降低网络带宽消耗2.2 提高 Kafka 生产者和消费者吞吐量2.3 减少 Kafka 磁盘存储占用2.4 减少 Kafka Broker 负载2.5 降低跨数据中心同步成本 三、Kafka 压缩的原理3.1 Kafka 压缩的基本原理3.2. Kafka 压缩的工作流程…...
启元世界(Inspir.ai)技术浅析(二):深度强化学习
深度强化学习(Deep Reinforcement Learning, DRL)是启元世界在人工智能领域的一项核心技术,广泛应用于游戏AI、智能决策等领域。 一、状态(State) 1.1 概念与作用 **状态(State)**是指智能体对环境的感知,是智能体进行决策的基础。在深度强化学习中,状态通常是一个高…...
在K8s中部署动态nfs存储provisioner
背景 之前,我已经在一台worker node上安装了local lvm 的provisioner来模拟需要本地高IOPS的数据库等stafeful应用的实现。 为了后续给虚拟机里的K8s集群安装可用的metrics和logs监控系统(metrics和logs的时序数据库需要永久存储)࿰…...
SQL注入漏洞之绕过[前端 服务端 waf]限制 以及 防御手法 一篇文章给你搞定
目录 绕过手法 前端代码绕过 后端代码绕过 各种字段进行验证 union 大小写绕过 双写逃过 强制类型判断 引号特殊编码处理。 内联注释绕过 注释符绕过 or/and绕过 空格绕过 防御SQL注入的方法 使用预编译语句 使用存储过程 检查数据类型 绕过手法 前端代码绕过…...
C++ 写一个简单的加减法计算器
************* C topic:结构 ************* Structure is a very intersting issue. I really dont like concepts as it is boring. I would like to cases instead. If I want to learn something, donot hesitate to make shits. Like building a house. Wh…...
Effective C++ 规则50:了解 new 和 delete 的合理替换时机
1、背景 在 C 中,new 和 delete 是动态分配内存的核心操作符。然而,直接使用它们有时会增加程序的复杂性,甚至导致内存泄漏和其他问题。因此,了解何时替换 new 和 delete 并选择更适合的内存管理策略,是编写高效、健壮…...
水果实体店品牌数字化:RWA + 智能体落地方案
一、方案背景 随着数字化技术的迅猛发展,实体零售行业正面临前所未有的挑战与机遇。传统的零售模式难以满足消费者对个性化、便捷化、智能化的需求,尤其是在水果等生鲜商品领域,如何通过技术手段提升运营效率、增强顾客体验、拓宽盈利模式&a…...
Docker小游戏 | 使用Docker部署FC-web游戏模拟器
Docker小游戏 | 使用Docker部署FC-web游戏模拟器 前言一、项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署FC-web游戏模拟器下载镜像创建容器检查容器状态检查服务端口安全设置四、访问FC-web游戏模拟器试玩游戏FC游戏的操作方法…...
【视频+图文详解】HTML基础3-html常用标签
图文教程 html常用标签 常用标签 1. 文档结构 <!DOCTYPE html>:声明HTML文档类型。<html>:定义HTML文档的根元素。<head>:定义文档头部,包含元数据。<title>:设置网页标题,浏览…...
年化19.3%策略集|ctpbee_api替换成openctp整合backtrader实盘方案(代码+数据)
原创内容第782篇,专注量化投资、个人成长与财富自由。 昨天我们把backtraderctpbee的实盘整合代码跑通了,年化19.3%,回撤仅8%的实盘策略,以及backtrader整合CTPBee做实盘(附python代码和数据) 这两周我们加…...
谭浩强C语言程序设计(3) 7章
1、递归实现N的阶乘 c复制 #include <cstdio> // 包含标准输入输出库// 计算n的阶乘 int total 0; // 定义全局变量total用于存储阶乘结果// 递归函数计算阶乘 int fac(int a){// 如果输入的数小于0,输出错误信息if (a < 0){printf("%d < 0,err…...
国产SiC碳化硅功率器件技术成为服务器电源升级的核心引擎
在服务器电源应用中,国产650V碳化硅(SiC)MOSFET逐步取代传统超结(Super Junction, SJ)MOSFET,其核心驱动力源于SiC材料在效率、功率密度、可靠性和长期经济性上的显著优势,叠加产业链成熟与政策…...
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据 一、服务器如何响应前端请求 前端与后端的交互主要通过 HTTP 协议实现。以下是详细步骤: 1. 前端发起 HTTP 请求 GET 请求:用于从服务器获取数据。POST 请求:用…...
深度学习指标可视化案例
TensorBoard 代码案例:from torch.utils.tensorboard import SummaryWriter import torch import torchvision from torchvision import datasets, transforms# 设置TensorBoard日志路径 writer SummaryWriter(runs/mnist)# 加载数据集 transform transforms.Comp…...
unity学习24:场景scene相关生成,加载,卸载,加载进度,异步加载场景等
目录 1 场景数量 SceneManager.sceneCount 2 直接代码生成新场景 SceneManager.CreateScene 3 场景的加载 3.1 用代码加载场景,仍然build setting里先加入配置 3.2 卸载场景 SceneManager.UnloadSceneAsync(); 3.3 同步加载场景 SceneManager.LoadScene 3.3.…...
网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践
引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…...
Web-3.0(Solidity)基础教程
Solidity 是 以太坊智能合约编程语言,用于编写 去中心化应用(DApp)。如果你想开发 Web3.0 应用,Solidity 是必学的。 Remix - Ethereum IDE(在线编写 Solidity) 特性Remix IDEHardhat适用场景适合 初学者 …...
android获取EditText内容,TextWatcher按条件触发
android获取EditText内容,TextWatcher按条件触发 背景:解决方案:效果: 背景: 最近在尝试用原生安卓实现仿element-ui表单校验功能,其中涉及到EditText组件内容的动态校验,初步实现功能后&#…...
题单:冒泡排序1
题目描述 给定 n 个元素的数组(下标从 1 开始计),请使用冒泡排序对其进行排序(升序)。 请输出每一次冒泡过程后数组的状态。 要求:每次从第一个元素开始,将最大的元素冒泡至最后。 输入格式…...
我的毕设之路:(2)系统类型的论文写法
一般先进行毕设的设计与实现,再在现成毕设基础上进行描述形成文档,那么论文也就成形了。 1 需求分析:毕业设计根据开题报告和要求进行需求分析和功能确定,区分贴合主题的主要功能和拓展功能能,删除偏离无关紧要的功能…...
JVM_类的加载、链接、初始化、卸载、主动使用、被动使用
①. 说说类加载分几步? ①. 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 第一过程的加载(loading)也称为装载验证、准备、解析3个部分统称为链接(Linking)在Java中数据类型分为基本数据类型和引用数据…...
数论问题79一一研究成果
(豆包智能搜索一一李扩继) 李扩继是一位在数学研究尤其是哥德巴赫猜想研究领域有一定成果的中学老师,以下是关于他的具体介绍: ①研究经历:2006年承担咸阳市教研室的立项课题《角谷猜想的研究》,虽未完成角谷猜想的证明ÿ…...
【DeepSeek-V3】AI Model Evaluation Framework and index schedule AI模型能力评价指标及对比
文章目录 AI 模型评估体系 | AI Model Evaluation Framework1. 模型架构信息 | Model Architecture Information2. 英语能力评估 | English Language Proficiency3. 编程能力评估 | Programming Capability Metrics4. 数学能力评估 | Mathematical Capability Assessment5. 中文…...
《程序人生》工作2年感悟
一些杂七杂八的感悟: 1.把事做好比什么都重要, 先树立量良好的形象,再横向发展。 2.职场就是人情世故,但也不要被人情世故绑架。 3.要常怀感恩的心,要记住帮助过你的人,愿意和你分享的人,有能力…...
Elasticsearch的开发工具(Dev Tools)
目录 说明1. **Console**2. **Search Profiler**3. **Grok Debugger**4. **Painless Lab**总结 说明 Elasticsearch的开发工具(Dev Tools)在Kibana中提供了多种功能强大的工具,用于调试、优化和测试Elasticsearch查询和脚本。以下是关于Cons…...
22_解析XML配置文件_List列表
解析XML文件 需要先 1.【加载XML文件】 而 【加载XML】文件有两种方式 【第一种 —— 使用Unity资源系统加载文件】 TextAsset xml Resources.Load<TextAsset>(filePath); XmlDocument doc new XmlDocument(); doc.LoadXml(xml.text); 【第二种 —— 在C#文件IO…...
智慧园区管理平台实现智能整合提升企业运营模式与管理效率
内容概要 在当今数字化的背景下,智慧园区管理平台正逐渐成为企业提升运营效率和管理模式的重要工具。这个平台汇聚了多种先进技术,旨在通过智能整合各类资源与信息,帮助企业实现全面的管理创新。 智慧园区管理平台不仅仅是一个数据处理工具…...
从规则到神经网络:机器翻译技术的演进与未来展望
从规则到神经网络:机器翻译技术的演进与未来展望 引言 还记得早些年用翻译软件翻译一句简单的英文句子,却发现翻译结果让人啼笑皆非的日子吗?从“我喜欢吃苹果”被翻译成“我喜欢吃苹果电脑”,到今天的神经网络机器翻译(Neural Machine Translation, NMT)能够生成语义流…...
[MySQL]事务的隔离级别原理与底层实现
目录 1.为什么要有隔离性 2.事务的隔离级别 读未提交 读提交 可重复读 串行化 3.演示事务隔离级别的操作 查看与设置事务的隔离级别 演示读提交操作 演示可重复读操作 1.为什么要有隔离性 在真正的业务场景下,MySQL服务在同一时间一定会有大量的客户端进程…...
hdfs:介绍三个脚本
1、jps-cluster.sh 如果我们想在Bigdata01 这台电脑上,查看整个集群的服务启动情况,可以使用这个脚本文件。 #!/bin/bash USAGE"使⽤⽅法:sh jps-cluster.sh" NODES("bigdata01" "bigdata02" "bigdata03…...
【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)
💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…...
【Rust自学】15.7. 循环引用导致内存泄漏
说句题外话,这篇文章真心很难,有看不懂可以在评论区问,我会尽快作答的。 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω…...
4.scala默认参数值
Scala具备给参数提供默认值的能力,这样调用者就可以忽略这些具有默认值的参数。 def log(message: String, level: String "INFO") println(s"$level: $message")log("System starting") // prints INFO: System starting log(&q…...
前端知识速记—JS篇:null 与 undefined
前端知识速记—JS篇:null 与 undefined 什么是 null 和 undefined? 1. undefined 的含义 undefined 是 JavaScript 中默认的值,表示某个变量已被声明但尚未被赋值。当尝试访问一个未初始化的变量、函数没有返回值时,都会得到 u…...
微信小程序中常见的 跳转方式 及其特点的表格总结(wx.navigateTo 适合需要返回上一页的场景)
文章目录 详细说明总结wx.navigateTo 的特点为什么 wx.navigateTo 最常用?其他跳转方式的使用频率总结 以下是微信小程序中常见的跳转方式及其特点的表格总结: 跳转方式API 方法特点适用场景wx.navigateTowx.navigateTo({ url: 路径 })保留当前页面&…...
【人工智能】基于Python的机器翻译系统,从RNN到Transformer的演进与实现
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器翻译(Machine Translation, MT)作为自然语言处理领域的重要应用之一,近年来受到了广泛的关注。在本篇文章中,我们将详细探讨如何使…...
蓝桥备赛指南(5)
queue队列 queue是一种先进先出的数据结构。它提供了一组函数来操作和访问元素,但它的功能相对较简单,queue函数的内部实现了底层容器来存储元素,并且只能通过特定的函数来访问和操作元素。 queue函数的常用函数 1.push()函数:…...
蓝桥云客 好数
0好数 - 蓝桥云课 问题描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数,我们就称之为“好数”。 给定一个正…...