【问题标题】:How to use UserUttered in Rasa 1.X?如何在 Rasa 1.X 中使用 UserUttered?
【发布时间】:2021-01-19 13:12:09
【问题描述】:

在 Rasa 1.5.3 中,当用户对我们的聊天机器人说了什么但这个聊天机器人不能清楚地理解时,我们希望自动更正用户输入并将其发送回 NLU 管道,以便 Rasa 能够理解它。

我们尝试在 default_fallback 操作中使用 UserUttered 事件,但这不起作用: 使用时:

from rasa_sdk import Action
from rasa_sdk.events import SlotSet, AllSlotsReset, Restarted, UserUtteranceReverted, FollowupAction, ActionReverted, UserUttered
from rasa_sdk.forms import FormAction, REQUESTED_SLOT
from rasa_sdk.events import SlotSet

class ActionDefaultFallback(Action):

    def __init__(self) -> None:
        pass

    def name(self):
        return "action_default_fallback"

    def run(self, dispatcher, tracker, domain):
        text = tracker.latest_message['text']
        correct_text = my_custom_spellcheck.correct(text)

        return UserUttered(text=correct_text)

运行这个 default_fallback_action 只会给我们这个错误:

2021-01-19 11:59:05 ERROR    rasa.core.processor  - Encountered an exception while running action 'action_default_fallback'. Bot will continue, but the actions events are lost. Please check the logs of your action server for more information.

如何使用 UserUttered 事件?

【问题讨论】:

    标签: python python-3.x rasa-nlu rasa rasa-core


    【解决方案1】:

    自动更正是什么意思?通常最好将拼写错误的 nlu 示例直接引入您的 nlu 训练数据中。 否则,我建议使用拼写检查器创建自定义 NLU 组件,并将其添加到标记器之前的 NLU 管道中。

    【讨论】:

      【解决方案2】:

      自定义操作需要返回事件列表,因此您的run 方法应该返回[UserUttered(text=correct_text)]。详情请见here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-23
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多