API 调用说明
更新时间:2023-12-20
概述
本文介绍了百度智能云千帆AI原生应用工作台提供的API调用应用能力以及如何调用API的流程等。
API 调用流程
首先请登录工作台,创建个人应用并完成配置,其次点击发布应用并新增该应用API Key(密钥),然后即可参考下文应用调用接口说明,进行个人应用的API调用。
鉴权介绍
鉴权的主要目的是通过API Key(密钥),校验调用者的身份信息。在调用百度智能云千帆AI原生应用工作台提供的API前,必须先获取API Key(密钥)。
如何获取 API Key(密钥)
在完成应用配置和效果调试后,可点击【发布】按钮完成应用发布。成功发布将获得体验分享链接并支持创建API调用密钥,你可通过分享该链接给朋友或其他开发者,使他们能够在web体验页立即体验你的AI原生应用demo;同时你也可以通过应用API调用接口,以API形式进行调用。
- 体验demo或API调用,都将消耗开发者的调用额度。
- API Key(密钥)为该应用的重要凭证,您最多可创建10个,且因密钥长期有效,请勿放在浏览器或外部客户端代码中;如意外泄露,删除密钥即可关闭对应访问入口。
- 重新生成体验地址或删除API Key(密钥)后,旧地址和已删除密钥将无法继续请求服务,并无法恢复,请谨慎操作。
web体验页应用demo示意:
应用调用接口
您可通过API Key(密钥),和下文的应用调用接口进行个人应用的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 {API Key} | 鉴权字段,大括号内需填入API Key(密钥) |
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 | 千帆服务访问失败,一般是权限错误 |
示例代码
基础生成应用与对话式类似,但不需要传conversation_id参数。 请求示例:以RAG问答应用对话为例,因为是首次对话,未传conversation_id参数。
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"
}
}