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. 软件开发人员 Kubernetes 入门指南|Part 1

    Kubernetes 是一个用于部署和管理容器的编排系统.使用 Kubernetes,用户可以通过自动执行管理任务(例如在跨节点间扩展容器并在容器停止时重新启动任务),在不同环境中可靠地运行容器. K ...

  2. centos7 oracle11gR2安装

    CentOS7安装Oracle 11gR2 图文详解 摘自: http://www.linuxidc.com/Linux/2016-04/130559.htm 最近要运维一个项目,准备在家办公,公司无 ...

  3. flask 三方模块

    flask 三方插件 Flask-AppBuilder - Simple and rapid Application builder, includes detailed security, auto ...

  4. 【Unity】 ScriptableObject ——生成多个ScriptableObject作为子对象,可以点击展开并显示二级菜单

    官方是这么介绍ScriptabelObject的: "ScriptableObject 是一个可独立于类实例来保存大量数据的数据容器.ScriptableObject 的一个主要用例是通过避 ...

  5. React同构与极致的性能优化

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  6. Vite 5.0有哪些新变化?

    Rollup 4 Vite 现在使用 Rollup 4,它也带来了一些重大的变化,特别是: 导入断言(assertions 属性)已被重命名为导入属性(attributes 属性). 不再支持 Aco ...

  7. .net core下优秀的日志框架使用解析,附源代码

    在 .NET Core 中,日志是一个非常重要的组件,它可以帮助我们记录应用程序的运行情况,以便在出现问题时进行排查.在本文中,我们将介绍五个优秀的 .NET Core 日志框架,它们分别是 Seri ...

  8. 自实现string类

    一. 环境 Linux x86_64,g++ 8.5.0 二. 实现 自实现 string 之前一直想写来着,一直拖着,现在把它完稿.这个版本是比较简单的版本,有一些可能有不同的或者更好的实现方式,后 ...

  9. 电子元器件工厂的金蝶 ERP 与赛意 WMS 系统数据集成平台进行对接

    项目背景 国内某晶振集成电路研发单位,涵盖从产品开发.设计.生产.销售.服务等各个环节.需要全面建成以ERP.WMS.BOM.PLM.DMS.SRM.OA 为核心的企业信息系统,支持研发.生产.营销. ...

  10. 10个PPT制作实用小技巧

    当制作PPT时,您可以使用一些实用的小技巧来提升演示效果和工作效率.以下是10个PPT制作实用小技巧的详细描述: 第一.选择合适的模板 选择合适的PPT模板非常重要,因为模板可以决定整个演示的风格和视 ...