Rasa对话模型——做一个语言助手

news/2024/9/23 0:24:33/

1、Rasa模型

1.1 模型介绍

Rasa是一个用于构建对话 AI 的开源框架,主要用于开发聊天机器人和语音助手。Rasa 提供了自然语言理解(NLU)和对话管理(DM)功能,使开发者能够创建智能、交互式的对话系统。

1.2 主要功能

  • 意图识别:

    根据用户输入识别用户的意图,如问候、查询信息、执行任务等。
  • 实体提取:

    从用户输入中提取有用的信息,如时间、地点、数量等。
  • 对话管理:

    管理多轮对话的状态,确保对话流程的连贯性和逻辑性。
  • 自定义动作:

    支持在对话中调用自定义动作,如查询数据库、调用外部API等。
  • 多渠道支持:

    支持集成多个聊天渠道,如Slack、Facebook Messenger、Telegram、WhatsApp等。
  • 对话训练和测试:

    提供方便的训练和测试工具,帮助开发者优化和验证对话系统的性能。

1.3  工作流程

  • 数据收集和标注:

    收集用户输入示例,并将其标注为意图和实体。
  • 模型训练:

    使用收集和标注的数据训练NLU和对话管理模型。
  • 对话设计:

    使用故事(stories)和规则(rules)定义对话流程和策略。
  • 自定义动作实现:

    编写自定义动作代码,实现对外部服务的调用和复杂任务的处理。
  • 集成和部署:

    将Rasa系统集成到所需的聊天渠道,并进行部署和上线。
  • 监控和优化:

    通过日志和用户反馈,持续监控和优化对话系统的性能。

2、本地环境

2.1 python环境

在Windows上使用命令行窗口查看所安装的python版本

python --version

2.2 Visual Studio Code编译

Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。

3、程序内容

3.1 程序框架

rasa/
├── data/
   ├── nlu.yml                        //收集并标注训练数据,确保覆盖用户的所有可能输入。
   └── stories.yml                       //编写示例对话,展示系统应如何处理不同的对话场景。
├── models/
├── config.yml                               //配置NLU和对话管理的模型管道和策略。
├── domain.yml                                //定义对话域,包括意图、实体、槽和响应模板。
└── endpoints.yml

3.2 具体代码

3.2.1 nlu.yml

version: "3.1"nlu:
- intent: greetexamples: |- hey- hello- hi- hello there- good morning- good evening- moin- hey there- let's go- hey dude- goodmorning- goodevening- good afternoon- intent: goodbyeexamples: |- cu- good by- cee you later- good night- bye- goodbye- have a nice day- see you around- bye bye- see you later- intent: affirmexamples: |- yes- y- indeed- of course- that sounds good- correct- intent: denyexamples: |- no- n- never- I don't think so- don't like that- no way- not really- intent: mood_greatexamples: |- perfect- great- amazing- feeling like a king- wonderful- I am feeling very good- I am great- I am amazing- I am going to save the world- super stoked- extremely good- so so perfect- so good- so perfect- intent: mood_unhappyexamples: |- my day was horrible- I am sad- I don't feel very well- I am disappointed- super sad- I'm so sad- sad- very sad- unhappy- not good- not very good- extremly sad- so saad- so sad- intent: bot_challengeexamples: |- are you a bot?- are you a human?- am I talking to a bot?- am I talking to a human?

 3.2.2 stories.yml 

version: "3.1"stories:- story: happy pathsteps:- intent: greet- action: utter_greet- intent: mood_great- action: utter_happy- story: sad path 1steps:- intent: greet- action: utter_greet- intent: mood_unhappy- action: utter_cheer_up- action: utter_did_that_help- intent: affirm- action: utter_happy- story: sad path 2steps:- intent: greet- action: utter_greet- intent: mood_unhappy- action: utter_cheer_up- action: utter_did_that_help- intent: deny- action: utter_goodbye

3.2.3 domain.yml

version: "3.1"intents:- greet- goodbye- affirm- deny- mood_great- mood_unhappy- bot_challengeresponses:utter_greet:- text: "Hey! How are you?"utter_cheer_up:- text: "Here is something to cheer you up:"image: "https://i.imgur.com/nGF1K8f.jpg"utter_did_that_help:- text: "Did that help you?"utter_happy:- text: "Great, carry on!"utter_goodbye:- text: "Bye"utter_iamabot:- text: "I am a bot, powered by Rasa."session_config:session_expiration_time: 60carry_over_slots_to_new_session: true

3.3 代码运行

在vscode中右击项目目录,在集成终端中打开,然后输入下面的命令创建虚拟环境(也可以使用命令行界面导航到该文件夹下)

python -m venv venv

初始化rasa,然后一直输入y就可以啦

rasa init

 

4.总结

使用Rasa构建一个属于自己的语言助手,自己创建语料库,你也来试一试吧!


http://www.ppmy.cn/news/1529075.html

相关文章

PostgreSQL 的 logger 进程和 Oracle 的 diag 进程对比

PostgreSQL 的 logger 进程和 Oracle 的 diag 进程对比 PostgreSQL 和 Oracle 数据库在日志记录和诊断进程这方面各自有自己的实现方式,但是目的都是类似的:记录和诊断数据库系统的运行状态、错误和其他重要事件。以下是对 PostgreSQL 的 logger 进程和…

大语言模型应用的业务架构点

背景 在国内某小龙干了一段时间了,困于时间、资本、人力等等原因,其实应用在工程侧的业务架构建模并没有做好。但是,随着业务迭代和读论文,对于大语言模型的应用(自认为)有一定的认知了,那么业…

828华为云征文 | 云服务器Flexus X实例:one-api 部署,支持众多大模型

目录 一、one-api 介绍 二、部署 one-api 2.1 拉取镜像 2.2 部署 one-api 三、运行 one-api 3.1 添加规则 3.2 运行 one-api 四、添加大模型 API 4.1 添加大模型 API 五、总结 本文通过 Flexus云服务器X实例 部署 one-api。Flexus云服务器X实例是新一代面向中小企业…

基于Jeecg-boot开发系统--后端篇

背景 Jeecg-boot是一个后台管理系统,其提供能很多基础的功能,我希望在不修改jeecg-boot代码的前提下增加自己的功能。经过几天的折腾终于搞定了。 首先是基于jeecg-boot微服务的方式来扩展的,jeecg-boot微服务本身的搭建过程就不讲了&#x…

【kafka】主题topic

这里写目录标题 1. 创建主题1). 自动创建;(不建议)2. 通过kafka-topics.sh 创建:3. 通过 TopicCommand 创建: 2. 查看主题2. 其他操作 1. 创建主题 1). 自动创建;(不建议…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.4 处理器架构

比较有难度的一个部分。 运算单元ALU,其实就是通过OP选择计算方式,然后选通某个计算,之后输出。每个计算逐个实现就行了。 下面是一个优化占地面积的ALU,变得紧凑了一点。 下面是一个简单的OP选通原理线路。判断是立即数寻址&…

单核1.5 TFLOPS、ASIL-B功能安全!Imagination发布汽车GPU IP产品Imagination DXS GPU

大模型正在掀起一场智能应用产业革命,带来计算、开发、交互,三大范式全面的升级和转换,计算范式从图灵、冯诺伊曼计算范式转为神经网络计算范式,GPU成为了AI算力核心技术与产品。 39年历史的老牌GPU IP厂商Imagination&#xff0…

【OJ刷题】双指针问题4

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:OJ刷题入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1…