原来AI也可以如此简单!教你从0到1开发开源知识问答机器人
摘要:使用华为云EI智能机器人技术,从0到1开发一款开源知识问答机器人。
前言
最近有幸参与了开源社开源问答机器人的知识库编写,碰巧看到华为云也有类似的智能机器人,抱着试一试的心态,我开始了EI智能机器人的体验之旅。尽管实际操作很简单,但从知识库的迁移、问答机器人挂载到微信公众号,我还是经历了不少坎坷。
首先是问答知识库,由于我们之前协作的开源知识库基于微软的机器人模板,当我将它迁移到华为云EI智能机器人时,需要做的第一件事就是调整问答模板的格式,并且将问答对准备地填充。然后因为是试用,中途我觉得知识库结构有点凌乱,想进行删除操作,但只能小批量的删除,于是想到“删库跑路”,果断把实例给删了,结果不能再试用了。看到500多的购买费用,我望而却步。最后,为了能够完整地体验,终于横下心又重新注册并实名制了一个华为云账号,好在一个人最多能认证3个账号且新认证的还能继续体验试用。
整个体验过程还算满意,我觉得用来学习一下新的知识还是非常有意义的。
如果您也想为开源知识库贡献力量,欢迎访问小源的github仓库:https://github.com/kaiyuanshe/xiaoyuan, 或者添加开源社机器人-小源的微型chatbot-yuan进行体验。本次实践仅对小源进行简单的复现,欢迎和我一起交流学习心得!

准备
要想体验华为云EI智能机器人,有两个必要条件和一个前提:
- 必须注册华为云账号;
- 必须进行实名认证;
- 前提是没有试用过EI智能机器人。(千万记住试用的实例别删,删除等于试用结束!!!)
我们首先在华为云服务列表中找EI企业智能-对话机器人服务,点击右上角购买问答机器人按钮进行购买。

购买完成后等待实例创建完毕,即可体验问答机器人服务。

点击机器人管理可以进入到机器人的维护页面,包括一些运营数据及分析、知识库的管理、技能的管理等。

此外,我们还要准备一个知识库,适用于华为云EI机器人的模板可在知识库管理页面中下载,开源知识库的元数据可以访问开源知识库编写, 地址:https://shimo.im/sheets/BIK6IttNfRo0WVFD/gOEGJ 。目前我们采用的是石墨文档协作,欢迎您的参与!
知识库导入
知识库的导入其实包括很多细节,原来的开源知识库基于微软机器人的模板,我们需要转换才能使用。当然,最开始我是想用脚本的,尝试了一下发现人工迁移更加快捷,花了点功夫迁移了知识库。期间遇到一些小小的问题,比如第一次导入知识库时,平台进入死循环一直调用接口,幸亏我及时修改导入的文件,才没有“***名单”。另外,我在导入过程中发现每次最多只能上传500条,导致我又将我修改好的知识库重新分割成两份。

下边第一张图是微软机器人知识库的简要模板,第二张图是华为云EI机器人的知识库简要模板。经过对比其实改动并不大,于是我又顺便学了下Execl。


导入完毕之后,服务端会返回本次导入的结果,尽管有些报错,这次我就忽略当作没看见,毕竟只是体验,当然,您感兴趣的话可以根据记录修改数据进行重新导入。

应用授权
目前华为云EI机器人支持直接授权到公众号,将对话功能一步到位直接绑定到微信公众号。本次操作已绑定到我的这个账号上,操作的话也非常简便,在高级设置=应用授权页面,点击授权微信公众号拉取授权的弹框,用微信扫码就可授权到相应的公众号。


几秒钟的功夫,就完成授权。去到我的公众号上简单验证一下:

进阶玩法
- 兜底
兜底是对话机器人最常用到的设置,也就是当机器人无法回答问题时会抛出我们预设好的答案。在华为云EI对话机器人中默认设置的兜底回复是“我不知道该怎么回复您”,如图我们新增了两条,对应地测试一下,只要保存了就是实时生效,这点很不错,当然也要格外注意别写错别字。

- 角色形象设置
EI对话机器人默认的名字是云宝,云宝是华为云的吉祥物。而我们开源知识库里定义的角色名叫小源,所以会有些冲突,尝试修改为小源,但似乎并没有生效,我在风中凌乱……

- 技能
我们可以给机器人加10个技能,技能可以是自定义的,也可使用预置的技能如AI作诗、查天气等,还可以使用其他开发者共享的技能。当前我给华为云版的小源添加了预置技能,感受一下“藏头”诗和查天气:

自定义技能中我们可以意图对话、多轮对话、训练机器人等等。这里就不多描述,但是需要强调的是自定义技能真的很好玩,要想实现LICENSE选择器的功能,就需要用到对话流程管理。

另外还有词典、知识共享等功能期待大家探索。

结语
不得不感叹:灵感也许稍纵即逝!从初步的想法到落笔成文,我却是争分夺秒。
昨天偶然听说华为云EI有场关于对话机器人的分享,结合我之前在小源项目的经历,没想到还真实现了华为云版的开源知识问答机器人。以前每次课常常听到零一老师的洗脑式口号:“学AI就到huaweicloud.ai”,经过这次实践,也恰恰再次验证了这句口号。我是Copy攻城狮,连我都学会了Copy问答机器人,原来AI也可以如此简单!
原来AI也可以如此简单!教你从0到1开发开源知识问答机器人的更多相关文章
- 带你从0到1开发AI图像分类应用
摘要:通过一个垃圾分类应用的开发示例,介绍AI Gallery在AI应用开发流程中的作用. 本文分享自华为云社区<AI Gallery:从0到1开发AI图像分类应用>,作者: yd_269 ...
- 简单理解 OAuth 2.0 及资料收集,IdentityServer4 部分源码解析
简单理解 OAuth 2.0 及资料收集,IdentityServer4 部分源码解析 虽然经常用 OAuth 2.0,但是原理却不曾了解,印象里觉得很简单,请求跳来跳去,今天看完相关介绍,就来捋一捋 ...
- Swift2.0语言教程之Swift2.0语言中的标准函数
Swift2.0语言教程之Swift2.0语言中的标准函数 Swift2.0中的标准函数 函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种.以上的 ...
- 手把手教你用Vue2+webpack+node开发一个H5 app
手把手教你用Vue2+webpack+node开发一个H5 app 前一篇vue2 + webpack + node 开发一个小demo说到了用vue的一些基本用法,这一篇就讲一个复杂一点的更完整的 ...
- 利用百度AI快速开发出一款“问答机器人”并接入小程序
先看实现效果: 利用百度UNIT预置的智能问答技能和微信小程序,实现语音问答机器人.这里主要介绍小程序功能开发实现过程,分享主要功能实现的子程序模块,都是干货! 想了解UNIT预置技能调用,请参看我之 ...
- 3D开发基础知识和简单示例
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...
- 简单告诉你-"border:0"与"border:none"的区别
"border:0"与"border:none"的差异主要体现在性能差异和兼容差异.1.性能差异"border:0"表示把border定义为 ...
- 从0构建webpack开发环境(一) 一个简单webpack.config.js
本文基于webpack4.X,使用的包管理工具是yarn 概念相关就不搬运了,直接开始 首先项目初始化 mkdir webpack-demo && cd webpack-demo ya ...
- 没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)
本文收录在个人博客:www.chengxy-nds.top,技术资源共享. 上一篇<OAuth2.0 的四种授权方式>文末说过,后续要来一波OAuth2.0实战,耽误了几天今儿终于补上了. ...
- JVM虚拟机知识问答总结(简单复习,快速回忆!)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
随机推荐
- NewStarCTF 2023 公开赛道 WEEK1|CRYPTO全解
一.brainfuck 附件信息 ++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++> ...
- 《流畅的Python》 读书笔记 第5章 一等函数 20231025
第5章 一等函数 第四章相对偏僻,但时间上一样要花我很久,就先跳过了,回头再补.而这个第5章节是非常重要的.只是最近工作有点忙,我读的越来越慢了~继续坚持吧. 在 Python 中,所有函数都是一等对 ...
- zabbix监控Tomcat/JVM 实例性能
1.背景 zabbix-4.0 环境已部署好 JDK .Tomcat环境已部署好 2.配置Tomcat JMX 编辑catalina.sh加入以下配置 # vim /usr/local/tomcat/ ...
- Godot引擎的一些踩坑记录(不断更新中)
版本号 Godot 3.1.2 文件夹名称使用小写.编译\导出时有的tscn文件的引用路径, 有可能会变成小写路径(怀疑是bug),导致启动失败. ttc字体(文泉驿微米黑)导出时需要手动设置包含*. ...
- React学习笔记16-属性props
1.属性的定义 props 是正常是外部传入的,组件内部也可以通过一些方式来初始化的设置,属性不能被组件自己更 改,但是你可以通过父组件主动重新渲染的方式来传入新的 props. 这就是React中的 ...
- [WPF]浅析资源引用(pack URI)
WPF中我们引用资源时常常提到一个概念:pack URI,这是WPF标识和引用资源最常见的方式,但不是唯一的方式.本文将介绍WPF中引用资源的几种方式,并回顾一下pack URI标识引用在不同位置的资 ...
- 一文概览NLP句法分析:从理论到PyTorch实战解读
关注TechLead,分享AI全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI ...
- Python 潮流周刊#27:应该如何处理程序的错误?
你好,我是猫哥.这里每周分享优质的 Python.AI 及通用技术内容,大部分为英文.本周刊开源,欢迎投稿.另有电报频道作为副刊,补充发布更加丰富的资讯. 产品推荐 Walles.AI 是一款适用于所 ...
- 小程序的登录授权与退出功能(wx.getUserProfile)
一.授权登录:wx.getUserProfile 1.使用wx.getUserProfile实现登录 1.javascript: login(){ wx.getUserProfile({ desc: ...
- 2分钟,快速认识什么是SQL
结构化查询语言,简称SQL,它是与关系数据库管理系统通信的黄金标准语言.今天就来一起快速认识一下什么是SQL,您可以通过以下的文字内容学习,也可以通过文末的视频学习,希望本文对您有所帮助. 您可能听说 ...