百度搜索
接口描述
概述:可根据用户输入query搜索全网实时信息;
计费:每日免费额度为100次,支持按量后付费,默认优先抵扣免费资源,且每个账号每天最多使用100,000次;
如有更多调用需求请您联系我们进行开通。上限统计口径为免费+付费,费用详情请查看计费说明。
在线调试
百度智能云千帆提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用。
接口定义
URL | /v2/ai_search/chat/completions |
---|---|
Method | POST |
Content-Type | application/json |
Authorization | 请求签名(Bearer <AppBuilder API Key>) |
请求结构
POST /v2/ai_search/chat/completions HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: Bearer <AppBuilder API Key>
Content-Type: application/json
{
"messages": [
{
"content": "北京有哪些旅游景区",
"role": "user"
}
],
"search_source": "baidu_search_v2",
"resource_type_filter": [{"type": "web","top_k": 20}],
"search_filter": {
"match": {
"site": [
"www.weather.com.cn"
]
}
},
"search_recency_filter": "year"
}
请求参数
header参数
除公共头域外,无其它特殊头域。
body参数
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
messages | array | 是 | 搜索输入; array的长度需要是奇数, role必须是user-assistant-user交替,以user开始以user结束;在百度搜索时,仅支持单论输入,若传入多轮输入,则以用户传入最后的content为输入查询。 |
search_source | string | 否 | 使用的搜索引擎版本; 固定值:baidu_search_v2 |
resource_type_filter | array<SearchResource> | 否 | 单次搜索最大返回数量。 支持设置网页、视频搜索模态,网页top_k最大取值为50,视频top_k最大为10,默认值为:[{"type": "web","top_k": 20}] |
search_filter | SearchFilter | 否 | 根据SearchFilter下的子条件做检索过滤,使用方式详见后文; |
search_recency_filter | string | 否 | 根据网页发布时间进行筛选; 枚举值: week:最近7天 month:最近30天 semiyear:最近180天 year:最近365天 |
search_domain_filter | list<string> | 否 | 支持设置基于站点的过滤条件,对搜索到的结果按指定站点进行筛选,仅返回来自所设站点的内容。例如:设置["baidu.com"],在搜索到的结果中仅返回来自 baidu.com 的搜索结果。 |
Message对象
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
role | string | 是 | 角色设定,可选值: user:用户 assistant:模型 |
content | string或array<union< TextContentBlock, ImageContentBlock>> |
是 | 1. 当content为文本时, 对应对话内容,说明: 1.1 不能为空 1.2 最后一个message对应的content不能为blank字符,如空格、"\n"、“\r”、“\f”等 2. 当content为数组时,如果只传入ImageContentBlock对象,则对图片内容进行理解 3. 当content为数组时,如果同时传入ImageContentBlock对象、TextContentBlock对象 TextContentBlock中包括对图片内容的提问,目前仅支持传入一个图片 以下分别为纯文本问答、纯图内容理解、图文多模理解场景下,content参数的示例值: # 1. 纯文本问答 "今天最新新闻"。 # 2. 纯图内容理解 [{ "type": "image_url", "image_url"{ "url":"https://img0.baidu.com/it/u=589029460,3453668126&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=599" } } ] # 3. 图文多模理解场景下 [{ "type": "text", "text": "图中的食物怎么做" }, { "type": "image_url", "image_url": { "url":"https://pic.rmb.bdstatic.com/bjh/240306/events/6eb350bfb9a7c34bf73907507676075b256.jpeg@h_1280" } }] |
SearchFilter
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
match | object | 否 | 条件查询 |
+site | array<string> | 否 | 支持设置指定站点的搜索条件,即仅在设置的站点中进行内容搜索。目前支持设置5个站点。 |
range | object | 否 | 范围查询,更多内容可查看范围查询详情 |
+page_time | object | 否 | 假设下述的now时间是2024-07-16 |
++gth | string | 否 | 时间查询参数,值为"now-1d/d",表示含义:大于2024-07-15 00:00:00,包含2024-07-15完整天 |
++gt | string | 否 | 时间查询参数,值为"now-1d/d",表示含义:大于2024-07-15 23:59:59,不包含2024-07-15完整天 |
++lth | string | 否 | 时间查询参数,值为"now-1d/d",表示含义:小于2024-07-15 23:59:00,包含2024-07-15完整天 |
++lt | string | 否 | 时间查询参数,值为"now-1d/d",表示含义:小于2024-07-15 00:00:00,不包含2024-07-15完整天 |
范围查询(range)详情
- 可以用于数值型、日期型的字段。使用语法如下:
"range": {
"{field}": {
"gte": "{lowerBound}",
"gt": "{lowerBound}",
"lte": "{upperBound}",
"lt": "{upperBound}"
}
}
实体(field)
- pageTime:发布时间的实体名,表示针对pageTime做范围查询。此处pageTime对应响应数据中的page_time字段。(网页发布时间的筛选功能只适用于可利用与可展现库,其他结果如视频等不召回)
查询范围(lowerBound\upperBound)
- "now"表示当前时间,在now后 可以选择跟数学表达式:
- -1d:减1天;
- -1w:减1周;
- -1M:减1月;
- -1y:减1年;
- /d: 归一化到当前天的起始\结束时间
支持的时间单位
单位 | 含义 |
---|---|
y | 年 |
M | 月 |
w | 星期 |
d | 天 |
注意:目前提供固定套餐,其他值非法
now/d
now-1w/d:一周
now-2w/d:两周
now-1M/d:一个月
now-3M/d:三个月
now-6M/d:六个月
now-1y/d:一年
条件选项
eg:now=2024-07-16 12:00
条件 | 释义 | 用例 |
---|---|---|
gte | 大于或等于 | "now-1d/d",2024-07-16前一天、向下做舍入,即大于2024-07-15 00:00:00,包含2024-07-15完整天 |
gt | 大于 | "now-1d/d",2024-07-16前一天、向上做舍入,即大于2024-07-15 23:59:59,不包含2024-07-15完整天 |
lte | 小于 | "now-1d/d",2024-07-16前一天、向上做舍入,即小于2024-07-15 23:59:00,包含2024-07-15完整天 |
lt | 小于 | "now-1d/d",2024-07-16前一天、向下做舍入,即小于2024-07-15 00:00:00,不包含2024-07-15完整天 |
注意:
1、lte使用注意:range范围会参与检索系统的cache key计算,lte在做向上归一舍入后,由于cache可能导致结果时效性落后于match指定的lte值;
2、起始(lowerBound)和截止(upperBound)时间必需同时存在,否则该功能不生效;
3、gte和gt只传其中一个即可,都传只生效gt;lte和lt只传其中一个即可,都传只生效lt
用例
查询当天前7天(不含当天)发布的网页结果
"query": {
"filter": {
"range": {
"page_time": {
"gte": "now-1w/d"
"lt": "now/d"
}
}
}
}
ImageContentBlock对象
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
type | string | 是 | 值固定为image_url |
image_url | URL | 是 | 图片地址,支持图片格式包括jpeg、 jpg、 png、 webp |
ImageContentBlock.URL对象
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
url | string | 是 | 图片可下载url地址或base64编码后的图片内容 |
TextContentBlock对象
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
type | string | 是 | 值固定为text |
text | string | 是 | 文本内容 |
SearchResource对象
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
type | string | 是 | 搜索资源类型。 可选值: web:网页 |
top_k | int | 是 | 指定模态最大返回个数 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
字段 | 类型 | 必然存在 | 说明 |
---|---|---|---|
requestId | string | 是 | 请求request_id |
code | string | 否 | 错误代码,当发生异常时返回 |
message | string | 否 | 错误代码,当发生异常时返回 |
references | array<Reference> | 否 | 模型回答参考引用内容 |
Reference对象
字段 | 类型 | 必然存在 | 说明 |
---|---|---|---|
icon | string | 否 | 站点图标 |
id | int | 是 | 引用编号1、2、3 |
title | string | 是 | 网页标题 |
url | string | 是 | 网页地址 |
web_anchor | string | 是 | 网站锚文本或网站标题 |
content | string | 否 | 网站内容,返回更长更完整的原文片段 |
date | string | 否 | 网页日期 |
type | string | 否 | 检索资源类型: web:网页 image:图像内容 video:视频内容 |
image | ImageDetail | 否 | 图片详情 |
video | VideoDetail | 否 | 视频详情 |
Reference.ImageDetail对象
字段 | 类型 | 必然存在 | 说明 |
---|---|---|---|
url | string | 否 | 图片链接 |
height | string | 否 | 图片高度 |
width | string | 否 | 图片宽度 |
Reference.VideoDetail对象
字段 | 类型 | 必然存在 | 说明 |
---|---|---|---|
url | string | 否 | 视频链接 |
height | string | 否 | 视频高度 |
width | string | 否 | 视频宽度 |
size | string | 否 | 视频大小,单位Bytes |
duration | string | 否 | 视频长度,单位秒 |
hover_pic | string | 否 | 视频封面图 |
请求curl 示例
curl --location 'https://qianfan.baidubce.com/v2/ai_search/chat/completions' \
--header 'X-Appbuilder-Authorization: Bearer <AppBuilder API Key>' \
--header 'Content-Type: application/json' \
--data '{
"messages": [
{
"content": "河北各个城市最近的天气",
"role": "user"
}
],
"search_source": "baidu_search_v2",
"resource_type_filter": [{"type": "mix","top_k": 10}],
"search_filter": {
"match": {
"site": [
"www.weather.com.cn"
]
}
},
"search_recency_filter": "year"
}'
正确响应示例
{
"references": [
{
"content": "河北天气预报,及时准确发布中央气象台天气信息,便捷查询河北今日天气\u0004,河北周末天气,河北一周天气预报,河北蓝天预报,河北天气预报,河北40日天气预报,还\u0005提供河北的生活指数、健康指数、交通...",
"date": "2025-04-27 18:02:00",
"icon": null,
"id": 1,
"image": null,
"title": "【河北天气】河北天气预报,蓝天,蓝天预报,雾霾,雾霾...",
"type": "web",
"url": "https://www.weather.com.cn/html/weather/101031600.shtml",
"video": null,
"web_anchor": "【河北天气】河北天气预报,蓝天,蓝天预报,雾霾,雾霾..."
},
{
"content": "保定天气预报,及时准确发布中央气象台天气信息,便捷查询保定今日天气,保定周末天气,保定一周天气预报,保定蓝天预报,保定天气预报,保定40日天气预报,还提供保定的生活指数、健康指数、交通...",
"date": "2025-05-20 11:58:00",
"icon": null,
"id": 2,
"image": null,
"title": "保定天气预报,保定7天天气预报,保定15天天气预报,保定...",
"type": "web",
"url": "https://www.weather.com.cn/weather/101090201.shtml",
"video": null,
"web_anchor": "保定天气预报,保定7天天气预报,保定15天天气预报,保定..."
},
{
"content": "河北省气象台2025年05月23日11时发布天气预报: 今天下午到夜间,保定西部、石家庄西部、邢台西部阴有小雨或零星小雨转晴,其他地区阴转晴。最高气温,张家口、承德北部、保定西北部13~17...",
"date": "2025-05-23 00:00:00",
"icon": null,
"id": 3,
"image": null,
"title": "今天西部部分地区仍有降水 其它地区阴转晴-河北首页...",
"type": "web",
"url": "http://hebei.weather.com.cn/tqxs/4190923_m.shtml",
"video": null,
"web_anchor": "今天西部部分地区仍有降水 其它地区阴转晴-河北首页..."
},
{
"content": "河北省气象台2025年05月22日05时发布天气预报 今天白天,保定、廊坊及以北地区阴有小雨或阵雨,其中张家口、保定西北部有中到大雨;其他地区多云转阴有小雨或阵雨,其中邯郸大部有中雨。...",
"date": "2025-05-22 09:07:22",
"icon": null,
"id": 4,
"image": null,
"title": "今天白天到夜间,我省大部分地区有降水-河北首页-中国...",
"type": "web",
"url": "http://hebei.weather.com.cn/tqxs/4189523_m.shtml",
"video": null,
"web_anchor": "今天白天到夜间,我省大部分地区有降水-河北首页-中国..."
}
],
"request_id": "ca749cb1-26db-4ff6-9735-f7b472d59003"
}
错误响应示例
{
"requestId": "00000000-0000-0000-0000-000000000000",
"code": 216003,
"message": "Authentication error: ( [Code: InvalidHTTPAuthHeader; Message: Fail to parse apikey authorization; RequestId: ea6ffeca-a136-401b-ba30-61c910c02ead] )"
}
OpenAI SDK调用百度AI搜索
百度AI搜索V2版本使用与 OpenAI 兼容的 API 格式,通过修改配置,您可以使用 OpenAI SDK 来访问百度AI搜索。
前提条件
确保已安装最新版OpenAI SDK。
调用示例
# Please install OpenAI SDK first: `pip3 install openai`
from openai import OpenAI
client = OpenAI(api_key="bce-v3/ALTAK***Altc/051c6***d238ce", # 千帆AppBuilder平台的ApiKey
base_url="https://qianfan.baidubce.com/v2/ai_search") # 百度AI搜索V2版本接口
response = client.chat.completions.create(
model="deepseek-r1",
messages=[
{"role": "user", "content": "今天有哪些体育新闻"}
],
stream=False
)
print(response.choices[0].message.content)
Cursor中使用百度AI搜索MCP组件
通过Cursor Chat直接使用
- 可在Cursor中直接体验百度AI搜索组件的深度搜索与智能总结能力,高效准确地获取答案。
操作步骤
第一步:获取百度AI搜索Server URL
-
百度AI搜索Server URL:
http://appbuilder.baidu.com/v2/ai_search/mcp/sse?api_key=xxx - 其中,api_key的格式为"Bearer+<AppBuilder API Key>",注意保留中间“+”,示例:Bearer+bce-v3/ALTAK-xuZRMCVTC9######
- AppBuilder API Key获取方式:控制台点击API Key进行创建,服务选择千帆AppBuilder,确定即可


第二步:在Cursor中添加Server
- Cursor设置界面-> MCP-> Add new MCP Server -> 填写server信息。


注意,Cursor最新版本需要通过配置json来添加MCP Server。 核心代码示例:
{
"mcpServers": {
"AISearch": {
"url": "百度AI搜索Server URL"
}
}
}
第三步:在Cursor中使用百度AI搜索组件
- 前往Cursor新版本的chat、旧版本的composer中,即可与agent对话。
效果展示:
在Cursor中,我们向Agent提问:今天有哪些体育新闻?这时百度AI搜索将为用户搜索今天最新的体育新闻,并在Cursor中将总结好的内容返回给用户。
错误码
错误码 | 描述 |
---|---|
400 | 客户端请求参数错误 |
500 | 服务端执行错误 |
501 | 调用模型服务超时 |
502 | 模型流式输出超时 |
其它 | 详见模型返回错误码https://cloud.baidu.com/doc/WENXINWORKSHOP/s/tlmyncueh |