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

news2024/11/16 19:37:09

阿丹:

        其实在整个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),也可以涉及复杂的业务逻辑处理,是连接用户输入、对话管理与输出响应的核心桥梁。

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

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

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

相关文章

大模型预训练结果到底是什么?

近日参加一个线下 AI 交流会议&#xff0c;会上有个非本行业的老师提问&#xff1a;“大家说的训练好的大模型到底是什么&#xff1f;是像 Word 软件一样可以直接使用的程序吗&#xff1f;” 这个问题看似简单&#xff0c;却一下把我问住了。的确&#xff0c;我们这些身处 AI 领…

如何培养元技能?

如何培养元技能&#xff1f; 一、引言 在当今社会&#xff0c;仅仅依靠某一专业技能是远远不够的。我们需要拓宽自己的能力和视野&#xff0c;从而更好地应对日新月异的社会发展和工作需求。在这个过程中&#xff0c;培养元技能变得至关重要。元技能不仅有助于我们在各个领域中…

智能变革:领域大模型重塑企业知识管理!

在如今知识密集型的行业领域里&#xff0c;企业员工每天都要与海量的文档和信息打交道&#xff0c;工作邮箱里充斥着无数邮件&#xff0c;办公桌上堆满了各种报告和文档&#xff0c;而每一个文件里都可能藏有关键信息。 然而&#xff0c;要从这些杂乱无章的信息海洋中找到需要…

JavaDS-学习数据结构之如果从零开始手搓顺序表,顺带学习自定义异常怎么用!

前言 笔者开始学习数据结构了,虽然笔者已经会用了,不管是C 中的stl亦或是Java 中的集合,为了算法比赛多少都突击过,但只知其然而不知其所以然,还是会限制发展的,因此,笔者写下这篇博客.内容是手搓一个顺序表.顺带加一点异常的使用,大伙看个乐子就好了.有错误直接私信喷我就好了…

wxPython Demo大全系列:ActivityIndicator控件分析

一、ActivityIndicator介绍 wx.ActivityIndicator 控件是 wxPython 中用于显示活动指示器的控件&#xff0c;通常用于指示程序正在执行某些后台任务或操作。它在用户界面中以动画的形式表现出活动状态&#xff0c;让用户知道应用程序正在进行处理而不是被挂起。 主要特点 可视…

Data Lakehouse:你的下一个数据仓库

作者&#xff1a;张友东 StarRocks TSC member/镜舟科技 CTO 数据分析是现代企业和组织决策过程中不可或缺的一部分&#xff0c;数据分析技术经过数十年的发展&#xff0c;需求场景从 BI 报表到数据探寻、实时预测、用户画像等不断丰富&#xff0c;技术架构经历从数据仓库、数据…

三方语言中调用, Go Energy GUI编译的dll动态链接库CEF

如何在其它编程语言中调用energy编译的dll动态链接库&#xff0c;以使用CEF 或 LCL库 Energy是Go语言基于LCL CEF开发的跨平台GUI框架, 具有很容易使用CEF 和 LCL控件库 interface 便利 示例链接 正文 为方便起见使用 python 调用 go energy 编译的dll 准备 系统&#x…

过去的六年,教会了我很多事

目录 过去六年的风风雨雨android缘起爱情缘灭顿悟收拾心情&#xff0c;再次启航面试阿里大起大落 如今时光&#xff0c;刺激且美好未来展望 过去六年的风风雨雨 android缘起 2018年&#xff0c;我从北京联合大学毕业&#xff0c;跟随着学长一起创业&#xff0c;从此开始了我的…

基于异构图的大规模微服务系统性能问题诊断

简介&#xff1a;本文介绍由南开大学、清华大学、腾讯、国家超级计算天津中心共同合作的论文&#xff1a;基于异构图的大规模微服务系统性能问题诊断。该论文已被IEEE Transactions on Services Computing期刊录用 论文标题&#xff1a;Diagnosing Performance Issues for Lar…

【计算机毕业设计】388微信小程序足球赛事及队伍管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

解密网络流量监控:优化IT运维的利器

引言&#xff1a; 在当今数字化时代&#xff0c;网络流量监控是维护网络稳定与业务连续性的关键。作为一名资深网络工程师&#xff0c;我将分享一些关于网络流量监控的重要知识&#xff0c;并探讨如何在IT运维中运用这一工具优化网络性能&#xff0c;确保业务的顺畅进行。 1. 网…

微前端(无界)入门

主应用通过props给子应用传值 父子应用通过eventBus通信 通过路由同步实现记录子应用的路由状态 主应用 main.ts: import ./assets/main.cssimport { createApp } from vue import { createPinia } from pinia import WujieVue from wujie-vue3import App from ./App.vue impo…

dust3r部署踩坑全记录

目前dust3r是三维重建最新最好的技术&#xff0c;运用了ViT编码器、Transformer、注意力机制、回归等技术&#xff0c;无需相机参数标定。 但是我部署过程中有很多坑&#xff0c;记录一下。 1.OSError: CUDA_HOME environment variable is not set. Please set it to your CU…

sprongboot+vue 游泳馆管理系统

游泳馆管理系统 spring bootvue 主要有游泳课程预约、网上购票、教练预约、游泳器材管理、会员管理等功能&#xff1b; 1、管理员 登录、修改密码 购票管理&#xff1a;查看订单、删除订单、修改订单 教练管理&#xff1a;教练信息查询、修改 课程信息&#xff1a;增删改查课程…

【class19】人工智能初步---语音识别(5)

【class19】 上节课&#xff0c;我们学习了&#xff1a;语音识别模型的结构和原理&#xff0c;同时调用创建好的AipSpeech客户端实现了语音转文字功能。 本节课&#xff0c;我们将初识字幕&#xff0c;学习这些知识点&#xff1a;1. srt字幕 2. 获取时间数据 …

认识NoSql

SQL是结构化的&#xff0c;NoSql是非结构化的 SQL是关联的&#xff1a; Nosql是无关联的&#xff1a; SQL采用的是SQL查询&#xff1a; 语法固定&#xff0c;好处是&#xff1a;只要是关系型数据库&#xff08;Mysql,Oracle&#xff09;&#xff0c;都能够使用相同的语句进行查…

Re73 读论文:ULMFiT Universal Language Model Fine-tuning for Text Classification

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;Universal Language Model Fine-tuning for Text Classification 模型简称&#xff1a;ULMFiT 模型全名&#xff1a;Universal Language Model Fine-tuning ArXiv网址&#xff1a;https…

Three.js 入门介绍与环境搭建

Three.js 入门介绍与环境搭建 一、引言 Three.js 是一个强大的用于在网页上创建和展示 3D 图形的 JavaScript 库。艾斯视觉作为ui设计和前端开发服务商在这里很高兴能与你共同探讨学习&#xff1a;它使得开发者能够轻松地构建令人惊叹的 3D 场景和交互体验。在这篇文章中&…

Type ‘null‘ is not assignable to type ‘T‘. - ArkTSCheck

设置泛型将参数配置为 null 时抛出了如下异常: Type null is not assignable to type T. T could be instantiated with an arbitrary type which could be unrelated to null. <ArkTSCheck> 解决办法 在 null 后面添加 ! 即可,以表示该值不会为 null data: T null! 以…

python-web框架应用程序-Django环境搭建

python-web应用程序-Django环境搭建 一、Django入门 使用Django&#xff08;http://djangoproject.com/&#xff09;来开发一个名为“学习笔记”&#xff08;Learning Log&#xff09;的项目&#xff0c;这是一个在线日志系统&#xff0c;让你能够记录所学习的有关特定主题的知…