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

百度AI搜索

组件描述

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

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

接口描述

该接口参考百度搜索结果,并使用大模型进行智能总结回答。

在线调试

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

权限说明

Authorization需要填写密钥。

接口定义

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: <token>
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 <密钥>' \
--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
上一篇
应用
下一篇
官方组件调用