菜单

LLM 集成

相关源文件

本文详细介绍了 Local Deep Researcher 系统如何与本地托管的大型语言模型 (LLM) 集成,以增强其研究能力。它涵盖了支持的 LLM 提供商、配置选项、集成架构以及系统如何与本地 LLM 服务交互。

有关系统如何与搜索提供商集成的信息,请参阅搜索 API 集成

支持的 LLM 提供商

Local Deep Researcher 支持两种 LLM 提供商:

  1. Ollama:通过 Ollama API 连接到本地托管的模型
  2. LMStudio:通过 LMStudio 的 OpenAI 兼容 API 与模型交互

此集成设计为提供商无关,允许用户选择最适合其需求的本地 LLM 解决方案。

来源

提供商架构

来源

配置

LLM 集成通过 Configuration 类进行配置,该类管理以下 LLM 相关参数:

参数描述默认值
local_llm要使用的 LLM 模型名称"llama3.2"
llm_providerLLM 提供商(ollama 或 lmstudio)"ollama"
ollama_base_urlOllama API 的基本 URL"http://:11434/"
lmstudio_base_urlLMStudio API 的基本 URL"http://:1234/v1"
strip_thinking_tokens是否从响应中去除 <think> 令牌True

配置值遵循优先级顺序

  1. 环境变量(最高优先级)
  2. LangGraph UI 配置
  3. Configuration 类中的默认值(最低优先级)

来源

提供商实现

Ollama 集成

系统通过 LangChain 的 ChatOllama 类与 Ollama 集成。此集成需要:

  1. Ollama 已安装并在本地机器上运行
  2. 已下载所需模型(例如,ollama pull deepseek-r1:8b
  3. ollama_base_url 配置正确(默认值:"http://:11434/")

系统将连接到 Ollama API,向指定模型发送提示,并处理响应。

来源

LMStudio 集成

系统通过自定义的 ChatLMStudio 类与 LMStudio 集成,该类继承自 LangChain 的 ChatOpenAI。此实现包括:

自定义实现增加了对 JSON 格式响应的特殊处理,并连接到 LMStudio 的 OpenAI 兼容 API 端点。LMStudio 集成需要:

  1. LMStudio 已安装并运行
  2. 所需模型已加载到 LMStudio 中
  3. LMStudio 服务器已通过 OpenAI 兼容 API 启动
  4. lmstudio_base_url 配置正确(默认值:"http://:1234/v1")

来源

请求与响应流程

来源

响应处理

JSON 响应处理

对于结构化输出,ChatLMStudio 实现包含了对 JSON 响应的特殊处理:

  1. 当指定 format="json" 时,它会设置相应的 response_format 参数
  2. 它尝试通过查找最外层的花括号来提取有效的 JSON
  3. 它验证并清理提取的 JSON
  4. 如果处理失败,它会回退到原始响应

这种处理有助于确保即使模型难以严格格式化也能输出一致的 JSON。

来源

LLM 在研究过程中的功能

LLM 在整个研究工作流程中执行多项关键功能:

  1. 查询生成:根据研究主题创建有效的搜索查询
  2. 来源分析:汇总网络搜索结果中的信息
  3. 差距识别:分析当前摘要以识别知识空白
  4. 查询优化:生成新查询以弥补已识别的空白
  5. 最终综合:创建包含引用的全面最终摘要

这种迭代方法使系统能够逐步完善其对研究主题的理解。

来源

模型兼容性注意事项

并非所有 LLM 都能在结构化输出要求下表现同样出色

  • 像 DeepSeek R1 (7B) 和 DeepSeek R1 (1.5B) 这样的模型可能难以生成有效的 JSON 输出
  • 系统包含处理格式错误响应的回退机制
  • 建议使用系统测试您选择的模型以确保兼容性

来源

Docker 集成

使用 Docker 部署时,Ollama 服务必须与 Local Deep Researcher 容器分开运行。从 Docker 容器内部连接到 Ollama API 需要特殊配置:

OLLAMA_BASE_URL="http://host.docker.internal:11434/"

这使得容器化应用程序能够与在主机上运行的 Ollama 服务进行通信。

来源