通过云主机调用API,一键训练部署商品问答模型
通过本案例,可以使开发者掌握如何在ModelArts一键部署模型,和调用API的操作,更熟练的使用AI开发工具。
本文分享自华为云社区《【开发者空间实践指导】CodeArts IDE调用API训练商品问答模型》,作者:开发者空间小蜜蜂。
一、案例介绍
在电子商务领域,售前和售后服务是确保客户满意度和提升品牌忠诚度的重要环节。随着互联网技术的发展和消费者购物习惯的变化,线上购物已成为主流。然而,线上购物也带来了一系列挑战,如商品信息不对称、物流配送问题以及退换货流程复杂等。这些问题直接影响了消费者的购物体验和商家的销售业绩。
本案例使用华为云ModelArts工具一键部署模型,然后在云主机调用ModelArts的API,实现商品使用和咨询方面的问答能力。通过本案例,可以使开发者掌握如何在ModelArts一键部署模型,和调用API的操作,更熟练的使用AI开发工具。
二、免费领取云主机
如您还没有云主机,可点击链接 ,根据领取指南进行操作。
如您已领取云主机,可直接开始实验。
三、实验流程
说明:
-
用户登录ModelArts部署模型;
-
设置API Explorer Token;
-
在CodeArts IDE中编写代码,训练模型;
-
运行模型进行测试。
四、 实验资源
本次实验预计花费总计21.72元,实验完成后请及时释放资源,避免产生多余的费用。点击链接,加入沃土云创计划,领取云资源代金券,可免费体验。
五、设置ModelArts工具
5.1 部署模型操作
1. 打开华为云官网(共建智能世界云底座-华为云),在搜索框输入“ModelArts”,选择“AI开发平台ModelArts”的控制台,进入到AI开发平台ModelArts 的控制台页面。
2. 点击“AI Gallery”,进入AI Gallery社区。
3. 点击上方的“模型”,打开模型列表页面,在其中选取自己需要的模型,本次实验选择的是Qwen1.5-7B-ascend的模型。 Qwen1.5是一个语言模型系列,包括不同模型大小的解码器语言模型。对于每种规模,都发布了基本语言模型
4. 在打开的详情页面,单击部署下的“推理服务”,打开推理服务设置页面。
服务名称:qwen1.5安全认证:公开运行设置-计算规格选择:贵阳一,设置完成后,单击“启动部署”,确认订单信息后开始部署。
5.2 设置API Explorer Token
1. 打开华为云官网(共建智能世界云底座-华为云),在搜索框输入“API Explorer”,选择“API Explorer”的控制台,进入到API Explorer页面。
2. 单击“统一身份认证服务”,进入到统一身份认证服务的接口列表。
3. 在统一认证服务的API列表中,单击“Token管理”->“获取IAM用户Token(使用密码)”,在案例中需要使用此接口通过用户名/密码的方式进行认证来获取Token。
4. 使用接口需要先获取账号的一些信息,单击华为云首页右上方的用户名,选择“账号中心”。
进入到账号中心控制台页面,单击右上角的用户名,在打开的下拉菜单中选择“我的凭证”。
将凭证页面中的下列信息记录下来,用于进行接口调用时使用。其中的项目ID我们使用的是西南-贵阳一区域,因为模型部署在贵阳一区域。
5. 将上述信息填写到API参数位置中即可。
6. 然后单击调试,通过调试确保之前部署的模型能够运行,运行完成后会在页面显示“调试成功”。
响应结果中的Token在后续代码中调用API的时候会用到。
六、使用CodeArts IDE调用模型
6.1 使用CodeArts IDE编码
1. 双击云主机桌面的CodeArts IDE for Python图标打开IDE窗口,
2. 打开窗口后,单击新建工程,名称可以自定义,如qwen。
3. 在工程区域空白处单击鼠标右键,选择新建文件,文件名称设置为“api.py” 。
4. 在代码区将以下代码复制进去,测试调用API实现简单的问答能力。
import os
import requests
from typing import Any, Dict, List
API_URL = "https://gallery.cn-southwest-2.myhuaweicloud.com/v1/gallery/xxxxxxxxxx/"
headers = {
"Content-Type": "application/json",
"X-Apig-AppCode": os.getenv("HUAWEI_APP_CODE", "your_actual_app_code_here")
}
def query_api(prompt: str) -> Dict[str, Any]:
payload = {
"prompt": prompt,
"max_tokens": 100,
"top_k": -1,
"top_p": 1,
"temperature": 0,
"ignore_eos": False,
"stream": False
}
try:
response = requests.post(API_URL, headers=headers, json=payload)
print(f"Response status code: {response.status_code}")
print(f"Response content: {response.text}")
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"请求错误{e}")
return {"error": str(e)}
def handle_user_input(user_input: str) -> str:
# 预定义的问题和答案
predefined_responses = {
"你是谁": "我是本商店的智能客服,可以帮助您解答关于本店商品的问题。",
"你是干什么的": "我是本商店的智能客服,可以帮助您解答关于本店商品的问题。",
"你能做什么": "我可以帮助您查找商品信息、解答常见的问题等?",
"你好": "你好!有什么我可以帮助你的吗!",
"再见": "再见!助您一切顺利。",
"退出": "再见!助您一切顺利。"
}
# 检查用户输入是否在与预定以的问题中
if user_input.lower() in predefined_responses:
return predefined_responses[user_input.lower()]
# 调用 API获取答案
api_response = query_api(user_input)
# 安全的从API响应中是否错误
if "error" in api_response:
return f"API错误{api_response['error']}"
# 安全地从API响应中提取实际回答
result = api_response.get('result', '无法获取回答')[0]
return result
def main():
print("欢迎来到智能客服!")
while True:
user_input = input("您: ")
# 处理退出命令
if user_input.lower() in ["退出", "再见"]:
print("智能客服:")
break
response = handle_user_input(user_input)
print(f"智能客服{response}")
if __name__ == '__main__':
main()
在以下链接获取自己之前部署模型的API调用地址: AI Gallery 推理服务列表 _ 华为云 (huaweicloud.com)
用刚刚获取的API调用地址去替换代码下图的红框括号“ ”里面的内容。
将在5.2小节步骤6中获得Token复制下来,因为使用这个模型必须要用token,增强系统的安全性。
复制后替换到下方红色框线的代码处。
6.2 运行模型
1. 在运行模型前需要先进入到项目的环境中。
单击下方终端区域的删除图标关闭终端。
然后点击页面下方的终端图标重新进入到项目环境中。
确认出现“(venv)”标识。
2. 在终端输入以下命令下载所需要的环境。
pip install requests
3. 运行api.py文件,观察调用效果。
python api.py
以下是效果展示,测试使用的是预训练模型,能够显示的内容有限,可以继续在本案例的基础上增加数据,对模型进行微调,通过训练增强模型的对话能力。
七、释放资源
7.1 删除ModelArts资源
在浏览器打开华为云在线服务的网址(https://pangu.huaweicloud.com/gallery/infer-list.html?ticket=ST-83304151-Li9FJtwRSmJdmIEqKyFvjgkB-sso )
上面点击更多右边的向下的箭头,然后停止服务。会出现“停止推理服务”点击确定按钮。
点击删除服务会出现产出推理服务,点击确认即可。
出现这种情况删除成功。
本次实验到此结束。
更多推荐
所有评论(0)