《Ai企业知识库》rasa-rasa Core核心-认知理解以及配置文件应用

阿丹:

        其实在整个rasa中的关键元素和关键的核心在前面多多少少也涉及到了很多,这里就是开始涉及到了rasa的训练核心core。

Rasa Core:

Rasa Core 是Rasa框架中的一个组件,它负责处理对话管理部分,即决定对话流程中机器人的下一步行动。Rasa Core使开发者能够根据用户的输入、对话历史以及定义好的业务逻辑来设计和实现复杂的多轮对话。它利用机器学习策略来决定最佳的响应动作,同时也支持手工编写的规则。Rasa Core现已与Rasa NLU合并为统一的Rasa框架,但在旧版本中,它是独立存在的。

在Rasa中,管理和配置主要通过以下几个核心的YAML配置文件来完成:

  1. config.yml: 这个文件主要用于配置Rasa的NLU(自然语言理解)和Core(对话管理)部分。它定义了NLU处理流程(例如,使用哪些组件进行文本预处理、实体提取、意图识别等)以及对话策略(如选择哪种算法来决定对话的下一步行动,如MemoizationPolicy、KerasPolicy等)。

  2. domain.yml: Domain文件描述了机器人的“领域”,包括所有可能的意图、实体、槽位(slots)、回应模板以及机器人的行动空间。它定义了对话的上下文结构和机器人可以执行的操作。

  3. stories.yml: Stories用于定义对话流程的故事脚本,描述了用户和机器人之间可能的交互序列。每个故事是一系列的用户意图和对应的机器人行动,帮助Rasa学习和模拟实际对话场景。

  4. endpoints.yml: 此文件配置了与Rasa系统交互的各种外部服务的端点,如数据库、API、消息队列等。这对于连接到自定义的动作服务器、训练数据源或日志记录服务尤为重要。

随着Rasa框架的更新迭代,配置文件的结构和命名约定可能会有所变化,特别是从Rasa 2.x迁移到Rasa 3.x的过程中,部分配置方式和文件结构进行了调整和优化。因此,在使用特定版本的Rasa时,建议参考该版本的官方文档来获取最准确的配置信息。

Introduction to Rasa Open Source & Rasa Pro

其实整个rasa Core就是这个下面这两步的合成。 

 

会根据很多状态来获取以及拿到推理出具体的任务和行为 

 流程图示

 具体流程,在这里的模型rasa是可以提供自己选择的。

 具体的行动,在这里的行动rasa是可以支持去调用api的

在去设计意图的时候,要在前期要涉及到当机器人识别到了意图之后要进行什么样子的活动。

一般来说这里是产品经理来预设好的。 

整个action分为了四种:

responses:回应

default actions:默认的回应

forms:表单、一般是用来做任务的

custom actions:是我们用来做一些复杂的逻辑、知识库、知识图谱(高级)

配置文件中的domain.yml组成了解

在使用rasa init初始化的时候就会自动生成一个domain.yml

 整个项目中的intents(意图)都有哪些,这里要列举出来。

 这里就是responses回复

 如何理解responses:

当识别到意图之后将下面的text返回。

 整个response识别触发顺序为:

 子意图-触发回应检索:

在前面增加前缀的方式来完成

使用变量的反应(高级使用-根据实体)-模板:

使用大括号{}的方式来获取变量,这里使用的实体就是我们在之前在nlu中标记出来的实体。

当在模板中有多个的模板的时候会给随机的模板回复。

特殊的渠道相应配置文件为:credentials.yml:

动作:通道特定响应

在domain.yml中设置渠道的回复,在 credentials中标记和创建通道

 行动:丰富的相应方式!Rich Response

针对返回比如果是一个表单,一个数据等

 这个方式要支持交互(前端)

点击buttons触发一个另外一个意图。

回复一个图片

使用这个custom output payloads可以指定返回值,这里需要前端去解析等这些

Custom Output Payloads

responses优先级会更高一些。 

Forms

在做任务的时候需要填写一个表单,所以需要我们去定义一个form

在domain文件中定义一个表单

要构建表单来收集信息。

注意:如果想使用form的action就要在config.yml中的policies中添加对应的配置才可以。要给RulePolicy添加到配置文件中去才可以。

因为默认是不支持这个特性的。

使用stories来完成这个form的激活。

这里很人性的是需要用户填完所有的表单才可以进入下一个action。

但是提供了一个取消循环的操作(见文档)。

https://rasa.com/docs/rasa/forms


Story像是一个规则

会遵循规则对话!

是通过intent和action来讲一个故事

Rules

 规则。

注意!:在基础的模型中是不支持的。

需要在config.yml中的policies中添加配置

-name: RulePolicy

就可以支持了

注意:在rules中的顺序为钉死的。

它和story的区别是story有一定的泛化能力,但是rules是没有的是严格执行的。

要明确rule使用的业务点,不然会耽误story的能力。

Rules with Conditions

在规定情况下的规则

在一些条件下面触发role

用例为在用户的名字被填充的时候才触发这个规则

Story 

官方介绍: 

 

 总结:

在Rasa中,rules, stories, responses, 和 actions 是构建复杂对话系统的四个关键组成部分,它们之间有着紧密的联系,共同定义了机器人如何理解和响应用户的消息。下面是这些组件的基本概念及其相互之间的关系:

  1. Stories: Stories描述了用户与机器人之间的一系列对话交互,从用户的初始意图开始,一直到对话结束。每个story代表一个具体的对话流程,由多个用户消息(intent和entities)和机器人响应(通常通过actions触发)组成。Stories帮助Rasa学习对话流程并预测接下来的最佳行动。

  2. Rules: Rules在Rasa中是一种更直接的方式来定义特定条件下的自动化行为,通常用于简单且明确的逻辑,比如直接基于某个intent或实体的响应。Rules可以看作是Stories的简化版本,适用于那些不需要复杂决策树的场景。当满足规则条件时,机器人会执行指定的操作,比如发送一条消息或调用一个action。

  3. Responses: Responses是机器人用于回复用户的预定义消息。它们可以包含简单的文本、富媒体内容或其他动态生成的信息。在Stories和Rules中,通过引用response的名称,Rasa会在相应的对话节点触发这些预定义的回复。Custom Actions也能动态生成responses。

  4. Actions: Actions是Rasa中定义的函数,用于执行特定任务,比如检索信息、更新对话状态、发送复杂响应等。Actions可以是默认内置的(如utter_<response_name>用于发送预定义的responses),也可以是自定义的(通过Python代码实现)。在Stories和Rules中,通过触发特定的action来控制对话的流程和内容。

关系总结:

  • Stories和Rules描述了对话的流程,其中Stories更加灵活和复杂,适合多路径对话;而Rules适用于简单直接的逻辑处理。
  • Responses作为机器人的回复内容,被Actions(特别是utter_开头的actions)所引用,以实现消息的发送。
  • Actions是执行具体任务的单位,既可以是简单的消息发送(通过responses),也可以涉及复杂的业务逻辑处理,是连接用户输入、对话管理与输出响应的核心桥梁。

综上,这些组件协同工作,共同构建了一个能够理解用户意图、管理对话状态并做出适当反应的对话系统。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IPV4地址介绍

4.1IP地址简介 目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议&#xff0c;是TCP/IP协议族的核心协议。IP协议定义了一种地址编码&#xff0c;称为IP地址&#xff0c;它是网络中网络段、网络设备接口、主机的编码&#xff0c;它并不是一种物理…

容器化部署gitlab、jenkins,jenkins应用示例

一、容器化部署docker和docker conpose安装 Docker&Docker-compose的安装及部署_docker 20 使用什么版本docker-compose-CSDN博客 1.docker 安装脚本 cat >01_docker.sh<<EOF #!/bin/bash yum remove docker \docker-client \docker-client-latest \docker-co…

组件的传参等

一:组件的生命周期函数 组件的生命周期函数: created只是创建了组件内的实例对象 attached,给组件实例绑定了属性,绑定到页面节点树之后 ready准备好渲染之后,还未渲染之前 moved组件实例被移动到另一个位置后执行 detached在整个组件被被移除执行 error执行的时候,组件内…

接口的扩展方法 注意点

只把必备的契约定义在接口中&#xff0c;把其他功能留给扩展方法去实现 定义接口的时候&#xff0c;只把必备的功能列出来就行了&#xff0c;而其他一些功能则可以在别的类里面以扩展方法的形式去编写&#xff0c;那些方法能够借助原接口所定义的基本功能来完成自身的任务。 这…

Stable Diffusion WebUI详细使用指南

Stable Diffusion WebUI&#xff08;AUTOMATIC1111&#xff0c;简称A1111&#xff09;是一个为高级用户设计的图形用户界面&#xff08;GUI&#xff09;&#xff0c;它提供了丰富的功能和灵活性&#xff0c;以满足复杂和高级的图像生成需求。由于其强大的功能和社区的活跃参与&…

php 安装 swoole扩展

一 在swoole官网查询适配版本Swoole 文档 2. php环境为7.3下载 4.8 ​ wget https://pecl.php.net/get/swoole-4.6.6.tgztar -zxvf swoole-4.6.6.tgzcd swoole-4.6.6/usr/local/php7/bin/phpize​ ./configure --enable-openssl --enable-sockets --enable-mysqlnd --enabl…

Downie 4 for Mac:视频下载的新选择

对于Mac用户来说&#xff0c;想要轻松下载网上的视频内容&#xff0c;Downie 4无疑是一个绝佳的选择。这款专为Mac打造的视频下载工具&#xff0c;凭借其强大的功能和简洁的操作界面&#xff0c;让视频下载变得轻松又高效。 Downie 4支持从众多网站下载视频&#xff0c;包括各…

斯坦福报告解读4:图解有趣的推理基准(中)

《人工智能指数报告》由斯坦福大学、AI指数指导委员会及业内众多大佬Raymond Perrault、Erik Brynjolfsson 、James Manyika等人员和组织合著&#xff0c;该报告已被公认为最权威、最具信誉人工智能数据与洞察来源之一。 2024年版《人工智能指数报告》是迄今为止最为详尽的一份…

逍遥散人的“痛婚”,让《光夜》玩家悄悄破防了

网红博主的一场求婚&#xff0c;让《光与夜之恋》玩家破防了。 知名游戏博主逍遥散人发微博公布求婚成功&#xff0c;本来应该是一件喜事&#xff0c;但却因为求婚场景布满了《光与夜之恋》男主角之一陆沉的谷子&#xff08;周边&#xff09;&#xff0c;遭到了“6推”&#x…

AI知识库和Agent简介及实现

AI知识库和Agent简介及实现 引言 随着人工智能的发展&#xff0c;大规模预训练模型&#xff08;Large Pre-trained Models&#xff0c;简称大模型&#xff09;成为了AI领域的重要研究方向。大模型通过大量的数据训练&#xff0c;能够在各种任务中展现出强大的性能。本文将重点…

出租房水电抄表系统的全面解析

1.系统定义和功能 出租房水电抄表系统是一种智能的可视化工具&#xff0c;关键用于解决房东在经营好几个出租房源时&#xff0c;对水电的使用量统计分析、收费和管理上的问题。通过自动化抄表、收费和通告&#xff0c;此系统减轻了房东的工作负担&#xff0c;提高了效率&#…

深入理解统计学中的最大值与最小值

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、统计学中的基础概念&#xff1a;最大值与最小值 1. 创建数组与数据导入 2. 求解整体数…

电表自动抄表系统:智能时代的能源管理新方式

1.界定和功能 电表自动抄表系统是一种现代化电力计量技术&#xff0c;它利用先进的通讯技术和互联网&#xff0c;完成了远程控制、实时电磁能数据采集和处理。系统的主要作用包含全自动载入电表数据信息、实时检测电力应用情况、出现异常报案及其形成详尽能源使用报告&#xf…

设置 SSH 主机 *** 正在初始化 VS Code 服务器

首先在server端 找到vscode server的服务端&#xff1a; ps -ef|grep node 然后kill掉 kill -9 pid 然后删除掉 .vscode-server 文件 rm -rf .vscode-server

Remix IDE 创建和部署第一个合约HelloWorld

Remix IDE 地址 https://remix.ethereum.org/ 流程步骤&#xff1a; 创建一个新文件 输入文件名保存 在文件资源管理器中&#xff0c;点击新建文件图标创建一个新文件&#xff0c;并给它命名。在 Remix 中&#xff0c;默认的文件扩展名是 .sol &#xff0c;如果文件名没有…

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日&#xff0c;2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办&#xff0c;空军军医大学、西安交通大学、西北工业大学承办&#xff0c;通过二十多场论坛、百余项成果&#xff0c;集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

容器Android:Waydroid

环境&#xff1a;intel PC&#xff0c;Ubuntu20.04 目标&#xff1a;在Ubuntu20.04上搭建waydroid Android容器系统1. 搭建weston环境 由于waydroid依赖wayland环境&#xff0c;当前Ubuntu20.04默认为X11&#xff0c;需要安装weston $sudo apt install weston $weston #进入W…

基于L1范数惩罚的稀疏正则化最小二乘心电信号降噪方法(Matlab R2021B)

L1范数正则化方法与Tikhonov正则化方法的最大差异在于采用L1范数正则化通常会得到一个稀疏向量&#xff0c;它的非零系数相对较少&#xff0c;而Tikhonov正则化方法的解通常具有所有的非零系数。即&#xff1a;L2范数正则化方法的解通常是非稀疏的&#xff0c;并且解的结果在一…

【Spring Cloud】分布式配置动态刷新

目录 问题解决方案1.使用Spring Boot Actuator监控接口【不推荐】流程图使用Spring Boot Actuator的步骤 2.Spring Cloud Bus第一种方案问题Spring Cloud Bus流程图Spring Cloud Bus实现客户端刷新的步骤开发准备实现1. 在config-server中添加依赖2.在config-server中添加配置a…

LeetCode --- 399周赛

题目列表 3162. 优质数对的总数 I 3163. 压缩字符串 III 3164. 优质数对的总数 II 3165. 不包含相邻元素的子序列的最大和 一、优质数对的总数I 这里由于数据范围比较小&#xff0c;我们可以直接暴力枚举&#xff0c;代码如下 class Solution { public:int numberOfPairs…