【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人
云服务、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。
开始安装:Toolkit-华为云
您可以在直接在IDE插件市场或者直接在JetBrains插件市场下载离线包安装。
IDE安装
- 在IntelliJ IDEA顶部菜单栏中选择File > Settings,在Settings对话框的左侧导航栏中单击Plugins。
- Plugins区域单击Marketplace,在搜索栏中输入Huawei Cloud API。
- Search Results区域会出现Huawei Cloud API,单击Install,完成后重启IDE。
离线包安装:
- 进入插件市场搜索Huawei Cloud API,进入插件详情页,在Versions页签下选择想要版本的API插件,点击Download下载离线的插件压缩包保存到本地。。
- 在IntelliJ IDEA顶部菜单栏中选择File > Settings,在Settings对话框的左侧导航栏中单击Plugins。
- 在Plugins区域单击 ,再单击Install Plugin from Disk...。
- 在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
Toolkit-华为云
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
答案候选:不勾选
然后点击“确定”按钮。槽位添加完成后,滑动页面到最下方,点击“保存”。
语料标注:
往上滑动页面,回到“用户问法”,对“用户问法语料”列表中的语料进行标注。
选中关键词,然后使用槽位对关键词标注。
标注完成后,如下图所示:
添加用户问法模板
点击“用户问法”中的“用户问法模板”页面中添加模板。
点击“添加模板”按钮。模板内容如下图所示,在相应位置点击下方槽位名称插入相应槽位。完成配置后用户即可使用模板的问法与机器人进行对话。
添加模板:
问法模板添加完成后,滑动页面到最下方,点击“保存”。
配置对话流程
点击“配置对话流程”,完成复杂的对话逻辑配置。
从左侧节点栏拖拽一个“条件判断”节点到“对话开始”节点下方,并连接起来两个点。
点击“条件判断”,完成如下图所示的设置:
再从左侧节点栏拖拽一个“信息收集”节点到“条件判断”节点下方,并连接起来两个节点,如下图所示:
函数配置可参考此链接中的第六章节:
开发体验馆Codelabs
函数参考代码如下:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# @Version : Python 3.6
import json
import requests
# 定义一个垃圾类型的处理建议词典
rubbish_info = {0: "分类投放可回收物时应保持清洁干燥,避免污染,轻投轻放;其中废纸尽量平整;立体包装物请清空内容物,清洁后压扁投放;有尖锐边角的,应包裹后投放。",1: "充电电池、纽扣电池、蓄电池投放时应注意轻放;油漆桶、杀虫剂如有残留请密闭后投放;荧光灯、节能灯易破损连带包装或包裹后投放;废药品及其包装应一并投放进垃圾桶中。",2: "有包装物的厨余垃圾应取出后分类投放;大块骨头和椰子壳、榴莲壳等不易生化降解,作为干垃圾进行投放;纯液体(如牛奶等)食物垃圾可直接倒入下水口;其余应沥干水分后再投放进厨余垃圾桶。",3: "干垃圾应尽量沥干水分,投入干垃圾容器内。",
}# 调用垃圾分类API
def get_response(word, mode=1):"""调用天行API接口 获取垃圾分类信息:param word: 需要查询的垃圾物品:return: 返回改垃圾物品的分类信息"""key = "替换成apikey" # 可浏览https://www.tianapi.com/注册获取apikeyurl = "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:passif rubbish_result:result["content"] = rubbish_resultlogg.info(json.dumps(result, ensure_ascii=False))
return json.dumps(result, ensure_ascii=False)
模型训练发布
在“垃圾分类技能”页面中,进入“发布测试”页面,点击“训练模型”按钮,勾选“用户常用问法”,技能阈值默认即可。点击“确定”开始模型训练,训练时长大概3分钟。
模型训练完成后,点击“线上发布”按钮发布模型。
技能体验:
模型发布完成后,回到“技能管理”页面,点击右上角“对话体验”按钮
下图是一组对话样例:
4 参考文献
创建一个问答机器人_ 对话机器人服务 CBS_用户指南_智能问答机器人_华为云
https://console.huaweicloud.com/cbs/?region=cn-north-4#/cbs/management/skills
5 体验插件的魅力
华为云devkit已上线
Toolkit-华为云协同华为云云端的云服务产品,支持主流 IDE 平台包括(IntelliJ系列、VS Code),以及华为云自研 CodeArts IDE,提供诸如API检索调试、代码补全、一键部署等丰富功能,致力于为开发者提供更稳定、快速、安全的编程体验。https://developer.huaweicloud.com/develop/toolkit.html
相关文章:
【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人
云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:人工智能AI自言语言的情感分析、文本分词、文本翻译 1 IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE&a…...
go基础详解2-go run test
一 go run 编译运行一个main 包(package),常用的运行方式如下: go run . go run hello go run 后面接路径,该路径(不含子路径)下所有的go源文件都属于main包。 go run filename1 filename1 …...
【NVIDIA CUDA】2023 CUDA夏令营编程模型(三)
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...
字节8年经验之谈 —— 冒烟测试、回归测试是什么?
冒烟测试(Smoke Testing)和回归测试(Regression Testing)是软件测试中常用的两种测试类型。 冒烟测试(Smoke Testing):冒烟测试是在软件开发的早期阶段进行的一种表面级功能验证测试。它主要用…...
FP6102 20V、3A降压开关调节器芯片
FP6102 20V、3A降压开关调节器芯片 一般说明 FP6102是一种用于广泛工作电压应用领域的降压开关调节器。FP6102包括高电流P-MOSFET,用于将输出电压与反馈放大器进行比较的高精度参考(0.5V),内部死时间控制器和用于控制最大占空比和…...
魔众携手ModStart上线全新模块市场,支持模板主题
ModStart模板主题 对于很多新手或者是缺乏经验的开发者来说,快速建站具有一定的难度,总是一件让人头疼的问题。 ModStart为开发者提供了一些模板主题供开发者选购使用,模块市场包含了丰富的模块,后台一键快速安装,让开…...
织梦CMS_V5.7任意用户密码重置漏洞复现
一、漏洞说明 织梦内容管理系统(DeDeCMS)以其简单、实用、开源的特点而著名。作为国内最知名的PHP开源网站管理系统,它在多年的发展中取得了显著进步,无论在功能还是易用性方面都有长足的发展。该系统广泛应用于中小型企业门户网站…...
ESP32通过ali的C LINK4.0接入aliyun阿里云
1,通过官网下载C SDK:进入物联网平台:文档和工具 2,选择SDK支持项目:系统为FreeRTOS,单板系统,勾选动态加密,因为测试我把所有的功能都勾选上了。 3,将下载下来的文件放到espSDK下组…...
Spring中使用了哪些设计模式
1、工厂模式 在各种BeanFactory以及ApplicationContext创建中都用到了。 2、模板模式 在各种BeanFactory以及ApplicationContext实现中也都用到了。 3、代理模式 Spring AOP 利用了AspectJ AOP实现的,AspectJ AOP底层使用了动态代理。 4、策略模式 加载资源文…...
matlab 13折线法数据量化编码与解码
解码 matlab 13折线法数据量化编码请查看>>链接 matlab源码: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %sp=[0,16,32,64,128,256,512,1024]; %每段起始值 %spmin=[1,1,2,4,8,16,32,64]; %11110011--1248 c1=1 正…...
Yolov8小目标检测-添加模块改进-实验记录
简介,本文通过结合了一些先进的算法改进了yolov8小目标检测能力,以下是一些记录。 数据集:足球比赛数据集,里面只有两个类别足球和人。 import os from ultralytics import YOLOmodel YOLO(yolov8n.yaml) # 后缀n就调用n的模型…...
2023国家网络安全宣传周|邮件安全意识培训-钓鱼篇
干货满满 建议收藏 反复阅读 钓鱼邮件 钓鱼邮件是指黑客伪装成同事、合作伙伴、朋友、家人等用户信任的人,通过发送电子邮件的方式,诱使用户回复邮件、点击嵌入邮件正文的恶意链接或者打开邮件附件以植入木马或间谍程序,进而窃取用户敏感数据、个人银行…...
【Leetcode】140.单词拆分II(Hard)
一、题目 1、题目描述 给定一个字符串 s 和一个字符串字典 wordDict ,在字符串 s 中增加空格来构建一个句子,使得句子中所有的单词都在词典中。以任意顺序 返回所有这些可能的句子。 注意:词典中的同一个单词可能在分段中被重复使用多次。 示例1: 输入: s = "cat…...
【数据结构-堆】堆
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
Ansible 自动化运维工具部署主从数据库+读写分离
文章目录 Ansible 自动化运维工具部署主从数据库读写分离一、主从复制和读写分离介绍二、准备工作(1)节点规划(2)修改主机名(3)免密(4)配置IP映射(5)安装ansi…...
蓝桥杯官网填空题(星期几)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 1949 年的国庆节( 10 月 1 日)是星期六。 今年(2012)的国庆节是星期一。 那么,从建国到现在࿰…...
《向量数据库指南》——向量数据库会是 AI 的“iPhone 时刻”吗?
最近一年,以 ChatGPT、LLaMA 为代表的大语言模型的兴起,将向量数据库的发展推向了新的高度。 向量数据库是一种在机器学习和人工智能领域日益流行的新型数据库,它能够帮助支持基于神经网络而不是关键字的新型搜索引擎。向量数据库不同于传统的关系型数据库,例如 PostgreSQ…...
案例实践丨基于SkyWalking全链路监控的微服务系统性能调优实践篇
1背景 随着开源社区和云计算的快速推进,云原生微服务作为新型应用系统的核心架构,得到了越来越广泛的应用。根据Gartner对微服务的定义:“微服务是范围狭窄、封装紧密、松散耦合、可独立部署且可独立伸缩的应用程序组件。” 微服务之父&…...
C++信息学奥赛1170:计算2的N次方
#include <iostream> #include <string> #include <cstring>using namespace std;int main() {int n;cin >> n; // 输入一个整数nint arr[100];memset(arr, -1, sizeof(arr)); // 将数组arr的元素初始化为-1,sizeof(arr)表示arr数组的字节…...
windos本地文件上传到ubuntu
如何把本地文件放到服务器上 scp /path/to/local/file usernameserver:/path/to/remote/directoryusernameserver 是服务器名和IP...
做软件测试,掌握哪些技术才能算作“测试大佬”?
一、过硬的基础能力 其实所有的测试大佬都是从底层基础开始的,随着时间,经验的积累慢慢变成大佬。要想稳扎稳打在测试行业深耕,成为测试大牛,首当其冲的肯定就是拥有过硬的基础,所有的基础都是根基,后期所有…...
【算法与数据结构】530、LeetCode二叉搜索树的最小绝对差
文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:二叉搜索树的性质是左子树的所有节点键值小于中间节点键值,右子树的所有节点键值大于中间节…...
input输入事件
我要实现input输入框一边输入,一边在控制台输出结果 现有如下代码 <body><input type"text" onchange"myFunction()" /><script>function myFunction(){console.log(999)}</script> </body> 当敲下回车键后才会…...
接入 NVIDIA A100、吞吐量提高 10 倍!Milvus GPU 版本使用指南
Milvus 2.3 正式支持 NVIDIA A100! 作为为数不多的支持 GPU 的向量数据库产品,Milvus 2.3 在吞吐量和低延迟方面都带来了显著的变化,尤其是与此前的 CPU 版本相比,不仅吞吐量提高了 10 倍,还能将延迟控制在极低的水准。…...
php://filter协议在任意文件读取漏洞(附例题)
php://filter php://fiter 中文叫 元器封装,咱也不知道为什么这么翻译,目前我的理解是可以通过这个玩意对上面提到的php IO流进行处理,及现在可以对php的 IO流进行一定操作。 过滤器:及通过php://filter 对php 的IO流进行的具体…...
【Redis】1、NoSQL之Redis的配置及优化
关系数据库与非关系数据库 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言&a…...
9.5QTday6作业
面试题1:c语言中的static和c中的static的用法 在c语言中: 1.static修饰的全局变量作用域限制在当前文件,无法被外部文件所引用。2.static修饰的局部变量延长生命周期,但不改变作用域,同样无法被外部文件所引用。3.st…...
Redis I/O多路复用机制
一、基础回顾 1.1 多路复用要解决什么问题 并发多客户端连接场景,在多路复用之前最简单和典型的方案就是同步阻塞网络IO模型。 这种模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。 直接调用 recv 函数从一个 socket 上…...
Matlab 2016安装MinGW-w64-4.9.2
Matlab 2016安装MinGW-w64-4.9.2 项目需求:需要将matlab中的.m文件编译为cpp文件 .dll .h .lib。 我相信大家在对matlab2016安装MinGW-w64出现了各种各样的问题。如:4.9.2安装失败;安装了其他版本但是matlab检测不到,或者其他各种…...
Tomcat配置ssl、jar包
Tomcat配置ssl 部署tomcat服务,项目做到用https访问,使用nginx去做,访问任意一个子网站,都是https 或者 医美项目需要 上传jdk 456 tomcat war包 [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/…...
wordpress自带301/aso优化公司
这次给大家带来Builder模式使用教程,Builder模式使用的注意事项有哪些,下面就是实战案例,一起来看一下。概述Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景相同的方…...
广州网络推广培训/seo排名查询
[InternetShortcut]URLhttp://Kennytian.cnblogs.com随便在哪儿建立一个txt,然后把上面这段代码复制进去,然后另保存为.url格式Notice:如果你的系统没有显示扩展名,就在另存为的时候写上"MyUrl.url"(前后的双引不能省略),这样也能保存为url格式 转载于:https://www.c…...
盘锦网站建设咨询/谷歌seo代运营
1.1 Zookeeper集群的搭建 1.1.1 前台条件 三个zookeeper实例。Zookeeper也是java开发的所以需要安装jdk。 1、Linux系统 2、Jdk环境。 3、Zookeeper。 1.1.2 Zookeeper的安装步骤 第一步:把zookeeper的安装包上传到服务器 第二步:解压缩。 [rootbo…...
塑胶原料 东莞网站建设/长春网站推广排名
lua 文件操作 文件操作 相关函数:相比于io操作,file可同时操作多个文件 file:close ():关闭文件 file:flush ():刷新文件,将写入内容刷新到文件中 file:write ():向文件中写入内容 file.read(format)&…...
网站优化北京多少钱/品牌推广
导读:2020年2月号, DB-Engines 数据库流行度排行已经出炉。前10名延续了上个月的波澜不惊的格局,波动极小,波动分值都在7分以下。值得注意的是,前十名中,除了DB2、Access 和 SQLite,其他产品同比…...
网站建设和服务器运营/电脑培训学校学费多少
1.头文件 一个功能模块对应一个头文件 所有的头文件包含于 "includes.h"中 常用库文件:包含的内容 os_cfg_app.c os_core.c os-dbg.c os_flag.c 事件标志组管理 os_int.c 中断服务管理任务 os_mem.c …...