Bocha Web Search API:国内可用的SerpAPI,可以平替Bing Web Search API,Google Web Search API

为什么需要国内可用的Web Search API?

在AI对话、AI搜索、AI智能体等AI应用的开发过程中,均需要引入联网搜索API来提供实时信息来增强检索并且降低大模型的幻觉。国内开展业务需要使用内容合规、高质量的搜索API。

但 Bing Search API、Google Search API 这类 SerpAPI 均是海外服务,一方面会有国内用户数据出海的问题,另一方面搜索结果中的内容没有进行安全过滤,所以国内业务是不能使用这些海外的搜索服务的。

国内博查,为AI应用提供内容合规、价格实惠、更适合AI使用的搜索服务,数据来源和搜索结果符合国内安全规范,数据不出海,满足国内企业用户和开发者的应用场景。

博查 Web Search API 搜索结果效果示例

在这里插入图片描述

详细介绍可以看我上一篇文章:使用博查Web Search API获取搜索引擎的网页链接和文本摘要,给AI/RAG应用增加联网搜索功能

为什么说是适合AI使用的搜索服务?

传统搜索引擎的Search API 或 SerpAPI 只提供网页的snippet,他们大多少于50字,并不适合AI来理解原文内容进行使用。因此针对AI或LLM使用的搜索引擎应该能够返回与用户搜索问题最相关的较长文本。

使用方式

可以通过博查官网API、大模型工具调用等方式来使用,非常便捷。
前往 博查AI开放平台 https://open.bochaai.com,微信扫码登陆后,在首页点击右上角的 “API KEY管理”,创建API KEY,复制出来即可。

官方API调用示例代码

curl
curl --location 'https://api.bochaai.com/v1/web-search' \
--header 'Authorization: Bearer YOUR-API-KEY' \
--header 'Content-Type: application/json' \
--data '{
    "query": "东部战区联合利剑-2024B演习",
    "freshness": "oneDay",
    "summary": true,
    "count": 8
}'
Python
import requests
import json

url = "https://api.bochaai.com/v1/web-search"

payload = json.dumps({
  "query": "什么是Multi Agent架构",
  "freshness": "oneYear",
  "summary": True,
  "count": 8
})
headers = {
  'Authorization': 'Bearer YOUR-API-KEY',
  'Content-Type': 'application/json',
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.json())

大模型 Function Call 调用示例代码

import requests
from langchain.agents import initialize_agent, Tool, AgentType
from langchain_openai import ChatOpenAI
from langchain.tools import tool

OPENAI_API_KEY = "YOUR OPENAI API KEY"
BOCHA_API_KEY = "YOUR BOCHA API KEY"

# 定义Bocha Web Search工具
@tool
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}")


# 创建LangChain工具
bocha_tool = Tool(
    name="BochaWebSearch",
    func=bocha_web_search_tool,
    description="使用Bocha Web Search API进行网络搜索"
)

# 初始化OpenAI语言模型
llm = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0,
    openai_api_key=OPENAI_API_KEY
)

# 初始化代理,设置Agent自动决定何时调用工具
tools = [bocha_tool]  # 包含你定义的Bocha Web Search工具

agent = initialize_agent(
    tools=tools,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    llm=llm,
    verbose=False
)

# 测试用例
query = "阿里巴巴2024年的ESG报告主要讲了哪些内容?"
response = agent.run(f"请帮我搜索以下内容:{query}")
print(response)
### 关于Web搜索API的集成与使用 对于Web搜索API的集成和使用,通常涉及选择合适的API提供商、了解其文档和支持的功能集以及遵循最佳实践来实现高效可靠的调用。 #### 选择API提供商 市场上存在多个提供Web搜索能力的服务商,如Google Custom Search JSON APIBing Web Search API等。这些服务商提供了不同层次的支持和服务条款,开发者可以根据项目需求挑选最适合自己应用场景的产品[^1]。 #### 获取API密钥 大多数情况下,在开始之前需要注册账号并获取API密钥。此过程一般通过访问官方站点完成账户创建后获得。确保妥善保管好自己的凭证信息,防止泄露给未经授权方。 #### 查阅官方文档 每家供应商都会为其产品准备详尽的技术文档,里面包含了如何发起请求、解析响应数据等内容。仔细阅读这部分资料有助于快速上手开发工作,并能充分利用所提供的各项特性优化查询逻辑。 #### 编写代码示例 下面给出一段利用Python语言对接某假定搜索引擎API的例子: ```python import requests def perform_search(query, api_key): url = "https://api.example.com/search" params = { 'q': query, 'key': api_key } response = requests.get(url, params=params) results = response.json() return results['items'] ``` 这段简单的脚本展示了怎样发送GET请求到指定端点,并处理返回的结果列表。实际应用中可能还需要考虑错误捕捉机制、分页加载等功能扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值