文章目录
前言
随着人工智能(AI)的发展,人们也在生活中接触到各种各样的大模型,比如今年爆火的DeepSeek,或是开启大模型元年的ChatGPT。但是在使用的过程中,我们会发现,大模型是有知识库的,而且知识库的截止时间往往很早,我们无法从大模型中获取到一些时效性很强的内容,比如说我想知道今天的天气,大模型就无法回答,或者是回答一些乱七八糟的内容,也就是大模型幻觉。
那么这个问题促进了检索增强生成(RAG)技术的发展,RAG技术是先将用户提出的问题在自己的知识库内进行检索,然后根据检索到的信息再进行回答, 因此RAG模型往往会比普通的大模型拥有更准确,更有时效性的答案。可能有人会问,都是知识库,为什么使用RAG的模型的知识库会更准确呢?
因为RAG模型的知识库是由我们指定的,如果我想问一个医学上的问题,我可以提供给这个大模型一个只有若干医学文档的知识库,让模型从这里面检索,答案自然准确很多。那怎么增强时效性呢?我们可以让模型先去网络上搜索相关的内容,然后将搜索到的内容作为知识库来生成答案。这就是大模型的联网搜索功能。那么怎么实现搜索的功能呢?
今天就给大家带来一个超实用的技术教程——如何用Python快速调用博查AI的Web Search API!这个接口能让你轻松搜索全网网页和图片信息,还能自动生成摘要,让你的模型更加准确和具有时效性,简直是AI开发者的福音!话不多说,直接上干货!
一、前期准备:API Key获取
1.1 注册博查AI开放平台
- 访问博查AI开放平台
- 注册/登录账号(支持手机号或邮箱)
1.2 创建API Key
-
登录后进入 「API Key 管理」
-
点击 「创建 API Key」 生成密钥(形如
sk-xxxxxx
)
-
妥善保存,后续代码中会用到!
二、快速上手:Python调用实战
2.1 安装依赖库
在命令行安装下面的库,用来发送请求和获取内容
pip install requests
2.2 基础代码模板
代码如下(示例):
import requests
import json
# 填写你的API Key
API_KEY = "sk-你的密钥"
# 请求配置
url = "https://api.bochaai.com/v1/web-search"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"query": "天空为什么是蓝色的?", # 搜索关键词
"summary": True, # 显示摘要
"count": 5, # 返回5条结果
"page": 1 # 第一页
}
# 发送请求
response = requests.post(url, headers=headers, data=json.dumps(payload))
# 解析结果
if response.status_code == 200:
results = response.json()
print("搜索成功!结果如下:")
for item in results["data"]["webPages"]["value"]:
print(f"标题:{item['name']}")
print(f"链接:{item['url']}")
print(f"摘要:{item['snippet']}\n")
else:
print(f"请求失败!错误码:{response.status_code}, 详情:{response.text}")
这样就可以接收到返回的内容啦!下面是接收到的部分返回内容:
我们可以看到返回值里面是会对搜索到的网页进行摘要总结的,这样可以让RAG模型更快得到重要信息。一定要记得把请求体参数里面的 summary 参数设为 True哦,不然可能会没有返回的内容。
三、参数详解:玩转高级搜索
3.1 时间范围过滤
想找最新资讯?试试freshness参数:
payload = {
"query": "AI最新技术",
"freshness": "oneWeek" # 一周内的结果
"summary": True, # 显示摘要
"count": 5, # 返回5条结果
"page": 1
}
可选值:oneDay(一天内)、oneWeek(一周内)、oneMonth(一个月内)、oneYear(一年内)、noLimit(默认不限)
ps:一般 noLimit 的效果最好哦。
3.2 返回更多结果
使用count参数:
payload = {
"query": "AI最新技术",
"summary": True, # 显示摘要
"count": 50, # 返回50条结果
"page": 1
}
count值越高,搜索返回的网页数越多哦,但是实际返回结果数量可能会小于count指定的数量,最大单次搜索返回50条。
四、结果解析:提取关键信息
4.1 网页结果字段说明
字段 | 说明 | 示例值 |
---|---|---|
name | 网页标题 | “Python入门教程” |
url | 原始链接 | “https://www.example.com/python” |
snippet | 网页内容的简短描述 | “本文详细讲解Python基础语法…” |
summary | 长摘要(需开启summary) | “Python是一种解释型语言…” |
4.2 结果说明
除了网页文本外,其实Web Search还会返回包括网页、图片还有其他Response格式的内容,同时还兼容Bing Search API。
五、完整项目示例:搜索并保存结果
import requests
import csv
def search_and_save(query, filename="results.csv"):
API_KEY = "sk-你的密钥"
url = "https://api.bochaai.com/v1/web-search"
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
payload = {"query": query, "count": 10}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()["data"]["webPages"]["value"]
with open(filename, "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["标题", "链接", "摘要"])
for item in data:
writer.writerow([item["name"], item["url"], item["snippet"]])
print(f"结果已保存至{filename}!")
else:
print("搜索失败!")
# 使用示例
search_and_save("深度学习框架对比")
总结
通过这篇教程,你已经掌握了:
- API Key获取 → 2. 基础搜索调用 → 3. 高级参数配置 → 4. 结果解析与保存
赶紧动手试试吧!如果遇到问题,欢迎在评论区留言讨论~ 后续还会更新更多AI接口实战教程,关注我不迷路! 🚀