系统
STORM 是斯坦福大学开发的智能知识探索系统,主要用于自动生成维基百科风格的文章和协作式知识整理。该系统已被超过 70,000 人使用,并得到维基百科编辑者的认可。
系统架构
STORM 核心功能
- 预写作阶段:自动进行网络搜索,收集参考资料并生成大纲
- 写作阶段:基于大纲和参考资料生成完整文章
- 润色阶段:优化内容呈现,添加总结部分
Co-STORM 功能
- 协作对话:支持人机协作的知识整理
- 动态思维导图:减轻认知负担
- 智能代理:包含专家代理和主持人代理
代码实现
安装配置
# 安装方式一:直接安装 | |
pip install knowledge-storm | |
# 安装方式二:从源码安装 | |
git clone https://github.com/stanford-oval/storm.git | |
cd storm | |
conda create -n storm python=3.11 | |
conda activate storm | |
pip install -r requirements.txt |
STORM 系统使用
import os | |
from knowledge_storm import STORMWikiRunnerArguments, STORMWikiRunner, STORMWikiLMConfigs | |
from knowledge_storm.lm import OpenAIModel | |
from knowledge_storm.rm import YouRM | |
# 配置语言模型 | |
lm_configs = STORMWikiLMConfigs() | |
openai_kwargs = {'api_key': os.getenv("OPENAI_API_KEY"), | |
'temperature': 1.0, | |
'top_p': 0.9, | |
} | |
# 设置模型 | |
gpt_35 = OpenAIModel(model='gpt-3.5-turbo', max_tokens=500, **openai_kwargs) | |
gpt_4 = OpenAIModel(model='gpt-4o', max_tokens=3000, **openai_kwargs) | |
# 配置各模块 | |
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) | |
# 运行系统 | |
topic = input('Topic:') | |
runner = STORMWikiRunner(engine_args, lm_configs, rm) | |
runner.run( | |
topic=topic, | |
do_research=True, | |
do_generate_outline=True, | |
do_generate_article=True, | |
do_polish_article=True, | |
) |
Co-STORM 系统使用
from knowledge_storm.collaborative_storm.engine import CollaborativeStormLMConfigs, RunnerArgument, CoStormRunner | |
from knowledge_storm.lm import OpenAIModel | |
from knowledge_storm.logging_wrapper import LoggingWrapper | |
from knowledge_storm.rm import BingSearch | |
# 配置语言模型 | |
lm_config = CollaborativeStormLMConfigs() | |
openai_kwargs = {"api_key": os.getenv("OPENAI_API_KEY"), | |
"api_provider": "openai", | |
"temperature": 1.0, | |
"top_p": 0.9, | |
} | |
# 初始化运行器 | |
topic = input('Topic:') | |
runner_argument = RunnerArgument(topic=topic) | |
logging_wrapper = LoggingWrapper(lm_config) | |
bing_rm = BingSearch(bing_search_api_key=os.environ.get("BING_SEARCH_API_KEY"), | |
k=runner_argument.retrieve_top_k) | |
costorm_runner = CoStormRunner(lm_config=lm_config, | |
runner_argument=runner_argument, | |
logging_wrapper=logging_wrapper, | |
rm=bing_rm) | |
# 运行系统 | |
costorm_runner.warm_start() | |
conv_turn = costorm_runner.step() | |
# 生成报告 | |
article = costorm_runner.generate_report() |
技术特点
支持多种模型和检索模块
# 支持的语言模型 | |
- OpenAI 系列 | |
- Claude 系列 | |
- Google 系列 | |
- DeepSeek 系列 | |
- Groq 系列 | |
# 支持的检索模块 | |
- YouRM | |
- BingSearch | |
- VectorRM | |
- SerperRM | |
- BraveRM |
未来发展
持续优化
- 增强人机协作功能
- 改进信息抽象能力
- 支持更多展示格式
- 欢迎社区贡献,特别是在集成新的语言模型和搜索引擎方面
这个系统通过模块化设计和智能代理的协作,为用户提供了一个强大的知识管理平台。无论是自动生成文章还是协作式知识整理,STORM 都能满足不同场景的需求。
正文完
发表至: Github Fun
2025-01-03