前言:全球与本地搜索的双剑合璧
在开发智能应用时,搜索引擎API是获取实时信息的核心工具。但面对不同语言和区域的需求,如何快速上手主流API?本文将以Bing API(英文搜索)和博查API(中文搜索)为例,通过对比教学,带你30分钟内掌握两大平台的接入技巧!
一、Bing API快速入门(英文搜索示例)
1.1 注册与密钥获取
- 访问[Microsoft Azure门户](https://portal.azure.com),登录微软账号。
- 创建Cognitive Services资源:
- 在搜索栏输入“Cognitive Services” → 点击“创建”
- 选择订阅和资源组 → 设置资源名称(如`BingSearchDemo`)
- 定价层选择“免费F0”(每月3000次免费调用)
- 获取密钥:
- 创建完成后,进入资源管理页面 → 选择“密钥与终结点”
- 复制`Key1`和`Endpoint`(格式为`https://xxx.cognitiveservices.azure.com`)
1.2 基础环境配置
```bash
# 安装Python请求库
pip install requests
```
1.3 英文搜索代码实战
python
import requests
# 配置参数
API_KEY = "你的Azure密钥"
ENDPOINT = "你的终结点地址"
SEARCH_TERM = "latest AI advancements 2024"
def bing_search(query: str):
headers = {"Ocp-Apim-Subscription-Key": API_KEY}
params = {
"q": query,
"mkt": "en-US", # 指定英文市场
"count": 5, # 返回5条结果
"responseFilter": "WebPages"
}
response = requests.get(f"{ENDPOINT}/v7.0/search", headers=headers, params=params)
return response.json()["webPages"]["value"]
# 执行搜索
results = bing_search(SEARCH_TERM)
for item in results:
print(f"标题:{item['name']}\n链接:{item['url']}\n摘要:{item['snippet']}\n")
输出示例:
标题:MIT Releases 2024 AI Research Report
链接:https://news.mit.edu/2024/ai-advancements
摘要:Breakthroughs in multimodal learning and energy-efficient AI architectures...
1.4 关键参数解析
参数 | 作用说明 |
mkt | 指定搜索市场(`en-US`为美区英文) |
responseFilter | 过滤结果类型(WebPages/Images等) |
safeSearch | 内容安全级别(Strict/Moderate) |
二、博查API快速入门(中文搜索示例)
2.1 注册与密钥获取
- 访问[博查AI开放平台](https://open.bochaai.com),注册账号。
- 进入API Key管理 → 点击“创建密钥”(格式为`sk-xxxxxx`)。
2.2 基础环境配置
bash
# 安装必要库(与Bing相同)
pip install requests
2.3 中文搜索代码实战
python
import requests
# 配置参数
API_KEY = "你的博查密钥"
SEARCH_TERM = "2024年人工智能最新进展"
def bocha_search(query: str):
url = "https://api.bochaai.com/v1/web-search"
headers = {"Authorization": f"Bearer {API_KEY}"}
payload = {
"query": query,
"count": 5, # 返回5条结果
"summary": True # 启用长摘要
}
response = requests.post(url, headers=headers, json=payload)
return response.json()["data"]["webPages"]["value"]
# 执行搜索
results = bocha_search(SEARCH_TERM)
for item in results:
print(f"标题:{item['name']}\n链接:{item['url']}\n摘要:{item['summary']}\n")
输出示例:
标题:《中国人工智能技术发展白皮书(2024)》正式发布
链接:http://www.most.gov.cn/xxx
摘要:工信部数据显示,2024年我国AI核心产业规模突破5000亿元,大模型技术在医疗、制造领域取得突破性应用...
2.4 关键参数解析
参数 | 作用说明 |
Query | 你提问的内容 |
Freshness | 时间过滤(建议“noLimit”) |
Summary | 返回详细摘要(默认只显示片段) |
三、功能扩展:高级搜索技巧
3.1 Bing多语言支持(日文搜索示例)
python
# 修改mkt参数为ja-JP
params = {"q": "2024年人工知能の動向", "mkt": "ja-JP"}
results = bing_search(params)
3.2 博查AI搜索(使用LLM总结结果)
def bocha_ai_search(
query: str,
api_key: str,
api_url: str = "https://api.bochaai.com/v1/ai-search",
freshness: str = "noLimit",
answer: bool = True,
cunt: int = 50,
stream: bool = False
):
""" 博查AI搜索 """
data = {
"query": query,
"freshness": freshness,
"answer": answer,
"stream": stream,
"cunt": cunt
}
resp = requests.post(
api_url,
headers={"Authorization": f"Bearer {api_key}"},
json=data,
stream=stream
)
if stream:
return (json.loads(line) for line in parse_response_stream(resp.iter_lines()))
else:
if resp.status_code == 200:
return resp
else:
return { "code": resp.code, "msg": "bocha ai search api error." }
def parse_response_stream(resp: Iterator[bytes]) -> Iterator[str]:
"""将stream的sse event bytes数据解析成line格式"""
for line in resp:
if line:
if line.startswith(b"data:"):
_line = line[len(b"data:"):]
_line = _line.decode("utf-8")
else:
_line = line.decode("utf-8")
yield _line
四、常见问题与解决方案
4.1 Bing API返回结果为空
可能原因:区域限制(如某些国家无法访问特定内容)
- 解决方案:
python
# 切换至全球市场
params = {"q": "Bitcoin price", "mkt": "en-WW"}
4.2 中英文混合查询
博查API智能处理:
python
# 直接输入混合语句
results = bocha_search("特斯拉2024年销量预估 Tesla sales forecast 2024")
五、总结
5.1 核心对比
能力 | Bing API优势 | 博查API优势 |
多语言支持 | 支持100+语言 | 中文优化深度更强 |
数据权威性 | 国际媒体覆盖广 | 国内政府/学术资源优先 |
开发便捷性 | 文档全面,社区资源丰富 | 参数设计更贴合中文开发者习惯 |
5.2 学习资源推荐
- [Bing API官方文档](https://learn.microsoft.com/en-us/bing/search-apis/)
- [博查API官网](https://open.bochaai.com/)
立即行动:
- 选择适合的API平台注册账号
- 复制文中代码替换密钥快速测试
- 加入技术交流群获取实时支持