概述

本文介绍了百度智能云千帆AI原生应用工作台提供的API调用应用能力以及如何调用API的流程等。

API 调用流程

image.png

首先请登录工作台,创建个人应用并完成配置,其次点击发布应用并新增该应用应用token,然后即可参考下文应用调用接口说明,进行个人应用的API调用。

鉴权介绍

鉴权的主要目的是通过应用token,校验调用者的身份信息。在调用百度智能云千帆AI原生应用工作台提供的API前,必须先获取应用token。

如何获取应用token

在完成应用配置和效果调试后,可点击【发布】按钮完成应用发布。成功发布将获得体验分享链接并支持创建API调用应用token,你可通过分享该链接给朋友或其他开发者,使他们能够在web体验页立即体验你的AI原生应用demo;同时你也可以通过应用API调用接口,以API形式进行调用。

  • 体验demo或API调用,都将消耗开发者的调用额度。
  • 应用token为该应用的重要凭证,您最多可创建10个,且因应用token长期有效,请勿放在浏览器或外部客户端代码中;如意外泄露,删除应用token即可关闭对应访问入口。
  • 重新生成体验地址或删除应用token后,旧地址和已删除应用token将无法继续请求服务,并无法恢复,请谨慎操作。

image.png

应用调用接口

您可通过应用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
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"
    }
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐