菜单

Docker 部署

相关源文件

本文档提供了使用 Docker 部署 Local Deep Researcher 的详细说明。它涵盖了 Docker 容器的构建和运行、环境变量的配置,以及通过 LangGraph Studio 用户界面访问容器化应用程序。

此处描述的 Docker 部署将 LangGraph Studio 和 Local Deep Researcher 应用程序容器化,但不包括 LLM 提供程序(Ollama 或 LMStudio)。有关 Docker 之外的通用部署选项,请参阅部署选项

Docker 架构概述

Docker 部署封装了 LangGraph Studio 和研究助手代码,同时依赖外部服务提供 LLM 功能和搜索功能。

来源:README.md187-215 Dockerfile1-39

先决条件

在进行 Docker 部署之前,请确保您已具备:

  1. 您的系统上已安装 Docker
  2. 一个 LLM 提供程序(Ollama 或 LMStudio)正在运行且可从您的 Docker 主机访问
  3. 任何非默认搜索提供程序(如果使用 Tavily、Perplexity 或其他需要身份验证的服务)的 API 密钥

Docker 容器需要外部访问 LLM 提供程序

  • Ollama:必须运行并可从 Docker 容器访问(通常在 http://host.docker.internal:11434
  • LMStudio:必须运行并启用与 OpenAI 兼容的 API(通常在 http://host.docker.internal:1234/v1

来源:README.md29-64

Docker 镜像结构

Docker 镜像由提供的 Dockerfile 构建,该文件设置了包含所有必要依赖项的 Python 环境。

来源:Dockerfile1-39

构建 Docker 镜像

构建 Docker 镜像

  1. 克隆仓库

    git clone https://github.com/langchain-ai/local-deep-researcher.git
    cd local-deep-researcher
    
  2. 构建 Docker 镜像

    docker build -t local-deep-researcher .
    

来源:README.md191-193

运行 Docker 容器

构建镜像后,运行容器并设置适当的环境变量以配置应用程序。

基本运行命令

docker run --rm -it -p 2024:2024 local-deep-researcher

环境变量配置

为实现完整功能,请提供 LLM 提供程序连接、搜索 API 选择和研究配置的环境变量。

综合配置示例

docker run --rm -it -p 2024:2024 \
  -e SEARCH_API="tavily" \
  -e TAVILY_API_KEY="tvly-***YOUR_KEY_HERE***" \
  -e LLM_PROVIDER="ollama" \
  -e OLLAMA_BASE_URL="http://host.docker.internal:11434/" \
  -e LOCAL_LLM="llama3.2" \
  -e MAX_WEB_RESEARCH_LOOPS="3" \
  local-deep-researcher

关键环境变量

环境变量描述默认值示例
LLM_PROVIDER要使用的 LLM 提供程序ollama"ollama""lmstudio"
OLLAMA_BASE_URLOllama 服务的 URLhttp://:11434"http://host.docker.internal:11434/"
LOCAL_LLM要使用的模型名称llama3.2"deepseek-r1:8b"
SEARCH_API要使用的搜索 APIduckduckgo"tavily", "perplexity", "searxng"
TAVILY_API_KEYTavily 的 API 密钥"tvly-xxxxxxxxxxxxx"
PERPLEXITY_API_KEYPerplexity 的 API 密钥"pplx-xxxxxxxxxxxxx"
MAX_WEB_RESEARCH_LOOPS最大研究迭代次数3"5"
FETCH_FULL_PAGE获取完整页面内容false"true""false"

来源:README.md68-75 README.md194-205

访问 LangGraph Studio 用户界面

运行 Docker 容器时,LangGraph Studio 用户界面不会自动在您的浏览器中打开。您需要手动导航到正确的 URL。

访问用户界面

  1. 启动容器后,您将看到类似以下内容的日志消息:

    2025-02-10T13:45:04.784915Z [info] 🎨 Opening Studio in your browser... [browser_opener]
    URL: https://smith.langchain.com/studio/?baseUrl=http://0.0.0.0:2024
    
  2. 请勿使用日志中的 URL,而是通过以下地址访问用户界面:

    https://smith.langchain.com/studio/thread?baseUrl=http://127.0.0.1:2024
    

浏览器兼容性说明

从 Docker 部署访问 LangGraph Studio 用户界面时:

  • 推荐使用 Firefox 以获得最佳体验
  • Safari 用户可能会因混合内容 (HTTPS/HTTP) 而遇到安全警告
  • 如果遇到问题,请尝试使用 Firefox、禁用广告拦截扩展程序,或检查浏览器控制台以获取具体的错误消息

来源:README.md206-214 README.md147-156

常见配置

不同的 LLM 提供程序

Ollama 配置

docker run --rm -it -p 2024:2024 \
  -e LLM_PROVIDER="ollama" \
  -e OLLAMA_BASE_URL="http://host.docker.internal:11434/" \
  -e LOCAL_LLM="llama3.2" \
  local-deep-researcher

LMStudio 配置

docker run --rm -it -p 2024:2024 \
  -e LLM_PROVIDER="lmstudio" \
  -e LMSTUDIO_BASE_URL="http://host.docker.internal:1234/v1" \
  -e LOCAL_LLM="qwen_qwq-32b" \
  local-deep-researcher

不同的搜索 API

DuckDuckGo(无需 API 密钥)

docker run --rm -it -p 2024:2024 \
  -e SEARCH_API="duckduckgo" \
  -e LLM_PROVIDER="ollama" \
  -e OLLAMA_BASE_URL="http://host.docker.internal:11434/" \
  local-deep-researcher

Tavily(需要 API 密钥)

docker run --rm -it -p 2024:2024 \
  -e SEARCH_API="tavily" \
  -e TAVILY_API_KEY="tvly-***YOUR_KEY_HERE***" \
  -e LLM_PROVIDER="ollama" \
  -e OLLAMA_BASE_URL="http://host.docker.internal:11434/" \
  local-deep-researcher

来源:README.md29-75 README.md194-205

故障排除

常见问题和解决方案

问题可能原因解决方案
无法连接到 OllamaOLLAMA_BASE_URL 不正确使用 http://host.docker.internal:11434/ 而不是 http://:11434/
用户界面未加载浏览器安全设置尝试使用 Firefox 或禁用广告拦截器
API 密钥未被识别环境变量格式不正确确保 docker run 命令中反斜杠后没有空格
未找到模型Ollama 模型未拉取在启动容器之前,在主机上运行 ollama pull <model-name>
容器立即退出配置问题使用 docker logs <container-id> 检查日志

配置优先级

使用 Docker 部署时,请注意配置的优先级顺序

  1. 传递给 Docker 容器的环境变量(最高优先级)
  2. LangGraph 用户界面配置(在容器启动后通过用户界面设置时)
  3. Configuration 类中的默认值(最低优先级)

这意味着在运行容器时设置的任何环境变量将覆盖默认值,但可以通过启动后在 LangGraph Studio 用户界面中更改的设置来覆盖。

来源:README.md129-135 README.md147-156 README.md206-214