Слоты не сбрасываются после выполнения пользовательских действий - PullRequest
1 голос
/ 24 мая 2019

Я создал пользовательское действие, которое запускается с резервным намерением по умолчанию, сбрасывает слоты и перезапускает поток.Тем не менее, это не работает, как ожидалось.Ни слоты не сбрасываются, ни поток не перезапускается.Бот работает ненормально после аварийного намерения.

Файл действий:

from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals

from rasa_core.domain import Domain
from rasa_core.trackers import EventVerbosity

import json
import requests
from requests.exceptions import ConnectionError

import logging
logger = logging.getLogger(__name__)
import datefinder
import datetime

from rasa_core_sdk import Action
from rasa_core_sdk.events import SlotSet
from rasa_core_sdk.events import UserUtteranceReverted
from rasa_core_sdk.events import AllSlotsReset
from rasa_core_sdk.events import Restarted

class ActionRestarted(Action):
    def name(self):         
        return 'action_restarted'   
    def run(self, dispatcher, tracker, domain):
        return[Restarted()] 

class ActionSlotReset(Action):  
    def name(self):         
        return 'action_slot_reset'  
    def run(self, dispatcher, tracker, domain):
        return[AllSlotsReset()]

Файл истории:

Откат

  • utter_unclear
  • action_slot_reset
  • action_restarted

Версии программного обеспечения Python-3.6 rasa-core- 0.14.4 rasa-nlu- 0.15.0

Я хочу, чтобы ActionRestarted и ActionSlotReset работали после достижения намерения по умолчанию, сбрасывали слоты и перезапускали диалог.

1 Ответ

0 голосов
/ 19 июня 2019

Rasa имеет действие по умолчанию "action_restart", которое должно делать то, что вы хотите. В вашей истории это будет выглядеть как

#fallback
-utter_unclear
-action_restart
...