RASA介绍

article/2025/9/19 20:15:44

引言

 自然语言是人类表达情感、观念的主要工具和人类思维的重要载体,而最常见的自然语言应用场景则是对话。人们希望通过自然语言控制机器,甚至实现机器与人类的对话与交流。使用自然语言作为输入输出的媒介,会使用户获得更自然友好的人机交互体验,从而为人类生活提供便捷服务。近年来,人工智能技术蓬勃发展,实现基于自然语言的对话系统逐渐成为了人工智能领域的热门研究之一,受到了工业界和学术界的高度重视和广泛关注。如果说自然语言处理是人工智能皇冠上的明珠,那么对话系统就是其中最闪亮的明珠之一。

 随着自然语言处理的发展,对话机器人技术也不断更新。现在越来越多的场景需要对话机器人,有纯文本对话的各类助手,如医院导诊的助手,购物网站的智能导购,智能销售客服,证券领域智能投顾等等,也有语音对话机器人,如智能语音外呼系统,智能语音客服系统等。对话机器人因为不同功能场景,不同的应用领域有着各种各样的分类,虽然背后的技术支撑都是自然语言处理,但在具体工程实践中又有一定差别。

 对话机器人应用逐渐普及,相关理论和技术不断更新。很多知名企业先后研发并推出了自己的对话系统,如百度开源的基于检索式机器人的框架AnyQ;Google开源的基于生成式对话系统DeepQA;Facebook开源的Blender系统,它具有个性人物聊天的功能,可以知识问答,是有史以来最大的开放域(Open-Domain)聊天机器人;还有Uber开源的Plato系统,也具有比较完整的功能。但要从框架完整性,可扩展性,易用性等各方面来说,Rasa当仁不让是目前最全面的系统之一。

 Rasa成立于2016年,为对话AI提供了基础设施层,包括构建上下文助手所需的工具。公司企业端以开源的形式免费提供核心平台和免费工具集Rasa X,也提供商业版,包括企业级对上下文助手大规模开发的支持。Rasa致力于通过更好的研究、对开源软件的投资、优秀的开发人员工具和培训,以及灵活的本地部署或云部署,支持开发人员创建健壮的、任务关键型机器人程序。据统计,全球前十大银行中有六家、全球前十大电信公司中有五家、前十大保险公司中有五家都在使用Rasa的产品。著名客户包括德国电信公司和奥多比系统公司(Adobe Systems Inc .)、巴耶希汽车公司(Bayerische Motoren Werke AG)、空中客车公司(Airbus SE)、英国通用电气公司(ENGIE SA)、美国HCA医疗保健公司(HCA health Inc .)、奥兰治公司(Orange SA)和中国的阿里巴巴等。

 本文先介绍对话机器人的发展历史,通过与传统对话机器人进行比较,突出Rasa框架的优势。接着详细介绍了Rasa的组织架构及核心部分。


传统对话机器人

      早期的对话机器人架构主要基于模版和规则,如AIML。

      规则的描述主要基于正则表达式和类似正则表达式的模版。将用户的问题匹配到这样的模版上,可以取得预定义好的答案好结果。AIML本身有比较强大的描述能力,可通过规则从用户问题中获取重要信息,随机选择备选答案,甚至运行相应的脚本通过外部API获取数据集等。事实上,像AliceBot这样基于AIML的对话机器人,拥有4万多个不同的类别数据,是一个海量的规则数据库。

      使用规则的好处是准确率高,但缺点明显:用户的句式千变万化,规则只能覆盖比较少的部分。仅仅像简单的询问天气或者时间,用户就可以有几百种不同的询问方式。随着时间推移,规则会越写越多,难以维护,还常常互相矛盾,改动一个业务逻辑就会牵一发而动全身。此外,对话机器人需要维护一个庞大的问题数据库,对用户的问题通过计算句子之间的相似度来寻找数据库中已有的最相近的问题,从而给出相应的答案。


AIML

  AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,最初来源于一个名为"A.L.I.C.E."的聊天机器人。AIML通过定义的规则模板进行问答匹配,来实现聊天机器人自动问答的功能。

  下面展示了一个最基本的例子,仅包含最主要的<category><pattern><template>三种标签:

<category><pattern>你好</pattern><template>您好,很高兴认识您。</template>
</category>

  当用户输入问题“你好”时,机器人就会匹配到这个pattern,然后将<template>中的内容作为答案返回。

  AIML的工作流程主要分为以下几步:

  1.系统初始化:首先根据配置文件进行系统的初始化操作,再将各类信息以及此前的对话情景变量读入系统,并把知识库以树的结构形式加载到内存当中。

  2.接收用户输入:首先把输入的文字分成单独的句子,进行问句规范化处理,如替换字符等。

  3.问句查询推理:这一过程是AIML的核心部分,将规范化处理后的问句与内存知识树中的模式进行匹配,寻找最佳匹配结果。

      4.模版处理:模板中可能包含一些特殊标记需要处理,如还原星号部分所代表的内容,模板处理完后返回用户结果,等待用户输入新问句。

想要了解AIML详细内容可查看链接


Rasa体系结构

      Rasa是一个用于构建对话机器人的开源机器学习框架。它拥有大量的可扩展特性,几乎覆盖了对话系统的所有功能。相较于传统的对话机器人框架,Rasa更具高效性和灵活性。

  Rasa框架的核心部分可以分为Rasa和Rasa SDK。

  Rasa又可以细分为Rasa NLU和Rasa Core两个子部分。Rasa NLU主要负责将用户的输入转换成意图和实体信息,这一过程就是自然语言理解(Natural Language Processing,NLU)。Rasa Core主要负责基于当前和历史的对话记录,决策下一个动作(action),下一个动作可能是回复用户某种消息、调用用户自定义的动作类(class)。

  RASA的NLU为开发人员提供了解消息,确定意图并捕获关键上下文信息的技术。支持多种语言,单一和多种意图,以及预训练和自定义实体等功能。其主要依赖于自然语言处理技术,是可以独立的、与整体框架解耦的模块,支持大量NLP前沿技术,以组件的形式,可以灵活与其他开源框架搭配使用。RASA的CORE提供了多轮对话管理机制,使用Transformer技术自动学习上下文的与当前意图的关联性,而不是比较固定的状态机,再结合RulePolicy,提供了最大的灵活性。

  Rasa SDK是Rasa提供的帮助用户构建自定义动作的软件开发工具包。大多数机器人都需要调用外部服务来完成功能。例如,天气查询机器人需要天气信息服务商的接口来完成实际天气情况的查询,订票机器人需要调用第三方数据接口来完成车票信息的查询及订购。在Rasa中,这种由具体业务决定的动作被成为自定义动作(custom action)。自定义动作运行在一个单独的服务器进程中,也被称为动作服务器(action server)。动作服务器通过HTTP和Rasa Core进行通信。

  值得一提的是,Rasa在软件包的规划上是经过充分考虑的。按照软件系统的结构反映组织结构的理论,也就是著名的康威定律,Rasa NLU和Rasa Core属于结合比较紧密的,都位于名为Rasa的软件包中,而Rasa SDK单独成为一个软件包。如此设计是考虑到通常情况下Rasa NLU和Rasa Core由算法团队负责,而自定义动作的开发由Python工程师团队负责。两个团队可以在低耦合的情况下,各自独立开发,独立部署,独立改进,从而提高工作效率。

除了上面介绍的核心部分外,Rasa还包括很多内容,Rasa的体系结构如下图所示:

1.图中NLU Pipline指Rasa NLU的流水线组件,Dialogue Policies即对话策略管理,属于Rasa Core部分。

2.Agent:从用户角度来看,Agent就是整个Rasa系统的代理,主要是接收用户输入消息,返回Rasa系统的回答。从Rasa角度来看,它连接自然语言理解(NLU)和对话状态管理(DSM),根据Action得到回答,并且保存对话数据到数据库。

3.Action Server:提供了Action与Policy解耦的一种方式。用户可以定义任何一种Action链接到Action Server上,通过训练学习,Rasa可以将Policy路由到这个Action上。此外,通过Rasa SDK可以实现Rasa的一个热插拔功能,比如查询天气预报等。

4.Tracker Store:将用户和Rasa机器人的对话存储到Tracker Store中,Rasa提供的开箱即用的数据库包括PostgreSQL、SQLite、Oracle、Redis、MongoDB、DynamoDB,当然也可以自定义存储。

5.Lock Store:一个ID产生器,当Rasa集群部署的时候会用到,当消息处于活动状态时锁定会话,以此保证消息的顺序处理。

6.Event Broker:简单理解就是一个消息队列,把Rasa消息转发给其它服务来处理,包括RabbitMQ、Kafka等。

7.FileSystem:提供无差别的文件存储服务,比如训练好的模型可以存储在不同的位置。支持磁盘加载,服务器加载,S3这样的云存储加载。

8.Channel:channels连接用户和对话机器人,支持多种主流的即时通信软件对接Rasa。

Rasa NLU

 Rasa NLU负责意图(intent)识别和实体(entity)提取。例如当用户键入“明天北京的天气如何?”,Rasa NLU识别该句子的意图为查询天气,相应的实体信息包括:明天是日期;北京是城市。

      Rasa NLU使用基于监督学习的算法来实现功能,因此需要开发者提供适当数量的语料,语料包含意图信息和实体信息。从结构上来说,训练数据都在键为nlu的列表中。列表中每个元素都是一个字典,依靠字典中某个具有特殊含义的键来区分不同字典的功能。如intent键表示意图识别的相关训练语料,除此外还有同义词(synonym)、查找表(lookup)、正则表达式(regex)等键。

      Rasa NLU在软件架构上设计得很灵活,允许开发者使用不同的算法来实现功能,这些算法的具体实现被称为组件(component)。 此外,为了让组件灵活配置和维持正确的前后组件的依赖关系,Rasa NLU引入了基于有向无环图的组件配置系统。有向无环图描述了模型中组件之间的依赖关系,以及数据如何在它们之间流动。在Rasa NLU中,该无环图被称为流水线(pipline)。为了完成实体提取和意图识别两个任务,一个典型的Rasa NLU流水线通常包含以下组件:

1.语言模型组件

2.分词组件

3.特征提取组件

4.NER组件

5.意图分类组件

6.结构化输出组件


Rasa Core

      Rasa Core是Rasa体系中负责对话管理的部分,主要职责是记录对话的过程和选择下一个动作。Rasa Core是一种机器学习驱动的对话管理引擎。

  领域(domain)是Rasa NLU中很重要的一个部分。领域中定义了对话机器人需要知道的所有信息,包括意图、实体、词槽、动作、表单和回复。这些信息对模型的输入和输出进行了明确的范围指定,意图和实体表示输入范围。词槽和表单相当于内部的变量,用于表征状态和存储记忆。动作给定了模型输出的范围。回复字段作为对话机器人回复的模版,既可以认为是一种简单的动作,又可以认为是复杂动作的自然语言生成步骤。


http://chatgpt.dhexx.cn/article/5KeEdxo2.shtml

相关文章

关于Rasa你必须要知道的几件事

关于Rasa你必须要知道的几件事 1、为什么选择Rasa 2、Understanding the Rasa NLU Pipeline 3、Components in Rasa 4、DIET in Rasa 5、Dialogue Management in Rasa 2.0 6、TED Policy in Rasa 本文从一个high-level的角度对使用Rasa构建聊天助手的整个过程进行了总结&#x…

Rasa系列教程(一) -- 系统及各组件介绍

目录 前言 一、传统对话机器人架构 二、对话系统流程 2.1 ASR语音识别 2.2 NLU自然语言理解 2.3 DM对话管理 2.4 NLG自然语言生成 2.5 TTS语音合成 三、Rasa组件介绍 3.1 Rasa简介 3.2 Rasa安装 3.3 Rasa项目基本流程 3.4 Rasa常用命令 3.4 Rasa常用命令 ​​​​…

数据治理-数据标准

问题导读1.为什么要做数据标准管理&#xff1f;2.生产变更的标准管理主要解决了哪些问题&#xff1f;3.变更通知谁&#xff08;影响范围&#xff09;&#xff1f;4.业务元数据的标准管理主要解决了哪些问题&#xff1f; 一、为什么要做数据标准管理 数据治理的问题并不仅仅只…

数据治理效果差?掌握正确治理方法,解决企业数据问题

数字化时代&#xff0c;数据已经成为构建现代化社会的重要元素&#xff0c;也深深扎根于商业世界&#xff0c;成为无数企业经营管理中悉心培养的”明珠“。 然而&#xff0c;这些宝贵的数据是需要有人来照料、培养的&#xff0c;如果企业没有完善的数据治理方案&#xff0c;就…

数据治理要点

目录 数据治理-ods治理前言-确定表主键数据治理-行政区划数据治理-字段拆分数据治理-必去的脏数据数据治理-全角转半角 已经在公司待了有一段时间了&#xff0c;自己也亲身接触和实践了一些项目&#xff0c;最近发现自己一直没有进步&#xff0c;想了想或许是自己一直没有反思总…

数据治理

数据治理(DataGovernance)&#xff0c;是企业数据治理部门发起并推行的&#xff0c;关于如何制定和实施针对整个企业内部数据的商业应用和技术管理的一系列政策和流程。 数据治理是一套持续改善管理机制&#xff0c;通常包括了数据架构组织、数据模型、政策及体系制定、技术工…

主数据治理项目前期调研

随着企业的不断发展进步&#xff0c;业务部门的需求不断增加&#xff0c;企业逐渐上了很多应用系统以及硬件设备&#xff0c;如OA办公协同系统、ERP企业资源管理系统、HR人力资源管理系统、CRM客户关系管理系统等&#xff0c;也在业务发展中沉淀了大量数据&#xff0c;但是这些…

通俗理解数据治理之主数据

1&#xff09;如需数据治理-元数据材料可前往&#xff08;狗头.gif&#xff09; https://download.csdn.net/download/u010763324/87589200https://download.csdn.net/download/u010763324/875892002&#xff09;如需数据治理-主数据材料可前往&#xff08;狗头.gif&#xff0…

数据治理概述

一、 首先认识一些名词 在学习数据治理知识之前&#xff0c;首先要明白治理的对象都有哪些&#xff0c;什么才是数据&#xff1f;是1&#xff0c;2&#xff0c;3&#xff0c;4这种纯数字类型的才算数据吗&#xff1f;还是所有的文本数据都是数据&#xff1f; 请往下看。 1.1…

数据治理:数据治理框架和标准

参考《一本书讲透数据治理》、《数据治理》等 数据治理并不是新概念&#xff0c;在国内外都有实践&#xff0c;这里重点介绍下国内外对数据治理的主流框架和标准 国际数据治理框架 国际上&#xff0c;主流的数据治理框架主要有&#xff1a;ISO数据治理标准、GDI数据治理框架、…

数据治理项目经验分享

绝大多数互联网公司没时间建模、治理&#xff0c;直接拖宽表。业务变更频繁、建模缺位、指标爆炸&#xff0c;是导致互联网大数据环境中数据质量的低下的根本原因。 而在部委、集团中&#xff0c;时间相对充裕一些&#xff0c;标准更规范一些&#xff0c;但是同样面临部委和省…

谈谈数据治理

数据治理的本质是组织对数据的可用性、完整性和安全性的整体管理。 1.数据治理的本质 可用性指数据可用、可信且有质量保证&#xff0c;不会因为分析结果的准确性造成偏差&#xff0c;从业者可以放心地根据数据结果做业务决策&#xff1b;完整性分为两个方面&#xff0c;一方面…

数据治理:企业数据治理蓝图

参考《一本书讲透数据治理》、《数据治理》等 文章目录 企业数据治理体系企业数据治理9个要素企业数据治理4个层面 企业数据治理之道企业数据治理之法企业数据治理之术企业数据治理之器 企业数据治理体系 数据治理、数据管理、数据管控三者是什么关系&#xff1f;很多人都搞混…

也谈数据治理

1.数据治理的概念 数据治理&#xff0c;对于有数据的企业来说&#xff0c;是一个非常重要的内容。数据治理&#xff0c;之所以重要&#xff0c;是因为当前&#xff0c;数据已成为一种重要的资产&#xff0c;是组织进行管理、生产和行动的重要职称。 笔者结合了多方资料&#…

数据治理专栏

随着数字化转型大趋势发展浪潮以及数据作为新的生产要素&#xff0c;数据在企业的发展中扮演越来越重要的角色。然而数据本身不会自动产生价值&#xff0c;一般来说数据价值变现有两种方式&#xff1a;一种是通过数据治理将数据资源转化为数据资产&#xff0c;再把数据资产链接…

数据治理简介

参考文章&#xff1a;数据治理到底能治什么&#xff0c;怎么治 浅谈数据治理 数据治理的定义&#xff0c;挑战和最佳实践 1. 数据治理的背景 狭义上讲&#xff0c;数据治理是指对数据质量的管理、专注在数据本身。广义上讲&#xff0c;数据治理是对数据的全生命周期进行管理…

数据治理问题

01前言 为什么想开这个话题&#xff0c;一是因为目前业内数据产品也基本完成了从0-1的建设工作&#xff0c;但主要集中在数据生产加工和数据应用分析两侧&#xff0c;对于数据管治方向的建设多分散在了包括安全、指标元数据、SLA等在内的各个环节&#xff0c;缺乏统一的规划统…

【数据治理】数据治理8种方法

今天给大家推荐的是数据治理套路8法&#xff0c;个人觉得这8种方法中监管驱动法和利益驱动法是最常见的&#xff0c;也是一直在治&#xff0c;但只能局部治理的方法&#xff0c;未来是数字时代&#xff0c;必须体系构建&#xff08;顶层设计&#xff09;价值驱动&#xff08;利…

浅谈数据治理(什么是数据治理)

浅谈数据治理 数据治理是一个对企业数字化转型至关重要的一个环节&#xff0c;关乎着企业核心数据是否能被规范化管理、数据的价值是否能被充分发挥等等。说白了能给企业实现降本增效、业务精细化运营、重要决策制定、产品优化迭代等多方面的收益。 说到数据治理&#xff0c;…

什么是数据治理?(目的、方法、流程)

文章目录 1、什么是[数据治理]2、数据治理的目的3、数据治理的方法4、数据质量8个衡量标准5、数据治理流程 1、什么是[数据治理] 数据治理&#xff08;Data Governance&#xff09;是组织中涉及数据使用的一整套管理行为。由企业数据治理部门发起并推行&#xff0c;关于如何制…