写点什么

【案例教学】华为云 API 对话机器人的魅力—体验 AI 垃圾分类机器人

  • 2023-09-13
    广东
  • 本文字数:4937 字

    阅读完需:约 16 分钟

云服务、API、SDK,调试,查看,我都行


阅读短文您可以学习到:人工智能 AI 自言语言的情感分析、文本分词、文本翻译

1 IntelliJ IDEA 之 API 插件介绍

API 插件支持 VS Code IDE、IntelliJ IDEA 等平台、以及华为云自研 CodeArts IDE,基于华为云服务提供的能力,帮助开发者更高效、便捷的搭建应用。API 插件关联华为云服务下的 API Explorer、DevStar、CodeLabs、SDK 中心和 CLI 中心产品,致力于为开发者提供更稳定、快速、安全的编程体验。


在本插件中,我们提供了但不局限于如下的功能:


对接华为云 API 开放平台,支持用户检索 API、查看 API 文档、调试 API、以及提供 SDK 示例代码供用户学习如何使用 API。


提供华为云 SDK 代码片段补全功能,SDK 依赖包自动引入,加速用户集成华为云 API。


对接华为云开发体验馆 Codelabs,提供 500+云服务代码示例,向导式教程帮助用户快速学习。


说明:


在 IntelliJ IDEA 等系列平台和 VS Code IDE,华为云 API 插件的名称是 Huawei Cloud API。而在 CodeArts IDE,API 插件是 IDE 原生内置的,名称是华为云 API 开发套件。


API 插件在 IntelliJ IDEA 等系列平台和 VS Code IDE 的使用依赖底座插件,请提前安装底座插件。

2 API 插件安装--IntelliJ IDEA

2.1 IntelliJ IDEA 等平台

安装准备: 下载并安装 JDK1.8 或更高版本。下载并安装 IntelliJ IDEA 2020.2 或更高版本。


须知: IntellIj 平台同时支撑包括 Goland、Pycharm 等在内的 IDE,若在其它相关 IDE 上开发,请下载配置好对应语言的编译器或者解释器。这里以 IDEA 为例介绍 IntelliJ 平台插件的安装流程,其他 IntelliJ 系列的 IDE 请参考 IDEA。


开始安装: https://developer.huaweicloud.com/develop/toolkit.html


您可以在直接在 IDE 插件市场或者直接在 JetBrains 插件市场下载离线包安装。


IDE 安装


  1. 在 IntelliJ IDEA 顶部菜单栏中选择 File > Settings,在 Settings 对话框的左侧导航栏中单击 Plugins。

  2. Plugins 区域单击 Marketplace,在搜索栏中输入 Huawei Cloud API。

  3. Search Results 区域会出现 Huawei Cloud API,单击 Install,完成后重启 IDE。



离线包安装:


  1. 进入插件市场搜索 Huawei Cloud API,进入插件详情页,在 Versions 页签下选择想要版本的 API 插件,点击 Download 下载离线的插件压缩包保存到本地。。

  2. 在 IntelliJ IDEA 顶部菜单栏中选择 File > Settings,在 Settings 对话框的左侧导航栏中单击 Plugins。

  3. 在 Plugins 区域单击 ,再单击 Install Plugin from Disk...。

  4. 在 Choose Plugin File 对话框中选择离线安装包(不用解压),并按照 IntelliJ IDEA 安装页面的提示,完成后续安装步骤。



说明:若当前您想要安装插件的 IntelliJ IDE 已经在桌面打开,则进入插件市场搜索 Huawei Cloud API,进入插件详情页,在右上角会识别到本地已经打开的 IDE,点击相应按钮,在弹出的 IDE 窗口中点击 ok,则 IDE 后台会开始安装相应版本的 API 插件。


安装验证:在 IntelliJ 系列平台上安装插件成功后在左侧的导航栏中可以看到 Huawei Cloud Toolkit 图标,点击后面板会出现 Huawei Cloud API 的字样,则说明安装成功。

3 使用对话流程,搭建复杂逻辑的 AI 对话场景

3.1 华为云 API


左侧展示 API 列表,可以查询所有 API,目前云服务 206,APIs9213


https://developer.huaweicloud.com/develop/toolkit.html


3.2 使用对话流程配置复杂场景的多轮对话


什么是对话机器人服务?


对话机器人服务(Conversational Bot Service)是一款基于人工智能技术,针对企业应用场景开发的云服务,主要包括智能问答、智能质检、定制对话机器人和任务型对话等功能。


对话机器人服务中的技能管理是打造任务型对话技能的工具平台。通过创建管理不同技能和词典,满足不同的用户需求,实现不同场景下的多轮对话能力。


在本案例中,您将使用 CBS 的技能管理为机器人快速配置技能,通过多轮对话实现机器人垃圾分类技能。


案例目标: 掌握使用 CBS 技能的使用方法。掌握使用 CBS 创建垃圾分类流程配置的方法。


体验垃圾分类机器人配置,需要完成以下准备工作:


创建华为云账号并实名认证。


注册华为云账号。完成实名认证,推荐使用扫码认证。https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0133456714.html


下载数据:


.├── DB_query_rubbish_type.py└── rubbish_dict.txt
复制代码


创建试用版智能问答机器人:由于技能管理是专业版智能问答机器人下的功能,因此首先我们需要购买一个试用版专业版问答机器人。 点击此链接,进入对话机器人服务智能问答机器人页面,点击右上角的购买问答机器人,进入问答机器人购买页面。https://console.huaweicloud.com/cbs/?region=cn-north-4#/home/qa-robot



分别输入问答机器人名称,选择试用的计费模式,并点击立即购买完成支付,即完成试用专业版机器人创建。



问答机器人创建成功后,返回对话机器人服务主页面,等待机器人创建成功后,点击“机器人名称”进入机器人,左侧的标签栏中会有一项技能管理。



创建词典:


添加垃圾类型词典,进入对话机器人服务,点击进入相应的机器人,点击“技能平台”,再点击“实体管理”按钮,按照下图指导添加垃圾类型词典:https://console.huaweicloud.com/cbs/?region=cn-north-4#/home/qa-robot



词典标识:rubbish


词典名称:垃圾物品


点击“确认”按钮,创建该词典,并进入“编辑”页面。


导入词条


点击页面上的“导入”按钮,然后点击“添加文件”按钮,上传本地文件夹下的 rubbish_dict.txt 文件,导入模式选“追加”,最后点击“确定”按钮,即可完成垃圾物品词典词条导入。如下图所示:



技能配置:


本节将添加语料并标注,配置机器人的“垃圾分类”技能。


点击此链接,https://console.huaweicloud.com/cbs/?region=cn-north-4#/home/qa-robot。进入对话机器人服务的“技能管理”,新建垃圾分类技能并进行技能配置。


创建技能


点击“添加技能”按钮,选择“多轮对话技能”,点击下一步,输入技能名称:垃圾分类,如下图所示:



创建意图:


技能创建完成后,点击进入“垃圾分类”技能,在意图列表中点击“创建”按钮,如下图指导填写:



意图标识: query_rubbish_type


意图名称: 判断垃圾种类


然后点击“确认并继续设置”按钮,继续配置该意图。


添加用户问法语料


进入“判断垃圾种类”意图的“用户问法”,点击“用户问法语料”输入框下方的蓝色字体“批量添加用户问法语料”,复制下方的语料至弹出对话框,点击“确认”完成用户问法预料导入。


书怎么处理


书是什么垃圾


其他垃圾包括牙签吗


其他垃圾里有护手霜


卫生纸如何回收


卫生纸属于哪种垃圾


厨余垃圾包括苹果皮吗


厨余垃圾里有土豆皮吗


可乐瓶应当怎样处理


可回收垃圾包括铁皮吗



语料添加完之后,滑动页面到最下方,点击“保存”。可以得到如下结果:



添加槽位


往下滑动页面,找到“槽位管理”页面,创建槽位:rubbish(垃圾类别),然后点击“添加槽位”按钮,按照如下指导,添加 rubbish_goods 槽位:



关联槽位: 不关联


槽位标识: rubbish_goods


槽位名称: 垃圾物品


是否必须:


追问轮数: 1


输入框: 你说的能再具体点吗?


词典选择: rubbish


答案候选: 不勾选


然后点击“确定”按钮。槽位添加完成后,滑动页面到最下方,点击“保存”。


语料标注:


往上滑动页面,回到“用户问法”,对“用户问法语料”列表中的语料进行标注。


选中关键词,然后使用槽位对关键词标注。


标注完成后,如下图所示:



添加用户问法模板


点击“用户问法”中的“用户问法模板”页面中添加模板。


点击“添加模板”按钮。模板内容如下图所示,在相应位置点击下方槽位名称插入相应槽位。完成配置后用户即可使用模板的问法与机器人进行对话。


添加模板:


问法模板添加完成后,滑动页面到最下方,点击“保存”。


配置对话流程


点击“配置对话流程”,完成复杂的对话逻辑配置。


从左侧节点栏拖拽一个“条件判断”节点到“对话开始”节点下方,并连接起来两个点。



点击“条件判断”,完成如下图所示的设置:



再从左侧节点栏拖拽一个“信息收集”节点到“条件判断”节点下方,并连接起来两个节点,如下图所示:






函数配置可参考此链接中的第六章节:


https://codelabs.developer.huaweicloud.com/codelabs/samples/039d02c2d9af4d3eba24b652675976f9


函数参考代码如下:


#!/usr/bin/env python# -*- encoding: utf-8 -*-# @Version : Python 3.6import jsonimport requests# 定义一个垃圾类型的处理建议词典rubbish_info = {    0: "分类投放可回收物时应保持清洁干燥,避免污染,轻投轻放;其中废纸尽量平整;立体包装物请清空内容物,清洁后压扁投放;有尖锐边角的,应包裹后投放。",    1: "充电电池、纽扣电池、蓄电池投放时应注意轻放;油漆桶、杀虫剂如有残留请密闭后投放;荧光灯、节能灯易破损连带包装或包裹后投放;废药品及其包装应一并投放进垃圾桶中。",    2: "有包装物的厨余垃圾应取出后分类投放;大块骨头和椰子壳、榴莲壳等不易生化降解,作为干垃圾进行投放;纯液体(如牛奶等)食物垃圾可直接倒入下水口;其余应沥干水分后再投放进厨余垃圾桶。",    3: "干垃圾应尽量沥干水分,投入干垃圾容器内。",}
# 调用垃圾分类APIdef get_response(word, mode=1): """ 调用天行API接口 获取垃圾分类信息 :param word: 需要查询的垃圾物品 :return: 返回改垃圾物品的分类信息 """ key = "替换成apikey" # 可浏览https://www.tianapi.com/注册获取apikey url = "http://api.tianapi.com/lajifenlei/index" data = { "key": key, "word": word, "mode": mode, } headers = {'Content-type': 'application/x-www-form-urlencoded'} res = requests.post(url, data=data, headers=headers, verify=False) return res.json()# 函数入口def handler(event, context): """ """ slot_temp = json.dumps(event, ensure_ascii=False) slot_info = json.loads(slot_temp) logg = context.getLogger() logg.info(slot_temp)# 获取槽位信息,即槽位取到的值 word = slot_info.get("goods", None) result = { "content": "我不知道这是什么,换个垃圾物品吧~" } if word: res = get_response(word)# 判断API响应码 if res['code'] != 200: result["content"] = "数据源资源不足!" return json.dumps(result, ensure_ascii=False) all_data_list = res.get("newslist", [{}]) filter_data_list = list(filter(lambda x: x.get("name", "") == word, all_data_list)) if filter_data_list: _type = filter_data_list[0].get("type", 4) rubbish_result = "" logg.info(word)# 根据垃圾类型拼接返回值 if _type == 0: rubbish_result = "{}是可回收垃圾。投放建议:{}".format(word, rubbish_info[_type]) elif _type == 1: rubbish_result = "{}是有害垃圾。投放建议:{}".format(word, rubbish_info[_type]) elif _type == 2: rubbish_result = "{}是厨余垃圾(即湿垃圾)。投放建议:{}".format(word, rubbish_info[_type]) elif _type == 3: rubbish_result = "{}是其他垃圾(即干垃圾)。投放建议:{}".format(word, rubbish_info[_type]) else: pass if rubbish_result: result["content"] = rubbish_result logg.info(json.dumps(result, ensure_ascii=False))return json.dumps(result, ensure_ascii=False)
复制代码


模型训练发布


在“垃圾分类技能”页面中,进入“发布测试”页面,点击“训练模型”按钮,勾选“用户常用问法”,技能阈值默认即可。点击“确定”开始模型训练,训练时长大概 3 分钟。



模型训练完成后,点击“线上发布”按钮发布模型。



技能体验:


模型发布完成后,回到“技能管理”页面,点击右上角“对话体验”按钮


下图是一组对话样例:


4 参考文献

https://support.huaweicloud.com/usermanual-cbs/cbs_01_0029.html


https://console.huaweicloud.com/cbs/?region=cn-north-4#/cbs/management/skills

5 体验插件的魅力

华为云 devkit 已上线


https://developer.huaweicloud.com/develop/toolkit.html

用户头像

公众号:华为云PaaS服务,有见面礼等你哦! 2022-09-26 加入

还未添加个人简介

评论

发布
暂无评论
【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人_云计算_华为云PaaS服务小智_InfoQ写作社区