Hanah

Hanah

wow agent day07 搜索引擎Agent

Reference:Dtawhale wow agent day07

申请搜索引擎 API#

我们使用博查 API;
主要特点

  • 内容合规且高质量:数据来源和搜索结果符合国内安全规范,数据不出海,满足 B 端企业用户应用场景,能为 AI 应用提供干净、准确、高质量的搜索结果。
  • 多模态混合搜索:支持关键字 + 向量混合搜索,使用 bocha-semantic-reranker 进行二次排序,显著提升搜索结果与问题的相关性,搜索结果包含网页、图片、视频、抖音视频等多模态内容。
  • 多模型 AI 搜索:已经接入了阿里通义千问、字节云雀大模型、月之暗面 Kimi 等国产顶尖 AI 大模型,用户可以根据具体需求选择不同的模型进行搜索。
  • 智能体搜索:引入 AI 智能体,提供更加丰富和深入的答案,目前处于内测阶段。如餐厅搜索、酒店搜索、景点搜索等多种生活类、商业类、知识类智能体。

搜索引擎 Agent#

自定义 llm 和读入 API 之后;

from llama_index.core.tools import FunctionTool
import requests
# 需要先把BOCHA_API_KEY填写到.env文件中去。
BOCHA_API_KEY = os.getenv('BOCHA_API_KEY')

# 定义Bocha Web Search工具
def bocha_web_search_tool(query: str, count: int = 8) -> str:
    """
    使用Bocha Web Search API进行联网搜索,返回搜索结果的字符串。
    
    参数:
    - query: 搜索关键词
    - count: 返回的搜索结果数量

    返回:
    - 搜索结果的字符串形式
    """
    url = 'https://api.bochaai.com/v1/web-search'
    headers = {
        'Authorization': f'Bearer {BOCHA_API_KEY}',  # 请替换为你的API密钥
        'Content-Type': 'application/json'
    }
    data = {
        "query": query,
        "freshness": "noLimit", # 搜索的时间范围,例如 "oneDay", "oneWeek", "oneMonth", "oneYear", "noLimit"
        "summary": True, # 是否返回长文本摘要总结
        "count": count
    }

    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        # 返回给大模型的格式化的搜索结果文本
        # 可以自己对博查的搜索结果进行自定义处理
        return str(response.json())
    else:
        raise Exception(f"API请求失败,状态码: {response.status_code}, 错误信息: {response.text}")

search_tool = FunctionTool.from_defaults(fn=bocha_web_search_tool)
from llama_index.core.agent import ReActAgent
agent = ReActAgent.from_tools([search_tool], llm=llm, verbose=True)

这段代码主要是定义了一个名为 bocha_web_search_tool 的函数,用于通过 Bocha Web Search API 进行网络搜索,并将其集成到一个代理(agent)中。

测试#

# 测试用例
query = "阿里巴巴2024年的ESG报告主要讲了哪些内容?"
response = agent.chat(f"请帮我搜索以下内容:{query}")
print(response)
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。