Hanah

Hanah

wow agent day07 搜尋引擎Agent

參考: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)
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。