AI Agent SerpApi

2025-12-23

SerpAPI 简介及使用

最近读 Datawhale 社区的 hello-agents«从零开始构建智能体»,发现需要使用 serper api, 让 AI Agent 可以搜索网页,在此记录流程及代码.

这里不赘述 AI Agent 是什么.推荐看 Datawhale 社区的 «Hello Agent»从零开始构建智能体

讲讲 Google 的 Serper API: 也就是 SerpAPI.一个非常使用的工具. 注册成功之后,可以获取到免费额度

代码使用 Python 版本建议 >=3.10.0 需要用到的 Python 库

pip install python-dotenv google-search-results

google-search-results. 封装好的 Python 包. 直接使用获取 Google 搜索结果, 而不需要再对网页进行解析

  1. API 简介 SerpApi 是一个专门针对 Google 搜索结果页面(SERP)的 API 服务。通过这个 API,我们可以获取到 Google 搜索的各种数据,包括但不限于搜索结果、位置、时间等信息。

  2. 核心功能
    • 搜索结果获取:获取 Google 搜索的有机结果。
    • 结构化数据:提供搜索结果的结构化数据,方便解析和分析。
    • 多语言支持:支持多种语言的搜索结果获取。
  3. 技术优势
    • 实时性:API 请求会即时运行,无需等待,获取最新的搜索结果。
    • 全球定位:可以指定地理位置获取特定地区的搜索结果。
    • 多设备支持:模拟不同设备的搜索结果,如桌面、平板、手机等。
  4. 数据格式

    • 返回的数据通常以 JSON 格式提供,这种格式易于解析,非常适合自动化测试和数据分析。
  5. 测试用例设计要点
    • 参数有效性:测试不同的查询参数组合,确保 API 能够正确处理。
    • 结果验证:验证返回的搜索结果是否与预期一致。
    • 性能评估:测试 API 的响应时间和稳定性。
    • 异常测试:模拟网络延迟、错误的 API 密钥等异常情况。
  6. 示例代码.
  • 6.1 创建.env 文件
# .env file
SERPAPI_API_KEY=""
  • 6.2 编写 search 工具类, 用于与 SerpAPI 交互,搜索 Google
from serpapi import SerpApiClient
import os
from dotenv import load_dotenv

load_dotenv()

def search(query: str) -> str:
    """
    一个基于SerApi的实战网页搜索工具
    他会智能地解析搜索结果,优先返回直接答案或指示图谱信息
    """
    print(f"🔍 正在执行 [SerApi] 网页搜索: {query}")
    try:
        api_key = os.getenv("SERPAPI_API_KEY")
        if not api_key:
            return "错误: SERPAPI_API_KEY 未在 .env文件中配置."

        params = {
            "engine": "google",
            "q": query,
            "api_key": api_key,
            "gl": "cn", # 国家代码
            "hl": "zh-cn", # 语言代码
        }

        client = SerpApiClient(params)
        results = client.get_dict()

        if "answer_box_list" in results:
            return "\n".join(results["answer_box_list"])
        if "answer_box" in results and "answer" in results["answer_box"]:
            return results["answer_box"]["answer"]
        if "knowledge_graph" in results and "description" in results["knowledge_graph"]:
            return results["knowledge_graph"]["description"]
        if "organic_results" in results and results["organic_results"]:
            snippets = [
                f"[{i+1}] {res.get('title', '')}\n{res.get('snippet', '')}"
                for i, res in enumerate(results["organic_results"])
            ]
            return "\n\n".join(snippets)

        return f"对不起, 没有找到关于 '{query}'的信息."
    except Exception as e:
        return f"搜索时发生错误: {e}"

  • 6.3 入口文件 main.py
from ToolExecutor import ToolExecutor
from Search import search

if __name__ == '__main__':
    toolExceutor = ToolExecutor()

    search_description = "一个网页搜索引擎.当你需要回答关于时事, 事实以及在你的知识库中找不到的信息时,应使用此工具."

    toolExceutor.registerTool("Search", search_description, search)

    print("\n --- 可用的工具 ---")
    print(toolExceutor.getAvailableTools())

    print("\n--- 执行 Action: Search['英伟达最新的GPU型号是什么'] ---")
    tool_name = "Search"
    tool_input = "英伟达最新的GPU型号是什么"

    tool_function = toolExceutor.getTool(tool_name)
    if tool_function:
        observation = tool_function(tool_input)
        print("--- 观察 (Observation) ---")
        print(observation)
    else:
        print(f"错误:未找到名为 '{tool_name}' 的工具。")
  • 6.4 执行结果
工具 'Search' 已注册.

 --- 可用的工具 ---
- Search: 一个网页搜索引擎.当你需要回答关于时事, 事实以及在你的知识库中找不到的信息时,应使用此工具.

--- 执行 Action: Search['英伟达最新的GPU型号是什么'] ---
🔍 正在执行 [SerApi] 网页搜索: 英伟达最新的GPU型号是什么
--- 观察 (Observation) ---
[1] 比较GeForce 系列最新一代显卡和前代显卡
比较最新一代RTX 30 系列显卡和前代的RTX 20 系列、GTX 10 和900 系列显卡。查看规格、功能、技术支持等内容。

[2] GeForce RTX 50 系列显卡
GeForce RTX™ 50 系列GPU 搭载NVIDIA Blackwell 架构,为游戏玩家和创作者带来全新玩法。RTX 50 系列具备强大的AI 算力,带来升级体验和更逼真的画面。

[3] 一文彻底读懂:英伟达GPU分类、架构演进和参数解析
Quadro系列是英伟达专业级GPU产品线,针对商业和专业应用领域进行了优化。常见的产品型号如NVIDIA RTX A6000、A5000等。 Quadro GPU具备强大的计算能力、大 ...

[4] GeForce 显卡| NVIDIA
探索NVIDIA GeForce 显卡。RTX 50 系列和RTX 40 系列。

[5] 英伟达算力GPU主要型号及参数
1. A100:数据中心AI计算的奠基石A100是英伟达2020年发布的旗舰级数据中心GPU,基于Ampere架构,主要特性包括:架构:AmpereCUDA核心数:6912Tensor核心:432 ...

[6] H100 GPU
利用NVIDIA H100 GPU,提供所有工作負載前所未有的效能、可擴充性和安全性。H100 採用以NVIDIA Hopper™ 架構為基礎的突破性創新,可加速大型語言模型(LLM) 速度,比前一代 ...

[7] 一文了解英伟达(NVIDIA)所有显卡芯片
nvidia显卡型号大全 · 热门推荐 世上最全NVDIA GPU参数列表: H100,H200、H20、A100, A800,V100,3090,4090, 5090等性能参数 · NVIDIA显示芯片列表 · NVIDIA ...

[8] 英伟达全新中国特供版GPU要来了?据传售价将大幅低于H20
据消息人士称,这款新芯片将基于英伟达的RTX Pro 6000D,并将使用传统的GDDR7内存,而非更先进的高带宽内存。此外,其不会使用台积电先进的CoWoS封装技术。

[9] GeForce RTX 5060 系列显卡
搭载NVIDIA Blackwell 架构的NVIDIA® GeForce RTX™ 5060 Ti 和RTX 5060 借助AI 性能,让你在最新的游戏和应用中获得新玩法,打开新局面。DLSS 4 技术令性能倍增,光线追踪 ...

[10] 一文了解英伟达(NVIDIA)所有显卡芯片:从游戏到AI
热门型号:RTX 3090、3080、3070、3060 Ti、3060. 用户评价:被誉为“史上最有性价比”的一代,仍是AI入门者的GPU首选。 ✓ GeForce GTX 16/10/9 系列.

以上代码均来自于: hello-agents«从零开始构建智能体»