Rasa 中的 tracker_store 相对主流为 Redis,event_broker 相对主流为 RabbitMQ。后续为了研究学习直接将 tracker_store 和 event_broker 的 type 都设置为 SQL,使用 MySQL 统一管理。

一.Rasa 中的 tracker_store

  要使用 MySQL 作为 Rasa 的 tracker_store,需要在 endpoints.yml 文件中进行一些配置。以下是一个示例配置:

tracker_store:
    type: SQL
    dialect: "mysql+pymysql"
    url: "localhost"  # your mysql host
    db: "rasa"  # name of the mysql database
    username: "root"  # username to access the database
    password: "password"  # password to access the database

  在这个配置中,typeSQLdialectmysql+pymysql,这表示使用的是 MySQL 数据库,并且使用 pymysql 作为数据库驱动。urldbusernamepassword 分别是 MySQL 数据库的主机名,数据库名,用户名和密码。

  然后,需要确保环境中已经安装了 pymysql 这个库。如果没有,可以使用以下命令进行安装:

pip install pymysql

  这样,Rasa 就会使用 MySQL 作为 tracker_store 进行对话跟踪的存储了。TrackerStore 是一个抽象基类,它定义了一些方法,但并没有定义具体的数据结构。具体的数据结构取决于你选择的 TrackerStore 的实现。例如,SQLTrackerStoreRedisTrackerStoreDynamoTrackerStoreMongoTrackerStore 等都有自己的数据结构。

  但是,可以从 TrackerStore 的方法中推断出一些通用的字段。例如,save 方法接受一个 DialogueStateTracker 对象,这个对象包含了一次对话的所有信息。DialogueStateTracker 对象主要包含以下字段:

  • sender_id:对话的发送者 ID,类型为字符串。
  • slots:对话的槽位信息,类型为字典,键为槽位名,值为槽位值。
  • latest_message:最新的消息,类型为 UserUttered 对象,包含了消息的文本、意图、实体等信息。
  • events:对话的事件列表,类型为列表,包含了对话中的所有事件,如 UserUtteredBotUtteredSlotSet 等。

  具体的 TrackerStore 实现可能会存储更多的信息,也可能会对这些信息进行一些转换。例如,SQLTrackerStore 会将这些信息存储到 SQL 数据库中,而 RedisTrackerStore 则会将这些信息存储到 Redis 中。

二.Rasa 中的 event_broker

  在 Rasa 中,broker 是用于处理和传递消息的组件。它主要用于将事件(如用户的消息,机器人的回复,槽位的设置等)从一个地方传递到另一个地方。例如,当用户发送一条消息时,broker 会将这条消息从输入通道传递到 Rasa 核心,然后再将 Rasa 核心的回复传递回输入通道。

  Rasa 支持多种类型的 broker,包括 RabbitMQKafkaSQL、文件和自定义等。可以在 endpoints.yml 文件中配置 broker。以下是一个使用 RabbitMQ 作为 broker 的示例配置:

event_broker:
  type: "pika"
  url: "localhost"  # rabbitmq host
  username: "guest"  # username to access rabbitmq
  password: "guest"  # password to access rabbitmq
  queues:
    - "rasa_core_events"  # name of the rabbitmq queue

  在这个配置中,typepika,这表示使用的是 RabbitMQ 作为 brokerurlusernamepassword 分别是 RabbitMQ 的主机名、用户名和密码。queues 是一个列表,包含了想要使用的 RabbitMQ 队列的名字。

  然后需要确保环境中已经安装了 pika 这个库。如果没有,可以使用以下命令进行安装:

pip install pika

  这样,Rasa 就会使用 RabbitMQ 作为 broker 进行消息的处理和传递了。

参考文献

[1] Tracker Stores:https://rasa.com/docs/rasa/tracker-stores/

[2] Event Brokers:https://rasa.com/docs/rasa/event-brokers/


NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。

2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf

NLP工程化

飞书文档

Rasa中的tracker_store和event_broker的更多相关文章

  1. 了解各种AA特性

    AA(Anti-Aliasing)抗锯齿想必不少玩家在游戏画质设定中经常会遇到,说通俗一点AA抗锯齿的作用:将图像边缘及其两侧的像素颜色进行混 合,然后用新生成的具有混合特性的点来替换原来位置上... ...

  2. Deferred Shading,延迟渲染(提高渲染效率,减少多余光照计算)【转】

    Deferred Shading,看过<Gems2> 的应该都了解了.最近很火的星际2就是使用了Deferred Shading. 原帖位置:   http://blog.csdn.net ...

  3. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  4. 报时机器人的rasa shell执行流程分析

      本文以报时机器人为载体,介绍了报时机器人的对话能力范围.配置文件功能和训练和运行命令,重点介绍了rasa shell命令启动后的程序执行过程. 一.报时机器人项目结构 1.对话能力范围 (1)能够 ...

  5. vmware 中ubuntu客户机 安装vmware tool vmhgfs 共享文件夹失败处理

    vmware版本:10.0.0 build-1295980 ubuntu版本:3.13.0-62-generic 先安装的vmware workstation自带光盘中vmare tools包,安装完 ...

  6. Ubuntu 14.04 中安装 VMware10 Tools工具

    Run: apt-get install dkms linux-headers-$(uname -r) build-essential psmisc2 - Run: git clone https:/ ...

  7. 使用Botkit和Rasa NLU构建智能聊天机器人

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 我们每天都会听到关于有能力涉及旅游.社交.法律​​.支持.销售等领域的新型机器人推出的新闻.根据我最后一次查阅的数据,单单Facebook Me ...

  8. VMware Workstation 11 中 Ubuntu 14.04 的 VMware Tools 问题 :没有显示共享文件夹

      症状:主要表现在Win7中用VM11安装的Ubuntu14.04中,安装完自带的VMware Tools之后,/mnt/hgfs 中没有前面已经设置好的共享文件夹.   仔细查看了安装过程,发现在 ...

  9. Rasa学习记录 01

    目录 Rasa的安装和简单的测试 什么是Rasa: 安装Rasa: 测试自带的数据 查看项目里的文件内容 举一反三(自己的第一个机器人) Rasa的安装和简单的测试 怪雨是新手,刚刚接触Rasa,以下 ...

  10. rasa学习(domain.yml、nlu.md、stories.md)(一)

    一. 什么是rasa Rasa是一个用于自动文本和基于语音的对话的开源机器学习框架.了解消息,保持对话以及连接到消息传递通道和API Rasa分为Rasa core和 Rasa nlu两部分: Ras ...

随机推荐

  1. 1111error

    Allowed memo ry size of 268435456 bytes exhausted编辑的没有缓存都丢了

  2. 02-oracle11g rac RMAN备份恢复至单机(未验证)

    在一节点上进行全备确定备份路径,并赋予属组mkdir /rmanbackupchown oracle:oinsatll /rmanbackup进入rman进行全备rman target /run{al ...

  3. 用go封装和实现扫码登录

    用go封装和实现扫码登录 本篇为用go设计开发一个自己的轻量级登录库/框架吧 - 秋玻 - 博客园 (cnblogs.com)的扫码登录业务篇,会讲讲扫码登录的实现,给库/框架增加新的功能,最后说明使 ...

  4. chatgpt镜像站汇总 - 聚合GPT【即时更新】

    自荐下由我开发的聚合GPT网站,这边的GPT镜像站均为免费.无登录.无次数限制的!会及时剔除失效.添加可用地址[欢迎STAR.PR] 地址:https://ele-cat.gitee.io/comp- ...

  5. Android dumpsys介绍

    目录 一.需求 二.环境 三.相关概念 3.1 dumpsys 3.2 Binder 3.3 管道 四.dumpsys指令的使用 4.1 dumpsys使用 4.2 dumpsys指令语法 五.详细设 ...

  6. TOBO

    然而并不会做. 最后就照着题解码了一遍/kk 真的好长啊.看时间就知道写了多久... upd in 2022: 我现在已经找不到原题面是什么了( 不过感觉把这样一篇不算题解的东西放进"题解& ...

  7. 火山引擎 ByteHouse:只需 2 个方法,增强 ClickHouse 数据导入能力

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为企业数字化建设的必备要素,易用的数据引擎能帮助企业提升数据使用效率,更好提升数据应用价值,夯实数字化建设基础. ...

  8. DS18B20初始化-读-写-温度转换

    DS18B20 (一)初始化 (二)读字节 (三)写字节 (四)温度转换 1获得数据 2转换数据 (一)初始化 初始化时序: 数据线先拉到高电平,稍作延时即可(刚开始是高电平还是低电平芯片手册上其实不 ...

  9. 面试官:SOA 和微服务的区别?这回终于搞清楚了!

    https://developer.aliyun.com/article/839526 简介: 如果我们打开支付宝首页,去看我们的余额,它会展示你的总资产,昨日收益.累计收益等信息.假如这个页面所展示 ...

  10. Centos7.5镜像获取

    Centos.7.5镜像可从以下地址获取 镜像源地址:https://mirrors.tuna.tsinghua.edu.cn/ 1.下拉找到cc目录下的centos-vault 2.点击进入下一级目 ...