OpenDeepSearch:搜索引擎革命!这个开源深度搜索工具让AI代理直接读懂网页,复杂问题一键拆解

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

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🚀 「搜索引擎革命!开源神器让AI代理直接读懂网页,复杂问题一键拆解」

大家好,我是蚝油菜花。当传统搜索引擎还在返回零散链接时,这个开源项目已经让AI学会了「阅读理解」!

你是否也受够了这些搜索困境------

  • 🔍 查学术资料要手动对比10个网页
  • 📊 分析市场数据得自己整理表格
  • 🤖 问AI复杂问题总得到碎片化答案...

今天要介绍的 OpenDeepSearch ,正在重新定义信息检索!这个由Sentient AGI开源的搜索核弹:

  • 语义理解开挂:用知识图谱解析网页内容,告别关键词匹配
  • 多跳推理王:自动拆解「A对B的影响如何通过C体现」类复杂问题
  • AI代理最佳拍档:与Hugging Face生态无缝集成,搜索结果直接喂给代码生成器

已有团队用它1小时完成竞品分析报告,接下来将揭秘这套开源搜索系统的技术架构!

🚀 快速阅读

OpenDeepSearch是专为AI代理优化的开源深度搜索工具。

  1. 功能:支持语义搜索和多跳查询,提供快速和专业两种模式。
  2. 技术:基于语义重排器和ReAct框架,整合网络爬取与推理能力。

OpenDeepSearch 是什么

OpenDeepSearch 是专为AI代理设计的开源深度搜索工具,通过语义理解优化传统关键词检索方式。该系统包含Open Search Tool和Open Reasoning Agent两大核心组件,支持从简单查询到复杂多跳问题的全场景搜索需求。

作为Hugging Face SmolAgents生态的优化组件,它采用模块化设计,允许自由切换不同的大语言模型作为推理引擎。测试显示其在处理需要跨文档验证的问题时,准确率比传统搜索引擎提升47%。

OpenDeepSearch 的主要功能

  • 语义搜索:基于Qwen2-7B等模型实现语义级结果重排
  • 双模式检索:快速模式响应时间<1秒,专业模式支持多轮验证
  • 代理集成:直接输出结构化数据供AI代理进一步处理
  • 数学计算:通过Wolfram Alpha API处理数值问题
  • 动态爬取:实时抓取最新网页内容确保信息时效性

OpenDeepSearch 的技术原理

  • 查询扩展:生成多个语义相关查询提升召回率
  • 段落提取:从网页中智能抽取关键内容段落
  • ReAct框架:结合思考-行动-观察循环解决复杂问题
  • 代码执行:通过生成Python代码处理计算密集型任务
  • 微服务架构:各组件可独立部署和扩展

如何运行 OpenDeepSearch

下面将带你了解如何安装、配置和运行 OpenDeepSearch,以充分利用其语义搜索和高级搜索模式。

安装

在开始使用 OpenDeepSearch 之前,请确保你的系统满足以下安装要求:

1. 安装依赖

运行以下命令以安装 OpenDeepSearch 的依赖项:

bash 复制代码
pip install -e . # 你也可以使用:uv pip install -e .
pip install -r requirements.txt # 你也可以使用:uv pip install -r requirements.txt

注意 :必须安装 torch,并且建议使用 uv 而非 pip 来简化安装过程。

配置

2. 获取 Serper.dev API 密钥

  1. 获取你的 API 密钥并将其设置为环境变量:
bash 复制代码
export SERPER_API_KEY='your-api-key-here'

3. 选择重新排序解决方案

OpenDeepSearch 支持以下重新排序选项:

4. 配置 LiteLLM 提供程序

选择一个支持的提供程序(如 OpenAI、Anthropic 或 Google Gemini),并设置其 API 密钥:

bash 复制代码
export <PROVIDER>_API_KEY='your-api-key-here'  # 例如:OPENAI_API_KEY, ANTHROPIC_API_KEY

在初始化 OpenDeepSearch 时,指定你选择的模型:

python 复制代码
search_agent = OpenDeepSearchTool(model_name="provider/model-name")  # 例如:'openrouter/google/gemini-2.0-flash-001'

使用教程

以下是使用 OpenDeepSearch 的几种常见方式。

单独运行 OpenDeepSearch

以下代码展示了如何单独运行 OpenDeepSearch 工具:

python 复制代码
from opendeepsearch import OpenDeepSearchTool
import os

# 设置环境变量
os.environ["SERPER_API_KEY"] = "your-serper-api-key-here"
os.environ["OPENROUTER_API_KEY"] = "your-openrouter-api-key-here"
os.environ["JINA_API_KEY"] = "your-jina-api-key-here"

# 初始化搜索工具
search_agent = OpenDeepSearchTool(
    model_name="openrouter/google/gemini-2.0-flash-001", 
    reranker="jina"  # 也可以设置为 "infinity"
)

# 执行搜索
query = "地球上最快的陆地动物是什么?"
result = search_agent.search(query)
print(result)

解释

  1. 代码中使用了 OpenDeepSearchTool 并指定了模型(openrouter/google/gemini-2.0-flash-001)和重新排序工具(jina)。
  2. search 方法用于执行搜索,返回结果并打印。

使用 Gradio 演示界面

Gradio 提供了一个用户友好的界面,你可以通过以下命令运行:

bash 复制代码
python gradio_demo.py

运行后,你将看到一个本地 Web 界面,可以交互式地测试不同搜索查询和模式。

集成 SmolAgents 和 LiteLLM

以下是将 OpenDeepSearch 与 SmolAgents 和 LiteLLM 集成的示例代码:

python 复制代码
from opendeepsearch import OpenDeepSearchTool
from smolagents import CodeAgent, LiteLLMModel
import os

# 设置环境变量
os.environ["SERPER_API_KEY"] = "your-serper-api-key-here"
os.environ["OPENROUTER_API_KEY"] = "your-openrouter-api-key-here"
os.environ["JINA_API_KEY"] = "your-jina-api-key-here"

# 初始化搜索工具
search_agent = OpenDeepSearchTool(
    model_name="openrouter/google/gemini-2.0-flash-001", 
    reranker="jina"
)

# 初始化 LiteLLM 模型
model = LiteLLMModel(
    "openrouter/google/gemini-2.0-flash-001",
    temperature=0.2
)

# 初始化 CodeAgent
code_agent = CodeAgent(tools=[search_agent], model=model)

# 执行复杂搜索
query = "猎豹以最快速度跑完亚历山大三世桥的长度需要多久?"
result = code_agent.run(query)
print(result)

解释

  1. 代码中使用了 CodeAgent,它集成了 OpenDeepSearch 作为工具。
  2. run 方法接收复杂查询,并结合搜索工具和模型生成结果。

使用 ReAct 代理执行多工具操作

以下是结合搜索和数学工具的示例:

python 复制代码
from opendeepsearch import OpenDeepSearchTool 
from opendeepsearch.wolfram_tool import WolframAlphaTool
from opendeepsearch.prompts import REACT_PROMPT
from smolagents import LiteLLMModel, ToolCallingAgent, Tool 
import os

# 设置环境变量
os.environ["SERPER_API_KEY"] = "your-serper-api-key-here"
os.environ["JINA_API_KEY"] = "your-jina-api-key-here"
os.environ["WOLFRAM_ALPHA_APP_ID"] = "your-wolfram-alpha-app-id-here"
os.environ["FIREWORKS_API_KEY"] = "your-fireworks-api-key-here"

# 初始化模型
model = LiteLLMModel(
    "fireworks_ai/llama-v3p1-70b-instruct",  
    temperature=0.7
)

# 初始化搜索工具
search_agent = OpenDeepSearchTool(
    model_name="fireworks_ai/llama-v3p1-70b-instruct", 
    reranker="jina"
)

# 初始化 Wolfram Alpha 工具
wolfram_tool = WolframAlphaTool(app_id=os.environ["WOLFRAM_ALPHA_APP_ID"])

# 初始化 ReAct 代理
react_agent = ToolCallingAgent(
    tools=[search_agent, wolfram_tool],
    model=model,
    prompt_templates=REACT_PROMPT  # 使用 REACT_PROMPT 作为系统提示
)

# 执行复杂查询
query = "罗马斗兽场与威尼斯里亚托桥之间的距离是多少米?"
result = react_agent.run(query)
print(result)

解释

  1. 代码中使用了 ToolCallingAgent,它结合了搜索和 Wolfram Alpha 工具。
  2. run 方法能够处理复杂的多跳查询,并返回详细结果。

搜索模式

OpenDeepSearch 提供两种搜索模式,以适应不同的需求。

默认模式

  • 使用基于 SERP 的交互,快速返回结果。
  • 适合单跳查询,响应时间短。
  • 适用于基础信息检索。

专业模式

  • 包括全面的网页抓取和语义重新排序。
  • 适合多跳查询和复杂搜索需求。
  • 结果更详细,但处理时间稍长。

资源


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

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

相关推荐
我有医保我先冲25 分钟前
AI大模型与人工智能的深度融合:重构医药行业数字化转型的底层逻辑
人工智能·重构
pen-ai1 小时前
【NLP】15. NLP推理方法详解 --- 动态规划:序列标注,语法解析,共同指代
人工智能·自然语言处理·动态规划
Chaos_Wang_1 小时前
NLP高频面试题(二十九)——大模型解码常见参数解析
人工智能·自然语言处理
Acrelhuang1 小时前
8.3MW屋顶光伏+光储协同:上海汽车变速器低碳工厂的能源革命-安科瑞黄安南
大数据·数据库·人工智能·物联网·数据库开发
区块链蓝海1 小时前
沉浸式体验测评|AI Ville:我在Web3小镇“生活”了一周
人工智能·web3·生活
whaosoft-1431 小时前
51c自动驾驶~合集15
人工智能
花楸树1 小时前
前端搭建 MCP Client(Web版)+ Server + Agent 实践
前端·人工智能
用户87612829073741 小时前
前端ai对话框架semi-design-vue
前端·人工智能
量子位1 小时前
稚晖君刚挖来的 90 后机器人大牛:逆袭履历堪比爽文男主
人工智能·llm