1
通过SDK或API调用精调后的大模型
大模型开发/技术交流
- 大模型推理
- API
- 大模型训练
9月26日3290看过
一、准备工作
我们训练后的模型,经评估符合预期,即可发布模型为服务。
将模型发布为服务,首先创建“我的服务”,后续才能通过SDK或者API调用,创建服务如下:
填写内容,注意选择自己训练好的模型及其版本,API地址需要自己填后缀(mymodel),如下:
提交订单,等待服务发布成功。
二、SDK方式
调用示例,使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk。
命令行方式使用SDK:
# 安装包(Python >= 3.7):pip install qianfanimport osimport qianfan# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_skos.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,Responseimport osimport qianfanapp = Flask(__name__)# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_skos.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=60gunicorn --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
参数值:
地址:http://114...35:5000/chat_with_mymodel
参数名称:user_input
参数值:
你是一个从合同中提取关键信息的智能助手。你的任务是分析【合同文本】并提取【关键信息】。
你需要向我汇报的内容是:
1.汇报合同是否缺失劳动合同必备条款;
2.汇报【关键信息】有没有在合同中缺失;
3.汇报你提取的关键信息,以{"要求提取的关键信息":"你提取的关键信息内容"}的json格式汇报。
4.按照上述顺序连续汇报一段字符串,并且不用输出顺序号和任何多余信息。
下面是你要分析的【合同文本】和要提取的【关键信息】:
【合同文本】
甲方(用人单位)
名称:上海瑞丽科技有限公司
统一社会信用代码:91310105MA1FW69D0P
地址:上海市徐汇区田林路123号
联系人:张华
联系方式:13800138000
乙方(劳动者)
姓名:李明
身份证号码:320582199002147890
住所:江苏省苏州市吴江区盛泽镇东方路233号
联系人:李明
联系方式:13900139000
本合同各方经平等自愿协商,根据《中华人民共和国民法典》《中华人民共和国劳动合同法》及相关法规,签订本合同以共同遵守。
法定代表人(签字):
乙方(签字):李明
签订日期:2023年04月01日
【关键信息】
工作地点, 如果没有回答无
返回流式结果:
三、API方式调用
首先获取access_token:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Ilkkrb0i5
步骤二,调用本文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
返回结果:
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# 请求的URLurl = '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文档
评论