实战指南如何用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/stormSTORM是一个由大语言模型驱动的知识策展系统能够自动研究任何主题并生成带有完整引用的维基百科风格长篇报告。该系统通过两阶段流程实现高效的知识策展预写作阶段通过提问式研究收集参考文献和生成大纲写作阶段基于收集的信息生成带引用的完整文章。STORM系统已经被超过70,000人使用证明了其在知识探索领域的强大能力特别适合研究人员、内容创作者和学生快速生成高质量的学术内容。STORM系统核心架构解析STORM系统采用高度模块化的设计将复杂的写作任务分解为多个可配置的组件。整个系统构建在Python之上通过灵活的接口设计支持多种语言模型和检索器。核心模块架构STORM的核心代码位于knowledge_storm/目录下主要包含以下关键模块知识策展引擎knowledge_storm/storm_wiki/engine.py- 主引擎实现多语言模型支持knowledge_storm/lm.py- 统一的语言模型接口检索模块knowledge_storm/rm.py- 支持多种搜索引擎和检索器协作式STORMknowledge_storm/collaborative_storm/- 人机协作扩展两阶段写作流程实现STORM的两阶段流程是其核心创新点预写作阶段# STORM知识策展引擎初始化 from knowledge_storm import STORMWikiRunnerArguments, STORMWikiRunner, STORMWikiLMConfigs from knowledge_storm.lm import LitellmModel from knowledge_storm.rm import YouRM # 配置不同任务的语言模型 lm_configs STORMWikiLMConfigs() gpt_35 LitellmModel(modelgpt-3.5-turbo, max_tokens500, **openai_kwargs) gpt_4 LitellmModel(modelgpt-4o, max_tokens3000, **openai_kwargs) # 为不同组件分配不同模型以平衡成本和质量 lm_configs.set_conv_simulator_lm(gpt_35) # 对话模拟使用经济型模型 lm_configs.set_question_asker_lm(gpt_35) # 提问生成使用经济型模型 lm_configs.set_article_gen_lm(gpt_4) # 文章生成使用强大模型写作阶段# 运行STORM引擎 runner STORMWikiRunner(engine_args, lm_configs, rm) runner.run( topic人工智能伦理, do_researchTrue, # 执行研究阶段 do_generate_outlineTrue, # 生成大纲 do_generate_articleTrue, # 生成文章 do_polish_articleTrue # 润色文章 )快速上手STORM系统环境配置与安装首先克隆项目仓库并进行安装git clone https://gitcode.com/GitHub_Trending/sto/storm cd storm conda create -n storm python3.11 conda activate storm pip install -r requirements.txt或者直接安装知识风暴库pip install knowledge-stormAPI密钥配置在项目根目录创建secrets.toml文件配置API密钥# 语言模型配置 OPENAI_API_KEYyour_openai_api_key OPENAI_API_TYPEopenai # 检索器配置 BING_SEARCH_API_KEYyour_bing_search_api_key YDC_API_KEYyour_you_com_api_key运行第一个示例使用默认配置运行STORMpython examples/storm_examples/run_storm_wiki_gpt.py \ --output-dir ./output \ --retriever bing \ --do-research \ --do-generate-outline \ --do-generate-article \ --do-polish-article系统会提示输入主题然后自动进行研究和文章生成。Co-STORM人机协作知识策展Co-STORM扩展了STORM的功能引入了协作对话协议支持人类用户与AI系统之间的深度协作。该系统维护一个动态更新的思维导图构建用户与系统之间的共享概念空间。协作对话协议实现from knowledge_storm.collaborative_storm.engine import CollaborativeStormLMConfigs, RunnerArgument, CoStormRunner from knowledge_storm.lm import LitellmModel from knowledge_storm.rm import BingSearch # 配置Co-STORM语言模型 lm_config CollaborativeStormLMConfigs() gpt_4o LitellmModel(modelgpt-4o, max_tokens1000, **openai_kwargs) # 为不同角色分配模型 lm_config.set_question_answering_lm(gpt_4o) # 问题回答专家 lm_config.set_discourse_manage_lm(gpt_4o) # 对话管理器 lm_config.set_utterance_polishing_lm(gpt_4o) # 话语润色 # 初始化Co-STORM运行器 costorm_runner CoStormRunner( lm_configlm_config, runner_argumentrunner_argument, logging_wrapperlogging_wrapper, rmbing_rm )人机交互流程# 预热系统以构建共享概念空间 costorm_runner.warm_start() # 观察对话进展 conv_turn costorm_runner.step() # 主动参与对话引导讨论焦点 costorm_runner.step(user_utterance我想了解更多关于量子计算在药物发现中的应用) # 生成最终报告 costorm_runner.knowledge_base.reorganize() article costorm_runner.generate_report()前端演示界面使用指南STORM提供了基于Streamlit的轻量级前端界面位于frontend/demo_light/目录方便用户交互式使用系统。文章创建界面前端界面提供了直观的操作体验主题输入在Create New Article页面输入研究主题研究视角识别系统自动识别不同的专家视角信息收集实时展示从互联网收集信息的过程进度跟踪显示每个视角的研究进度文章展示界面生成的文章具有完整的学术结构结构化目录清晰的章节导航详细正文每个章节都有充分的论述和引用参考文献规范的引用格式交互式查看支持章节跳转和内容浏览启动前端界面cd frontend/demo_light pip install -r requirements.txt streamlit run storm.py高级配置与定制化支持的语言模型和检索器STORM系统通过LiteLLM支持多种语言模型# 支持的语言模型示例 from knowledge_storm.lm import LitellmModel # OpenAI系列 openai_model LitellmModel(modelgpt-4o, max_tokens1000, **openai_kwargs) # Anthropic Claude claude_model LitellmModel(modelclaude-3-opus-20240229, max_tokens1000, **anthropic_kwargs) # Google Gemini gemini_model LitellmModel(modelgemini/gemini-1.5-pro, max_tokens1000, **google_kwargs) # 本地模型通过Ollama local_model LitellmModel(modelollama/llama3, max_tokens1000, **ollama_kwargs)支持的检索器包括YouRM- You.com搜索引擎BingSearch- 必应搜索VectorRM- 基于向量的文档检索SerperRM- Serper API搜索BraveRM- Brave搜索API自定义模块开发STORM采用模块化设计支持自定义扩展# 自定义知识策展模块 from knowledge_storm.interface import KnowledgeCurationModule class CustomKnowledgeCuration(KnowledgeCurationModule): def __init__(self, config): super().__init__(config) def collect_information(self, topic: str, perspectives: List[str]) - Dict: # 实现自定义的信息收集逻辑 pass def generate_questions(self, topic: str, perspective: str) - List[str]: # 实现自定义的问题生成逻辑 pass性能优化技巧模型选择策略对话模拟使用经济型模型如GPT-3.5-turbo文章生成使用强大模型如GPT-4o根据任务复杂度动态调整模型检索优化# 调整检索参数 rm BingSearch( bing_search_api_keyapi_key, k10, # 检索结果数量 timeout30, # 超时时间 languageen # 检索语言 )缓存机制# 启用结果缓存避免重复计算 engine_args STORMWikiRunnerArguments( cache_dir./cache, use_cacheTrue, max_cache_size1000 )最佳实践与常见问题最佳实践建议主题选择选择具有足够公开信息的主题避免过于宽泛或过于狭窄的主题优先选择有明确维基百科条目的主题作为起点模型配置# 推荐的模型配置组合 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) # 文章生成需要高质量输出输出质量控制启用do_polish_articleTrue进行文章润色设置合适的温度参数通常0.7-1.0使用top-p采样建议0.9常见问题解决问题1API密钥配置错误# 检查环境变量 echo $OPENAI_API_KEY # 或检查secrets.toml文件 cat secrets.toml问题2检索器连接失败# 尝试不同的检索器 from knowledge_storm.rm import BingSearch, YouRM, SerperRM # 或者使用本地检索 from knowledge_storm.rm import VectorRM vector_rm VectorRM(documentsyour_documents)问题3生成内容质量不高# 调整模型参数 engine_args STORMWikiRunnerArguments( max_conversation_turns5, # 增加对话轮次 max_questions_per_perspective10, # 增加问题数量 search_top_k15 # 增加检索结果数量 )问题4运行速度过慢# 优化配置 lm_configs.set_conv_simulator_lm(fast_model) # 使用更快模型 engine_args STORMWikiRunnerArguments( parallel_workers4, # 增加并行处理 timeout_per_request60 # 设置合理超时 )实际应用场景学术研究辅助STORM特别适合学术研究人员文献综述快速收集特定领域的相关研究研究提案生成研究背景和现状分析论文写作构建论文框架和收集参考文献内容创作工具内容创作者可以利用STORM博客文章生成深度技术文章技术文档创建完整的产品文档教育材料制作课程大纲和学习资料企业知识管理企业应用场景包括市场分析收集竞争对手和市场趋势信息技术调研跟踪最新技术发展内部培训生成培训材料和知识库集成到现有工作流# 将STORM集成到现有应用中 class ResearchAssistant: def __init__(self): self.storm_runner self._init_storm() def _init_storm(self): # 初始化STORM运行器 lm_configs STORMWikiLMConfigs() # ... 配置代码 return STORMWikiRunner(engine_args, lm_configs, rm) def generate_report(self, topic: str, format: str markdown): # 运行STORM生成报告 self.storm_runner.run( topictopic, do_researchTrue, do_generate_articleTrue ) # 获取生成的文章 article self.storm_runner.get_article() # 格式转换 if format html: return self._convert_to_html(article) elif format pdf: return self._convert_to_pdf(article) else: return article总结与展望STORM系统代表了AI辅助写作的新范式通过智能的研究流程和模块化设计大大降低了高质量内容创作的难度。其核心价值在于自动化研究流程将复杂的研究任务分解为可管理的步骤多视角分析从不同专家视角全面探索主题人机协作Co-STORM扩展支持人类深度参与高度可定制灵活的模块化设计支持各种应用场景随着大语言模型的不断发展STORM这类系统的应用前景将更加广阔。未来可能的发展方向包括多语言支持扩展对非英语内容的支持领域专业化针对特定领域如医学、法律优化实时更新集成实时信息源保持内容时效性协作增强支持多人协作编辑和评审无论你是学术研究者、内容创作者还是知识工作者STORM系统都能为你提供强大的AI辅助帮助你更高效地完成知识探索和内容创作任务。通过本文的实践指南你现在可以开始利用这个强大的工具来提升你的工作效率和创作质量。【免费下载链接】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),仅供参考
实战指南:如何用STORM系统高效生成学术级研究报告
实战指南如何用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/stormSTORM是一个由大语言模型驱动的知识策展系统能够自动研究任何主题并生成带有完整引用的维基百科风格长篇报告。该系统通过两阶段流程实现高效的知识策展预写作阶段通过提问式研究收集参考文献和生成大纲写作阶段基于收集的信息生成带引用的完整文章。STORM系统已经被超过70,000人使用证明了其在知识探索领域的强大能力特别适合研究人员、内容创作者和学生快速生成高质量的学术内容。STORM系统核心架构解析STORM系统采用高度模块化的设计将复杂的写作任务分解为多个可配置的组件。整个系统构建在Python之上通过灵活的接口设计支持多种语言模型和检索器。核心模块架构STORM的核心代码位于knowledge_storm/目录下主要包含以下关键模块知识策展引擎knowledge_storm/storm_wiki/engine.py- 主引擎实现多语言模型支持knowledge_storm/lm.py- 统一的语言模型接口检索模块knowledge_storm/rm.py- 支持多种搜索引擎和检索器协作式STORMknowledge_storm/collaborative_storm/- 人机协作扩展两阶段写作流程实现STORM的两阶段流程是其核心创新点预写作阶段# STORM知识策展引擎初始化 from knowledge_storm import STORMWikiRunnerArguments, STORMWikiRunner, STORMWikiLMConfigs from knowledge_storm.lm import LitellmModel from knowledge_storm.rm import YouRM # 配置不同任务的语言模型 lm_configs STORMWikiLMConfigs() gpt_35 LitellmModel(modelgpt-3.5-turbo, max_tokens500, **openai_kwargs) gpt_4 LitellmModel(modelgpt-4o, max_tokens3000, **openai_kwargs) # 为不同组件分配不同模型以平衡成本和质量 lm_configs.set_conv_simulator_lm(gpt_35) # 对话模拟使用经济型模型 lm_configs.set_question_asker_lm(gpt_35) # 提问生成使用经济型模型 lm_configs.set_article_gen_lm(gpt_4) # 文章生成使用强大模型写作阶段# 运行STORM引擎 runner STORMWikiRunner(engine_args, lm_configs, rm) runner.run( topic人工智能伦理, do_researchTrue, # 执行研究阶段 do_generate_outlineTrue, # 生成大纲 do_generate_articleTrue, # 生成文章 do_polish_articleTrue # 润色文章 )快速上手STORM系统环境配置与安装首先克隆项目仓库并进行安装git clone https://gitcode.com/GitHub_Trending/sto/storm cd storm conda create -n storm python3.11 conda activate storm pip install -r requirements.txt或者直接安装知识风暴库pip install knowledge-stormAPI密钥配置在项目根目录创建secrets.toml文件配置API密钥# 语言模型配置 OPENAI_API_KEYyour_openai_api_key OPENAI_API_TYPEopenai # 检索器配置 BING_SEARCH_API_KEYyour_bing_search_api_key YDC_API_KEYyour_you_com_api_key运行第一个示例使用默认配置运行STORMpython examples/storm_examples/run_storm_wiki_gpt.py \ --output-dir ./output \ --retriever bing \ --do-research \ --do-generate-outline \ --do-generate-article \ --do-polish-article系统会提示输入主题然后自动进行研究和文章生成。Co-STORM人机协作知识策展Co-STORM扩展了STORM的功能引入了协作对话协议支持人类用户与AI系统之间的深度协作。该系统维护一个动态更新的思维导图构建用户与系统之间的共享概念空间。协作对话协议实现from knowledge_storm.collaborative_storm.engine import CollaborativeStormLMConfigs, RunnerArgument, CoStormRunner from knowledge_storm.lm import LitellmModel from knowledge_storm.rm import BingSearch # 配置Co-STORM语言模型 lm_config CollaborativeStormLMConfigs() gpt_4o LitellmModel(modelgpt-4o, max_tokens1000, **openai_kwargs) # 为不同角色分配模型 lm_config.set_question_answering_lm(gpt_4o) # 问题回答专家 lm_config.set_discourse_manage_lm(gpt_4o) # 对话管理器 lm_config.set_utterance_polishing_lm(gpt_4o) # 话语润色 # 初始化Co-STORM运行器 costorm_runner CoStormRunner( lm_configlm_config, runner_argumentrunner_argument, logging_wrapperlogging_wrapper, rmbing_rm )人机交互流程# 预热系统以构建共享概念空间 costorm_runner.warm_start() # 观察对话进展 conv_turn costorm_runner.step() # 主动参与对话引导讨论焦点 costorm_runner.step(user_utterance我想了解更多关于量子计算在药物发现中的应用) # 生成最终报告 costorm_runner.knowledge_base.reorganize() article costorm_runner.generate_report()前端演示界面使用指南STORM提供了基于Streamlit的轻量级前端界面位于frontend/demo_light/目录方便用户交互式使用系统。文章创建界面前端界面提供了直观的操作体验主题输入在Create New Article页面输入研究主题研究视角识别系统自动识别不同的专家视角信息收集实时展示从互联网收集信息的过程进度跟踪显示每个视角的研究进度文章展示界面生成的文章具有完整的学术结构结构化目录清晰的章节导航详细正文每个章节都有充分的论述和引用参考文献规范的引用格式交互式查看支持章节跳转和内容浏览启动前端界面cd frontend/demo_light pip install -r requirements.txt streamlit run storm.py高级配置与定制化支持的语言模型和检索器STORM系统通过LiteLLM支持多种语言模型# 支持的语言模型示例 from knowledge_storm.lm import LitellmModel # OpenAI系列 openai_model LitellmModel(modelgpt-4o, max_tokens1000, **openai_kwargs) # Anthropic Claude claude_model LitellmModel(modelclaude-3-opus-20240229, max_tokens1000, **anthropic_kwargs) # Google Gemini gemini_model LitellmModel(modelgemini/gemini-1.5-pro, max_tokens1000, **google_kwargs) # 本地模型通过Ollama local_model LitellmModel(modelollama/llama3, max_tokens1000, **ollama_kwargs)支持的检索器包括YouRM- You.com搜索引擎BingSearch- 必应搜索VectorRM- 基于向量的文档检索SerperRM- Serper API搜索BraveRM- Brave搜索API自定义模块开发STORM采用模块化设计支持自定义扩展# 自定义知识策展模块 from knowledge_storm.interface import KnowledgeCurationModule class CustomKnowledgeCuration(KnowledgeCurationModule): def __init__(self, config): super().__init__(config) def collect_information(self, topic: str, perspectives: List[str]) - Dict: # 实现自定义的信息收集逻辑 pass def generate_questions(self, topic: str, perspective: str) - List[str]: # 实现自定义的问题生成逻辑 pass性能优化技巧模型选择策略对话模拟使用经济型模型如GPT-3.5-turbo文章生成使用强大模型如GPT-4o根据任务复杂度动态调整模型检索优化# 调整检索参数 rm BingSearch( bing_search_api_keyapi_key, k10, # 检索结果数量 timeout30, # 超时时间 languageen # 检索语言 )缓存机制# 启用结果缓存避免重复计算 engine_args STORMWikiRunnerArguments( cache_dir./cache, use_cacheTrue, max_cache_size1000 )最佳实践与常见问题最佳实践建议主题选择选择具有足够公开信息的主题避免过于宽泛或过于狭窄的主题优先选择有明确维基百科条目的主题作为起点模型配置# 推荐的模型配置组合 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) # 文章生成需要高质量输出输出质量控制启用do_polish_articleTrue进行文章润色设置合适的温度参数通常0.7-1.0使用top-p采样建议0.9常见问题解决问题1API密钥配置错误# 检查环境变量 echo $OPENAI_API_KEY # 或检查secrets.toml文件 cat secrets.toml问题2检索器连接失败# 尝试不同的检索器 from knowledge_storm.rm import BingSearch, YouRM, SerperRM # 或者使用本地检索 from knowledge_storm.rm import VectorRM vector_rm VectorRM(documentsyour_documents)问题3生成内容质量不高# 调整模型参数 engine_args STORMWikiRunnerArguments( max_conversation_turns5, # 增加对话轮次 max_questions_per_perspective10, # 增加问题数量 search_top_k15 # 增加检索结果数量 )问题4运行速度过慢# 优化配置 lm_configs.set_conv_simulator_lm(fast_model) # 使用更快模型 engine_args STORMWikiRunnerArguments( parallel_workers4, # 增加并行处理 timeout_per_request60 # 设置合理超时 )实际应用场景学术研究辅助STORM特别适合学术研究人员文献综述快速收集特定领域的相关研究研究提案生成研究背景和现状分析论文写作构建论文框架和收集参考文献内容创作工具内容创作者可以利用STORM博客文章生成深度技术文章技术文档创建完整的产品文档教育材料制作课程大纲和学习资料企业知识管理企业应用场景包括市场分析收集竞争对手和市场趋势信息技术调研跟踪最新技术发展内部培训生成培训材料和知识库集成到现有工作流# 将STORM集成到现有应用中 class ResearchAssistant: def __init__(self): self.storm_runner self._init_storm() def _init_storm(self): # 初始化STORM运行器 lm_configs STORMWikiLMConfigs() # ... 配置代码 return STORMWikiRunner(engine_args, lm_configs, rm) def generate_report(self, topic: str, format: str markdown): # 运行STORM生成报告 self.storm_runner.run( topictopic, do_researchTrue, do_generate_articleTrue ) # 获取生成的文章 article self.storm_runner.get_article() # 格式转换 if format html: return self._convert_to_html(article) elif format pdf: return self._convert_to_pdf(article) else: return article总结与展望STORM系统代表了AI辅助写作的新范式通过智能的研究流程和模块化设计大大降低了高质量内容创作的难度。其核心价值在于自动化研究流程将复杂的研究任务分解为可管理的步骤多视角分析从不同专家视角全面探索主题人机协作Co-STORM扩展支持人类深度参与高度可定制灵活的模块化设计支持各种应用场景随着大语言模型的不断发展STORM这类系统的应用前景将更加广阔。未来可能的发展方向包括多语言支持扩展对非英语内容的支持领域专业化针对特定领域如医学、法律优化实时更新集成实时信息源保持内容时效性协作增强支持多人协作编辑和评审无论你是学术研究者、内容创作者还是知识工作者STORM系统都能为你提供强大的AI辅助帮助你更高效地完成知识探索和内容创作任务。通过本文的实践指南你现在可以开始利用这个强大的工具来提升你的工作效率和创作质量。【免费下载链接】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),仅供参考