Rasa是一个开源的机器学习框架,用于自动化基于文本和语音的助理。构建真正帮助客户的上下文助理和聊天机器人很困难。 Rasa 提供了高性能、有弹性、专有的上下文助理所需的基础设施和工具。借助 Rasa,所有开发人员都可以创建更好的基于文本和语音的助手。
为什么选择Rasa?
RASA NLU 的主要优点是您可以访问整个 Python 处理管道,并可以使用复杂的自定义逻辑对其进行扩展。 RASA NLU 提供现实世界中对话解决方案所需的基础设施功能,例如模型持久性或 HTTP 访问。
Rasa与Dialogflow的比较
RASA 的组件:
1.自然语言理解(NLU)
Rasa 自然语言单元 是一种自然语言理解模块。它由松散耦合的模块组成,在一致的 API 中结合了许多自然语言处理和机器学习库。
NLU 实际上是做什么的?
- 将文本转换为向量并对意图进行分类。
- 实体的提取(如果有)
对于此过程,NLU 使用 Tokenizer 将传入文本转换为标记,然后
词性标注器:词性标注器或 POS 标注器处理单词序列,并将词性标记附加到每个单词。
分块:分块的主要目标之一是将其分组为所谓的“名词短语”。这些是由一个或多个单词组成的短语,其中包含名词,可能是一些描述性单词,可能是动词,也可能是副词之类的东西。这个想法是将名词与与其相关的单词分组
在分块器之后,实体被识别并提取。
2. 自然语言生成(NLG)
自然语言生成 是人工智能的一个分支,旨在缩小机器与人类之间的沟通差距。该技术通常接受非语言格式的输入,并将其转换为人类可理解的格式,如报告、文档、短信等。
3. 对话管理
为什么使用 Rasa Core 进行对话处理?
通过从输入文本中提取意图和实体,这些数据会与之前的状态混淆以获得新的操作。这些新动作将更新为状态并产生输出并用于下一个输入。
如何安装Rasa:
- 先决条件:
- python3
- Visual studio 14.0.0+ (not VS Code)
- 使用 pip 安装 rasa
pip install rasa
安装完成后,rasa CLI 就会启用。
- 初始化项目
rasa init
在您的项目文件夹(空文件夹)中,命令提示符,它会问以下问题,
- 请输入将创建项目的路径[默认:当前目录] – 指定路径或按 Enter 键默认
- 您想训练初始模型吗?- 对于初学者,是的(推荐),训练模型需要一些时间。
- 您想在命令行上与训练有素的助手交谈吗?- 否(推荐),如果您想了解 rasa 聊天机器人如何工作,可以按“是”。
如果你想跳过这些问题,请添加–no-prompt
rasa init --no-prompt
通过此过程,会在您指定的目录中创建一些文件。
- 这将创建以下文件:
- init.py:这是一个空的 python 文件,有助于查找您的操作。
- actions.py:您可以在此 python 文件中自定义操作代码。
- config.yml (*):此文件用于配置 NLU 和 Core 模型。该文件包含足够的详细信息,例如语言、管道、NLU 的纪元详细信息以及核心协议。
- credentials.yml:其中包含连接到其他服务的详细信息。这包含凭据详细信息。
- data/nlu.md (*):该文件包含 NLU 的意图名称和意图,您从这里开始编写意图。
- data/stories.md (*):此文件包含您的机器人的故事。这是意图和响应之间的桥梁
- domain.yml (*):包含意图列表、响应、操作、槽和表单列表。这是您的机器人的域。
- endpoints.yml:此文件包含连接到 FB Messenger 等通道的详细信息。
- models/.tar.gz:这是rasa训练的模型。
- (可选)data/responses.md(*):您可以在数据文件夹中单独创建响应文件。
最重要的文件标有“*”。
训练和测试机器人:
创建自己的机器人后,您必须通过以下代码来训练它
rasa train
它将在模型文件夹中创建一个新模型。您可以通过两种不同的方式对其进行测试:
- 使用shellrasa shell这将创建一个与您的机器人聊天的界面。
- 使用postman/curl首先,运行以下命令rasa run -m models –enable-api –log-file out.log它创建本地主机,您可以在其中使用curl进行交互curl localhost:5005/model/parse -d ‘{“text”:“你好”}
- 提供的其他 API 列表