STORM:斯坦福大学的智能知识探索与整理系统

系统

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 都能满足不同场景的需求。

正文完
 
admin
版权声明:本站原创文章,由 admin 2025-01-03发表,共计2341字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请联系tensortimes@gmail.com。