《Ai企业知识库》-模型实践-rasa开源学习框架-搭建简易机器人-环境准备(针对windows)-02

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的原因及其优势主要包括以下几点:

  1. 开源与自托管:Rasa是一个开源框架,这意味着你可以免费获得并查看其全部源代码。此外,由于可以在自己的基础设施上运行聊天机器人,因此可以保护用户数据隐私,避免将敏感信息发送到第三方服务器。

  2. 强大的NLU能力:Rasa包含先进的自然语言理解(NLU)技术,能够处理意图识别、实体提取、上下文理解等多种任务,支持多语言,并且允许自定义和优化模型以适应特定场景。

  3. 高度可定制和可扩展性:Rasa具有模块化和可扩展的架构,开发者可以根据需要添加自定义组件、集成外部服务或调整对话逻辑,这使得它适用于从小型项目到复杂企业级应用的各种规模。

  4. 灵活的对话管理:Rasa Core模块提供了多轮对话管理功能,支持基于机器学习的对话流程设计,以及规则定义,使得对话更加自然流畅,能够处理复杂的对话场景。

  5. 活跃的社区与支持:Rasa拥有一个庞大且活跃的开发者社区,提供了丰富的文档、教程和案例研究,便于学习和解决问题。同时,由于其在GitHub上的高星数和频繁的更新,确保了框架的持续发展和技术领先性。

  6. 易于上手:即便是非专业AI开发者,通过简单的配置文件和命令行工具,也能快速搭建出基础的对话机器人原型。

  7. 跨平台集成:Rasa支持多种消息通道集成,包括常见的社交媒体、即时通讯软件等,方便部署到不同的平台上,提供无缝的多渠道用户体验。

  8. 投资回报率高:根据一些报告,使用Rasa构建的聊天机器人能够带来显著的投资回报,缩短了实现ROI的时间,对企业而言经济高效。

综上所述,Rasa因为其开源性、强大的NLU与对话管理能力、高度的灵活性和可定制性,以及活跃的社区支持,成为构建对话式AI应用的优选框架之一。

环境搭建:

官方文档链接:

Setting up your environment

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中的作用主要包括:

  1. 意图识别(Intent Recognition):MITIE帮助Rasa通过机器学习模型理解用户输入的意图。例如,从用户的一句话中判断出用户是想查询天气、订餐还是寻求技术支持。

  2. 实体识别(Entity Extraction):它还能够识别用户消息中的关键实体,这对于构建有意义的对话响应至关重要。例如,在句子“我想订明天从纽约到洛杉矶的机票”中,MITIE可以识别出“明天”为时间实体,“纽约”为出发地实体,“洛杉矶”为目的地理实体。

尽管MITIE在过去是Rasa的一个重要组成部分,但随着技术的发展,Rasa逐渐推荐并默认使用其他更先进的模型和库,如spaCy和Transformers,以提供更强大的NLP功能和更好的性能。这些更新的库支持更复杂的语言理解和处理任务,提升了Rasa整体的对话系统性能。

pip3 install rasa[mitie]

注意:

        在rasa中其中有一些使用的库可能不会支持最新版本的python所以在安装的时候需要使用按照rasa官网的指引来完成。

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

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

相关文章

【项目问题解决】 java.lang.IllegalArgumentException: XML fragments parsed

java.lang.IllegalArgumentException: XML fragments parsed from previous mappers does not contain value for com.xxx.xxx.xxx.xxx.dao.SingleApasInfoDao.selectListCondition 目录 【项目问题解决】 java.lang.IllegalArgumentException: XML fragments parsed from pr…

嵌入式之译码器

系列文章目录 译码器嵌入式之译码器 嵌入式之译码器 系列文章目录一、译码器定义二、常见类型的译码器三、工作原理 一、译码器定义 译码器(Decoder)是一种数字电路,其主要功能是从输入的编码信号中解码出特定的信息或控制信号。 译码器通常…

树与二叉树的概念介绍

一.树的概念及结构: 1.树的概念: 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 有…

【记录】初次本地搭建的模型-MiniCPM 2B

前言 查阅众多开源大模型后,打算动手尝试搭建端侧模型,看看效果。选中MiniCPM主要是因为参数小,同时中文支持相对较好。 首先对按照官网提供的demo进行了尝试,然后在colab中完成了一个webui程序并测试,最后通过docker环…

【MATLAB】去除趋势项(解决频谱图大部分为零的问题)

1.概 述 在许多实际信号分析处理中信号经FFT变换后得到的频谱谱线值几乎都为0,介绍这是如何形成的,又该如何去解决。 2.案例分析 读入一组实验数据文件(文件名为qldata.mat),作出该组数据的频谱图。程序清单如下: clear; clc; close all;…

3.5 四个子空间的维度

一、概述 这一节的主要定理是将秩与维度联系在一起。矩阵的秩就是主元的个数,子空间的维度是基向量的个数,我们计算出这两个数就可以得到秩与维度。 A A A 的秩揭露了四个基本子空间的维度。 四个子空间中,两个子空间来自 A A A&#xff0c…

第十七讲:结构体

第十七讲:结构体 1.初始结构体1.1结构体声明1.2结构体变量的创建和初始化1.2.1结构体变量的创建1.2.2结构体变量的初始化1.2.2.1普通初始化1.2.2.2结构体数组1.2.2.3结构体指针 1.3typedef定义结构体1.4结构体的自引用1.5结构体的特殊声明 2.结构体内存对齐2.1对齐规…

基于STM32实现智能空气净化系统

目录 引言环境准备智能空气净化系统基础代码示例:实现智能空气净化系统 空气质量传感器数据读取风扇和滤网控制显示系统用户输入和设置应用场景:家庭空气净化与健康管理问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统中…

Day 40 Web容器-Tomcat

Tomcat 一:Tomcat简介 1.简介 ​ Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目 ​ Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器 ​ Tomcat是WEB容器/WE…

idea中git拉取失败

之前clone好好的,今天突然就拉取不下来了。很多时候是用户凭证的信息没更新的问题。由于window对同一个地址都存储了会话。如果是新的会话,必须要更新window下的凭证。 然后根据你的仓库找到你对应的账户,更新信息即可。

aws lakeformation跨账号共享数据的两种方式和相关配置

lakeformation授权方式分为 基于tag的授权基于命名资源的授权 先决条件 跨账号共享数据的先决条件(命名资源和tag授权都需要) 分两种情况 如果账户中没有glue data catalog资源策略,则LakeFormation跨账户授予将照常进行 如果存在glue d…

Docker学习(4):部署web项目

一、部署vue项目 在home目录下创建项目目录 将打包好的vue项目放入该目录下,dist是打包好的vue项目 在项目目录下,编辑default.conf 内容如下: server {listen 80;server_name localhost; # 修改为docker服务宿主机的iplocation / {r…

面试手撕——使用两个线程交替打印1-100

记录一下使用两个线程交替打印1-100的操作: /*** description: 使用两个线程交替打印1-100* author: Jay* create: 2024-05-27 21:29**/ public class print_1_to_100 {static volatile int flag 1; //此处需要加关键字volatile保证变量之间的可见性,否则程序将会…

Android:使用Kotlin搭建MVI架构模式

一、简介MVI架构模式 M:Model 数据层,包含应用数据和业务逻辑V:View 界面层,在屏幕上显示应用数据,包含与界面相关的状态和界面逻辑,根据界面状态对象更新UI,界面状态定义是不可变的。这样的主要…

【Spring Cloud】服务熔断

目录 服务雪崩效应服务雪崩效应形成的原因及应对策略小结 Hystrix介绍Hystrix可以做什么1.资源隔离2.请求熔断3.服务降级 小结 Hystrix实现服务降级方式一:HystrixCommand注解方式1.服务提供者1.1业务接口和业务实现中添加方法hystrixTimeout1.2控制器中处理/provid…

【pm2 - sdk 集成到程序中,典型用法】

pm2作为一款进程管理神器,除了命令行的启动方式外,其还对应有sdk,集成到程序中,我们可以连接到已有或创建pm2的守护进程,与其进行交互,动态,编程式地控制程序的启停等。以下为示例: …

c++ - vector容器常用接口模拟实现

文章目录 一、成员变量二、常用迭代器接口模拟实现三、一些常用接口模拟四、默认成员函数五、功能测试 一、成员变量 我们通过在堆上申请一个数组空间来进行储存数据,我们的成员变量是三个指针变量,分别指向第一个位置、最后储存有效位置的下一个位置以…

特殊矩阵的压缩矩阵

目录 前提条件&#xff1a; 类型&#xff1a;对称矩阵&#xff0c;三角矩阵、三对角矩阵、稀疏矩阵 1&#xff1a;对称矩阵&#xff1a; 定义&#xff1a;n阶矩阵A 中任意一元素都有ai,jaj,i(1<i,j<n) 图像&#xff1a; 表达式&#xff1a; 计算过程&#xff1a; …

stream-并行流

定义 常规的流都是串行的流并行流就是并发的处理数据&#xff0c;一般要求被处理的数据互相不影响优点&#xff1a;数据多的时候速度更快&#xff0c;缺点&#xff1a;浪费系统资源&#xff0c;数据少的时候开启线程更耗费时间 模版 Stream<Integer> stream1 Stream.of…

【YOLO 系列】基于YOLO V8的学生上课行为检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言 在现代教育环境中&#xff0c;学生上课行为的监测对于提升教学质量和学生学习效率具有重要意义。然而&#xff0c;传统的人工观察方法不仅效率低下&#xff0c;而且难以保证客观性和准确性。为了解决这一问题&#xff0c;我们启动了这个项目&#xff0c;目的是利用YOLOV8…