在LangChain中使用博查搜索API實(shí)現(xiàn)智能搜索 原創(chuàng)
本文將深入探討如何在LangChain框架中集成博查搜索API(Bocha Web Search API),以實(shí)現(xiàn)智能化的搜索功能。通過詳細(xì)的設(shè)置步驟、實(shí)用的代碼示例以及全面的解決方案,幫助開發(fā)者輕松獲取并利用實(shí)時搜索引擎信息,提升應(yīng)用的智能化水平。
引言
在當(dāng)今AI應(yīng)用迅猛發(fā)展的時代,搜索引擎成為眾多應(yīng)用程序和網(wǎng)站的重要組成部分。LangChain作為一個強(qiáng)大的語言模型集成框架,能夠通過與多種API接口的結(jié)合,顯著提升應(yīng)用的智能化和互動性。而博查搜索API(Bocha Web Search API)作為博查公司提供的企業(yè)級互聯(lián)網(wǎng)網(wǎng)頁搜索接口,賦予開發(fā)者通過編程方式訪問博查搜索引擎的豐富搜索結(jié)果和相關(guān)信息的能力。
博查搜索API支持近億級網(wǎng)頁內(nèi)容的搜索,涵蓋網(wǎng)頁、圖片、新聞、天氣、萬年歷、火車、星座屬相、貴金屬、匯率、油價、手機(jī)、汽車等多種內(nèi)容源。這使其不僅適用于各類AI應(yīng)用和檢索增強(qiáng)生成(RAG)應(yīng)用,還能為AI智能體的開發(fā)提供堅(jiān)實(shí)的數(shù)據(jù)支持。此外,博查搜索API在數(shù)據(jù)安全、成本控制和內(nèi)容合規(guī)性方面表現(xiàn)出色,解決了開發(fā)者在集成搜索功能時常見的諸多挑戰(zhàn)。
實(shí)現(xiàn)步驟
為了在LangChain中成功集成博查搜索API,實(shí)現(xiàn)智能搜索功能,請按照以下步驟操作:
1. 獲取API Key
前往 博查AI開放平臺(https://open.bochaai.com) 注冊并登錄您的開發(fā)者賬戶,在控制臺導(dǎo)航到“API KEY管理”頁面,創(chuàng)建一個新的應(yīng)用以獲取您的專屬API Key。請妥善保管此密鑰,因?yàn)樗鼘⒂糜诤罄m(xù)的API調(diào)用授權(quán)。
2. 定義博查搜索API為 LangChain 的 Tool
使用以下示例代碼,將博查搜索API集成到LangChain中,定義為一個自定義的Tool。這將允許LangChain在處理請求時調(diào)用博查搜索API,實(shí)現(xiàn)實(shí)時的信息檢索。
示例代碼
詳細(xì)代碼:https://aq6ky2b8nql.feishu.cn/wiki/XXCsw2Dyjiny8OkJl0KcWjyOnDb
import requests
from langchain.agents import initialize_agent, Tool, AgentType
from langchain_openai import ChatOpenAI
from langchain.tools import tool
OPENAI = ""
BOCHA = ""
# 定義Bocha Web Search工具
@tool
def bocha_websearch_tool(query: str, count: int = 10) -> str:
"""
使用Bocha Web Search API 進(jìn)行網(wǎng)頁搜索。
參數(shù):
- query: 搜索關(guān)鍵詞
- count: 返回的搜索結(jié)果數(shù)量
返回:
- 搜索結(jié)果的詳細(xì)信息,包括網(wǎng)頁標(biāo)題、網(wǎng)頁URL、網(wǎng)頁摘要、網(wǎng)站名稱、網(wǎng)站Icon、網(wǎng)頁發(fā)布時間等。
"""
url = 'https://api.bochaai.com/v1/web-search'
headers = {
'Authorization': f'Bearer {BOCHA}', # 請?zhí)鎿Q為你的API密鑰
'Content-Type': 'application/json'
}
data = {
"query": query,
"freshness": "noLimit", # 搜索的時間范圍,例如 "oneDay", "oneWeek", "oneMonth", "oneYear", "noLimit"
"summary": True, # 是否返回長文本摘要總結(jié)
"count": count
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
json_response = response.json()
try:
if json_response["code"] != 200 or not json_response["data"]:
return f"搜索API請求失敗,原因是: {response.msg or '未知錯誤'}"
webpages = json_response["data"]["webPages"]["value"]
if not webpages:
return "未找到相關(guān)結(jié)果。"
formatted_results = ""
for idx, page in enumerate(webpages, start=1):
formatted_results += (
f"引用: {idx}\n"
f"標(biāo)題: {page['name']}\n"
f"URL: {page['url']}\n"
f"摘要: {page['summary']}\n"
f"網(wǎng)站名稱: {page['siteName']}\n"
f"網(wǎng)站圖標(biāo): {page['siteIcon']}\n"
f"發(fā)布時間: {page['dateLastCrawled']}\n\n"
)
return formatted_results.strip()
except Exception as e:
return f"搜索API請求失敗,原因是:搜索結(jié)果解析失敗 {str(e)}"
else:
return f"搜索API請求失敗,狀態(tài)碼: {response.status_code}, 錯誤信息: {response.text}"
# 創(chuàng)建LangChain工具
bocha_tool = Tool(
name="BochaWebSearch",
func=bocha_websearch_tool,
description="使用Bocha Web Search API 進(jìn)行搜索互聯(lián)網(wǎng)網(wǎng)頁,輸入應(yīng)為搜索查詢字符串,輸出將返回搜索結(jié)果的詳細(xì)信息,包括網(wǎng)頁標(biāo)題、網(wǎng)頁URL、網(wǎng)頁摘要、網(wǎng)頁內(nèi)容、網(wǎng)站名稱、網(wǎng)站Icon、網(wǎng)頁發(fā)布時間等。"
)
# 請改成您自己的語言模型
# llm =
# 初始化代理,包含您的自定義工具
agent = initialize_agent(
tools=[bocha_tool],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# 使用代理進(jìn)行查詢
user_question = "請告訴我阿里巴巴2024年ESG報(bào)告中的亮點(diǎn)"
response = agent.run(user_question)
print(response)
響應(yīng)結(jié)果
阿里巴巴2024年ESG報(bào)告的亮點(diǎn)包括:1) 自身運(yùn)營減排量達(dá)到232萬噸,同比提升63.5%;2) 清潔電力使用比例提升至39%;3) 價值鏈排放強(qiáng)度下降7%至每百萬元營收8.1噸;4) 阿里云數(shù)據(jù)中心電力使用效率保持亞洲領(lǐng)先,清潔電力使用比例達(dá)到56%;5) 通過“數(shù)智循環(huán)物流”方案,菜鳥網(wǎng)絡(luò)在物流環(huán)節(jié)減排45.8萬噸;6) 平臺生態(tài)減排量達(dá)到3333.8萬噸,同比增長45.5%。此外,阿里巴巴還在醫(yī)療、助老、助殘等領(lǐng)域應(yīng)用AI技術(shù),推動社會責(zé)任和可持續(xù)發(fā)展。
完整思考鏈
> Entering new AgentExecutor chain...
我需要查找阿里巴巴2024年ESG報(bào)告的相關(guān)信息,以了解其中的亮點(diǎn)。
Action: BochaWebSearch
Action Input: "阿里巴巴 2024 ESG 報(bào)告 亮點(diǎn)"
Observation:
此處省略10條詳細(xì)引用信息···
> Finished chain.
阿里巴巴2024年ESG報(bào)告的亮點(diǎn)包括:1) 自身運(yùn)營減排量達(dá)到232萬噸,同比提升63.5%;2) 清潔電力使用比例提升至39%;3) 價值鏈排放強(qiáng)度下降7%至每百萬元營收8.1噸;4) 阿里云數(shù)據(jù)中心電力使用效率保持亞洲領(lǐng)先,清潔電力使用比例達(dá)到56%;5) 通過“數(shù)智循環(huán)物流”方案,菜鳥網(wǎng)絡(luò)在物流環(huán)節(jié)減排45.8萬噸;6) 平臺生態(tài)減排量達(dá)到3333.8萬噸,同比增長45.5%。此外,阿里巴巴還在醫(yī)療、助老、助殘等領(lǐng)域應(yīng)用AI技術(shù),推動社會責(zé)任和可持續(xù)發(fā)展。
