资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

百度AI搜索

组件描述

百度AI搜索组件将百度搜索能力与大模型技术结合,提供参考全网实时信息的智能回复功能,可支撑各行业丰富的场景应用。支持丰富标准化能力,如:自定义人设、模型选择、问题改写(包括时效和多轮两种方式,以增强搜索效果)、搜索范围配置(可选择搜索的模态、站点范围和发布时间)、自定义参考链接条数等等,此外,该API拥有优秀的性能表现和高可用性,以及全面的内容安全审核,保证处于合规红线之上。

默认限流1qps,申请更多资源请提交表单,工作人员将主动联系您进行开通。计费方式详见计费说明

目前v2版本尚处于测试阶段,后续可能会出现不兼容升级情况,由此可能对您的使用体验产生一定影响,请您知晓,建议您谨慎使用。

V2与V1版本接口区别

能力 V1 V2 (beta)
搜索模式选择 强制搜索 支持:不搜索、强制搜索、智能判断
模型选择 ModelBuilder已有模型。 即将支持DeepSeek系列。 ModelBuilder已有模型,SFT模型,deepseek-r1, deepseek-v3。
模型配置 人设指令、temperature、top_p 人设指令、temperature、top_p
提示词模版 支持 支持
多轮对话 支持 支持
输入改写 支持 支持
指定站点搜索 支持 支持
深搜索 不支持 支持
最大搜索次数 支持配置 支持配置
多模态内容搜索 支持选择网页、图片、视频 支持
参考内容发布时间 支持选择时间范围 支持选择时间范围
参考内容排序 支持自定义排序 支持
参考内容来源过滤 不支持 支持
参考内容数量 支持设置数量 支持
深度思考 不支持 支持与DeepSeek-R1搭配使用
参考脚标 支持配置是否显示 支持配置是否显示
内容安全 支持 支持
回复干预 支持 支持
流式输出 支持配置 支持配置
推荐追问生成 不支持 支持
图文混排 不支持 支持

V2(beta)版接口文档

接口描述

根据用户问题搜索全网实时信息,并使用大模型进行智能总结回答,支持选择DeepSeek系列模型。

接口定义

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"
        }
    ],
    "stream": false,
    "model": "ernie-3.5-8k",
    "instruction": "##",
    "enable_corner_markers": true,
    "enable_deep_search": true
}

请求参数

header参数

除公共头域外,无其它特殊头域。

body参数

参数名称 类型 是否必须 描述
messages array 对话历史
array的长度需要是奇数, role必须是user-assistant-user交替,以user开始以user结束
例子:
[
{"role": "user", "content":"你觉得xx的发布会上把xx的100pro手机的芯片搞错了需要道歉吗"},
{"role": "assistant", "content": "是的,如果xx在发布会上错误地标注了xx100 Pro的芯片信息,那么向xx和用户道歉是合适的。这种错误可能会对xx品牌和用户造成困扰和误解,因此公开道歉并纠正错误是一个负责任的行为。同时,这也展示了xx对于准确性和专业性的重视,有助于维护品牌形象和信誉。"},
{"role": "user", "content": "今天xx有道歉吗"}
]
stream bool 是否为流式请求。
值含义:
true:使用HTTP SSE流式响应
false:以非流式结果返回
默认值为false;
model string 使用的模型名。
目前支持模型选项如下:
1. ernie-3.5-8k等从千帆ModelBuilder官网开通的模型,可选模型列表
2. ernie-4.0-turbo-8k(图文混排场景推荐使用,其它模型不保证效果)
3. ernie-4.0-turbo-128k(图文混排场景推荐使用,其它模型不保证效果)
4. ernie-4.5-8k-preview
5. deepseek-r1
6. deepseek-v3
7. pro-deepseek-r1
8. pro-deepseek-v3
pro-deepseek-r1与 pro-deepseek-v3需提交表单 申请
instruction string 人设指令,用于限制输出风格等。
默认值:""
注意:字符长度需要小于等于2000
temperature float 模型采样参数。较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定。
值范围:(0, 1]
默认值:1e-10
注意:该值越大,模型输出越多样,也越不稳定
top_p float 模型采样参数。
影响输出文本的多样性,取值越大,生成文本的多样性越强。
值范围:(0, 1]
默认值:1e-10
注意:该值越大,模型输出越多样,也越不稳定
enable_corner_markers bool 是否返回角标,用于标记模型输出内容的参考来源。
值含义:
true:开启角标
false:隐藏角标
默认值:true
search_mode string 控制是否开启联网搜索。默认为 auto。
可选值:
auto:自动判断是否需要搜索
required: 必须执行搜索
disabled: 禁用搜索功能
search_recency_filter string 网页时效性范围限制。
枚举值:
week:7天
month:30天
semiyear:180天
year:365天
search_domain_filter list<string> 站点过滤,只返回列表中站点的网页
比如: ["baidu.com"]
enable_followup_queries boolean 是否开启追问。针对用户问题和大模型回答结果,大模型给出推荐的追问。
默认为false
可选值:true: 开启追问
false:不开启追问
response_format string 输出内容样式。默认值 auto。可选值:

auto:模型自动判断是纯文本输出还是图文混排输出。
text:文本输出。
rich_text: 图文混排输出。如:在美食和旅游两个场景下,输出文本中嵌入markdown语法的图片内容。 比如: ...北京美食包括北京烤鸭等![北京烤鸭](image_url)。
选择rich_text时推荐使用ernie-4.0-turbo-128k、ernie-4.0-turbo-8k模型
enable_reasoning boolean 是否开启深度思考,仅对DeepSeek-R1模型生效,开启后,输出答案前会输出思考内容。
默认值:默认值:true
可选值:
true:开启
false:不开启
enable_deep_search boolean 是否开启深搜索。
默认值:false
可选值:
true:开启,每种搜索类型最多返回100个搜索结果。
false:不开启,每种搜索类型最多返回10个搜索结果。
resource_type_filter array 单次搜索最大返回数量。
默认为返回网页top 10。
搜索结果,{"type": "web","top_k": 10}],每种搜索类型支持返回的数量范围为:1~10
示例:
[{"type": "image","top_k": 4},
{"type": "video","top_k": 4},
{"type": "web","top_k": 4}]
prompt_template string 面向高阶用户开放自定义prompt模版,普通用户不需要设置,支持添加的变量包括:
query:经过改写等处理后的query
original_query:用户原始query
history:对话历史
context_out:搜索结果(如果传入个性化知识,则是个性化知识 + 搜索结果)
instruction:人设
time:当前时间

其中变量query或original_query(至少一个)、context_out必须出现在prompt_template中,其他变量可选。
样例:"搜索结果:
{{context_out}}
用户query:
{{query}} "。
additional_knowledge array<Knowledge> 调用方提供的定制化知识内容集合,与公开的联网搜索结果构成合集,注入到模型中进行问答总结。知识注入的条数和长度, 与模型有关,限制最大10条。

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"
}
}]

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 搜索资源类型。
可选值:
video: 视频
image: 图片
web:网页
top_k int 指定模态最大返回个数

Knowledge对象

参数名称 类型 是否必须 描述
priority int 搜索结果的优先级: 数字值越小,优先级越高。
取值范围【-20,20】
默认值为0;
举例:
-20是优先级最高,如果与百度搜索结果优先级相同,优先使用定制化知识点,默认值为0
data_type string 数据类型
data Data

Knowledge.Data对象

参数名称 类型 是否必须 描述
content string 知识点内容
title string 知识点标题
url string 知识点url地址
release_date string 发布日期

响应头域

除公共头域外,无其它特殊头域。

响应参数

字段 类型 必然存在 说明
requestId string 请求request_id
code string 错误代码,当发生异常时返回
message string 错误代码,当发生异常时返回
choices array 模型生成的 completion 的选择列表
usage Usage token开销
is_safe bool query是否安全
references array<Reference> 模型回答参考引用内容
followup_queries array<str> 追问问题

Choice对象

字段 类型 必然存在 说明
finish_reason string 模型停止生成token的原因。
可选值:
stop: 模型自然停止生成
length: 输出长度达到了模型上下文长度限制
index int 该completion在选择列表中的索引
message Message 非流式模型生成的completion消息
delta Delta 流式返回的completion增量

Choice.Message对象

字段 类型 必然存在 说明
content string completion内容
reasoning_content string 仅适用于 deepseek思考系列模型。
内容为 assistant 消息中在最终答案之前的推理内容
role string 固定值assistant

Choice.Delta对象

字段 类型 必然存在 说明
content string completion内容
reasoning_content string 仅适用于 deepseek思考系列模型。
内容为 assistant 消息中在最终答案之前的推理内容
role string 固定值assistant

Reference对象

字段 类型 必然存在 说明
icon string 站点图标
id int 引用编号1、2、3
title string 网页标题
url string 网页地址
web_anchor string 网站锚文本或网站标题
content string 网站内容,当前仅返回20字
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 视频封面图

Usage对象

字段 类型 必然存在 说明
prompt_tokens int prompt(输入)token数
completion_tokens int completion(输出)token数
total_tokens int 总token数

请求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"
        }
    ],
    "stream": false,
    "model": "ernie-3.5-8k",
    "enable_deep_search": false,
    "enable_followup_query": false,
    "resource_type_filter": [{"type": "web", "top_k":1}]
}'

正确响应示例

{
    "usage": {
        "prompt_tokens": 773,
        "completion_tokens": 599,
        "total_tokens": 1372
    },
    "is_safe": true,
    "request_id": "11111111-1111-1111-1111-111111111111",
    "choices": [
        {
            "index": 0,
            "message": {
                "content": "### 解决交通拥堵问题的多方面策略\n\n交通拥堵是现代城市面临的一大挑战,它不仅影响人们的日常出行,还可能引发一系列社会问题。以下是从多个方面提出的解决交通拥堵问题的策略:\n\n#### 一、优化交通基础设施和道路设计\n\n- **增加停车位**:在学校、商业区等交通热点区域增加停车位,以减少车辆无序停放造成的交通拥堵。[ref_1][ref_2]\n- **优化道路设计**:通过合理的道路规划和设计,如拓宽道路、设置公交专用道等,提高道路通行能力。\n- **实施交通管制措施**:在特定时段和区域实施交通管制,如限行、禁行等,以缓解交通压力。\n\n#### 二、推广绿色出行\n\n- **鼓励步行和骑行**:通过建设人行天桥、地下通道、自行车道等设施,为步行和骑行提供便利。\n- **发展公共交通**:增加公交车、地铁等公共交通工具的数量和频次,提高公共交通的便捷性和舒适度,吸引更多人选择公共交通出行。[ref_1]\n\n#### 三、建立智慧交通系统\n\n- **实时交通信息共享**:利用现代信息技术建立智慧交通系统,实时共享交通信息,包括路况、拥堵情况等,引导车辆合理分流。[ref_1][ref_3]\n- **信号配时优化**:通过智能信号控制系统,根据实时交通流量调整信号灯配时,提高路口通行效率。\n\n#### 四、实施交通管制措施\n\n- **单向通行和限时通行**:在特定时段和区域实施单向通行、限时通行等措施,减少交通冲突和拥堵。[ref_4]\n- **交通疏导**:在交通高峰期,通过交警或交通志愿者的现场疏导,引导车辆有序通行。\n\n#### 五、调整学校布局\n\n- **合理规划学校位置**:在城市规划中合理调整学校的布局,避免学校集中在交通繁忙的区域,减少学校周边交通压力。[ref_1]\n\n#### 六、微改造和路口优化\n\n- **消除道路瓶颈**:通过微改造和路口优化,消除道路“肠梗阻”,如增加车道数、设置机非分离等,提升路口通行能力。[ref_3][ref_5]\n\n#### 七、加强停车管理\n\n- **严格停车执法**:取缔占道停车,建设临时停车场,规范停车秩序,缓解停车难问题。[ref_5]\n- **推广智能停车系统**:利用智能停车系统,实现停车位的实时查询和预约,提高停车效率。\n\n#### 八、借鉴国际和国内经验\n\n- **分析成功案例**:分析国际大都市和国内其他城市在解决交通拥堵方面的成功案例,借鉴其有效措施。[ref_1]\n- **结合本地实际**:在借鉴经验的基础上,结合本地实际情况,制定切实可行的解决方案。\n\n综上所述,解决交通拥堵问题需要从多个方面入手,通过综合施策、多管齐下,才能有效缓解交通拥堵问题,提升城市交通运行效率。",
                "role": "assistant"
            },
            "finish_reason": "stop"
        }
    ],
    "references": [
        {
            "id": 1,
            "icon": "https://gips2.baidu.com/it/u=1009531835,1711006677&fm=3028&app=3028&f=PNG&fmt=auto&q=90&size=f187_48",
            "title": "如何解决交通拥堵问题",
            "url": "https://answer.baidu.com/answer/land?params=9%2BIX4C88WSGy3lAHzCyTt8nBTUbnCK9kzdpSC6fm9Ppd46vYlS%2Bbs1eIayl4TEICfPK%2BxalOwYOasWfAjL7Kot0domPqbQcgAKY4yVsspZOiWAKvMfYErmps94hqEkWDsfco5B3lIG8zRbKajWKL99OsyK4Y6jNJU71GlHyGMWA0v3bEfSBIVWVdrj7k%2FYgx2Xtr44q2I7JC7EQWP3EHm1eBEq0ndH6WHMTpFHW7P3E%3D&from=dqa&lid=9381801668833088898&word=%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E4%BA%A4%E9%80%9A%E6%8B%A5%E5%A0%B5%E9%97%AE%E9%A2%98",
            "web_anchor": "如何解决交通拥堵问题",
            "content": "==**解决交通拥堵问题可以从以下几个方...",
            "date": null,
            "type": "web",
            "image": null,
            "video": null
        }
    ]
}

错误响应示例

{
    "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搜索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,确定即可

image (1).png

image (3).png

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

image (4).png

image (5).png

注意,Cursor最新版本需要通过配置json来添加MCP Server。 核心代码示例:

{
  "mcpServers": {
    "AISearch": {
      "url": "百度AI搜索Server URL"
    }
  }
}

【第三步】在Cursor中使用百度AI搜索组件。前往Cursor新版本的chat、旧版本的composer中,即可与agent对话。

效果展示:

在Cursor中,我们向Agent提问:今天有哪些体育新闻?这时百度AI搜索将为用户搜索今天最新的体育新闻,并在Cursor中将总结好的内容返回给用户。

image (6).png

V1版接口文档

接口描述

根据用户问题搜索全网实时信息,并使用大模型进行智能总结回答。

在线调试

百度智能云千帆提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用。

接口定义

URL https://appbuilder.baidu.com/rpc/2.0/cloud_hub/v1/ai_engine/copilot_engine/service/v1/baidu_search_rag/general
Method POST

注:本接口的服务端点与其他接口不一致,服务端点以本文档为准。

请求结构

POST /rpc/2.0/cloud_hub/v1/ai_engine/copilot_engine/service/v1/baidu_search_rag/general HTTP/1.1
HOST: appbuilder.baidu.com
X-Appbuilder-Authorization: Bearer <AppBuilder API Key>
Content-Type: application/json
{
"message": [
    {
        "role": "user",
        "content": "今天热点新闻"
    }
],
"instruction": "你是新闻小助手啊",
"stream": true,
"model": "ERNIE-3.5-8K"
}

请求头域

除公共头域外,无其它特殊头域,可前往通用说明查看

请求参数

字段 类型 是否必填 说明
messages array[message] 对话历史。
注意:
* array的长度需要是奇数
* role必须是user-assistant-user交替,以user开始以user结束

例子:
[
{"role": "user", "content":
"你觉得xx的发布会上把xx的100pro手机的芯片搞错了需要道歉吗"},
{"role": "assistant", "content": "是的,如果xx在发布会上错误地标注了xx100 Pro的芯片信息,那么向xx和用户道歉是合适的。这种错误可能会对xx品牌和用户造成困扰和误解,因此公开道歉并纠正错误是一个负责任的行为。同时,这也展示了xx对于准确性和专业性的重视,有助于维护品牌形象和信誉。"},
{"role": "user", "content": "今天xx有道歉吗"}
]
message array[message] 作用同messages字段,message/messages不能同时为空,后续计划下掉此message字段。如果同时传递message/messages字段,优先使用messages字段
stream bool 是否为流式请求。值含义:
true:使用HTTP SSE流式响应
false:以非流式结果返回
默认值为false;
model string 使用的模型名。
注意:从千帆MB官网查看账户开通的模型,MB账号欠费会导致调用失败。

例如:
ERNIE-3.5-8K
ERNIE-4.0-8K
instruction string 人设指令,用于限制输出风格等
默认值:""
注意:字符长度需要小于等于1400
temperature float 模型采样参数。较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定
值范围:(0, 1]
默认值:1e-10
注意:该值越大,模型输出越多样,也越不稳定
top_p float 模型采样参数。影响输出文本的多样性,取值越大,生成文本的多样性越强
值范围:(0, 1]
默认值:1e-10
注意:该值越大,模型输出越多样,也越不稳定
hide_corner_markers bool 是否隐藏引用角标,用于是否标记输出内容出处的链接。值含义:
true:隐藏
false:不隐藏
默认值:false
enable_timely_query_rewrite bool 是否开启时效性改写模块,用于常用口语时间(今天、今年等)转换为具体时间
值含义:
true:开启
false:关闭
默认值:false
注意:该参数为true时,会多调用一次大模型,使用传入的model,会增大接口耗时,秒级
触发时效性例子:
今天、明天、今年、明年等
enable_historical_query_rewriting bool 是否基于历史对话对query进行改写,用于改写不明确主语的query,使大模型更明确用户query。值含义:
true:改写
false:不改写
默认值:false
enable_instruction_enhance bool 是否对人设指令(instruction)增强,用于增强人设指令遵从的效果,但是可能会造成指令泄露。值含义:
true:增强
false:不增强
默认值:false
search_resource_types  array[search_resource_type] 多模态检索参数,每种模态最大检索个数不超过10
例子:
[
{"count": 4, "type": "web"},
{"count": 4, "type": "image_content"},
{"count": 4, "type": "video"}
]
search_rearrange bool 默认为true,搜索结果按照网页top1、图像内容top1、视频内容top1、网页top2、图像内容top2、视频内容top2...进行排序,反之,顺序不固定
search_timeliness string 网页时效性范围限制,包含枚举值:
week:7天
month:30天
semiyear:180天
year:365天
search_top_k int 默认为4,代表返回4个网页检索结果,最大不超过10个;如果同时传入search_resource_types参数时,以search_resource_types为准
search_site string 指定内容检索站点 比如: baidu.com
customize_knowledge array<knowledge> 调用方提供的定制化知识内容集合,与公开的联网搜索结果构成合集,注入到模型中进行问答总结。知识注入的条数和长度, 与模型有关,限制最大10条
max_search_times int 默认为5,限制某一模态最大搜索次数,如果在最大搜索次数范围内未找到目标结果条数,则不再继续搜索,注意如果n个模态相应的最大搜索次数会自动扩为n*max_search_times
override_system_template string 面向高阶用户开放自定义prompt模版,普通用户不需要设置,支持添加的变量包括:
query:经过改写等处理后的query
original_query:用户原始query
history:对话历史
context_out:搜索结果(如果传入个性化知识,则是个性化知识 + 搜索结果)
instruction:人设
time:当前时间

其中变量query或original_query(至少一个)、context_out必须出现在override_system_template或override_prompt_template中,其他变量可选。
样例:"请遵循以下人设指令回答问题:{{instruction}} "。
override_prompt_template string 面向高阶用户开放自定义prompt模版,普通用户不需要设置,支持添加的变量包括:
query:经过改写等处理后的query
original_query:用户原始query
history:对话历史
context_out:搜索结果(如果传入个性化知识,则是个性化知识 + 搜索结果)
instruction:人设
time:当前时间

其中变量query或original_query(至少一个)、context_out必须出现在override_system_template或override_prompt_template中,其他变量可选。
样例:"搜索结果:\n{{context_out}}\n\n用户query:\n{{query}} "。

message对象

字段 类型 是否必填 说明
role string 角色标识符。枚举值:
user:用户
assistant:模型
content string 对应角色的对话内容。
注意:当role为user时,content字符长度需要小于等于2000,超出则会截断

search_resource_type对象

字段 类型 是否必填 说明
count int 检索个数
type string 模态类型,枚举值
web:网页
image_content:图像内容
video:视频内容

knowledge对象

字段 类型 是否必填 说明
priority int 优先级的范围【-20,20】,搜索结果默认是0;优先级的定义:数字值越小,优先级越高,例如-20是优先级最高,如果与百度搜索结果优先级相同,优先使用定制化知识点,默认值为0
data_type str 数据类型
id int 默认按照传入数组顺序进行编号,依次编号为1、2...n,如果对应知识点被模型引用到,会按照ref_编号的方式进行标记,比如:ref_1、ref_2...ref_n;如果传入编号,编号必须递增,且最大值不超过50
data object 详细知识内容

knowledge.data对象

字段 类型 必填 说明
content str 知识点内容
title str 知识点标题
url str 知识点url地址
release_date str 发布日期

响应头域

除公共头域外,无其它特殊头域,可前往通用说明查看。

响应参数

字段 类型 必然存在 说明
code int 错误码。0为成功,否则为错误。
message string 错误信息。
result object 搜索与模型总结结果

result对象

字段 类型 必然存在 说明
session_id string id(该字段即将下线)
is_completion bool 流式响应中表示请求是否结束
answer_message object 百度AI搜索返回结果

result.answer_message对象

字段 类型 必然存在 说明
extra array[reference] 检索结果。
流式返回中,首条是检索结果,后面是大模型回复。为了不重复传检索结果,仅首条有extra
token_usage object 该次请求消耗的token数。注意:流式请求时需要看最后一个事件的token_usage
content string 模型的回答
rewriten_query string 改写query
request_id string 请求ID requestId
is_safe bool 是否触发安全策略
search_times int 搜索次数,一般模态越多、引用次数越多搜索次数也相应增加,精确的次数与query内容有关

result.answer_message.reference对象

字段 类型 必然存在 说明
icon string icon地址,如果没有的话为null
ref_num string 引用索引
title string 网页标题
url string 网页地址
given_to_llm bool 是否给模型
web_anchor string 网站锚文本,如果没有的话使用网站标题
content string 网站内容,当前仅返回20字。
resource_type string 检索资源类型:
web:网页
image_content:图像内容
video:视频内容
image_detail object 图片详情
vedio_detail object 视频详情

result.answer_message.reference.image_detail对象

字段 类型 必然存在 说明
url string 图片链接
height string 图片高度
width string 图片宽度

result.answer_message.reference.video_detail对象

字段 类型 必然存在 说明
url string 视频链接
height string 视频高度
width string 视频宽度
size string 视频大小,单位Bytes
duration string 视频长度,单位秒

result.answer_message.token_usage对象

字段 类型 必然存在 说明
prompt_tokens int prompt(输入)token数
completion_tokens int completion(输出)token数
prompt_tokens_details object prompt(输入)token数详情
total_tokens int 总token数

result.answer_message.token_usage.prompt_tokens_details对象

字段 类型 必然存在 说明
search_tokens int 搜索结果占用的token数

请求curl示例

curl --location 'https://appbuilder.baidu.com/rpc/2.0/cloud_hub/v1/ai_engine/copilot_engine/service/v1/baidu_search_rag/general' \
--header 'Content-Type: application/json' \
--header 'X-Appbuilder-Authorization: Bearer <AppBuilder API Key>' \
--data '{
    "messages": [
    {
      "content": "介绍下珠穆朗玛峰",
      "role": "user"
    }
  ],
    "max_search_times" :1,
    "instruction": "你是一个旅游助手",
    "stream": true,
    "model": "ERNIE-3.5-8K",
    "enable_instruction_enhance": true,
    "enable_historical_query_rewriting": true,
    "customize_knowledge": [
        {"priority":0, "data": {"content":"珠穆朗玛峰(Qomolangma)简称珠峰,又意译作圣母峰,尼泊尔称为萨加马塔峰,藏语的“珠穆朗玛”意为“第三女神”。该峰位于中华人民共和国和尼泊尔交界的喜马拉雅山脉之上,终年积雪。常年低温。珠穆朗玛峰是喜马拉雅山脉的主峰。"}}
    ]
}'

正确返回示例

data: {"code": 0, "message": "", "result": {"is_completion": false, "answer_message": {"extra": [{"url": "https://baike.baidu.com/item/%E7%8F%A0%E7%A9%86%E6%9C%97%E7%8E%9B%E5%B3%B0/3058?fr=ge_ala", "ref_num": "2", "title": "珠穆朗玛峰", "date": null, "content": "珠穆朗玛峰(英语:Mount Qomol...", "icon": "https://appbuilder.bj.bcebos.com/baidu-search-rag-pro/icon/logo-baike.svg", "web_anchor": "百度百科", "resource_type": "web", "image_detail": {"url": null, "height": null, "width": null}, "vedio_detail": {"url": null, "height": null, "width": null, "size": null, "duration": null}, "given_to_llm": true}, {"url": "http://weibo.com/tv/show/1034:5077361029480494", "ref_num": "3", "title": "3分半钟卫星视角带你看完珠穆朗玛峰!", "date": "2024-12-05", "content": "3分半钟卫星视角带你看完珠穆朗玛峰! \\...", "icon": "https://appbuilder.bj.bcebos.com/baidu-search-rag-pro/icon/sina weibo.svg.png", "web_anchor": "微博", "resource_type": "web", "image_detail": {"url": null, "height": null, "width": null}, "vedio_detail": {"url": null, "height": null, "width": null, "size": null, "duration": null}, "given_to_llm": true}, {"url": "http://www.bilibili.com/video/BV1obvreZEoZ", "ref_num": "4", "title": "世界之巅—珠穆朗玛峰", "date": "2024-12-02", "content": "世界之巅—珠穆朗玛峰 林德艾润AROOX...", "icon": "https://appbuilder.bj.bcebos.com/baidu-search-rag-pro/icon/bilibili.ico", "web_anchor": "哔哩哔哩", "resource_type": "web", "image_detail": {"url": null, "height": null, "width": null}, "vedio_detail": {"url": null, "height": null, "width": null, "size": null, "duration": null}, "given_to_llm": true}, {"url": "https://haokan.baidu.com/v?pd=wisenatural&vid=12981671510033443617", "ref_num": "5", "title": "世界之巅——珠穆朗玛峰", "date": "2024-12-02", "content": "世界之巅——珠穆朗玛峰 珠穆朗玛峰 中国...", "icon": "https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=76251347,1123177279&fm=195&app=88&f=PNG?w=200&h=200", "web_anchor": "好看视频", "resource_type": "web", "image_detail": {"url": null, "height": null, "width": null}, "vedio_detail": {"url": null, "height": null, "width": null, "size": null, "duration": null}, "given_to_llm": true}], "token_usage": {}, "content": "", "rewriten_query": "介绍下珠穆朗玛峰", "request_id": "7afb088f-314f-4f26-b255-a41a05abd49f", "is_safe": true, "search_times": 1}}}

data: {"code": 0, "message": "", "result": {"is_completion": false, "answer_message": {"extra": [], "token_usage": {"prompt_tokens": 1220, "completion_tokens": 0, "total_tokens": 1220}, "content": "珠穆朗", "rewriten_query": "介绍下珠穆朗玛峰", "request_id": "7afb088f-314f-4f26-b255-a41a05abd49f", "is_safe": true, "need_clear_history": false, "search_times": 1}}}

data: {"code": 0, "message": "", "result": {"is_completion": false, "answer_message": {"extra": [], "token_usage": {"prompt_tokens": 1220, "completion_tokens": 0, "total_tokens": 1220}, "content": "玛峰", "rewriten_query": "介绍下珠穆朗玛峰", "request_id": "7afb088f-314f-4f26-b255-a41a05abd49f", "is_safe": true, "need_clear_history": false, "search_times": 1}}}

data: {"code": 0, "message": "", "result": {"is_completion": false, "answer_message": {"extra": [], "token_usage": {"prompt_tokens": 1220, "completion_tokens": 0, "total_tokens": 1220}, "content": "(Q", "rewriten_query": "介绍下珠穆朗玛峰", "request_id": "7afb088f-314f-4f26-b255-a41a05abd49f", "is_safe": true, "need_clear_history": false, "search_times": 1}}}
...

错误码

错误码 描述
400 客户端请求参数错误
500 服务端执行错误
501 调用模型服务超时
502 模型流式输出超时
其它 详见模型返回错误码
https://cloud.baidu.com/doc/WENXINWORKSHOP/s/tlmyncueh