自定义模型调用API
千帆支持HuggingFace Transformer架构的自定义大模型导入。本文介绍了自定义导入模型发布为服务后,相关API调用规范。
输入输出模式
自定义导入模型包含2种输入输出模式,不同模式调用的API不同,开发者可以根据模型所支持的模式选择相应的API使用:
- 对话模式,创建chat,发起一次对话请求,支持多轮对话。
- 续写模式,创建completion,用于发起一次文本续写请求。
如何导入并部署第三方模型,请查看快速导入并部署第三方模型。
对话模式
使用对话模式,创建chat,发起一次对话请求。
注意事项
-
本文API,支持2种鉴权方式。不同鉴权方式,调用方式不同,使用Header、Query参数不同,详见本文请求说明。开发者可以选择以下任一种方式进行鉴权。
在线调试
百度智能云千帆提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用,更多内容请查看API在线调试介绍。
请求说明
基本信息
请求地址: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/{申请发布时填写的API地址}
请求方式: POST
API地址说明
申请发布时填写的API地址,相关内容请查看大模型服务使用说明-发布服务-服务配置。
Header参数
根据不同鉴权方式,查看对应Header参数。
- 访问凭证access_token鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
- 基于安全认证AK/SK进行签名计算鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
x-bce-date | string | 否 | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z |
Authorization | string | 是 | 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具 |
Query参数
只有访问凭证access_token鉴权方式,需使用Query参数。
- 访问凭证access_token鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
access_token | string | 是 | 通过API Key和Secret Key获取的access_token,参考Access Token获取 |
Body参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
messages | List(message) | 是 | 聊天上下文信息。说明: (1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话 (2)最后一个message为当前请求的信息,前面的message为历史对话信息 (3)必须为奇数个成员,成员中message的role必须依次为user、assistant (4)最后一个message的content长度(即此轮对话的问题)不能超过3000 token;如果messages中content总长度大于3000 token,系统会依次遗忘最早的历史会话,直到content的总长度不超过3000 token |
stream | bool | 否 | 是否以流式接口的形式返回数据,默认false |
temperature | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)范围 (0, 1.0],不能为0 (3)建议该参数和top_p只设置1个 (4)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
top_k | int | 否 | Top-K 采样参数,在每轮token生成时,保留k个概率最高的token作为候选。说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围:正整数 (3)默认值以generation_config.json配置为准,如果未配置默认值为50 |
top_p | float | 否 | 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围 [0, 1.0] (3)建议该参数和temperature只设置1个 (4)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)取值范围:[1.0, 2.0] (3)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
stop | List(String) | 否 | 生成停止标识。当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符。 (2)最多4个元素 |
user_id | string | 否 | 表示最终用户的唯一标识符 |
message说明
名称 | 类型 | 描述 |
---|---|---|
role | string | 当前支持以下: user: 表示用户 assistant: 表示对话助手 |
content | string | 对话内容,不能为空 |
响应说明
名称 | 类型 | 描述 |
---|---|---|
id | string | 本轮对话的id |
object | string | 回包类型。 chat.completion:多轮对话返回 |
created | int | 时间戳 |
sentence_id | int | 表示当前子句的序号。只有在流式接口模式下会返回该字段 |
is_end | bool | 表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段 |
is_truncated | bool | 当前生成的结果是否被截断 |
result | string | 对话返回结果 |
need_clear_history | bool | 表示用户输入是否存在安全,是否关闭当前会话,清理历史会话信息 true:是,表示用户输入存在安全风险,建议关闭当前会话,清理历史会话信息 false:否,表示用户输入无安全风险 |
ban_round | int | 当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1 |
usage | usage | token统计信息 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数 |
completion_tokens | int | 回答tokens数 |
total_tokens | int | tokens总数 |
注意 :同步模式和流式模式,响应参数返回不同,详细内容参考示例描述。
- 同步模式下,响应参数为以上字段的完整json包。
- 流式模式下,各字段的响应参数为 data: {响应参数}。
示例
以访问凭证access_token鉴权方式为例,说明如何调用API,示例如下。
请求示例(单轮)
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”;替换示例中的申请发布时填写的API名称
curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/[申请发布时填写的API名称]?access_token=[步骤一调用接口获取的access_token]' -d '{
"messages": [
{"role":"user","content":"介绍一下百度智能云千帆"}
]
}' | iconv -f utf-8 -t utf-8
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
"""
替换下列示例中的申请发布时填写的API名称
"""
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/[申请发布时填写的API名称]?access_token=" + get_access_token()
payload = json.dumps({
"messages": [
{
"role": "user",
"content": "介绍一下百度智能云千帆"
}
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
响应示例(单轮)
HTTP/1.1 200 OK
Date: Thu, 23 Mar 2023 03:12:03 GMT
Content-Type: application/json;charset=utf-8
Statement: AI-generated
{
"id": "as-bcmt5ct4iy",
"object": "chat.completion",
"created": 1680167072,
"result": "百度智能云千帆是百度旗下的企业级大模型生产平台,提供包括文心一言在内的大模型服务以及第三方大模型服务,还提供大模型开发和应用的整套工具链。",
"is_truncated":false,
"need_clear_history": false,
"usage": {
"prompt_tokens": 7,
"completion_tokens": 67,
"total_tokens": 74
}
}
请求示例(多轮)
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”;替换示例中的申请发布时填写的API名称
curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/[申请发布时填写的api名称}]?access_token=[步骤一调用接口获取的access_token]' -d '{
"messages": [
{"role":"user","content":"请介绍一下百度智能云千帆"},
{"role":"assistant","content":"百度智能云千帆是百度旗下的企业级大模型生产平台,提供包括文心一言在内的大模型服务以及第三方大模型服务,还提供大模型开发和应用的整套工具链。"},
{"role":"user","content": "我在上海,周末可以去哪里玩?"},
{"role":"assistant","content": "上海是一个充满活力和文化氛围的城市,有很多适合周末游玩的地方。以下是几个值得推荐的地方:\n\n1. 上海科技馆:上海科技馆是中国大陆最大的科技馆之一,有许多互动展览和科学实验室,可以让您了解科技的发展历史和最新成果。\n2. 上海博物馆:上海博物馆是一座集艺术、历史和文化于一体的博物馆,有许多精美的艺术品和文物,可以让您深入了解中国和世界的文化历史。\n3. 外滩:外滩是上海的标志性景点之一,有许多高楼大厦和繁华的商业街区,是欣赏黄浦江美景和城市风貌的好去处。\n4. 上海迪士尼乐园:上海迪士尼乐园是世界上最大的迪士尼主题公园之一,有许多精彩的游乐项目和演出,可以让您尽情享受娱乐和欢乐。\n5. 上海野生动物园:上海野生动物园是一个以自然保护为主题的野生动物园,有许多珍稀动物和植物,可以让您近距离接触大自然。\n\n这些地方都是上海周末游玩的好去处,可以根据自己的兴趣和需求选择合适的行程。"},
{"role":"user","content": "周末这里的天气怎么样?"}
]
}' | iconv -f utf-8 -t utf-8
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
"""
替换下列示例中的申请发布时填写的API名称
"""
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/[申请发布时填写的API名称]?access_token=" + get_access_token()
payload = json.dumps({
"messages": [
{
"role": "user",
"content": "请介绍一下百度智能云千帆"
},
{
"role": "assistant",
"content": "百度智能云千帆是百度旗下的企业级大模型生产平台,提供包括文心一言在内的大模型服务以及第三方大模型服务,还提供大模型开发和应用的整套工具链。"
},
{
"role": "user",
"content": "我在上海,周末可以去哪里玩?"
},
{
"role": "assistant",
"content": "上海是一个充满活力和文化氛围的城市,有很多适合周末游玩的地方。以下是几个值得推荐的地方:\n\n1. 上海科技馆:上海科技馆是中国大陆最大的科技馆之一,有许多互动展览和科学实验室,可以让您了解科技的发展历史和最新成果。\n2. 上海博物馆:上海博物馆是一座集艺术、历史和文化于一体的博物馆,有许多精美的艺术品和文物,可以让您深入了解中国和世界的文化历史。\n3. 外滩:外滩是上海的标志性景点之一,有许多高楼大厦和繁华的商业街区,是欣赏黄浦江美景和城市风貌的好去处。\n4. 上海迪士尼乐园:上海迪士尼乐园是世界上最大的迪士尼主题公园之一,有许多精彩的游乐项目和演出,可以让您尽情享受娱乐和欢乐。\n5. 上海野生动物园:上海野生动物园是一个以自然保护为主题的野生动物园,有许多珍稀动物和植物,可以让您近距离接触大自然。\n\n这些地方都是上海周末游玩的好去处,可以根据自己的兴趣和需求选择合适的行程。"
},
{
"role": "user",
"content": "周末这里的天气怎么样?"
}
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
响应示例(多轮)
HTTP/1.1 200 OK
Date: Mon, 12 Apr 2021 06:27:55 GMT
Content-Type: application/json;charset=utf-8
Statement: AI-generated
{
"id": "as-1tbbc0x5af",
"object": "chat.completion",
"created": 1680166551,
"result": "2023年4月2日上海气温13~21℃,多云转阴,东风3-4级,空气质量良,空气质量指数55。\n\n\n\n近7日天气信息:\n\n2023-03-29:阴转小雨,11~17℃,东北风<3级,空气质量良。\n\n2023-03-30:小雨转阴,10~14℃,东风3-4级,空气质量良。\n\n2023-03-31:多云,12~18℃,东风3-4级,空气质量优。\n\n2023-04-01:多云转晴,11~20℃,东南风3-4级,空气质量良。\n\n2023-04-02:多云转阴,13~21℃,东风3-4级,空气质量良。\n\n2023-04-03:阴转中雨,15~18℃,东南风4-5级,空气质量良。\n\n2023-04-04:中雨转小雨,10~17℃,南风5-6级,空气质量优。\n\n2023-04-05:阴,9~14℃,西北风3-4级,空气质量优。",
"is_truncated":false,
"need_clear_history": false,
"usage": {
"prompt_tokens": 470,
"completion_tokens": 198,
"total_tokens": 668
}
}
请求示例(流式)
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”;替换示例中的申请发布时填写的API名称
curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/[申请发布时填写的API名称]?access_token=[步骤一调用接口获取的access_token]' -d '{
"messages": [
{"role":"user", "content": "给我推荐一些自驾游路线"}
],
"stream": true
}'
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
"""
替换下列示例中的申请发布时填写的API名称
"""
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/[申请发布时填写的API名称]?access_token=" + get_access_token()
payload = json.dumps({
"messages": [
{
"role": "user",
"content": "给我推荐一些自驾游路线"
}
],
"stream": True
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload, stream=True)
for line in response.iter_lines():
print(line)
if __name__ == '__main__':
main()
响应示例(流式)
HTTP/1.1 200 OK
Date: Mon, 12 Apr 2021 06:27:55 GMT
Content-Type: text/event-stream;charset=utf-8
Cache-Control: no-cache
Statement: AI-generated
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166793,"sentence_id":0,"is_end":false,"is_truncated":false,"result":"以下是一些适合自驾游的路线推荐:\n\n1.","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":16,"total_tokens":27}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166794,"sentence_id":1,"is_end":false,"is_truncated":false,"result":" 中国大陆最美的景观大道:川藏线,从成都出发,沿着川藏公路一路向西,经过稻城亚丁、理塘、巴塘、芒康等美景,最终到达拉萨。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":50,"total_tokens":77}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166795,"sentence_id":2,"is_end":false,"is_truncated":false,"result":"\n2. 丝绸之路:这是一条贯穿中国东西部的公路,从上海出发,经过西安、兰州、乌鲁木齐等城市,最终到达喀什。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":43,"total_tokens":120}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166796,"sentence_id":3,"is_end":false,"is_truncated":false,"result":"沿途可以欣赏到中国北方和南方的不同景色。\n3. 西北大环线:从成都出发,经过都江堰、青城山、丹巴、塔公草原、新都桥等景点,最终到达西宁。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":56,"total_tokens":176}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166799,"sentence_id":4,"is_end":false,"is_truncated":false,"result":"这条路线可以领略到中国西北地区的壮美风光。\n4. 东北环线:从沈阳出发,经过长春、吉林、延吉等城市,最终到达哈尔滨。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":48,"total_tokens":224}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166800,"sentence_id":5,"is_end":false,"is_truncated":false,"result":"沿途可以欣赏到中国东北地区的广阔草原和森林。\n5. 西南环线:从成都出发,经过雅安、康定、理塘、稻城亚丁等景点,最终到达香格里拉。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":54,"total_tokens":278}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166802,"sentence_id":6,"is_end":false,"is_truncated":false,"result":"这条路线可以领略到中国西南地区的高山峡谷和民族文化。\n6. 海南环线:从三亚出发,经过海口、文昌、万宁等城市,最终到达三亚。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":52,"total_tokens":330}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166803,"sentence_id":7,"is_end":false,"is_truncated":false,"result":"这条路线可以欣赏到中国南方的海岸线和热带雨林。\n7. 滇藏线:从昆明出发,经过大理、丽江、香格里拉等景点,最终到达西藏拉萨。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":52,"total_tokens":382}}
data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166804,"sentence_id":8,"is_end":true,"is_truncated":false,"result":"这条路线可以领略到中国西南地区和西藏地区的自然风光和人文景观。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":30,"total_tokens":412}}
续写模式
使用续写模式,创建completion,发起一次文本续写请求。
注意事项
-
本文API,支持2种鉴权方式。不同鉴权方式,调用方式不同,使用Header、Query参数不同,详见本文请求说明。开发者可以选择以下任一种方式进行鉴权。
请求说明
基本信息
请求地址: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/{申请发布时填写的API地址}
请求方式: POST
API地址说明
申请发布时填写的API地址,相关内容请查看大模型服务使用说明-发布服务-服务配置。
Header参数
根据不同鉴权方式,查看对应Header参数。
- 访问凭证access_token鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
- 基于安全认证AK/SK进行签名计算鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
x-bce-date | string | 否 | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z |
Authorization | string | 是 | 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具 |
Query参数
只有访问凭证access_token鉴权方式,需使用Query参数。
- 访问凭证access_token鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
access_token | string | 是 | 通过API Key和Secret Key获取的access_token,参考Access Token获取 |
Body参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
prompt | string | 是 | 请求信息 |
stream | bool | 否 | 是否以流式接口的形式返回数据,默认false |
temperature | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)范围 (0, 1.0],不能为0 (3)建议该参数和top_p只设置1个 (4)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
top_k | int | 否 | Top-K 采样参数,在每轮token生成时,保留k个概率最高的token作为候选。说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围:正整数 (3)默认值以generation_config.json配置为准,如果未配置默认值为50 |
top_p | float | 否 | 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围 [0, 1.0] (3)建议该参数和temperature只设置1个 (4)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)取值范围:[1.0, 2.0] (3)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
stop | List(String) | 否 | 生成停止标识。当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符。 (2)最多4个元素 |
user_id | string | 否 | 表示最终用户的唯一标识符 |
响应说明
名称 | 类型 | 描述 |
---|---|---|
id | string | 本轮对话的id |
object | string | 回包类型。completion:文本生成返回 |
created | int | 时间戳 |
sentence_id | int | 表示当前子句的序号。只有在流式接口模式下会返回该字段 |
is_end | bool | 表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段 |
result | string | 对话返回结果 |
is_safe | bool | 1:表示输入内容无安全风险 0:表示输入内容有安全风险 |
usage | usage | token统计信息 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数 |
completion_tokens | int | 回答tokens数 |
total_tokens | int | tokens总数 |
注意 :同步模式和流式模式,响应参数返回不同。
- 同步模式下,响应参数为以上字段的完整json包。
- 流式模式下,各字段的响应参数为 data: {响应参数}。
示例
以访问凭证access_token鉴权方式为例,说明如何调用API,示例如下。
请求示例(单轮)
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”;替换示例中的申请发布时填写的API名称
curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/[申请发布时填写的API名称]?access_token=[步骤一调用接口获取的access_token]' -d '{
"prompt":"Introduce the city Beijing"
}' | iconv -f utf-8 -t utf-8
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
"""
替换下列示例中的申请发布时填写的API名称
"""
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/[申请发布时填写的API名称]?access_token=" + get_access_token()
payload = json.dumps({
"prompt":"Introduce the city Beijing"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
响应示例(单轮)
{
"id": "as-rq3wwusja8",
"object": "completion",
"created": 1693811110,
"result": ", China.\nBeijing is the capital city of China and is located in the northern part of the country. It is the largest city in China and is known for its modern architecture, cultural heritage, and historical significance. The city is home to many famous landmarks, such as the Forbidden City, Tiananmen Square, and the Great Wall of China. It is also known for its vibrant nightlife, delicious food, and stunning scenery.",
"is_safe": 1,
"usage": {
"prompt_tokens": 5,
"completion_tokens": 92,
"total_tokens": 97
}
}
请求示例(流式)
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”;替换示例中的申请发布时填写的API名称
curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/[申请发布时填写的API名称]?access_token=[步骤一调用接口获取的access_token]' -d '{
"prompt":"Introduce the city Beijing",
"stream": true
}'
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
"""
替换下列示例中的申请发布时填写的API名称
"""
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/[申请发布时填写的API名称]?access_token=" + get_access_token()
"prompt":"Introduce the city Beijing",
"stream": True
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload, stream=True)
for line in response.iter_lines():
print(line)
if __name__ == '__main__':
main()
响应示例(流式)
data: {"id":"as-9092ws9jgh","object":"completion","created":1693811126,"sentence_id":0,"is_end":false,"result":", China.\nBeijing is the capital city of China and is located in the northern part of the country. It is the largest city in China and is known for its modern architecture, cultural heritage, and historical significance. The city is home to many famous landmarks, such as the Forbidden City, Tiananmen Square","is_safe":1,"usage":{"prompt_tokens":5,"completion_tokens":67,"total_tokens":72}}
data: {"id":"as-9092ws9jgh","object":"completion","created":1693811128,"sentence_id":1,"is_end":true,"result":", and the Great Wall of China. It is also known for its vibrant nightlife, delicious food, and stunning scenery.","is_safe":1,"usage":{"prompt_tokens":5,"completion_tokens":24,"total_tokens":96}}
错误码
如果请求错误,服务器返回的JSON文本包含以下参数。
名称 | 描述 |
---|---|
error_code | 错误码 |
error_msg | 错误描述信息,帮助理解和解决发生的错误 |
例如Access Token失效返回以下内容,需要重新获取新的Access Token再次请求。
{
"error_code": 110,
"error_msg": "Access token invalid or no longer valid"
}
千帆大模型平台相关错误码,请查看错误码说明。