当前位置: 首页 > news >正文

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

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.lryc.cn/news/440934.html

相关文章:

  • golang学习笔记19——golang做服务发现与注册的深度剖析
  • ROS和ROS2借助智能大模型的学习和研究方法
  • 弹性负载均衡ELB 详解和设置方法
  • Python3网络爬虫开发实战(15)Scrapy 框架的使用(第一版)
  • 大众点评代发排名骗局
  • 硬件基础知识
  • 使用gitee如何回滚上一个版本,简单操作方式-gitee自带功能无需使用代码
  • 独立站技能树之建站33项自检清单 1.0丨出海笔记
  • js进阶-作用域是什么
  • ant-design表格自动合并相同内容的单元格
  • 通过多模态关系图学习实现可解释的医学图像视觉问答|文献速递--Transformer架构在医学影像分析中的应用
  • 从入门到精通,带你探索适合新手的视频剪辑工具
  • 线性规划------ + 案例 + Python源码求解(见文中)
  • 用Java实现人工智能
  • MobaXterm使用技巧
  • openstack中的rabbitmq
  • etcd三节点,其中一个坏掉了的恢复办法
  • 计算机毕业设计 基于SpringBoot框架的网上蛋糕销售系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • C编程控制PC蜂鸣器方法2
  • C# SQL 辅助工具
  • eNSP简单用法
  • 1035. 不相交的线
  • 1.pytest基础知识(默认的测试用例的规则以及基础应用)
  • Linux常见查看文件命令
  • 初识 performance_schema:轻松掌握MySQL性能监控
  • linux下top命令查看和解释
  • 换个手机IP地址是不是不一样?
  • 【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?
  • 《Google软件测试之道》笔记
  • 实战讲稿:Spring Boot整合MyBatis