旧版RAG API
概述
注意!本说明仅适用于2024年4月2日前发布的rag类应用。4月2日之后发布的应用目前支持通过对话调用,详情可查看对话。
API 调用流程
首先请登录工作台,创建个人应用并完成配置,其次点击发布应用并新增该应用应用token,然后即可参考下文应用调用接口说明,进行个人应用的API调用。
鉴权介绍
鉴权的主要目的是通过应用token,校验调用者的身份信息。在调用百度智能云千帆AI原生应用工作台提供的API前,必须先获取应用token。
如何获取应用token
在完成应用配置和效果调试后,可点击【发布】按钮完成应用发布。成功发布将获得体验分享链接并支持创建API调用应用token,你可通过分享该链接给朋友或其他开发者,使他们能够在web体验页立即体验你的AI原生应用demo;同时你也可以通过应用API调用接口,以API形式进行调用。
- 体验demo或API调用,都将消耗开发者的调用额度。
- 应用token为该应用的重要凭证,您最多可创建10个,且因应用token长期有效,请勿放在浏览器或外部客户端代码中;如意外泄露,删除应用token即可关闭对应访问入口。
- 重新生成体验地址或删除应用token后,旧地址和已删除应用token将无法继续请求服务,并无法恢复,请谨慎操作。
应用调用接口
您可通过应用token,和下文的应用调用接口进行个人应用的API调用。出于安全考虑,目前该接口不支持跨域请求。
请求说明
基本信息
请求地址:https://appbuilder.baidu.com/rpc/2.0/cloud_hub/v1/ai_engine/agi_platform/v1/instance/integrated
请求方式:POST
Header参数
参数 | 值 | 说明 |
---|---|---|
Content-Type | application/json | - |
X-Appbuilder-Authorization | Bearer {应用token} | 鉴权字段,请将“ {应用token}”(含大括号)整体替换为自己的应用token。示例:Bearer bce-v3***d666fbd02 |
Body参数
注意:要求使用 JSON 格式的结构体来描述一个请求的具体内容。
参数 | 是否必选 | 类型 | 可选值范围 | 描述 |
---|---|---|---|---|
query | 是 | string | - | 用户的请求query |
response_mode | 是 | string | streaming/blocking | 响应模式,支持以下两种: 1. streaming:流式响应,使用SSE协议 2. blocking:阻塞响应 |
conversation_id | 否 | uuid | - | 对话ID,仅对话型应用生效。在对话型应用中: 1. 空:表示表新建会话 2. 非空:表示在对应的会话中继续进行对话,服务内部维护对话历史 |
响应说明
参数 | 是否必选 | 类型 | 描述 |
---|---|---|---|
code | 是 | int | 错误码。非0为错误,请参考错误码说明 |
message | 是 | string | 报错信息 |
result | 否 | object | 返回结果 |
+ answer | 是 | string | 应用响应结果 |
+ conversation_id | 否 | uuid | 对话ID,仅对话式应用生效。如果是对话请求中没有conversation_id,则会自动生成一个 |
错误码
错误码 | 错误信息 | 描述 |
---|---|---|
400 | InvalidRequestArgumentError | 请求参数错误 |
401 | PermissionDeniedError | 权限错误 |
404 | NotFoundResource | 账户、应用、模型、模版等无法找到 |
500 | InternalServerError | 服务器内部错误 |
1001 | QuotaLimitExceeded | 调用超限,免费额度不足 |
1004 | LLMStreamingResponseError | 模型服务报错 |
1005 | TemplateValuesError | 模版参数校验错误 |
1006 | QuotaLimitExpired | 免费额度已过期 |
1007 | QianfanServiceError | 千帆服务无法访问 |
1008 | QianfanPermissionDeniedError | 千帆服务访问失败,一般是权限错误,请检查应用配置中千帆大模型平台应用是否被删除 |
1009 | QianfanApiExpired | 千帆付费模型服务已过期,请检查模型资源或账户余额是否充足 |
示例代码
基础生成应用与对话式类似,但不需要传conversation_id参数。 请求示例:以RAG问答应用对话为例,因为是首次对话,未传conversation_id参数。注意:示例代码中Bearer {API Key}的大括号为占位符,实际使用时请删除大括号并替换应用API Key。
curl --location 'https://appbuilder.baidu.com/rpc/2.0/cloud_hub/v1/ai_engine/agi_platform/v1/instance/integrated' \
--header 'Content-Type: application/json' \
--header 'X-Appbuilder-Authorization: Bearer {API Key}' \
--data '{
"query": "大模型SFT训练要收费吗",
"response_mode": "blocking"
}'| native2ascii -encoding UTF-8 -reverse
返回示例:对应的返回示例如下,后端生成了一个conversation_id,后续继续对话需要在请求时带上该conversation_id参数。
{
"code": 0,
"message": "",
"trace_id": "fc1a2d87-ac5d-4a44-acdd-1cfd3d0b9ce8",
"time": 1699005894181,
"result": {
"answer": "**大模型SFT训练要收费**。\n\n大模型SFT训练不同服务类型的单价不同,如ERNIE-Bot-turbo大模型公有云训练服务-SFT-全量更新的单价为0.1元/千tokens,BLOOMZ-7B大模型公有云训练服务-SFT-全量更新的单价为0.08元/千tokens等。",
"conversation_id": "384abd07-f73a-4336-8ca7-74256fb40b1c"
}
}
在线调试
AppBuilder提供了API调试平台,支持Python、Java、PHP、C#、Go、Node.js、C++ 7种主流语言示例代码自动生成。同时可以帮助开发者在线调试接口,支持查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用。