使用访问凭证access_token鉴权调用API流程
更新时间:2024-11-11
本文介绍了使用访问凭证access_token鉴权调用API的流程。
API 调用流程简介
API 的调用流程如下图所示。
- 创建应用。创建千帆ModelBuilder应用后,获取AppID、API Key、Secret Key 等信息。
- API 授权。平台已默认开通API调用权限,无需申请授权。
- 获取接口访问凭证 access_token。调用获取access_token接口获取 access_token ,通过 access_token 鉴权调用者身份。
- 调用API接口。
API 调用流程
步骤一. 创建应用
(1)登录千帆ModelBuilder控制台。
请您注册并登录千帆ModelBuilder控制台 。
注意:为保障服务稳定运行,账户最好不处于欠费状态。
(2)创建千帆ModelBuilder应用
- 如果无应用,需创建应用。
在控制台-模型服务-应用接入-我的应用页面,点击创建应用。
- 如果已有应用,此步骤可跳过。
注意: 需创建旧版应用,即非v2协议模型服务接口对应的应用。如果是V2协议模型服务对应的应用,无API Key、Secret Key,更多说明请参考名词解释。
(3)创建应用后,获取API Key、Secret Key。
步骤二. API授权
平台已默认开通API调用权限,无需申请授权。
步骤三. 获取访问凭证
根据步骤一获取的API Key、Secret Key,获取access_token。参考以下获取access_token,更多详情方法请参考获取access_token。
注意:access_token默认有效期30天,生产环境注意及时刷新。
# 替换下列示例中的 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 Key与Secret Key
import requests
import json
def main():
url = "https://aip.baidubce.com/oauth/2.0/token?client_id=【API Key】&client_secret=【Secret Key】&grant_type=client_credentials"
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")
if __name__ == '__main__':
access_token = main()
print(access_token)
步骤四. 调用API接口
调用千帆ModelBuilder提供的相关API接口,详见API列表。 例如,调用模型ERNIE-3.5-8K,示例如下:
# 使用步骤三获取的access_token值,替换下列示例中的“步骤三调用接口获取的access_token”
curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=[步骤三调用接口获取的access_token]' -d '{
"messages": [
{"role":"user","content":"你好"}
]
}'
import requests
import json
# 使用步骤三获取的access_token值,替换下列示例中的“步骤三调用接口获取的access_token”
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=[步骤三调用接口获取的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()