【开发者空间实践指导】CodeArts IDE调用API训练商品问答模型

举报
开发者空间小蜜蜂 发表于 2024/12/20 10:39:01 2024/12/20
487 0 0
【摘要】 本案例使用华为云ModelArts工具一键部署模型,然后在云主机调用ModelArts的API,实现商品使用和咨询方面的问答能力。

一、案例介绍

在电子商务领域,售前和售后服务是确保客户满意度和提升品牌忠诚度的重要环节。随着互联网技术的发展和消费者购物习惯的变化,线上购物已成为主流。然而,线上购物也带来了一系列挑战,如商品信息不对称、物流配送问题以及退换货流程复杂等。这些问题直接影响了消费者的购物体验和商家的销售业绩。

本案例使用华为云ModelArts工具一键部署模型,然后在云主机调用ModelArtsAPI,实现商品使用和咨询方面的问答能力。

通过本案例,可以使开发者掌握如何在ModelArts一键部署模型,和调用API的操作,更熟练的使用AI开发工具。

二、免费领取云主机

如您还没有云主机,可点击链接 ,根据领取指南进行操作。

如您已领取云主机,可直接开始实验。

三、实验流程

说明:

  1. 用户登录ModelArts部署模型;
  2. 设置API Explorer Token
  3. CodeArts IDE中编写代码训练模型
  4. 运行模型进行测试

四、 实验资源

本次实验预计花费总计21.72元,实验完成后请及时释放资源避免产生多余的费用

资源名称

规格

单价(元/

时长(分钟

开发者空间-云主机

基础版本

0

40

ModelArts

西南贵阳一区

21.72

40

五、设置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

上面点击更多右边的向下的箭头,然后停止服务。会出现“停止推理服务”点击确定按钮。

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

出现这种情况删除成功。

本次实验到此结束。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。