rasa框架
Conversational AI Platform | Superior Customer Experiences Start Here
阿丹:
其实现在可以使用的ai的开发框架有很多很多,就需要根据各个模型的能力边界等来讨论和设计。
rasa整体流程以及每一步的作用
NLU(自然语言理解):
自然语言理解:
Intent:意图,理解这个问题是要干什么
以及要完成这个东西的限制条件
DST(对话状态跟踪):
Current Interpretation:现行解释
past State:过去状态
这里的dst主要是用来管理多轮对话中的时候,来处理多轮对话。
用来管理:
对话中的庞杂信息,有的需要模型记忆,有的不需要。
Dialogue Policy(行动生成):
这个步骤主要是,拿到上一步传过来的有用的记忆知识、数据。来让机器人明白要做什么。
输出的就是:Action(具体的动作)
NLG(自然语言生成):
传入动作,以及准备好了的信息。这里的语言生成来将语料加工成一个符合人类理解的正常话语。
在NLG这里就可以去规则哪些使用的语气等等。。。
为啥用rasa?
使用Rasa的原因及其优势主要包括以下几点:
-
开源与自托管:Rasa是一个开源框架,这意味着你可以免费获得并查看其全部源代码。此外,由于可以在自己的基础设施上运行聊天机器人,因此可以保护用户数据隐私,避免将敏感信息发送到第三方服务器。
-
强大的NLU能力:Rasa包含先进的自然语言理解(NLU)技术,能够处理意图识别、实体提取、上下文理解等多种任务,支持多语言,并且允许自定义和优化模型以适应特定场景。
-
高度可定制和可扩展性:Rasa具有模块化和可扩展的架构,开发者可以根据需要添加自定义组件、集成外部服务或调整对话逻辑,这使得它适用于从小型项目到复杂企业级应用的各种规模。
-
灵活的对话管理:Rasa Core模块提供了多轮对话管理功能,支持基于机器学习的对话流程设计,以及规则定义,使得对话更加自然流畅,能够处理复杂的对话场景。
-
活跃的社区与支持:Rasa拥有一个庞大且活跃的开发者社区,提供了丰富的文档、教程和案例研究,便于学习和解决问题。同时,由于其在GitHub上的高星数和频繁的更新,确保了框架的持续发展和技术领先性。
-
易于上手:即便是非专业AI开发者,通过简单的配置文件和命令行工具,也能快速搭建出基础的对话机器人原型。
-
跨平台集成:Rasa支持多种消息通道集成,包括常见的社交媒体、即时通讯软件等,方便部署到不同的平台上,提供无缝的多渠道用户体验。
-
投资回报率高:根据一些报告,使用Rasa构建的聊天机器人能够带来显著的投资回报,缩短了实现ROI的时间,对企业而言经济高效。
综上所述,Rasa因为其开源性、强大的NLU与对话管理能力、高度的灵活性和可定制性,以及活跃的社区支持,成为构建对话式AI应用的优选框架之一。
环境搭建:
官方文档链接:
1、需要python环境
2、确保拥有VC++(windows)
C:\> .\venv\Scripts\activate
C:\> pip3 install -U pip
3、官方推荐我们使用虚拟环境来处理
通过选择Python解释器并创建一个.\\venv目录来保存它来创建一个新的虚拟环境
python3 -m venv ./venv
启动虚拟环境
.\venv\Scripts\activate
安装rasa:
直接获取库
To install Rasa Open Source:(安装开源rasa代码)
pip3 install rasa
rasa init
就可以进行初始化了。
从gitHub上获取安装:
注意:
因为是从github上获取的所以如果是要根据
curl -sSL https://install.python-poetry.org | python3 -
git clone https://github.com/RasaHQ/rasa.git
cd rasa
poetry install
如果下载不了可以使用合法的网络通道来去gitHub下载。
安装依赖
安装踩坑!!:
在安装环境的时候:
这里它提供的指令都需要删除掉它的单引号。
安装全部依赖:
pip3 install rasa[full]
这里需要将配python准备到正确的版本去。
安装spaCy-自然语言处理库
spaCy是一个现代的自然语言处理库,它设计用于高效地处理文本数据。spaCy提供了诸如词性标注、命名实体识别、依存关系分析等多种自然语言处理功能。由于其速度快和易于使用的特点,spaCy在自然语言处理领域被广泛采用。
在Rasa中,spaCy扮演着一个关键角色,尤其是在自然语言理解(NLU)阶段。Rasa利用spaCy进行文本预处理,比如分词(tokenization)、词干化(stemming)、lemmatization(词形还原)以及识别命名实体等功能。这些预处理步骤对于将非结构化的文本数据转换成机器可以理解的形式至关重要,从而帮助Rasa更好地理解用户输入的意图和实体,进而驱动更加智能和流畅的对话体验。
简而言之,spaCy在Rasa中作为一个强大的底层NLP工具被集成,支持Rasa实现高级的自然语言理解和处理能力。
pip3 install rasa[spacy]
python3 -m spacy download en_core_web_md
安装MITIE开源的自然语言处理库
MITIE(Massive Intelligence Transition Engine)是Derek Mitchell开发的一个开源的自然语言处理库,特别强调于信息抽取和实体识别任务。在Rasa的早期版本或特定应用场景中,MITIE被用作一个可选的组件,主要负责意图识别和实体提取。
具体来说,MITIE在Rasa中的作用主要包括:
-
意图识别(Intent Recognition):MITIE帮助Rasa通过机器学习模型理解用户输入的意图。例如,从用户的一句话中判断出用户是想查询天气、订餐还是寻求技术支持。
-
实体识别(Entity Extraction):它还能够识别用户消息中的关键实体,这对于构建有意义的对话响应至关重要。例如,在句子"我想订明天从纽约到洛杉矶的机票"中,MITIE可以识别出"明天"为时间实体,"纽约"为出发地实体,"洛杉矶"为目的地理实体。
尽管MITIE在过去是Rasa的一个重要组成部分,但随着技术的发展,Rasa逐渐推荐并默认使用其他更先进的模型和库,如spaCy和Transformers,以提供更强大的NLP功能和更好的性能。这些更新的库支持更复杂的语言理解和处理任务,提升了Rasa整体的对话系统性能。
pip3 install rasa[mitie]
注意:
在rasa中其中有一些使用的库可能不会支持最新版本的python所以在安装的时候需要使用按照rasa官网的指引来完成。