摘要:使用华为云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开发开源知识问答机器人的更多相关文章

  1. 带你从0到1开发AI图像分类应用

    摘要:通过一个垃圾分类应用的开发示例,介绍AI Gallery在AI应用开发流程中的作用. 本文分享自华为云社区<AI Gallery:从0到1开发AI图像分类应用>,作者: yd_269 ...

  2. 简单理解 OAuth 2.0 及资料收集,IdentityServer4 部分源码解析

    简单理解 OAuth 2.0 及资料收集,IdentityServer4 部分源码解析 虽然经常用 OAuth 2.0,但是原理却不曾了解,印象里觉得很简单,请求跳来跳去,今天看完相关介绍,就来捋一捋 ...

  3. Swift2.0语言教程之Swift2.0语言中的标准函数

    Swift2.0语言教程之Swift2.0语言中的标准函数 Swift2.0中的标准函数 函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种.以上的 ...

  4. 手把手教你用Vue2+webpack+node开发一个H5 app

    手把手教你用Vue2+webpack+node开发一个H5 app ​前一篇vue2 + webpack + node 开发一个小demo说到了用vue的一些基本用法,这一篇就讲一个复杂一点的更完整的 ...

  5. 利用百度AI快速开发出一款“问答机器人”并接入小程序

    先看实现效果: 利用百度UNIT预置的智能问答技能和微信小程序,实现语音问答机器人.这里主要介绍小程序功能开发实现过程,分享主要功能实现的子程序模块,都是干货! 想了解UNIT预置技能调用,请参看我之 ...

  6. 3D开发基础知识和简单示例

    引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...

  7. 简单告诉你-"border:0"与"border:none"的区别

    "border:0"与"border:none"的差异主要体现在性能差异和兼容差异.1.性能差异"border:0"表示把border定义为 ...

  8. 从0构建webpack开发环境(一) 一个简单webpack.config.js

    本文基于webpack4.X,使用的包管理工具是yarn 概念相关就不搬运了,直接开始 首先项目初始化 mkdir webpack-demo && cd webpack-demo ya ...

  9. 没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

    本文收录在个人博客:www.chengxy-nds.top,技术资源共享. 上一篇<OAuth2.0 的四种授权方式>文末说过,后续要来一波OAuth2.0实战,耽误了几天今儿终于补上了. ...

  10. JVM虚拟机知识问答总结(简单复习,快速回忆!)

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

随机推荐

  1. php反序列化--[SWPUCTF 2021 新生赛]no_wakeup

    打开网站发现这个,点击  ??? 就看到了代码: 发现是PHP反序列化, 但和一般的PHP反序列化不同的是,多了一个_wakeup函数,然后就去网上搜了一下, 发现是一个cve漏洞CVE-2016-7 ...

  2. 【PHP反序列化】速览

    PHP反序列化 一.原理 序列化就是将对象转化成字符串,反序列化相反.数据的格式转换和对象的序列化有利于对象的保存 . 反序列化漏洞:就是php对数据进行反序列化时,没有进行过滤,导致用户可以控制反序 ...

  3. 使用go语言开发hive导出工具

    前言 新版 hive 提供了 beeline 工具,可以执行SQL并导出数据,不过操作还是有点复杂的,团队里有些同学不会Linux的基本操作,所以我花了亿点点时间写了个交互式的命令行工具方便使用. 效 ...

  4. docker简单部署

    docker 安装部署-yun yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docke ...

  5. k8s集群证书过期,重新生成证书

    Kubernetes集群证书过期后,使用kubeadm重新颁发证书 默认情况下部署kubernetes集群的证书一年内便过期,如果不及时升级证书导致证书过期,Kubernetes控制节点便会不可用,所 ...

  6. React、Umi、RN 整体理解

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? React 1. React 起源和发展(是什么?) React 是用于构建用户界面的 Jav ...

  7. Walrus 0.4发布:单一配置、多态运行,体验下一代应用交付模型

    今天,我们高兴地宣布云原生统一应用平台 Walrus 0.4 正式发布,这是一个里程碑式的版本更新.新版本采用了全新的应用模型--仅需进行单一配置,即可在多种模态的基础设施及环境中运行包括应用服务及周 ...

  8. 2019牛客国庆集训派对day3 G排列(状压dp)

    题目传送门 一道很好的状压DP,状态是当前的占位情况,排序操作和第21次CSP认证的第四题作用类似. #include<cstdio> #include<vector> #in ...

  9. [CF1264D]Beautiful Bracket Sequence

    题目描述 This is the hard version of this problem. The only difference is the limit of $ n $ - the lengt ...

  10. N100低功耗win11安装wsl2当入门nas

    前言 最近入了一台16gb+512gb的N100,想着用来存些资源,当个nas,偶尔要用用windows系统,所以想直接在这上面搞个虚拟机算了,WSL2似乎是一个不错的选择,下面介绍捣鼓的教程. 没用 ...