本页面记录了 Local Deep Researcher 的系统架构。它提供了核心组件、它们之间的交互以及支持迭代式网络研究过程的数据流的技术概述。本文档侧重于系统的结构组织,有关研究工作流程和状态管理的具体细节,请参阅 研究工作流程 和 状态管理。
Local Deep Researcher 构建为一个 LangGraph 应用程序,用于协调迭代式研究过程。该系统使用本地托管的大型语言模型 (LLM) 来生成搜索查询、分析网络搜索结果,并生成带有正确引用的全面研究摘要。
来源:src/ollama_deep_researcher/graph.py282-297 README.md157-167
该系统的核心实现为一个 LangGraph StateGraph,它通过一系列节点和边缘来协调研究过程。该图定义了研究工作流程,其中每个节点代表过程中的一个特定操作。
来源:src/ollama_deep_researcher/graph.py282-297
LangGraph 中的每个节点都代表一个执行研究过程一部分的特定函数。
| 节点名称 | 功能 | 描述 |
|---|---|---|
generate_query | generate_query() | 根据研究主题生成搜索查询 |
web_research | web_research() | 使用配置的搜索 API 执行网络搜索 |
summarize_sources | summarize_sources() | 总结网络研究结果 |
reflect_on_summary | reflect_on_summary() | 识别知识差距并生成后续查询 |
finalize_summary | finalize_summary() | 准备带有引用的最终输出 |
来源:src/ollama_deep_researcher/graph.py17-260
该系统使用 SummaryState 类来跟踪研究过程的状态。此类维护着重要的信息,例如研究主题、当前搜索查询、收集的结果以及运行中的摘要。
来源:src/ollama_deep_researcher/state.py1-20
Local Deep Researcher 集成了两种类型的外部服务:LLM 提供商和搜索 API。
该系统支持两种 LLM 提供商
ChatOllama 类ChatLMStudio 类选择通过 LLM_PROVIDER 环境变量或 LangGraph UI 配置进行设置。
该系统支持多种搜索 API
选择通过 SEARCH_API 环境变量或 LangGraph UI 配置进行设置。
来源:src/ollama_deep_researcher/graph.py41-64 src/ollama_deep_researcher/graph.py92-110
该系统使用 Configuration 类来管理配置设置。可以通过三种方式设置配置值,按优先级顺序排列:
关键配置参数包括
LLM_PROVIDER:要使用的 LLM 提供商(“ollama”或“lmstudio”)LOCAL_LLM:要使用的特定模型SEARCH_API:要使用的搜索 APIMAX_WEB_RESEARCH_LOOPS:最大研究迭代次数FETCH_FULL_PAGE:是否获取完整页面内容以下时序图说明了研究会话期间数据在系统中的流动情况。
来源:src/ollama_deep_researcher/graph.py17-260 README.md157-167
Local Deep Researcher 被设计为以 LangGraph 应用程序的形式运行,可以以多种方式部署
可以通过环境变量或 LangGraph Studio UI 配置系统。