logo
1

通过SDK或API调用精调后的大模型

一、准备工作


我们训练后的模型,经评估符合预期,即可发布模型为服务。
将模型发布为服务,首先创建“我的服务”,后续才能通过SDK或者API调用,创建服务如下:
填写内容,注意选择自己训练好的模型及其版本,API地址需要自己填后缀(mymodel),如下:
提交订单,等待服务发布成功。

二、SDK方式


调用示例,使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk。
命令行方式使用SDK:
  
  
# 安装包(Python >= 3.7):pip install qianfan
import os
import qianfan
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "ALTAKqk85N***********BcS3"
os.environ["QIANFAN_SECRET_KEY"] = "3416b7f7271b*****************1757ae50"
chat_comp = qianfan.ChatCompletion()
# 使用自行发布的模型
resp = chat_comp.do(endpoint="chat_with_mymodel", messages=[{
"role": "user",
"content": "【合同文本】 甲方(用人单位)名称:合联电子科技有限公司 统一社会信用代码:91310105MA1FW7DY4H 地址:上海市徐汇区漕溪北路333号"
}], stream=True)
# 可以通过resp["body"]获取接口返回的内容
for r in resp:
print(r["body"])
使用了Flask提供API接口,流式输出,通过user_input参数传入问题,api_sftmodel.py代码如下:
  
  
from flask import Flask, request, jsonify,Response
import os
import qianfan
app = Flask(__name__)
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "ALTAKqk85NxpK********C68BcS3"
os.environ["QIANFAN_SECRET_KEY"] = "3416b7f7271b************25c61757ae50"
chat_comp = qianfan.ChatCompletion()
@app.route('/chat_with_mymodel', endpoint='chat_with_mymodel', methods=['POST'])
def chat_with_qianfanSDK():
user_input = request.args.get('user_input')
# 使用自行发布的模型
resp = chat_comp.do(endpoint="lydc22fv_mymodel", messages=[{
"role": "user",
"content": user_input
}], stream=True)
# 可以通过resp["body"]获取接口返回的内容
def sse_output():
for r in resp:
yield f"data: {r['body']['result']}\n\n" # SSE 要求每条消息后有两个换行符
return Response(sse_output(), mimetype='text/event-stream')
######使用qianfan SDK调用大模型流式返回示例-end#######
if __name__ == '__main__':
app.run(debug=True)

注意:上述代码中的endpoint="lydc22fv_mymodel"是(服务详情页面)如下地址的最后部分,不是全部url。
上传代码,在Linux服务器上启动代码:
  
  
# 服务工作进程数
SERVER_WORKER_AMOUNT=1
# 服务工作进程启动方式
SERVER_WORKER_CLASS=gevent
# 服务超时时间
GUNICORN_TIMEOUT=60
gunicorn --bind "0.0.0.0:5000" --workers ${SERVER_WORKER_AMOUNT} --worker-class ${SERVER_WORKER_CLASS} --timeout ${GUNICORN_TIMEOUT} "api_sftmodel:app"

启动成功后,在终端可以看到如下信息:
使用Postman提交请求进行测试。
地址:http://114...35:5000/chat_with_mymodel
参数名称:user_input
参数值:
  
  
你是一个从合同中提取关键信息的智能助手。你的任务是分析【合同文本】并提取【关键信息】。
你需要向我汇报的内容是:
1.汇报合同是否缺失劳动合同必备条款;
2.汇报【关键信息】有没有在合同中缺失;
3.汇报你提取的关键信息,以{"要求提取的关键信息":"你提取的关键信息内容"}的json格式汇报。
4.按照上述顺序连续汇报一段字符串,并且不用输出顺序号和任何多余信息。
下面是你要分析的【合同文本】和要提取的【关键信息】:
【合同文本】
甲方(用人单位)
名称:上海瑞丽科技有限公司
统一社会信用代码:91310105MA1FW69D0P
地址:上海市徐汇区田林路123号
联系人:张华
联系方式:13800138000
乙方(劳动者)
姓名:李明
身份证号码:320582199002147890
住所:江苏省苏州市吴江区盛泽镇东方路233号
联系人:李明
联系方式:13900139000
本合同各方经平等自愿协商,根据《中华人民共和国民法典》《中华人民共和国劳动合同法》及相关法规,签订本合同以共同遵守。
法定代表人(签字):
乙方(签字):李明
签订日期:2023年04月01日
【关键信息】
工作地点, 如果没有回答无
返回流式结果:

三、API方式调用

步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“;在Linux服务器上执行:
curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/imyowpg3_guo?access_token=24.3d7202219f9c21c772c80eace6759**********.282335-114240861' -d '{ "messages": [ {"role":"user","content":"介绍一下北京"} ]}' | iconv -f utf-8 -t utf-8
返回结果:
以python代码方式实现API调用。
  
  
import requests
# 请求的URL
url = 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/lydc22fv_mymodel?access_token=24.0f51a248fc244d46fb0b1f28ec8cb6d7.2***************-114240861'
# 要发送的数据
data = {
"messages": [
{"role": "user", "content": "介绍一下北京"}
]
}
# 发送POST请求
response = requests.post(url, json=data)
# 打印响应内容
print(response.text)

四、官方API文档

评论
用户头像