FormAction must not proceed untill are slots are not filled

Hi @Ghostvv I need your help please I want to use forms for a specific case I have and I can’t get it to work.

In actions as a form I have :

class IdeasmineForm(FormAction):
"""Accept free text input from the user for suggestions"""

def name(self):
    return "ideasmine_form"

@staticmethod
def required_slots(tracker):
    return ["ideasmine_message"]

def slot_mappings(self):
    return {"ideasmine_message": self.from_text()}

def submit(self, dispatcher, tracker, domain):
    return[]

So I want to take the input of the user as it is, I know the user will give me the intent : ideasmine_message but I don’t know what it will be it’s very random so in my intents I can’t give examples for this intent. This is why I want to use forms to just get the user input and take this as ideasmine_message intent/slot

After the FormAction I want to tell the user simply that he taped {ideasmine_message[text]}, so in my stories I have the next action like:

class action_SendIntent_B_S(Action):
     def name(self):
        return 'action_SendIntent_B_S'
    def run(self, dispatcher, tracker, domain):		
        loc = tracker.get_slot('ideasmine_message')
        response = """Hi user you said {} , """.format(loc['text'])				
        dispatcher.utter_message(response)

Just tell the user what he taped.

stories.md

happy path

  • bonjour

    • utter_bonjour
  • confirmer

    • ideasmine_form
    • form{“name”: “ideasmine_form”}
    • form{“name”: null}
    • action_SendIntent_B_S

in domain.yml

- utter_ask_ideasmine_message
- action_etape4

forms: 
 - ideasmine_form
intents:
- confirmer
- ideasmine_message

entities:
 - ideasmine_message

slots:

ideasmine_message:
type: unfeaturized
auto_fill: false
templates:
utter_ask_ideasmine_message:
   - text: What is your Idea?
utter_bonjour: 
 - text: hi, do you need help?

What I realy want is:

 user: Hi (*bonjour)
 bot: hi, do you need help? (-utter_bonjour)
 user: yes (*confirmer) 
 bot: what is your idea? (I could of use this in stories as *ideas_message but the problem is that I don't know what should I receive as an answer it could be any thing, this why I want to use forms. So the bot will execute ideasmine_form which will show the utter_ask_ideasmine_message)
 user: my idea is my idea (filling the form and taking this sentence as ideasmine_message slot)
 bot: you said: my idea is my idea (action_SendIntent_B_S)

when I tried this with interactive learning the bot predict well till the ideamine_form (correct?) I tape Yes, then the bot show the utter_ask_ideamine_message and propose to listen I tape Yes and taped the idea (my idea is my idea) Here it stops because the bot propose to classify this as None intent and if I tell him to classify it as ideamine_message he re do the ideamine_form as the new action.

Am I doing something wrong ? I’am using the last versions of both rasa_nlu and rasa_core