对话机器人(二)——RASA概述与安装

注:RASA版本为3.1

1.RASA简介

RASA 是构建对话机器人的开源机器学习框架。

  • NLU:确定意图,捕获关键上下文信息。
  • CORE:提供多轮对话管理机制,自动学习上下文与当前意图的关联性。

2. RASA系统架构

对话机器人(二)——RASA概述与安装
  • RASA开源体系结构
  • NLU:意图分类、实体提取、响应检索。以管道的方式处理用户对话。
  • 对话管理:根据上下文决定对话中的下一个动作。
  • 代理:接收用户输入消息,返回RASA系统的回答。连接NLU和DM,得到Action,调用Action得到回答,保存对话数据到数据存储。
  • 跟踪存储:对话的存储单元,保存用户和机器人的对话。(支持自定义存储)
  • postgresql,SQLite,Oracle,Redis,MongoDB,DynamoDB
  • 事件代理:机器人可以发布一个消息给其他服务来处理这些消息,也可以转发RASA服务的消息到其他服务。
  • RabbitMQ,Kafka,SQL
  • 锁:ID产生器。当RASA时一个集群部署时,客户端发送RASA服务端的消息每次不一定会寻址到同一个服务器,需要一个全局的会话ID,在消息处于活动状态时锁定会话,保证消息的顺序处理。
  • 文件系统:无差别的文件存储服务,训练好的模型可以存储在不同的位置。
  • 磁盘加载、服务器加载、云存储加载
  • 行动服务
  • 用户可以定义任何一种Action连接到 Action Server上,通过训练学习,RASA可以将policy路由到这个Action上,使机器人热插拔一个能力成为可能。

; 3. RASA消息处理过程

对话机器人(二)——RASA概述与安装
  1. 消息传入后,被Interpreter(解释器)接收。
  2. interpreter接收消息后,
  3. 将消息转换成字典(tokenizer)
  4. 转化成特征(featurizer)
  5. 提取命名实体(Extractors)
  6. 识别意图(Classifier)

    这部分叫做自然语言理解(NLU)。interpreter将输出包括 实体意图,和 对话的特征一起传给Tracker。

  7. Tracker:用来 追踪记录对话状态的对象,将当前状态(特征,意图,实体)以及历史状态信息传给Policy。
  8. Policy(策略):将当前状态以及历史状态一并 特征化,并传入预测模型(Policy),预测模型预测出下一个动作(Action)。
  9. Action完成实际动作,并将动作结果通知到tracker,成为历史状态。
  10. Action将结果返回给用户。

4. RASA项目的基本流程

  • 初始化项目
  • 准备NLU训练数据
  • 配置NLU模型
  • 准备故事(story)数据
  • 定义领域(domain)
  • 配置Rasa Core模型
  • 训练模型
  • 测试机器人

a. 常用命令

命令简介rasa init使用示例训练数据,操作和配置文件创建一个新项目。位于空目录下运行即可rasa train使用NLU数据和故事来训练模型,并将训练后的模型保存在中./models。rasa interactive开始一个交互式学习会话,以通过聊天创建新的训练数据。rasa shell加载经过训练的模型,并允许在命令行上与助手交谈。rasa run使用训练有素的模型启动Rasa服务器。有关详细信息,请参见配置HTTP API文档。rasa run actions使用Rasa SDK启动动作服务器。rasa visualize把stories可视化,生成一个html文件,本地可以打开。rasa test使用测试NLU数据和故事测试经过训练的Rasa模型。rasa data split nlu根据指定的百分比对NLU数据进行拆分。rasa data convert nlu在不同格式之间转换NLU训练数据。rasa export将对话从跟踪商店存储到事件代理。rasa x在本地启动RasaX。rasa -h显示所有可用命令。

b. 项目结构

.
├── actions
│   ├── __init__.py
│   └── actions.py
├── configs
│   ├── domain.yml
│   ├── config.yml
│   ├── credentials.yml
│   └── endpoints.yml
├── data
│   ├── nlu.yml
│   └── stories.yml
├── models
&#x2502;   &#x2514;&#x2500;&#x2500; <timestamp>.tar.gz
&#x2514;&#x2500;&#x2500; tests
   &#x2514;&#x2500;&#x2500; test_stories.yml
</timestamp>

4. 安装RASA

conda create -n rasa3py37 python=3.7
source activate rasa3py37
&#x4F7F;&#x7528;&#x6E05;&#x534E;&#x6E90;
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
&#x5148;&#x5B89;&#x88C5;&#x6307;&#x5B9A;&#x7248;&#x672C;&#x7684;TensorFlow

pip install tensorflow-text==2.7 -i https://pypi.doubanio.com/simple
pip install tensorflow==2.7 -i https://pypi.doubanio.com/simple
&#x5B89;&#x88C5;rasa
pip install rasa -i http://mirrors.aliyun.com/pypi/simple/   --trusted-host mirrors.aliyun.com    --use-deprecated=legacy-resolver

对话机器人(二)——RASA概述与安装

若出现包冲突,则pip uninstall 并装对应版本的包

&#x5B89;&#x88C5;&#x6210;&#x529F;&#x540E;&#xFF0C;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x81EA;&#x52A8;&#x751F;&#x6210;rasa&#x9879;&#x76EE;&#x6240;&#x9700;&#x6587;&#x4EF6;
rasa init --no-prompt
&#x6D4B;&#x8BD5;
rasa shell

安装成功会在指定目录下生成初始化文件。

对话机器人(二)——RASA概述与安装

参考文献:
[1] 孔小泉,王冠.Rasa实战:构建开源对话机器人[M].电子工业出版社.2022:201.

[2] rasa的安装:https://zhuanlan.zhihu.com/p/439666645
[3] (二)RASA开源引擎介绍 https://zhuanlan.zhihu.com/p/331806270

Original: https://blog.csdn.net/qnstar_/article/details/125006137
Author: 就要辣谢谢。
Title: 对话机器人(二)——RASA概述与安装

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531979/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球