【问题标题】:how to set a slot in a custom action in rasa如何在 rasa 的自定义操作中设置插槽
【发布时间】:2019-08-13 04:33:58
【问题描述】:

我是 rasa 框架的新手。我开始开发一个简单的聊天机器人,并为我的聊天机器人创建了三个插槽。所以我的机器人需要识别当前位置并将其保存在插槽中。我当前的位置是从对话中获取的,我可以将其保存到故事的插槽中。

但是我有一个自定义操作,可以从 API 调用中找到天气天气,我需要将天气状态和湿度保存在相关插槽中。

class ActionSomeRespThree(Action):

    def name(self) -> Text:
        return "action_some_resp_three"

    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        cityName = tracker.get_slot('city')

【问题讨论】:

    标签: rasa-nlu rasa-core rasa


    【解决方案1】:

    您可以简单地在事件中使用 setSlot 方法。

    from rasa_sdk.events import SlotSet

    然后在你的运行方法中,你可以在相关槽中设置你的值。

    假设您的湿度插槽名称是weather_humidity。然后想象您从 API 中提取的湿度值是为名为@9​​87654323@ 的变量提取的。然后在您的自定义操作运行方法中,只需使用以下行设置槽值。

    SlotSet("weather_humidity", humidity)

    确保您已在 domain.yml 文件中定义了槽值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多