使用API调用模型
用户可以通过API调用盘古大模型服务提供的基模型以及用户训练后的模型。训练后的模型需使用“在线部署”,才可以使用本章节提供的方法进行调用。本章节分别介绍使用Postman调用API和多语言(Java/Python/Go)调用API的方法,仅供测试使用。
前提条件
使用API调用模型前,需要先开通盘古大模型服务。
使用Postman调用API
- 获取API请求地址。
- 在“服务管理”页面,单击所需API的“查看详情”按钮。
图1 服务管理
- 在“模型列表”中选择需要调用的模型,单击操作栏中的“调用路径”,复制对应模型的API请求地址。
图2 获取API请求地址
- 在“服务管理”页面,单击所需API的“查看详情”按钮。
- 获取Token。
在调用盘古API过程中,Token起到了身份验证和权限管理的作用。
在调用盘古API前,需要先使用“获取Token”接口,获取Token值,再将Token值传入盘古API的请求header参数中,实现盘古服务在接收到用户的API请求时进行身份验证。
获取token步骤如下:
- 登录“我的凭证 > API凭证”页面,获取user name、domain name、project id。
project id参数需要与盘古服务部署区域一致。例如,盘古大模型部署在“西南-贵阳一”区域,需要获取与“西南-贵阳一”区域对应的project id。图3 查看盘古服务区域图4 获取user name、domain name、project id
- 下载并安装Postman调测工具。
- 打开Postman,新建一个POST请求,并输入“西南-贵阳一”区域的“获取Token”接口。并填写请求Header参数。
- 接口地址为:https://iam.cn-southwest-2.myhuaweicloud.com/v3/auth/tokens
- 请求Header参数名为Content-Type,参数值为application/json
图5 填写获取Token接口 - 填写“获取token”接口的请求体。在Postman中选择“Body > raw”选项,参考图6复制并填入以下代码,并填写user name、domain name、password。
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //华为云账号密码 "domain": { "name": "domainname" //账号名 } } } }, "scope": { "project": { "name": "cn-southwest-2" //盘古大模型当前部署在“西南-贵阳一”区域,取值为cn-southwest-2 } } } }
- 单击Postman界面“Send”按钮,发送请求。当接口返回状态为201时,表示Token接口调用成功,此时单击“Headers”选项,找到并复制“X-Subject-Token”参数对应的值,该值即为需要获取的Token。
图7 获取Token
- 登录“我的凭证 > API凭证”页面,获取user name、domain name、project id。
- 调用盘古API。
- 在Postman中新建POST请求,并填入盘古API请求地址。
- 参考图8填写2个请求Header参数。
- 参数名为Content-Type,参数值为application/json。
- 参数名为X-Auth-Token,参数值为获取Token中获取的Token值。
- 在Postman中选择“Body > raw”选项,参考图9复制并填入以下代码,填写请求Body。
{ "prompt": "写一个穿越到宋朝的故事。", "max_tokens": 600, "temperature": 0.9, "n": 1 }
- 单击Postman界面的“Send”按钮,发送请求。当接口返回状态为200时,表示盘古API调用成功,并可在Postman中看到接口的返回信息。
图10 获取盘古API调用结果
- 使用Postman调用API时,如果出现SSL证书无效相关的报错,如“self signed certificate”(自签名证书)、“certificate has expired”(证书已过期)或“unable to verify the first certificate”(无法验证第一个证书)等。可以在Postman的设置中关闭“SSL certificate verification”选项。
- 关于盘古大模型API的详细请求参数、响应参数介绍请参见《API参考》文档。
使用多语言(Java/Python/Go)调用API
- 获取API请求地址。
- 在“服务管理”页面,单击所需API的“查看详情”按钮。
图11 服务管理
- 在“服务列表”中选择需要调用的模型,单击操作栏中的“调用路径”,复制对应模型的API请求地址。
图12 获取API请求地址
- 在“服务管理”页面,单击所需API的“查看详情”按钮。
- 获取AK/SK。
- 登录“我的凭证 > 访问密钥”页面,单击“新增访问密钥”。
图13 新增访问密钥
- 依据页面提示完成AK、SK的创建,并下载credentials.csv文件,Access Key Id即为AK,Secret Access Key即为SK,AK和SK需要妥善保存,避免泄露导致安全风险,如果不慎丢失,需要及时删除,并重新生成。
- 登录“我的凭证 > 访问密钥”页面,单击“新增访问密钥”。
- 使用SDK调用盘古API。
- 进入“开发体验馆 Codelabs”页面,查看盘古API场景示例如下。
图14 开发体验馆
- 选择要调用的场景示例,按照使用参考完成前置条件,可选择不同语言SDK,图15以Java为例。
参数说明如下:
ak,sk即为2中获取到的AK/SK,建议加密使用,避免引起安全问题。
其他参数可从获取API请求地址中获取。获取到的请求地址结构如下:
https://pangu.{region_id}.myhuaweicloud.com/v1/{project_id}/deployments/{deployment_id}/chat/completions
- regionId为{region_id}
- endpoint为https://pangu.cn-east-3.myhuaweicloud.com
- projectId为{project_id}
- deploymentId为{deployment_id}
- 利用SDK编写代码调用API。
图16 调用API
- 结果响应如图17所示。
- 进入“开发体验馆 Codelabs”页面,查看盘古API场景示例如下。