使用访问凭证access_token鉴权调用API流程
更新时间:2025-02-14
本文介绍了使用访问凭证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天,生产环境注意及时刷新。
1# 替换下列示例中的 API Key与Secret Key
2curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API Key】&client_secret=【Secret Key】'
1# 替换下列示例中的API Key与Secret Key
2import requests
3import json
4
5
6def main():
7
8 url = "https://aip.baidubce.com/oauth/2.0/token?client_id=【API Key】&client_secret=【Secret Key】&grant_type=client_credentials"
9
10 payload = json.dumps("")
11 headers = {
12 'Content-Type': 'application/json',
13 'Accept': 'application/json'
14 }
15
16 response = requests.request("POST", url, headers=headers, data=payload)
17
18 return response.json().get("access_token")
19
20
21if __name__ == '__main__':
22 access_token = main()
23 print(access_token)
步骤四. 调用API接口
调用千帆ModelBuilder提供的相关API接口,详见API列表。 例如,调用模型ERNIE-3.5-8K,示例如下:
1# 使用步骤三获取的access_token值,替换下列示例中的“步骤三调用接口获取的access_token”
2curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=[步骤三调用接口获取的access_token]' -d '{
3 "messages": [
4 {"role":"user","content":"你好"}
5 ]
6}'
1import requests
2import json
3
4# 使用步骤三获取的access_token值,替换下列示例中的“步骤三调用接口获取的access_token”
5def main():
6 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=[步骤三调用接口获取的access_token]"
7
8 payload = json.dumps({
9 "messages": [
10 {
11 "role": "user",
12 "content": "你好"
13 }
14 ]
15 })
16 headers = {
17 'Content-Type': 'application/json'
18 }
19
20 response = requests.request("POST", url, headers=headers, data=payload)
21
22 print(response.text)
23
24
25if __name__ == '__main__':
26 main()