通过云主机调用API,一键训练部署商品问答模型
本文分享自华为云社区《【开发者空间实践指导】CodeArts IDE调用API训练商品问答模型》,作者:开发者空间小蜜蜂。
一、案例介绍
在电子商务领域,售前和售后服务是确保客户满意度和提升品牌忠诚度的重要环节。随着互联网技术的发展和消费者购物习惯的变化,线上购物已成为主流。然而,线上购物也带来了一系列挑战,如商品信息不对称、物流配送问题以及退换货流程复杂等。这些问题直接影响了消费者的购物体验和商家的销售业绩。
本案例使用华为云ModelArts工具一键部署模型,然后在云主机调用ModelArts的API,实现商品使用和咨询方面的问答能力。通过本案例,可以使开发者掌握如何在ModelArts一键部署模型,和调用API的操作,更熟练的使用AI开发工具。
二、免费领取云主机
如您还没有云主机,可点击链接,根据领取指南进行操作。
如您已领取云主机,可直接开始实验。
三、实验流程

说明:
用户登录ModelArts部署模型;
设置API Explorer Token;
在CodeArts IDE中编写代码,训练模型;
运行模型进行测试。
四、 实验资源
本次实验预计花费总计21.72元,实验完成后请及时释放资源,避免产生多余的费用。点击链接,加入沃土云创计划,领取云资源代金券,可免费体验。

五、设置ModelArts工具
5.1 部署模型操作
1. 打开华为云官网(https://www.huaweicloud.com/),在搜索框输入“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. 打开华为云官网(https://www.huaweicloud.com/),在搜索框输入“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)
上面点击更多右边的向下的箭头,然后停止服务。会出现“停止推理服务”点击确定按钮。


点击删除服务会出现产出推理服务,点击确认即可。

出现这种情况删除成功。

本次实验到此结束。
通过云主机调用API,一键训练部署商品问答模型的更多相关文章
- 保姆级教程:用GPU云主机搭建AI大语言模型并用Flask封装成API,实现用户与模型对话
导读 在当今的人工智能时代,大型AI模型已成为获得人工智能应用程序的关键.但是,这些巨大的模型需要庞大的计算资源和存储空间,因此搭建这些模型并对它们进行交互需要强大的计算能力,这通常需要使用云计算服务 ...
- openstack 一键部署云主机
两边虚拟机时间不一样cinder会报错. 在computer节输入命令 ntpdate 192.168.10.100 systemctl restart openstack-cinder-volume ...
- IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈项目有来商城云环境的部署方式
一. 前言 最近有些童鞋对开源微服务商城项目 youlai-mall 如何部署到线上环境以及项目中 的Dockerfile 文件有疑问,所以写了这篇文章做个答疑以及演示完整的微服务项目发布到线上的流程 ...
- 使用“宝塔一键迁移”工具,将typecho博客迁移到京东云cvm云主机
作者:京东科技 林中 服务器更换.网站搬家,对于很多开发者新手来说不是一件容易的事情,需要迁移网站程序.数据库,修改数据库连接文件等.在云迁移方案中,宝塔是非常简单好用的服务器运维面板,能够极大提升运 ...
- ubuntu13.04云主机部署gitlab6.6
GitLab 是何物? GitLab是 GitHub 的山寨版,GitLab几乎包含了GitHub的所有功能,还包含比较有特色的功能:Code Review,Wiki,Merge Requests,最 ...
- 优化hexo访问速度-将hexo部署到云主机VPS
写在开始 一开始将自己hexo部署到github,结果发现打开页面速度有点慢,然后又将其同时部署到coding,实现双线路访问,国内解析记录到coding,国外解析到github,这样确实网站的速度能 ...
- 将Hexo博客部署到云主机
摘要: 在云主机上搭建一个git裸仓库,然后使用nginx作为网页服务器,就可以轻松将Hexo博客通过git部署到云主机上. 这是一个忧伤的故事 我的博客KiwenLau之前部署在Coding Pag ...
- Django+nginx+gunicore+supervisor+阿里云主机 部署博客项目
1 准备阶段 1 新鲜的阿里云主机 2 购买一个喜欢的域名 3 创建python的虚拟环境 2 阿里云主机的选取 咱们就是为了实验,我买了最便宜的阿里云主机 3 阿里云主机创建一个超级用户 3.1 默 ...
- 记录一次云主机部署openstack的血泪史
看见这个部署成功的留下了激动的泪水 经过长时间的BUG苦肝终于成功部署成功 部署的环境2vCPU 8GB 阿里云主机,部署成功以后内存占用确实蛮高的 记录这一次踩坑,给后来者避免踩坑时间,个人踩坑踩 ...
- 五:用JAVA写一个阿里云VPC Open API调用程序
用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软 ...
随机推荐
- excel江湖异闻录--渣渣
有朋友问过我,为什么要写这些,细细思量,一来我喜欢这个纯粹的江湖,二则向这些纯粹的高手.大神致敬,三是纪念一下自己学习EXCEL的历程. 其实,每一个篇章都有一个逻辑,只不过这个逻辑,不是按照实力的高 ...
- SURF (Speeded Up Robust Features,加速稳健特征)
本篇文章来自wikipedia,如果需要阅读英文,可以去看一下. SURF (Speeded Up Robust Features, 加速稳健特征) 是一个稳健的图像识别和描述算法,首先于2006年发 ...
- 探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要.对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解 ...
- NeuVector 会是下一个爆款云原生安全神器吗?
近日一则<SUSE 发布 NeuVector:业内首个开源容器安全平台>的文章被转载于各大 IT 新闻网站.作为 SUSE 家族的新进成员,在 3 个月后便履行了开源承诺,着实让人赞叹.那 ...
- AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图
一:背景 1. 讲故事 上一篇我们聊过AOT编程中可能会遇到的三大件问题,而这三大件问题又是考验你对AOT中节点图的理解,它是一切的原点,接下来我就画几张图以个人的角度来解读下吧,不一定对. 二:理解 ...
- OpenCV开发笔记(八十一):通过棋盘格使用鱼眼方式标定相机内参矩阵矫正摄像头图像
前言 对于广角摄像头通过相机图片可以识别出棋盘角点计算相机内参矩阵,通过畸变校准可以得到较好的效果,但是鱼眼摄像头通过这种方式获得周围四周的图像效果并不是很好.所以,鱼眼摄像头在校准上与普通摄像头 ...
- Windows 非服务器版本永久关闭命令行“快速编辑模式”
使用管理员权限运行cmd.exe 运行如下命令: reg add HKEY_CURRENT_USER\Console /v QuickEdit /t REG_DWORD /d 00000000 /f
- python操作pptx设置title字体大小插入全屏图片A4尺寸实例一枚
pip install python-pptx 安装好pptx,设置标题最大的作用是ppt里面的摘要视图显示摘要文字 参考:https://python-pptx.readthedocs.io/en/ ...
- spring基础配置原则
spring框架本身有四大原则:1.使用pojo进行轻量级和最小侵入式开发2.通过依赖注入和基于接口编程实现松耦合3.通过AOP和默认习惯进行声明式编程4.使用AOP和模板减少模式化代码spring ...
- glibc 内存分配与释放机制详解
作者:来自 vivo 互联网存储团队- Wang Yuzhi 本文以一次线上故障为基础介绍了使用 glibc 进行内存管理可能碰到问题,进而对库中内存分配与释放机制进行分析,最后提供了相应问题的解决方 ...