Rasa中的tracker_store和event_broker

  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: SQLdialect: "mysql+pymysql"url: "localhost"  # your mysql hostdb: "rasa"  # name of the mysql databaseusername: "root"  # username to access the databasepassword: "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 hostusername: "guest"  # username to access rabbitmqpassword: "guest"  # password to access rabbitmqqueues:- "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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源许可证

文章目录 一、简介二、详细信息参考 一、简介 开源是指公开源代码,但这并不代表就是免费的。 开源许可证是一种法律许可。 通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。 版权法默认禁止共享,也就是说&am…

忘记密码mysql 8.2重置root密码|macos+linux

重置密码 2024年1月6日验证 1.找到support-files下的服务 # 查找mysql位置 which mysql #/usr/local/bin/mysql# 查找原始位置 ls -al /usr/local/bin | grep mysql# 进入原始的为值找到support-files文件夹 # 注意路径要全,我这里是macos系统就是Cellar下 cd /usr/local/Cell…

如何选择消息队列?Kafka 与 RabbitMQ

在上一期中,我们讨论了使用消息队列的好处。然后,我们回顾了消息队列产品的历史。现在看来,当我们需要在项目中使用消息队列时,Kafka 是首选产品。但是,当我们考虑特定要求时,它并不总是最佳选择。 数据库…

【Kubernetes】认证授权RBAC (一)

认证授权RBAC 一、k8s安全管理:认证、授权、准入控制概述1.1、简介【1】认证基本介绍【2】授权基本介绍【3】准入控制基本介绍 1.2、认证【1】客户端认证【2】Bearertoken【3】Serviceaccount【4】拓展:kubeconfig文件 1.3、授权【1】什么是RBAC&#xf…

rust 注释文档生成 cargo doc

rust的cargo文档生成 只需要在每个函数写清楚注释,就可以自动生成文档,很方便 即不用写文档,又可以快速查看,是开发rust的必备技能 rust安装和开发环境配置,可以参考:链接 1.写注释的方法 连续三个 \ 即…

uniapp---安卓真机调试提示检测不到手机【解决办法】

最近在做APP,由于华为手机更新过系统,再次用来调试APP发现就不行了。下面给出具体的解决方法: 第一步:打开【允许开发人员选项】 找到【设置】点击【关于手机】找到【版本号】点击7次或多次,允许开发人员选项。 第二…

首次引入大模型!Bert-vits2-Extra中文特化版40秒素材复刻巫师3叶奈法

Bert-vits2项目又更新了,更新了一个新的分支:中文特化,所谓中文特化,即针对中文音色的特殊优化版本,纯中文底模效果百尺竿头更进一步,同时首次引入了大模型,使用国产IDEA-CCNL/Erlangshen-Megat…

Python中的@abstractmethod

abstractmethod 是 Python 中 abc 模块(Abstract Base Classes)提供的一个装饰器,用于声明抽象方法。抽象方法是指在抽象类中声明但没有提供具体实现的方法,而是由其子类提供具体实现。 使用 abstractmethod 装饰器可以使得子类在…

职业分析与计算机方向的选择、发展

文章目录 职业分析与计算机方向的选择、发展一:编程学习解读与职业分析1.编程的学习阶段:(1)入门阶段(2)熟悉阶段(3)学到什么程度才叫精通呢? 2.职业分析(1&a…

sqoop(DataX)-MySQL导入HIVE时间格问题

这里写自定义目录标题 问题1:测试MySQL 数据信息HIVE数据信息hive中用 parquet(orc) 列式文件格式存储 解决方法问题2:解决方法 问题1: 用公司的大数据平台(DataX)导数,已经开发上线…

【ASP.NET Core 基础知识】--环境设置

一、简介 1.1 .NET Core SDK 概述 .NET Core SDK(Software Development Kit)是Microsoft推出的一个开源跨平台框架,用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一,为开发者提供了在多个操作系统上构建高性能、可…

YOLOv5改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)

一、本文介绍 本文给大家带来的改进内容是SCConv,即空间和通道重构卷积,是一种发布于2023.9月份的一个新的改进机制。它的核心创新在于能够同时处理图像的空间(形状、结构)和通道(色彩、深度)信息,这样的处理方式使得SCConv在分析图像时更加精细和高效。这种技术不仅适…

一文详解 Java 限流接口实现

作者:非有 一、限流 1.1 为什么要进行限流? 1.瞬时流量过高,服务被压垮? 2.恶意用户高频光顾,导致服务器宕机? 3.消息消费过快,导致数据库压力过大,性能下降甚至崩溃&#xff1f…

[C]jupyter中使用C

[C]jupyter中使用C 安装使用用处 安装 https://github.com/brendan-rius/jupyter-c-kernel 下拉找到3条命令,装就可以了 mac和linux可用 python3可用, 2不可以 第二条命令可以改为 : python3 install_c_kernel 小总结:如果有问题&#xff0…

Vite scss 如何引入本地 字体

Vite scss 如何引入本地 字体 最近在用 Vite 改造一个旧项目 Diary,遇到了好多从 Vue 转到 Vite 的问题。 这次这个问题是: scss 里本地字体引入的问题。 一、问题描述 可以看到下面的卡片字体,本来应该是 impact 的,但现在无法…

第二部分 离散型随机变量

目录 求分布律里的未知数 例1 例2 根据X的分布律写Y的分布律 例3 根据(X,Y)的分布律写Z的分布律 例4 根据(X,Y)的分布律写边缘分布律 例5 X与Y相互独立时的联合分布律 例6 根据分布律求期望、方差 例7 求分布律里的未知数 例1 已知X的分布律为 X-202P0.40.3k ,试求k 解 0.40…

8 单链表---带表头节点

上节课所学的顺序表的缺点 顺序表的最大问题:插入和删除时需要移动大量元素 链式存储的定义 链式存储的逻辑结构 链表中的基本概念: 注意:表头节点并不属于数据元素 单链表图示: 把3个需要的结构体定义出来: typdef …

Open3D无效点云过滤删除

由于原始点云中有大量无效的点云数据。发现通过过滤的方式最方便 我的点云数据中Z无效的点云都为-32768 只要过滤掉大于-32768的数据就行 #加载点云数据 ply o3d.io.read_point_cloud("source/Foam1.ply") # Get the values of the points points np.asarray(ply…

docker - 常用容器部署命令大全(MySQL、Redis、RabbitMQ、ES、Kibana、Nacos、Sentinel)

目录 一、常用容器运行指令 MySQL Redis RabbitMQ ElasticSearch & kibana Nacos Sentinel 一、常用容器运行指令 MySQL docker run -d --name mysql -p 3306:3306 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORD1111 mysql:5.7 -e TZAsia/Shanghai:指定…

响应式开发

响应式开发的原理Bootstrap前端开发框架Bootstrap栅格系统阿里百秀首页案例 响应式开发原理 1 响应式需要一个父级做为布局容器,来配合子级元素来实现变化效果。 2 在不同屏幕下,通过媒体查询来改变这个布局容器的大小,再改变里面子元素的排…