在LangChain中使用博查搜索API实现智能搜索 原创

发布于 2025-1-4 13:48
浏览
0收藏

本文将深入探讨如何在LangChain框架中集成博查搜索API(Bocha Web Search API),以实现智能化的搜索功能。通过详细的设置步骤、实用的代码示例以及全面的解决方案,帮助开发者轻松获取并利用实时搜索引擎信息,提升应用的智能化水平。

引言

在当今AI应用迅猛发展的时代,搜索引擎成为众多应用程序和网站的重要组成部分。LangChain作为一个强大的语言模型集成框架,能够通过与多种API接口的结合,显著提升应用的智能化和互动性。而博查搜索API(Bocha Web Search API)作为博查公司提供的企业级互联网网页搜索接口,赋予开发者通过编程方式访问博查搜索引擎的丰富搜索结果和相关信息的能力。

博查搜索API支持近亿级网页内容的搜索,涵盖网页、图片、新闻、天气、万年历、火车、星座属相、贵金属、汇率、油价、手机、汽车等多种内容源。这使其不仅适用于各类AI应用和检索增强生成(RAG)应用,还能为AI智能体的开发提供坚实的数据支持。此外,博查搜索API在数据安全、成本控制和内容合规性方面表现出色,解决了开发者在集成搜索功能时常见的诸多挑战。

在LangChain中使用博查搜索API实现智能搜索-AI.x社区

实现步骤

为了在LangChain中成功集成博查搜索API,实现智能搜索功能,请按照以下步骤操作:

1. 获取API Key

前往 博查AI开放平台(https://open.bochaai.com) 注册并登录您的开发者账户,在控制台导航到“API KEY管理”页面,创建一个新的应用以获取您的专属API Key。请妥善保管此密钥,因为它将用于后续的API调用授权。

2. 定义博查搜索API为 LangChain 的 Tool

使用以下示例代码,将博查搜索API集成到LangChain中,定义为一个自定义的Tool。这将允许LangChain在处理请求时调用博查搜索API,实现实时的信息检索。

示例代码

详细代码: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 进行网页搜索。

    参数:
    - query: 搜索关键词
    - count: 返回的搜索结果数量

    返回:
    - 搜索结果的详细信息,包括网页标题、网页URL、网页摘要、网站名称、网站Icon、网页发布时间等。
    """
    
    url = 'https://api.bochaai.com/v1/web-search'
    headers = {
        'Authorization': f'Bearer {BOCHA}',  # 请替换为你的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:
        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 "未找到相关结果。"
            formatted_results = ""
            for idx, page in enumerate(webpages, start=1):
                formatted_results += (
                    f"引用: {idx}\n"
                    f"标题: {page['name']}\n"
                    f"URL: {page['url']}\n"
                    f"摘要: {page['summary']}\n"
                    f"网站名称: {page['siteName']}\n"
                    f"网站图标: {page['siteIcon']}\n"
                    f"发布时间: {page['dateLastCrawled']}\n\n"
                )
            return formatted_results.strip()
        except Exception as e:
            return f"搜索API请求失败,原因是:搜索结果解析失败 {str(e)}"
    else:
        return f"搜索API请求失败,状态码: {response.status_code}, 错误信息: {response.text}"

# 创建LangChain工具
bocha_tool = Tool(
    name="BochaWebSearch",
    func=bocha_websearch_tool,
    description="使用Bocha Web Search API 进行搜索互联网网页,输入应为搜索查询字符串,输出将返回搜索结果的详细信息,包括网页标题、网页URL、网页摘要、网页内容、网站名称、网站Icon、网页发布时间等。"
)

# 请改成您自己的语言模型
# llm = 

# 初始化代理,包含您的自定义工具
agent = initialize_agent(
    tools=[bocha_tool],
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# 使用代理进行查询
user_question = "请告诉我阿里巴巴2024年ESG报告中的亮点"
response = agent.run(user_question)
print(response)

响应结果

阿里巴巴2024年ESG报告的亮点包括:1) 自身运营减排量达到232万吨,同比提升63.5%;2) 清洁电力使用比例提升至39%;3) 价值链排放强度下降7%至每百万元营收8.1吨;4) 阿里云数据中心电力使用效率保持亚洲领先,清洁电力使用比例达到56%;5) 通过“数智循环物流”方案,菜鸟网络在物流环节减排45.8万吨;6) 平台生态减排量达到3333.8万吨,同比增长45.5%。此外,阿里巴巴还在医疗、助老、助残等领域应用AI技术,推动社会责任和可持续发展。

完整思考链

> Entering new AgentExecutor chain...
我需要查找阿里巴巴2024年ESG报告的相关信息,以了解其中的亮点。  
Action: BochaWebSearch  
Action Input: "阿里巴巴 2024 ESG 报告 亮点"  
Observation:

此处省略10条详细引用信息···

> Finished chain.
阿里巴巴2024年ESG报告的亮点包括:1) 自身运营减排量达到232万吨,同比提升63.5%;2) 清洁电力使用比例提升至39%;3) 价值链排放强度下降7%至每百万元营收8.1吨;4) 阿里云数据中心电力使用效率保持亚洲领先,清洁电力使用比例达到56%;5) 通过“数智循环物流”方案,菜鸟网络在物流环节减排45.8万吨;6) 平台生态减排量达到3333.8万吨,同比增长45.5%。此外,阿里巴巴还在医疗、助老、助残等领域应用AI技术,推动社会责任和可持续发展。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-1-4 13:52:55修改
收藏
回复
举报
回复
相关推荐