STORM:自动研究任意主题,三步生成带引用的长文报告
【免费下载链接】stormAn LLM-powered knowledge curation system that researches a topic and generates a full-length report with citations.项目地址: https://gitcode.com/GitHub_Trending/sto/storm
STORM 是一个基于大语言模型的知识策展系统。输入一个主题,它会自动进行互联网研究、收集参考文献、生成结构化大纲,最终写出带完整引用的维基百科风格长文,把数小时的主题调研压缩到几分钟内。其线上研究预览已有超过 70,000 名用户使用。
它是怎么工作的
两阶段流程:先研究,后写作
STORM 把“写一篇带引用的长文”拆成两步:预写作阶段针对主题进行互联网研究,收集参考文献并生成大纲;写作阶段再基于大纲和参考资料撰写全文,输出带引用的完整文章。
让研究更深入的多视角提问机制
自动化研究的难点在于自动生成好问题,直接让大模型提问往往浅且重复。STORM 用两种策略改进:其一是视角引导的提问——先调研相似主题的现有文章,发现观察该主题的不同视角,再用这些视角控制提问过程;其二是模拟对话——让语言模型模拟维基百科写作者与基于互联网资料的话题专家之间的对话,在对话中不断更新对主题的理解并追问后续问题,从而同时提升问题的深度与覆盖面。
Co-STORM:人机协作的对话协议
协作版 Co-STORM 把研究变成多方对话:LLM 专家基于外部知识源作答或提出后续问题,主持人根据检索器发现但此前轮次未使用的信息生成启发性问题,人类则选择只观察或注入语句引导讨论走向。系统同时维护一张动态更新的思维导图,把收集到的信息组织成层次化概念结构,在长而深入的讨论中帮助人降低认知负担。
快速上手
1. 安装 knowledge-storm 包
pip install knowledge-storm如需修改引擎行为,也可以克隆源码仓库https://gitcode.com/GitHub_Trending/sto/storm,按requirements.txt安装依赖后在本地运行。
2. 配置 API 密钥
在项目根目录创建secrets.toml,填入语言模型密钥(如OPENAI_API_KEY)和搜索引擎密钥(如BING_SEARCH_API_KEY);使用本地向量检索时再补充 encoder 相关配置即可。
3. 运行示例脚本生成文章
python examples/storm_examples/run_storm_wiki_gpt.py \ --output-dir ./output --retriever bing \ --do-research --do-generate-article示例脚本覆盖 GPT、Claude、Gemini、DeepSeek、Groq、Ollama 等多种模型,结果保存在--output-dir指定的目录。do-research、do-generate-outline、do-generate-article、do-polish-article四个开关控制各阶段是否执行,重跑时已完成的阶段会直接从磁盘加载。
4. (可选)用自己的文档库作为知识源
默认基于互联网检索,也可改用VectorRM让文章落地于你自己的文档:把文档整理成含 content、title、url、description 列的 CSV 文件,运行对应的 VectorRM 示例脚本,系统会基于 Qdrant 建立向量库并在其上检索。
功能亮点
协作对话模式:用自己的话引导研究方向
Co-STORM 提供了完整的人在环体验:热启动后逐步推进对话,观察各轮专家交锋,随时注入自己的语句改变讨论焦点,结束后重组知识库即可得到带引用的报告。运行examples/costorm_examples/run_costorm_gpt.py即可体验。
模型与检索器可插拔
语言模型与嵌入模型经由 litellm 接入,支持 OpenAI、Azure、DeepSeek、Groq、Mistral 等所有后端;检索端内置 Bing、You.com、Serper、Brave、SearXNG、DuckDuckGo、Tavily 等多个搜索引擎,也可自行扩展新检索器。流程各阶段可以配置不同模型,便于按成本与质量权衡。
可实时观察研究过程的本地演示界面
frontend/demo_light是基于 Streamlit 的最小界面:输入主题并点击 Research,可实时看到视角识别与网页浏览的进展;文章页正文与参考文献左右并排展示,历史文章可在 My Articles 中回看。将secrets.toml复制到.streamlit目录后执行streamlit run storm.py即可启动。
实战应用与调优建议
典型用途包括:为某领域快速生成文献综述草稿、把内部技术文档整理成结构化知识、编写课程教学材料、基于代码库生成技术文档。几点可操作的调优建议:
- 按任务搭配模型:对话模拟与提问用便宜快速的模型,大纲生成与文章撰写用更强模型,官方即推荐此平衡点。
- 按主题选检索器:通用主题用 Bing、You.com 等互联网搜索;需要基于私有文档作答时切换
VectorRM。 - 分阶段验证:先跑研究与大纲确认资料质量,再决定是否生成全文,四个流程开关支持随时暂停续跑。
- 管理产出预期:官方说明产出属于预写作阶段草稿,有经验的维基编辑建议用它做资料收集与结构搭建,再人工修订。
项目现状与扩展点
- 数据集:FreshWiki 收录 100 篇高质量维基百科文章(2022 年 2 月至 2023 年 9 月被编辑最多的页面),可用于训练与评估;WildSeek 来自线上研究预览的真实用户数据,每条包含一个主题与用户深度搜索的目标。
- 路线图:团队正在推进两个方向——人在环功能(让用户参与知识策展过程)与信息抽象(支持维基百科式报告之外的呈现格式)。
- 关键模块:
- 语言模型接入:knowledge_storm/lm.py
- 检索模块:knowledge_storm/rm.py
- STORM 核心引擎:knowledge_storm/storm_wiki/engine.py
- Co-STORM 协作引擎:knowledge_storm/collaborative_storm/engine.py
STORM 把“研究一个主题并写出带引用的长文”拆成了可自动化、可定制的流水线,Co-STORM 则让这条流水线可以参与、引导和共建。建议先安装包并用 GPT 示例脚本生成第一篇文章,再按自己的场景逐步替换模型与检索器。
【免费下载链接】stormAn LLM-powered knowledge curation system that researches a topic and generates a full-length report with citations.项目地址: https://gitcode.com/GitHub_Trending/sto/storm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考