RaSa2.5.x之一:Rasa Playground_rasa 2.5.x demo-程序员宅基地

技术标签: Rasa  


Rasa是一个开源的机器学习框架,主要用来构建文本和语音的自动对话。

一、构建自己的对话助手(简单示例)

在本指南中,我们将创建一个帮助用户订阅新闻稿(newsletter)的助手。通过以下每个步骤了解如何创建简单助手:

1. NLU数据(NLU data)

为了让助手能够识别用户在说什么,不管用户如何表达他们的信息,我们需要提供助手可以从中学习的示例信息。我们根据信息所表达的想法或目标(也称为意图)对这些示例进行分组。在下面的代码块中,我们添加了一个名为greetintent(意图),其中包含“Hi”“Hey”“good morning”等示例消息。
意图及其例子被用作助手自然语言理解(NLU)模型的训练数据。

nlu:
- intent: greet
  examples: |
    - Hi
    - Hey!
    - Hallo
    - Good day
    - Good morning

- intent: subscribe
  examples: |
    - I want to get the newsletter
    - Can you send me the newsletter?
    - Can you sign me up for the newsletter?

- intent: inform
  examples: |
    - My email is example@example.com
    - random@example.com
    - Please send it to anything@example.com
    - Email is something@example.com

了解有关NLU数据及其格式的详细信息

2. 响应(Responses)

既然助手理解了用户可能会说的一些消息,它就需要能够发送回用户的响应
“你好,我能帮你什么忙吗?你的电子邮件地址是什么?“这是我们助理将使用的一些回答。在接下来的步骤中,您将看到如何连接用户消息和响应。
在下面的代码块中,我们列出了一些响应,并为每个响应添加了一个或多个文本选项。如果一个响应有多个文本选项,则在预测该响应时,将随机选择其中一个选项。

responses:
   utter_greet:
       - text: |
           Hello! How can I help you?
       - text: |
           Hi!
   utter_ask_email:
       - text: |
           What is your email address?
   utter_subscribed:
       - text: |
           Check your inbox at {
    email} in order to finish subscribing to the newsletter!
       - text: |
           You're all set! Check your inbox at {
    email} to confirm your subscription.

了解有关响应的更多信息

3. 故事(Stories)

故事是训练助手根据用户之前在对话中所说的内容做出正确反应的示例对话。故事格式显示用户消息的意图,后跟助手的操作或响应。
你的第一个故事应该展示一个对话流程,在这个流程中,助手帮助用户以一种直截了当的方式完成他们的目标。稍后,您可以为用户不想提供信息或切换到其他主题的情况添加故事。
在下面的代码块中,我们添加了一个故事,在这个故事中,用户和助手交换问候,用户请求订阅新闻稿,助手开始通过新闻稿表单收集所需的信息。您将在下一步学习表单。

stories:
 - story: greet and subscribe
   steps:
   - intent: greet
   - action: utter_greet
   - intent: subscribe
   - action: newsletter_form
   - active_loop: newsletter_form

了解更多有关故事的信息

4. 表单(Forms)

在许多情况下,助手需要从用户那里收集信息。例如,当用户想要订阅时事通讯时,助理必须询问他们的电子邮件地址。
您可以在Rasa中使用表单来完成此操作。在下面的代码块中,我们添加了新闻稿表单(newsletter_form),并使用它来收集用户的电子邮件地址。

forms:
  newsletter_form:
    email:
    - type: from_text

在此处了解有关窗体的详细信息

5. 规则(Rules)

规则描述了会话中应该始终遵循相同路径的部分,无论之前在会话中说了什么。
我们希望助手总是用一个特定的动作来回应某个意图,所以我们使用一个规则来将该动作映射到意图。
在下面的代码块中,我们添加了一个规则,每当用户表示“subscribe”意图时触发“newsletter_form”。我们还添加了一个规则,一旦提供了所有必需的信息,它就会触发“utter_subscribed”操作。第二条规则仅在“newsletter_form”开始时处于活动状态时适用;一旦它不再处于活动状态(active\u loop:null),表单就完成了。

rules:
 - rule: activate subscribe form
   steps:
   - intent: subscribe
   - action: newsletter_form
   - active_loop: newsletter_form

 - rule: submit form
   condition:
   - active_loop: newsletter_form
   steps:
   - action: newsletter_form
   - active_loop: null
   - action: utter_subscribed

参考

  1. 官方文档
  2. 官方介绍文档
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/csdn1e/article/details/115653914

智能推荐

PCS7 入门指南 v9.0 SP3 v9.1 中文版 学习资料 (官方公开可用资料)_pcs7v9.1-程序员宅基地

文章浏览阅读1.8w次,点赞13次,收藏82次。链接:https://pan.baidu.com/s/1-p4h_QDL8BN04tnn3vSkOA提取码:nou3PCS7入门指南v9.0含APL(包含PDF和项目文件)官方地址:SIMATIC 过程控制系统 PCS 7 入门指南第1部分 (V9.0,含APL)https://support.industry.siemens.com/cs/document/109756196/simatic-%E8%BF%87%E7%A8%8B%E6%8E%A7%E5%88%B6%E7%B3%BB..._pcs7v9.1

c# 调用非托管代码_c# 声明kernel32 函数-程序员宅基地

文章浏览阅读956次,点赞3次,收藏5次。编程过程中,一般c#调用非托管的代码有两种方式:1.直接调用从DLL中导出的函数。2.调用COM对象上的接口方法。首先说明第1种方式,基本步骤如下:1.使用关键字static,extern声明需要导出的函数。2.把DllImport 属性附加到函数上。3.掌握常用的数据类型传递的对应关系。4.如果需要,为函数的参数和返回值指定自定义数据封送处理信息,这将重写.net framework默认的封送处理。简单举例如下:托管函数原型:DWORD GetShortPathName(LPCTST_c# 声明kernel32 函数

高频交易及化资策与区_hudson river trading-程序员宅基地

文章浏览阅读406次。转 高频交易及量化投资的策略与误区一、高频交易公司和量化投资公司的区别一般来说,高频交易公司和量化投资公司既有联系,又有区别。在美国,人们常说的高频交易公司一般都是自营交易公司,这些公司主要有Getco、Tower Research、Hudson River Trading、SIG、Virtu Financial、Jump Trading、RGM Advisor、Chopper Tradi..._hudson river trading

C语言文件操作相关的函数_c语言与文件处理有关的函数-程序员宅基地

文章浏览阅读865次。文件的打开和关闭文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件 的关系。ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件。FILE * fopen ( const char * filename, const char * mode ); int fcl..._c语言与文件处理有关的函数

java 无法读取文件_java 读取文件,无法显示文件内容,如何解决? 谢谢。-程序员宅基地

文章浏览阅读1.1k次。从来没见过进行文件读取写入时,在写入中需要随机数的,你读取文件就是从一个地方获取输入流,然后将这个输入流写到别的地方,根本不要随机数。给你一个示例://copyafiletoanotherfilebyusingFileReader/FileWriterimportjava.io.*;publicclassTFileRead{publicstaticvoidmain(S..._java复制文件文件没有内容显示

vue引入原生高德地图_前端引入原生地图-程序员宅基地

文章浏览阅读556次,点赞2次,收藏3次。由于工作上的需要,今天捣鼓了半天高德地图。如果定制化开发需求不太高的话,可以用vue-amap,这个我就不多说了,详细就看官网 https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install然而我们公司需要英文版的高德,我看vue-amap中好像没有这方面的配置,而且还有一些其他的定制化开发需求,然后就只用原生的高德。其实原生的引入也不复杂,但是有几个坑要填一下。1. index.html注意,引入的高德js一定要放在头部而_前端引入原生地图

随便推点

深度篇——人脸识别(一)  ArcFace 论文 翻译_arcface论文-程序员宅基地

文章浏览阅读6.6k次,点赞23次,收藏120次。返回主目录返回 目标检测史 目录上一章:深度篇——目标检测史(八)CPTN 论文 翻译论文地址:《ArcFace: Additive Angular Margin Loss for Deep Face Recognition》源码地址:InsightFace: 2D and 3D Face Analysis Project本小节,ArcFace 论文 翻译,下一小节细说 ArcFace文本检测 代码一.ArcFace 论文 翻译1.概述..._arcface论文

台式计算机有没有无线连接模块,台式机能不能连接wifi_台式机怎么连接wifi-程序员宅基地

文章浏览阅读1.2k次。2016-12-30 09:54:26你好!很高兴为你解答,先将无线路由器接通电源,然后插上网线,将另一端插到你电脑上,等网络通了之后,你在IE浏览器上输入:192.168.1.1(这是一般无线路由器的IP,如果有特殊...2016-12-16 11:44:30手机系统问题,可能系统出现了问题,导致连接上了WiFi却无法上网。重启一下路由器试试,或者将路由器恢复一下出厂设置,然后重新拨号上网,并根..._计算机无线模块怎么看

OpenGLES编程思想-程序员宅基地

文章浏览阅读4.8k次。最近在看gles的reference,想多了解一下gles的底层,gles是opengl在khronos在嵌入式设备上的图形硬件的软件访问接口,很多东西和opengl似曾相似,但是和opengl又有很大的不同,最新的标准是gles3.2,标准文档非常长,如果不是写引擎没必要对每个接口烂熟于心,但是为了能够了解他,我对他的编程思想做个总结,最重要的是理解gles的设计思路,然后在使用的时候也必将容易找到相关接口。所以本文基本不会列出gles的每个接口,不会记录讲解每个接口,而是希望能够通过总结gles的设计思_gles

linux命令行去掉滴滴声_linux一直叮叮叮-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏2次。在CentOS中,我们常用Tab键进行命令补全,但是系统总是提示滴滴声,让人很烦躁。 即使把音频设备关掉,或者虚拟机的音频设备也关掉,还是有这个声音。 如果不喜欢这个声音,可以通过修改配置去掉它。用vi 编辑 /etc/inputrc 文件,在vi的命令模式下,用键盘方向键进行定位, 找到“#set bell-style none”,用X 删除语句前方的#号,就可以了。“: wq_linux一直叮叮叮

Java从零开始 第10.5讲 面向对象的习题课_编写一个测试类booktest,创建几个book对象,并打印它们的字符串表示,同时判断-程序员宅基地

文章浏览阅读197次。面向对象的习题课类的定义员工类Employee求和类Sum类与对象书籍类BookBook类的测试类BookTest异常能扩容的MyList类剪刀石头布转载请注明出处在这一讲中我会给出一些关于面向对象部分的习题,同样希望在不看答案的情况下自己编写,即使看过了答案,也要能够在不看答案的情况下写出来。类的定义员工类Employee定义在同一个公司工作的Employee类,要求其中含有属性:员工的名字,员工的年龄,员工的爱好,员工的公司名(注意当公司更名时,所有员工的公司名都需要更名),工作地点默认为中国(_编写一个测试类booktest,创建几个book对象,并打印它们的字符串表示,同时判断

Spark伪分布安装(依赖Hadoop)_下载spark的hadoop依赖-程序员宅基地

文章浏览阅读6.7k次,点赞7次,收藏14次。一、伪分布安装Spark安装环境:Ubuntu 14.04 LTS 64位+Hadoop2.7.2+Spark2.0.0+jdk1.7.0_761、安装jdk1.7(1)下载jdk-7u76-linux-x64.tar.gz;(2)解压jdk-7u76-linux-x64.tar.gz,并将其移动到/opt/java/jdk路径下(自建);命令:tar -zxvf jdk-_下载spark的hadoop依赖