在Rasa机器人中重复最后一句话的功能可以通过自定义一个Action来实现。以下是一个简单的示例,展示了如何创建这样一个Action:
domain.yml
文件中注册这个Action。domain.yml
中注册Actionactions:
- repeat_last_message
actions/repeat_last_message.py
)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 []
在你的故事文件(例如stories.md
)中,你可以这样使用这个Action:
## Repeat Last Message Story
* greet
- utter_greet
* ask_question
- utter_ask_question
* repeat_last_message
- repeat_last_message
这个Action解决了用户在对话中可能需要重复机器人之前发送的信息的情况,这在处理复杂对话或需要确认细节时非常有用。
通过这种方式,你可以有效地增强Rasa机器人的交互性,使其更加用户友好和响应迅速。
云+社区沙龙online第5期[架构演进]
云+社区技术沙龙[第27期]
TC-Day
TC-Day
技术创作101训练营
长安链开源社区“核心开发者说”系列活动
领取专属 10元无门槛券
手把手带您无忧上云