Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Rasa 聊天机器人专栏(一):基本原理介绍

Rasa 聊天机器人专栏(一):基本原理介绍

作者头像
磐创AI
发布于 2019-12-10 02:55:02
发布于 2019-12-10 02:55:02
3.4K00
代码可运行
举报
运行总次数:0
代码可运行
作者 | VK

编辑 | 奇予纪

出品 | 磐创AI团队出品

本页面解释了用Rasa构建助手的基本原理,并展示了Rasa项目的结构。你可以在这里测试它,而不需要安装任何东西。你也可以安装Rasa并在命令行中执行。

在本教程中,你将构建一个简单、友好的助手,它将询问你的近况,并在你难过时发送一张有趣的照片给你,让你振作起来。

mark

1.创建新的项目

第一步是创建一个新的Rasa项目。要做到这一点,运行下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rasa init --no-prompt

rasa init命令创建rasa项目所需的所有文件,并根据一些示例数据训练一个简单的机器人。如果你省略了——no-prompt参数,将会询问你一些关于项目设置的问题。

这将创建以下文件:

文件名称

作用说明

init.py

帮助python查找操作的空文件

actions.py

为你的自定义操作编写代码

config.yml ‘*’

配置NLU和Core模型

credentials.yml

连接到其他服务的详细信息

data/nlu.md ‘*’

你的NLU训练数据

data/stories.md ‘*’

你的故事

domain.yml ‘*’

你的助手的域

endpoints.yml

接到fb messenger等通道的详细信息

models/.tar.gz

你的初始模型

最重要的文件用“*”标记。你将在本教程中了解所有这些文件。

2.查看你的NLU训练数据

Rasa助手的第一个部分是NLU模型。NLU代表自然语言理解,这意味着将用户消息转换为结构化数据。要使用Rasa做到这一点,你需要提供一些训练示例,展示Rasa应该如何理解用户消息,然后通过展示的这些示例来训练模型。

运行下面的代码,查看由rasa init命令创建的NLU训练数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat data/nlu.md

##开始的行定义意图的名称,这些名称是具有相同含义的消息组。Rasa的工作是预测用户向助手发送新消息时的正确意图。你可以在[训练数据格式]()中找到数据格式的所有细节。

3. 定义你的模型配置

配置文件定义了模型将使用的NLU和Core组件。在本例中,你的NLU模型将使用supervised_embeddings管道。你可以在[这里]()了解不同的NLU管道。

让我们看一下你的模型配置文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat config.yml

languagepipeline键指定应该如何构建NLU模型。policies键定义Core模型将使用的策略。

4. 写下你的第一个故事

在这个阶段,你将教会你的助手如何回复你的信息。这称为对话管理(dialogue management),由你的Core模型来处理。

Core模型以训练“故事”的形式从真实的会话数据中学习。故事是用户和助手之间的真实对话。带有意图和实体的行反映了用户的输入和操作名称,操作名称展示了助手应该如何响应。

下面是一个简单对话的例子。用户说你好,助手也说你好。故事是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
## story1
* greet
   - utter_greet

你可以在[故事]()中看到完整的细节。

-开头的行是助手所采取的操作。在本教程中,我们所有的操作都是发送回用户的消息,比如utter_greet,但是一般来说,一个操作可以做任何事情,包括调用API和与外部世界交互。

运行下面的命令查看文件data/stories.md中的示例故事:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat data/stories.md

5.定义域

接下来我们需要做的是定义一个域。域定义了助手所处的环境:它应该期望得到什么用户输入、它应该能够预测什么操作、如何响应以及存储什么信息。我们助手的域名保存在一个名为domain.yml的文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat domain.yml

那么各个部分是什么意思呢?

解释说明

intents

你希望用户说的话

actions

你的助手能做的和能说的

templates

你的助手可以说的东西的模板字符串

这些如何配合呢?Rasa Core的工作是在对话的每个步骤中选择正确的操作来执行。在本例中,我们的操作只是向用户发送一条消息。这些简单的话语操作是从域中以utter_开头的操作。助手将根据templates部分中的模板返回一条消息。请参阅[自定义操作](),以构建不仅仅用于发送消息的操作。

6.训练模型

每当我们添加新的NLU或Core数据,或更新域或配置时,我们都需要根据示例故事和NLU数据重新训练一个神经网络。为此,运行下面的命令。该命令将调用Rasa Core和NLU训练函数,并将训练后的模型存储到models/目录中。该命令只会在数据或配置发生更改时自动对不同的模型部件进行重新训练。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rasa train
echo "Finished training."

rasa train命令将同时查找NLU和Core数据,并训练一个组合模型。

7. 和你的助手谈谈

恭喜你! ? 你刚刚建立了一个完全由机器学习驱动的助手。 下一步就是尝试一下!如果你正在本地机器上学习本教程,请运行以下命令与助手对话:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rasa shell

你也可以用Rasa X来收集更多的对话以提高你的助手: 尝试[Rasa X]()

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 磐创AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程
Rasa Stack 是一组开放源码机器学习工具,供开发人员创建支持上下文的人工智能助理和聊天机器人:
磐创AI
2019/05/15
2K0
Rasa 聊天机器人专栏(二):命令行界面
rasa init命令将询问你是否要使用此数据训练初始模型。如果你回答否,则models目录将为空。
磐创AI
2019/12/12
4K0
Rasa 聊天机器人专栏(二):命令行界面
Rasa 聊天机器人专栏(八):在Docker上运行Rasa
这是如何使用Docker构建Rasa助手的指南。如果你之前没有使用过Rasa,我们建议你先Rasa教程开始。
磐创AI
2020/03/04
5.9K0
Rasa 聊天机器人专栏(五):模型评估
机器学习中的标准技术是将一些数据作为测试集分开。你可以使用以下方法将NLU训练数据拆分为训练集和测试集:
磐创AI
2019/12/23
2.4K0
Rasa 聊天机器人专栏(五):模型评估
rasa 介绍文档
1. Rasa介绍 1.1 架构 Rasa Open Source: NLU (理解语义) + Core (决定对话中每一步执行的actions) Rasa SDK: Action Server (调用自定义的 actions) Rasa NLU 理解用户的对话,提取出感兴趣的信息 (如意图分类、实体提取等),以pipeline的方式处理用户对话,在config.yml中配置。 Rasa Core 根据NLU输出的信息、以及Tracker记录的历史信息,得到上下文的语境:预测用户当前最可能表达的
小爷毛毛_卓寿杰
2022/05/10
2.7K0
rasa 介绍文档
Rasa Core实践 报时机器人
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/01
1.3K0
Rasa 聊天机器人专栏(六):验证数据
要验证域文件,NLU数据或故事数据中是否存在任何错误,请运行验证脚本。你可以使用以下命令运行它:
磐创AI
2020/03/04
7650
什么是Rasa智能机器人?如何与LLM结合?
之前写过一篇介绍用Rasa结合类似于GPT这种LLM应用的项目:RasaGpt——一款基于Rasa和LLM的聊天机器人平台
山行AI
2023/06/14
6.9K0
什么是Rasa智能机器人?如何与LLM结合?
Rasa 基于知识库的问答 音乐百科机器人
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/25
1.4K0
Rasa 基于知识库的问答 音乐百科机器人
Rasa 使用ResponseSelector实现FAQ和闲聊
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/01
9240
Rasa 使用ResponseSelector实现FAQ和闲聊
Rasa 基于规则的对话管理: 天气预报机器人
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/13
2.2K0
Rasa 基于规则的对话管理: 天气预报机器人
rasa,一个强大的 Python 库!
Rasa是一个开源的机器学习框架,用于构建对话式人工智能(AI)。它允许开发者创建复杂且功能丰富的聊天机器人,这些机器人可以在多种渠道上与用户进行交互。Rasa非常适合需要高度定制化对话系统的企业环境,因为它支持深度学习,能够处理复杂的对话场景。
sergiojune
2024/04/30
3730
rasa,一个强大的 Python 库!
Rasa 聊天机器人专栏开篇
Rasa 是最火的聊天机器人框架,是基于机器学习和自然语言处理技术开发的系统。Rasa 中文官方文档包括聊天机器人,上下文管理,多伦对话,意图识别,填槽,中文聊天机器人开发必备手册。
磐创AI
2019/12/06
2.9K0
RasaGpt——一款基于Rasa和LLM的聊天机器人平台
在ChatGpt引领的AI浪潮下,一大批优秀的AI应用应运而生,其中不泛一些在某些行业或领域中探索AI技术或应用落地的案例。不得不说,AI正在重塑各个行业。众所周知,Rasa是一个非常优秀的,用于构建开源AI助手的框架,它允许开发人员创建自然语言对话系统,包括聊天机器人、语音助手和智能助手。本文介绍的是一个基于Rasa和Langchain之上,通过将LLM的能力赋予Rasa建立的聊天机器人平台。
山行AI
2023/06/14
4.7K0
RasaGpt——一款基于Rasa和LLM的聊天机器人平台
使用Botkit和Rasa NLU构建智能聊天机器人
我们每天都会听到关于有能力涉及旅游、社交、法律​​、支持、销售等领域的新型机器人推出的新闻。根据我最后一次查阅的数据,单单Facebook Messenger就拥有超过11000个机器人,然而到我写这篇文章的时候,估计又已经增加了几千台。第一代的机器人由于它们只能根据对话中的关键字来分析有限的一些问题,因此显得十分的愚笨。但是随着像Wit.ai, API.ai, Luis.ai, Amazon Lex, IBM Watson等机器学习服务和NLP自然语言处理(Natural Language Processing)的商品化,促进了像donotpay 和 chatShopper这样的智能机器人的发展 。
花落花飞去
2018/01/29
5.9K0
使用Botkit和Rasa NLU构建智能聊天机器人
基于RASA的task-orient对话系统解析(一)
由于换工作以及家里的事,很久没有写东西了。最近因为工作内容,需要做任务型对话系统的相关研究和开发。趁此机会,总结一下rasa框架的基本内容,包括基本架构,代码级别的分析,以及使用上的一些tips。需要注意,本文不会详细描述如何简单构建一个小demo的流程,这个在rasa的doc和一些博客上都有很好的例子,我这里就不重复引用了。贴一些链接,有兴趣的同学可以去这些地方看看。
AINLP
2019/08/28
3.2K0
基于RASA的task-orient对话系统解析(一)
Rasa 聊天机器人专栏(七):运行服务
Rasa尝试按上述顺序加载模型,即如果没有配置模型服务和远程存储,它只会尝试从本地存储系统加载模型。
磐创AI
2020/03/04
2.7K0
Rasa 聊天机器人专栏(三):架构介绍
作者 | VK 编辑 | 奇予纪 出品 | 磐创AI团队出品 AI学习路线之Keras篇 架构介绍: 消息处理 此图显示了使用Rasa构建的助手如何响应消息的基本步骤: mark 这些步骤分别是: 收到消息并将其传递给解释器(Interpreter),解释器将其转换为包含原始文本,意图和找到的任何实体的字典。这部分由NLU处理。 跟踪器(Tracker)是跟踪对话状态的对象。它接收新消息进入的信息。 策略(Policy)接收跟踪器的当前状态。 该策略选择接下来采取的操作(action)。 选择的操作由跟
磐创AI
2019/12/12
1.4K0
Rasa 聊天机器人专栏(三):架构介绍
Rasa 聊天机器人专栏(四):消息和语音通道
如果您在本地计算机(即非服务器)上进行测试,则需要使用[ngrok]()。这为您的机器提供了域名,以便Facebook,Slack等知道将消息发送到本地计算机的位置。
磐创AI
2019/12/23
2.6K0
Rasa NLU 实践
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/11/18
1.4K0
Rasa NLU 实践
相关推荐
Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档