AI学习——搜索工具集成

搜索工具集成

    • [一、为什么要给 AI 集成搜索工具?](#一、为什么要给 AI 集成搜索工具?)
    • 二、搜索工具集成的核心原理
    • [三、LangChain 主流搜索工具对比](#三、LangChain 主流搜索工具对比)
      • [1. Tavily(最推荐,AI 专用)](#1. Tavily(最推荐,AI 专用))
      • [2. DuckDuckGoSearch(免费无 Key)](#2. DuckDuckGoSearch(免费无 Key))
      • [3. SerpAPI / Google Search](#3. SerpAPI / Google Search)
      • [4. 其他(维基/arxiv/学术)](#4. 其他(维基/arxiv/学术))
    • [四、LangChain 集成搜索工具](#四、LangChain 集成搜索工具)
      • [1. 安装依赖](#1. 安装依赖)
      • [2. 配置 API Key(Tavily)](#2. 配置 API Key(Tavily))
      • [3. 完整代码(Agent + 搜索)](#3. 完整代码(Agent + 搜索))
      • 运行效果
    • 五、搜索工具集成的关键技术点
      • [1. 搜索意图识别(LLM 决定搜不搜)](#1. 搜索意图识别(LLM 决定搜不搜))
      • [2. 查询优化(LLM 改写关键词)](#2. 查询优化(LLM 改写关键词))
      • [3. 结果过滤与重排(减少噪声)](#3. 结果过滤与重排(减少噪声))
      • [4. 结果压缩(避免超长)](#4. 结果压缩(避免超长))
    • 六、常见集成架构(三种)
      • [1. 基础型:直接搜索 + 回答(最简单)](#1. 基础型:直接搜索 + 回答(最简单))
      • [2. Agent 型:自主决策搜索(最常用)](#2. Agent 型:自主决策搜索(最常用))
      • [3. RAG+搜索:私有库+联网(最强)](#3. RAG+搜索:私有库+联网(最强))
    • 七、避坑要点
    • 八、总结

一、为什么要给 AI 集成搜索工具?

大模型有三大天生短板:

  1. 知识截止(训练后就不知道新事)
  2. 幻觉严重(喜欢编造事实)
  3. 无法获取实时/动态信息(天气、新闻、股价、最新论文)

搜索工具就是用来补全这些短板。

一句话:

LLM 负责思考,搜索工具负责找真实、实时、权威信息。


二、搜索工具集成的核心原理

流程非常简单:

  1. 用户提问
  2. LLM 判断:需要联网搜索吗?
  3. 需要 → 生成搜索关键词 → 调用搜索工具
  4. 工具返回网页摘要/结构化结果
  5. LLM 整理结果、回答用户

本质:LLM 决策 + 工具执行 + 结果融合


三、LangChain 主流搜索工具对比

LangChain 内置多种,新手优先选 TavilyDuckDuckGo

1. Tavily(最推荐,AI 专用)

  • 专为 Agent 设计,返回干净、结构化、低噪声结果
  • 可直接返回摘要、原文、相关链接
  • 支持新闻/学术/通用搜索
  • 有免费额度,开发首选

2. DuckDuckGoSearch(免费无 Key)

  • 完全免费,不需要 API Key
  • 适合学习、原型、非商用
  • 结果略杂,噪声较多
  • 结果最全,适合企业
  • 需付费,配置复杂

4. 其他(维基/arxiv/学术)

  • WikipediaQueryRun:查百科
  • ArxivQueryRun:查论文

四、LangChain 集成搜索工具

1. 安装依赖

bash 复制代码
pip install langchain langchain-community tavily-python

2. 配置 API Key(Tavily)

注册 https://tavily.com,拿到 Key:

bash 复制代码
export TAVILY_API_KEY="你的Key"

3. 完整代码(Agent + 搜索)

python 复制代码
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from langchain_community.tools.tavily_search import TavilySearchResults

# 1. 初始化搜索工具
search_tool = TavilySearchResults(
    max_results=5,        # 返回5条
    include_answer=True   # 直接返回AI摘要
)

# 2. 初始化 LLM
llm = ChatOpenAI(
    model="gpt-3.5-turbo",
    temperature=0.1
)

# 3. 创建 Agent(能自己决定何时搜索)
agent = initialize_agent(
    tools=[search_tool],
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True  # 显示思考过程
)

# 4. 测试:需要实时信息
response = agent.invoke({"input": "2026年5月最新AI大模型有哪些?"})
print("\n最终回答:", response["output"])

运行效果

复制代码
思考:用户问最新大模型,我的知识不够,需要搜索
行动:TavilySearchResults
观察:返回2026年GPT-5、GLM-5、Qwen-3等信息
思考:信息足够,整理回答
最终回答:2026年5月最新AI大模型包括......

五、搜索工具集成的关键技术点

1. 搜索意图识别(LLM 决定搜不搜)

Prompt 里隐含规则:

  • 实时问题(时间、新闻、股价)→ 必搜
  • 专业/最新知识 → 必搜
  • 常识/历史 → 不搜

2. 查询优化(LLM 改写关键词)

比如用户问:

"Java 最新框架 2026"

LLM 自动扩展为:

"2026年Java主流新框架、最新发布"

→ 召回更准

3. 结果过滤与重排(减少噪声)

  • 去重(同 URL 只留一条)
  • 过滤低质/广告
  • 优先权威来源(官网、论文、权威媒体)

4. 结果压缩(避免超长)

用 LLM 把长摘要浓缩成 200--300 字,减少 Token 消耗


六、常见集成架构(三种)

1. 基础型:直接搜索 + 回答(最简单)

用户 → LLM → 搜索 → LLM 整理 → 回答

2. Agent 型:自主决策搜索(最常用)

用户 → Agent(LLM)→ 判断是否搜索 → 搜索 → 整理 → 回答

3. RAG+搜索:私有库+联网(最强)

用户 → 先查本地知识库(Chroma)→ 不足 → 联网搜索 → 融合回答


七、避坑要点

  1. 不要每次都搜:浪费钱、慢,只搜实时/未知问题
  2. 不要搜太多结果:3--5 条足够,多了噪声大
  3. 必须过滤广告/低质站
  4. 结果必须精简,否则上下文爆炸
  5. 用 temperature=0.1:搜索后回答要严谨

八、总结

搜索工具 = 给 AI 装上网眼,实时、真实、权威;LangChain + Tavily 是最简工业级方案。


相关推荐
蝎子莱莱爱打怪17 小时前
AI Agent 相关知识扫盲:16 个概念+11张图+38个开源项目推荐
人工智能·github·agent
甲维斯17 小时前
Fable+Codex 《坦克大战3D》双端发布了!
人工智能·ai编程·游戏开发
掘金一周18 小时前
企业中要做智能体,最佳的方案是什么? | 沸点周刊 6.18
前端·人工智能·ai编程
雪隐19 小时前
个人电脑玩AI-04让5060 Ti给你打工——本地claude code编程助理
人工智能·后端
洛宇19 小时前
再谈 AI 时代,程序员的失眠问题。
人工智能
百度Geek说19 小时前
harness-pilot 给代码库加一套"规则说明书"和"自动检查器"
人工智能
程序员cxuan19 小时前
分享一下我最近常用的 10 个 Codex 小技巧。
人工智能·后端·程序员
用户3379225456819 小时前
基于 OKF + RAG 构建 Text2SQL 语义层:让 LLM 真正理解你的数据库
人工智能
把所有砖敲烂19 小时前
MiniMax M3 深度实测:单卡部署、代码生成与性能全解析
人工智能