首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何重复Rasa机器人的最后一句话

在Rasa机器人中重复最后一句话的功能可以通过自定义一个Action来实现。以下是一个简单的示例,展示了如何创建这样一个Action:

基础概念

  • Action: 在Rasa中,Action是执行特定任务的函数,可以是发送消息、调用外部API或执行任何其他逻辑。
  • Tracker: Rasa中的Tracker对象跟踪对话的状态,包括用户的消息和机器人发送的消息。

实现步骤

  1. 定义Action: 创建一个新的Action,该Action将获取Tracker中的最后一条消息并重复它。
  2. 注册Action: 在domain.yml文件中注册这个Action。
  3. 编写Action逻辑: 在Action的Python文件中编写逻辑来获取并发送最后一条消息。

示例代码

1. 在domain.yml中注册Action

代码语言:txt
复制
actions:
  - repeat_last_message

2. 创建Action的Python文件(例如actions/repeat_last_message.py

代码语言:txt
复制
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher

class RepeatLastMessage(Action):
    def name(self) -> Text:
        return "repeat_last_message"

    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        # 获取最后一条消息
        last_message = tracker.latest_message['text']
        # 发送最后一条消息
        dispatcher.utter_message(text=last_message)
        return []

3. 在故事中使用这个Action

在你的故事文件(例如stories.md)中,你可以这样使用这个Action:

代码语言:txt
复制
## Repeat Last Message Story
* greet
  - utter_greet
* ask_question
  - utter_ask_question
* repeat_last_message
  - repeat_last_message

应用场景

  • 用户请求澄清: 当用户需要重复之前的信息以确认或澄清时。
  • 帮助记忆: 对于长对话或复杂指令,帮助用户回忆之前的关键点。

解决问题的原因

这个Action解决了用户在对话中可能需要重复机器人之前发送的信息的情况,这在处理复杂对话或需要确认细节时非常有用。

通过这种方式,你可以有效地增强Rasa机器人的交互性,使其更加用户友好和响应迅速。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

什么是Rasa智能机器人?如何与LLM结合?

Rasa与大模型结合的案例:RasaGpt——一款基于Rasa和LLM的聊天机器人平台 一、介绍、部署安装 介绍 Rasa是一个集成的开源对话机器人框架,包括语音和文本对话接口、核心对话管理和语言理解组件...如果你已经有一个满意的模型,参见 部署 Rasa 助手[1] 了解如何部署你的模型。...在这种情况下,我们还传递了域文件、训练数据和模型输出目录的位置值,以展示如何自定义这些值。你也可以省略它们,因为我们传递了默认值。...在Rasa中,我们通过定义domain.yml文件定义机器人的针对性和目标领域,告诉机器人如何回答用户的提问、如何执行任务、如何操作数据等。...在这个文件中,你可以定义关于对话内容和对话执行的特定内容,例如如何响应某个意图、如何解决意图中的槽位填充问题、如何执行特定的操作等。

5.9K30

北邮张庆恒:如何基于 rasa 搭建一个中文对话系统 (有源码视频)| 分享总结

本文为大家介绍了一种新方法,即如何基于 rasa 搭建一个中文对话系统。...分享主题 基于 rasa 搭建中文对话系统 分享提纲 1. 对话系统的分类和关键技术介绍 2. 结合电信业务查询办理场景,借助开源框架 rasa 实现任务导向型聊天机器人 demo。...自然语言理解(NLU)和对话管理是任务型对话的主要模块。自然语言理解是问答系统、聊天机器人等更高级应用的基石。...任务型对话主要包括四部分 ,语音识别,自然语言理解,对话管理,最后是自然语言生成。 下面是一个订餐应用的例子。 ? 接下来分别来看每个模块具体实现的方式 首先是自然语言理解。...第三种方法是分类思想,先对一句话提取特征,再根据有多少个槽值或意图训练多少个分类器,输入一句话分别给不同的分类器,最终得到包含槽值的概率有多大,最终得到这个槽值。

4.7K80
  • 这款大火的开源对话机器人框架终于有中文教程啦!

    而Gartner 在2022 企业级对话机器人平台研究报告中指出,Rasa 是唯一成熟可用的开源机器人框架! 在对话机器人未来前景如此大好的情况下,Rasa必然是一个非常值得大家学习的框架!...Rasa作为一款开源的对话机器人框架,能让开发者使用先进的机器学习技术快速创建工业级的对话机器人。...,探索机器人能做什么,并通过交互式学习来轻松修复它所犯的任何错误; 最后会介绍将Rasa系统部署到具有高性能和高可扩展性的生产环境中,从而建立一个高效和强大的聊天系统。...本书特点 专家推荐 本书涵盖了熟练使用Rasa构建真实应用所需的全部主题。除涵盖自然语言理解和对话管理的基础知识外,该书着重讲了如何在真实场景中构建优秀的产品。...此外,本书还向读者传授了一些实用的技能,比如如何调试Rasa代码、如何测试,以及如何将对话机器人部署到生产环境中等等。

    3.8K20

    构建Rasa低成本的Docker开发部署环境

    今天想着如何快速的将 Rasa API 融入之前的项目中,如在我的公众号 coding01[1]里增加一个自动回复聊天机器人。...前言 在之前的文章中,有描述过如何在公众号里加入自动聊天机器人的文章,欢迎大家查阅:有机器人要菜单没什么用[3],文章里利用 EasyWeChat 和 ChatterBot 简单搭建一个公众号「自动回复机器人...well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } } 最后在...总结 回到开头的说的如何在公众号加入聊天功能,将在下回继续了。...今天主要学到的知识点在于,如何用最小的 docker 配置(摒弃 Rasa X),完成和 nginx 容器关联,获得请求接口,以备后续调用。

    2.8K10

    Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程

    尝试一下 原文链接可以直接交互,译文只能展示流程,交互效果请查看最后的原文链接体验。 本教程将向您展示构建机器人所需的不同部分。...写故事 在这个阶段,您将教您的聊天机器人使用 Rasa Core 响应您的消息。 Rasa Core 将训练对话管理模型,并预测机器人应如何在对话的特定状态下做出响应。...定义域 接下来我们需要做的就是定义一个域。这个域定义了你的机器人所处的世界——它应该得到什么样的用户输入,它应该能够预测什么样的动作,如何响应以及存储什么样的信息。...和你的机器人聊天 就这样!现在你已经拥有了开始与机器人交互所需的一切!让我们使用下面的命令启动您的完整bot,包括rasa core和rasa nlu模型! 如果您没有运行上面的单元,这将不起作用!...添加更多的故事以提供更多关于您的bot应该如何工作的示例。然后重新训练 Rasa Core 模型来尝试它! 编辑域中的响应模板,重新导入模型并查看结果! 现在,您已经准备好构建自己的机器人了!

    1.8K40

    RasaGpt——一款基于Rasa和LLM的聊天机器人平台

    众所周知,Rasa是一个非常优秀的,用于构建开源AI助手的框架,它允许开发人员创建自然语言对话系统,包括聊天机器人、语音助手和智能助手。...本文介绍的是一个基于Rasa和Langchain之上,通过将LLM的能力赋予Rasa建立的聊天机器人平台。...用我的话来说: 这个文本讨论了一个名为Rasa[5]的聊天机器人框架。...很多实现细节都已经处理好了,你不需要自己动手,包括: •使用FastAPI创建你自己的专有bot端点,包括文档上传和“训练”流程。•如何将Langchain/LlamaIndex和Rasa集成。...•与LLM库的库冲突和元数据传递。•支持在MacOS上运行Rasa的Docker化。•通过ngrok实现与聊天机器人的反向代理。

    4.4K20

    使用Botkit和Rasa NLU构建智能聊天机器人

    根据我最后一次查阅的数据,单单Facebook Messenger就拥有超过11000个机器人,然而到我写这篇文章的时候,估计又已经增加了几千台。...文章的标题已经清楚地表明,我们将使用 Botkit 和 Rasa (NLU)来构建我们的机器人。但是在介绍技术之前,我想先分享一下选择这两个平台的原因,并解释它们应该如何适应我们的用例。...我曾使用过MITIE后端来训练Rasa。在演示部分,我们有一个“在线支持对话机器人”,我们训练它来解决以下类似消息,如: 我的手机无法使用。 我的手机没有开机。 我的手机坏了,无法再使用了。...Botkit和Rasa集成 Botkit 是由Howdy的创建者设计的开源的机器人开发框架 。...您现在应该已经熟悉如何使用机器人开发框架和NLU来构建对话机器人的过程了。希望这篇文章能够帮助你更快的开始搭建起你自己的机器人。

    5.7K90

    Rasa Core实践 报时机器人

    steps: - intent: query_time - action: action_query_time 必须要有的 key 是 story、steps steps 表示用户和机器人之间的交互...action 返回事件:词槽事件(对词槽的值进行变更)、active_loop 事件(激活or取消激活表单) 辅助符号 检查点符号,checkpoint 减少故事中重复的部分,名字相同的检查点可以互相跳转...服务器,没有的话,返回 [] 运行自定义动作 跟rasa一起安装的sdk,rasa run actions 单独安装的 python -m rasa_sdk --actions actions 8....rasa 支持的客户端 支持 Facebook、Rasa Webchat、Chatroom 等 跟 IM 连接的组件 称为 connector 其负责实现通信协议 rasa支持自定义 连接器,支持同时使用多个连接器连接...IM,需要在 credentials.yml 文件中配置如何连接客户端 9.

    1.2K10

    rasa 介绍文档

    Tracker Srore 对话的存储单元,将用户和机器人的对话保存在Tracker Store 中。Rasa提供了针对不同存储类型的开箱即用的实现,包括Redis、MongoDB等。...,提供用户在各种意图下的文本作为examples:询问Query:用户对聊天机器人发出的询问。...行动Action: 聊天机器人根据用户询问做出的回应。意图Intent:用户输入蕴含的目的或意图,eg. 用户:你好;intent:打招呼。...是助手机器人的记忆,它可以帮助我们的机器人记住之前实体提取到的信息,从而在后续操作中可以针对用户信息做出应答。...如果您使用实体类型填充的slot是text类型,则pipeline中的最后一个Extractor会填充这个slot。如果slot是list类型,则所有结果都将添加到列表中,包括重复项。

    2.5K32

    rasa,一个强大的 Python 库!

    它允许开发者创建复杂且功能丰富的聊天机器人,这些机器人可以在多种渠道上与用户进行交互。Rasa非常适合需要高度定制化对话系统的企业环境,因为它支持深度学习,能够处理复杂的对话场景。...可扩展性:通过自定义组件和开源的性质,易于扩展和修改。 基本功能 创建一个简单的聊天机器人 以下是使用Rasa创建一个简单的聊天机器人的基本步骤和示例代码: 1....高级功能 Rasa不仅支持基本的聊天机器人功能,还提供了多种高级功能,使开发者能够创建更智能、更灵活的对话体验。...上下文管理 Rasa能够管理对话的上下文,这意味着它可以根据对话的历史来做出更智能的回应。例如,根据用户先前的问题或命令,机器人可以调整其回复。...总结 在本文中,详细介绍了Python Rasa库的功能及其在聊天机器人开发中的应用。Rasa作为一个开源框架,提供了丰富的工具和功能,使得开发复杂的对话系统变得更加简单和高效。

    19810

    Rasa 聊天机器人专栏(四):消息和语音通道

    这为您的机器提供了域名,以便Facebook,Slack等知道将消息发送到本地计算机的位置。 要使您的助手在消息传递平台上可用,您需要在credentials.yml文件中提供凭据。...运行rasa init时会创建一个示例文件,因此最简单的方法是编辑该文件并在其中添加凭据。...:简介与安装 2.Rasa 聊天机器人专栏(一):基本原理介绍 3.Rasa 聊天机器人专栏(二):命令行界面 4.Rasa 聊天机器人专栏(三):架构介绍 5.Rasa 聊天机器人专栏(四):...消息和语音通道 6.Rasa 聊天机器人专栏(五):模型评估 7.Rasa 聊天机器人专栏(六):验证数据 8.Rasa 聊天机器人专栏(七):运行服务 9.Rasa 聊天机器人专栏(八):在Docker...上运行Rasa 10.Rasa 聊天机器人专栏(九):云存储

    2.4K11

    Rasa 聊天机器人专栏开篇

    专栏简介 Rasa 是最火的聊天机器人框架,是基于机器学习和自然语言处理技术开发的系统。Rasa 中文官方文档包括聊天机器人,上下文管理,多伦对话,意图识别,填槽,中文聊天机器人开发必备手册。...专栏目录 1.Rasa 聊天机器人专栏开篇:简介与安装 2.Rasa 聊天机器人专栏(一):基本原理介绍 3.Rasa 聊天机器人专栏(二):命令行界面 4.Rasa 聊天机器人专栏(三):架构介绍...5.Rasa 聊天机器人专栏(四):消息和语音通道 6.Rasa 聊天机器人专栏(五):模型评估 7.Rasa 聊天机器人专栏(六):验证数据 8.Rasa 聊天机器人专栏(七):运行服务 9.Rasa...聊天机器人专栏(八):在Docker上运行Rasa 10.Rasa 聊天机器人专栏(九):云存储 安装 Rasa 的推荐安装方式是通过pip: pip install rasa-x --extra-index-url...NLU 管道依赖项 Rasa NLU有用于识别意图和实体的不同组件,其中大多数都有一些额外的依赖项。 当你训练NLU模型时,Rasa将检查是否安装了所有必需的依赖项,并告诉你缺少哪一个依赖项。

    2.8K30

    Rasa 聊天机器人专栏(五):模型评估

    然而,基于BILOU的方法将此标记为完全失败,因为它期望“Alexanderplatz”作为最后一个标记被标记为实体(L-LOC)而不是单个标记实体(U-LOC)。...特别是在项目的开始阶段,你没有很多真正的对话来用来训练你的机器人,所以你不想划分一些用作测试集。 Rasa Core有一些脚本可帮助你选择和微调策略配置。...小白也能学会的PyTorch入门系列 专栏目录 1.Rasa 聊天机器人专栏开篇:简介与安装 2.Rasa 聊天机器人专栏(一):基本原理介绍 3.Rasa 聊天机器人专栏(二):命令行界面 4....Rasa 聊天机器人专栏(三):架构介绍 5.Rasa 聊天机器人专栏(四):消息和语音通道 6.Rasa 聊天机器人专栏(五):模型评估 7.Rasa 聊天机器人专栏(六):验证数据 8.Rasa...聊天机器人专栏(七):运行服务 9.Rasa 聊天机器人专栏(八):在Docker上运行Rasa 10.Rasa 聊天机器人专栏(九):云存储

    2.3K31

    书单 | 深扒ChatGPT核心技术,在AI浪潮中狂飙!

    当然,在理论技术的支撑下,为了让它成为一款可应用的产品,你还需要了解如何设计一款聊天机器人! 所以,本期书单就来分享一下与ChatGPT核心技术相关的好书,希望帮助大家知己知彼,百战不殆!...12 ▊《Rasa实战:构建开源对话机器人》 孔晓泉,王冠  著 对话机器人开源框架Rasa首著,英文版同步上市 Rasa联合创始人兼CTOAlanNichol亲笔作序 可直接使用ChatGPT等大型语言模型或接口...Rasa是一款开源的对话机器人框架,能让开发者使用机器学习技术快速创建工业级的对话机器人。...本书首先介绍Rasa的两个核心组件――Rasa NLU和Rasa Core的工作流程;然后详细介绍通过使用Rasa生态系统从头开始构建、配置、训练和服务不同类型的对话机器人的整体过程,如任务型、FAQ、...,探索机器人能做什么,并通过交互式学习来轻松修复它所犯的任何错误;最后会介绍将Rasa系统部署到具有高性能和高可扩展性的生产环境中,从而建立一个高效和强大的聊天系统。

    1.5K30

    Rasa 聊天机器人专栏(一):基本原理介绍

    要做到这一点,运行下面的代码: rasa init --no-prompt rasa init命令创建rasa项目所需的所有文件,并根据一些示例数据训练一个简单的机器人。...要使用Rasa做到这一点,你需要提供一些训练示例,展示Rasa应该如何理解用户消息,然后通过展示的这些示例来训练模型。...写下你的第一个故事 在这个阶段,你将教会你的助手如何回复你的信息。这称为对话管理(dialogue management),由你的Core模型来处理。...域定义了助手所处的环境:它应该期望得到什么用户输入、它应该能够预测什么操作、如何响应以及存储什么信息。...解释说明 intents 你希望用户说的话 actions 你的助手能做的和能说的 templates 你的助手可以说的东西的模板字符串 这些如何配合呢?

    3.3K11

    基于RASA的task-orient对话系统解析(一)

    需要注意,本文不会详细描述如何简单构建一个小demo的流程,这个在rasa的doc和一些博客上都有很好的例子,我这里就不重复引用了。贴一些链接,有兴趣的同学可以去这些地方看看。...RASA简介 关于rasa本身,看了网上的一些博客,已经有不少同学写了相关的内容,因此这里就不做重复的叙述。...),决定应当如何对当前用户的对话进行回应。...rasa如何读取这些格式的训练数据则是在如下代码包里定义: ? rasa-nlu读取不同格式训练数据 ? CRFEntityExtractor部分定义2 persist和load方法。...最后在message中增加一个dict,名为entities,用来存放提取的实体信息,包括实体的类型,实体的在文本中的start和end的位置信息等。 ?

    3.1K30

    如何删除相邻连续的重复行?

    【题目】 如下为一张互联网企业用户访问商城的各页面的访问记录表 要求当用户连续访问同一页面时,只保留第一次访问记录,即得到如下结果: 字段说明: 用户ID:用户的账户 访问的页面:用户访问商城时查看的页面...访问页面时间:用户打开该页面的时间点 【解题思路一】: 根据题意的要求,把要求的结果在原表上用黄色标出,通过观察发现连续登录的某一个页面只保留第一次访问的记录。...的访问序号=t2的访问序号+1时,t1.访问的页面!...只有”t1.访问的页面!=t2.访问的页面“一个条件,会漏掉主表的第1条页面的记录。...【此面试题的总结】: 此题重点考察的是计算逻辑和窗口函数。怎么理解数据,并取出需要的行数,需要很强的逻辑思路,属于面试题中比较难的题目。逻辑思路正确是写正确代码的前提。

    4.6K20

    如何计算文本的非重复计数

    需求:计算快递单号的非重复计数 ? (一) 需求分析 如果要计算非重复计数,我们很容易可以想到一个函数DistinctCount,那如果直接使用是不是就可以了呢?...这里会有几个问题: 空值未进行处理 总计这里多计了1,而且在未有单号的情况下也作为了1显示。 那我们来了解下原因,空值的话如何处理以及为什么总计这里会多了1。...因为DistinctCount在计算非重复计数的时候会把空值也作为一个值来进行计算,所以导致数据上的差异。...>BLANK()) ) (三) 展现需求 最后我们把字段拖入到透视表中 ?...但是和我们要求的数据透视表有些许差异,结果是要求把订单号全部显示出来,而直接拖入字段后把没有快递单号的订单号给隐藏了。这里留个小悬念,可以自己动手实现下这个功能。

    1.7K10
    领券