node-DeepResearch:开源复现版OpenAI Deep Research,支持多步推理和复杂查询的AI智能体

422 阅读4分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 项目介绍:node-DeepResearch 是一个开源 AI 智能体,基于 Gemini 语言模型和 Jina Reader 工具,支持多步推理和复杂查询。
  2. 主要功能:持续搜索与阅读、多步推理、实时进度反馈、灵活的查询方式。
  3. 技术原理:使用 Gemini 作为核心语言模型,结合搜索引擎和 Jina Reader 进行网页内容处理。

正文(附运行示例)

node-DeepResearch 是什么

node-DeepResearch

node-DeepResearch 是一个开源的 AI 智能体项目,旨在通过持续搜索和阅读网页,逐步推理并回答复杂问题。它基于 Gemini 语言模型和 Jina Reader 工具,能够处理从简单问题到多步推理的复杂任务。该项目提供了 Web Server API,方便用户通过 HTTP 请求提交查询并获取实时进度更新。

node-DeepResearch 的主要功能

  • 持续搜索与阅读:基于搜索引擎(如 Brave 或 DuckDuckGo)查找相关信息,阅读网页内容,直到找到问题的答案或超出设定的 token 预算。
  • 多步推理:处理复杂的多步问题,逐步分解问题并逐步解决。
  • 实时进度反馈:通过 Web Server API 提供实时进度更新,用户可以随时了解查询的进展情况。
  • 灵活的查询方式:支持从简单的事实性问题到复杂的开放式问题,例如预测未来的趋势或制定策略。

node-DeepResearch 的技术原理

  • 语言模型:使用 Gemini 作为核心语言模型,负责生成回答和推理逻辑。Gemini 是强大的通用语言模型,能处理多种自然语言任务。
  • 网页内容处理:基于 Jina Reader 将网页内容转换为适合语言模型处理的纯文本格式。Jina Reader 是开源工具,专门用于处理 HTML 网页内容。
  • 搜索与信息提取:基于搜索引擎(如 Brave 或 DuckDuckGo)获取相关信息。搜索引擎负责提供网页链接,智能体基于阅读网页内容提取有用信息。
  • 多步推理流程
    • 初始化:设置初始上下文和变量。
    • 预算检查:在每一步检查 token 预算是否超出。
    • 生成提示:根据当前问题生成语言模型的输入提示。
    • 模型生成:调用 Gemini 生成回答或下一步动作。
    • 动作处理:根据生成的动作(如搜索、访问网页、生成回答等)执行相应操作。
    • 结果评估:评估生成的回答是否满足问题要求,如果不满足则继续推理。
    • 循环与终止:如果在预算内找到答案,则结束查询;如果超出预算或无法找到答案,则进入“Beast Mode”生成最终答案。

如何运行 node-DeepResearch

1. 安装依赖

首先,确保你已经安装了 Node.js 和 npm。然后,按照以下步骤进行安装:

export GEMINI_API_KEY=...  # 获取 Gemini API 密钥
export JINA_API_KEY=jina_...  # 从 https://jina.ai/reader 获取免费的 Jina API 密钥

git clone https://github.com/jina-ai/node-DeepResearch.git
cd node-DeepResearch
npm install
2. 使用命令行运行

你可以通过命令行运行 node-DeepResearch,提交查询并获取结果:

npm run dev $QUERY

例如:

npm run dev "what is the capital of France?"
npm run dev "who will be the biggest competitor of Jina AI"
3. 使用 Web Server API

启动 Web Server:

npm run serve

服务器将启动在 http://localhost:3000,提供以下 API 接口:

  • POST /api/v1/query:提交查询请求。
curl -X POST http://localhost:3000/api/v1/query \
  -H "Content-Type: application/json" \
  -d '{
    "q": "what is the capital of France?",
    "budget": 1000000,
    "maxBadAttempt": 3
  }'
  • GET /api/v1/stream/:requestId:连接到 Server-Sent Events 流,接收进度更新和最终答案。
curl -N http://localhost:3000/api/v1/stream/1234567890
4. 使用 Docker

你也可以使用 Docker 来运行 node-DeepResearch:

  • 构建 Docker 镜像
docker build -t deepresearch:latest .
  • 运行 Docker 容器
docker run -p 3000:3000 --env GEMINI_API_KEY=your_gemini_api_key --env JINA_API_KEY=your_jina_api_key --env BRAVE_API_KEY=your_brave_api_key deepresearch:latest
  • 使用 Docker Compose
docker-compose up

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦