首页
学习
活动
专区
工具
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机器人的交互性,使其更加用户友好和响应迅速。

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

相关·内容

领券