为什么需要国内可用的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)
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |