作者:洛
1. 项目背景
Local Deep Researcher 是一个本地化运行的 AI 研究助手,旨在通过结合大语言模型(LLM)和搜索工具,实现自动化深度研究并生成结构化报告。该项目由 LangChain AI 开发,支持本地模型(例如通过 Ollama 运行的 deepseek-r1:7b)和云端模型(例如 Claude、GPT),并集成了多种搜索引擎(如 Tavily、DuckDuckGo)。其本地优先的设计确保了数据隐私和灵活性,非常适合开发者、研究人员以及希望在本地使用 AI 的爱好者~
接下来让我们一起来实战实现吧~
2. 代码实战2.1 配置 Ollama
在使用 Ollama 之前,你需要安装相应的大模型。Ollama 提供了便捷的方式来下载和管理模型。
你可以通过访问 Ollama 模型库 来查看可用的大模型列表,了解每个模型的特点和适用场景。
使用 ollama pull 命令来安装你选择的大模型。例如,如果你想安装 deepseek-r1:7b 模型,可以运行以下命令:
ollama pull deepseek-r1:7b
在执行该命令时,Ollama 会从官方源下载模型文件并存储在本地。下载过程可能需要一些时间,具体取决于你的网络速度和模型大小。
安装完成后,你可以运行 ollama list 命令来确认模型是否已成功安装:
ollama list
该命令会列出当前已安装的大模型的相关信息,包括模型名称、版本等。如果 deepseek-r1:7b 出现在列表中,则表示模型安装成功。
测试连接
运行测试命令:
docker run --rm curlimages/curl curl -v http://host.docker.internal:11434/api/tags
有信息
{"models":[{"name":"deepseek-r1:7b","model":"deepseek-r1:7b","modified_at":"2025-03-17T04:31:25.4980675+08:00","size":4683075271,"digest":"0a8c266910232fd3291e71e5ba1e058cc5af9d411192cf88b6d30e92b6e73163","details":{"parent_model":"","format":"gguf","family":"qwen2","families":["qwen2"],"parameter_size":"7.6B","quantization_level":"Q4_K_M"}}]}
说明正常连接了。
硬件要求: 7b大模型 需要约 8-12GB RAM(无 GPU)或 6GB+ VRAM(有 GPU)。建议至少 16GB 系统内存,确保流畅运行。 网络需求: 本地模型无需联网,但若使用外部搜索(如 Tavily、DuckDuckGo),需要网络连接。 可选:注册 Tavily API 获取免费密钥(1000 次查询/月)。
2.2 搭建 Local Deep Researcher
Local Deep Researcher 以 Docker 容器形式运行,基于 LangGraph 进行工作流编排,结合 Ollama 提供 LLM 推理能力。以下是详细的搭建步骤。
(一)前置条件Docker:在 Windows、macOS 或 Linux 上安装 Docker Desktop。Ollama:安装 Ollama 并确保 deepseek-r1:7b 模型可用(见 2.1 节)。Tavily API 密钥:从 Tavily 官网 获取免费 API 密钥,用于搜索功能。(二)构建 Docker 镜像
克隆仓库并构建 Docker 镜像:
git clone https://github.com/langchain-ai/local-deep-researcher.gitcd local-deep-researcherdocker build -t local-deep-researcher .
此命令生成一个名为 local-deep-researcher 的 Docker 镜像,包含 LangGraph 和项目所需的所有 Python 依赖。
(三)运行应用程序
使用以下 PowerShell 命令运行应用程序,确保正确指定 deepseek-r1:7b 模型:
docker run --rm -it -p 2024:2024 -e SEARCH_API="tavily" -e TAVILY_API_KEY="yourkey" -e LLM_PROVIDER="ollama" -e OLLAMA_BASE_URL="http://host.docker.internal:11434/" -e LOCAL_LLM="deepseek-r1:7b" local-deep-researcher
该命令:
映射端口 2024,用于访问 LangGraph API 和 Studio UI。配置 Tavily 作为搜索 API,并传入您的 API 密钥。指定 Ollama 作为 LLM 提供者,指向主机上的 Ollama 服务器(http://host.docker.internal:11434/)。设置 deepseek-r1:7b 为使用的 LLM。 运行后,将看到日志显示服务器启动信息,包括:- API 端点:http://0.0.0.0:2024- Studio UI:https://smith.langchain.com/studio/?baseUrl=http://0.0.0.0:2024- API 文档:http://0.0.0.0:2024/docs
Studio UI 将自动在浏览器中打开,方便您与研究助手交互。 ==注意==:要点击链接https://smith.langchain.com/studio/thread?baseUrl=http://127.0.0.1:2024才能访问。
根据官方解释:
2.3 常见问题排查
在搭建过程中,可能会遇到一些问题,以下是基于日志的常见问题及解决方案。
问题 1:模型未找到(404 错误)
症状:日志显示错误:
ollama._types.ResponseError: model "deepseek-r1" not found, try pulling it first (status code: 404)
原因:环境变量 LOCAL_LLM 设置为 deepseek-r1,而 Ollama 中的实际模型名称为 deepseek-r1:7b,导致模型名称不匹配。 解决方案:
将 LOCAL_LLM 更新为 deepseek-r1:7b,如上述 docker run 命令所示。使用 ollama list 确认模型存在。如有需要,重新拉取模型:ollama pull deepseek-r1:7b。问题 2:PowerShell 命令语法错误症状:复制包含反斜杠()的 docker run 命令在 PowerShell 中失败。原因:PowerShell 使用反引号作为行继续符,而不是反斜杠。解决方案:使用上述 PowerShell 兼容的命令,或使用单行版本。2.4 使用 Local Deep Researcher
应用程序运行后,您可以通过以下方式与它交互:
Studio UI:访问 https://smith.langchain.com/studio/?baseUrl=http://0.0.0.0:2024,输入研究问题并查看结构化输出。API:向 http://0.0.0.0:2024 发送请求(API 文档见 http://0.0.0.0:2024/docs)。命令行:使用 LangGraph CLI 进行高级交互(参考仓库文档)。示例工作流程:输入研究问题(例如“分析 AI 对教育的影响”)。
助手通过 Tavily 搜索网络,使用 deepseek-r1:7b 处理结果。
生成结构化报告,包含总结和引用。(直接发给导师)
3.总结
Local Deep Researcher 是一个功能强大的 AI 研究自动化工具,兼具本地控制和丰富的集成能力。此外,它还是MIT开源协议,开发自由度极高哦~
通过本指南,您可以成功搭建项目、解决常见问题,并开始生成结构化研究报告。无论您是探索 LangGraph 的开发者,还是需要 AI 助手的科研人员,这个项目都为您提供了坚实的基础~
-- 完 --