本文分享自华为云社区《【开发者空间实践指导】CodeArts IDE调用API训练商品问答模型》,作者:开发者空间小蜜蜂。

一、案例介绍

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

本案例使用华为云ModelArts工具一键部署模型,然后在云主机调用ModelArts的API,实现商品使用和咨询方面的问答能力。通过本案例,可以使开发者掌握如何在ModelArts一键部署模型,和调用API的操作,更熟练的使用AI开发工具。

二、免费领取云主机

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

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

三、实验流程

说明:

  1. 用户登录ModelArts部署模型;

  2. 设置API Explorer Token;

  3. 在CodeArts IDE中编写代码,训练模型;

  4. 运行模型进行测试。

四、 实验资源

本次实验预计花费总计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 

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

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

出现这种情况删除成功。

本次实验到此结束。

点击关注,第一时间了解华为云新鲜技术~

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐