How to trigger action_listen to wait for user input?

I am trying to implement a simple scenario where: - the bot asks the user for something - the bot waits for user to input free form text - user inputs free form text - bot gets free form text and prints message containing the free form text

config:

policies:

  • name: FormPolicy
  • name: MappingPolicy
  • name: MemoizationPolicy max_history: 15
  • name: KerasPolicy epochs: 100 max_history: 15
  • name: FallbackPolicy

Story:

Main_Menu

  • intent_service_menu{“service_menu”:“menu”}
    • utter_services
    • action_listen
    • action_repeat

actions.py

class RepeatAction(Action): def name(self): return “action_repeat”

def run(self, dispatcher, tracker, domain):
	msg = tracker.latest_message.get('text')
	dispatcher.utter_message("Your input: "+msg)
	
	return []

I want the user input here to be accepted as a free form text without the NLU trying to classify it into an intent and entity.

This doesn’t seem to work; the action_listen is skipped and bit executes action_repeat after utter_services. Even if action_listen is called, the bot does not wait for user input.

How do i make the bot execute action_listen and wait for free form user input?

2 Likes

Continuing the discussion from How to trigger action_listen to wait for user input?:

These guys from Brazil made the management of the telegram messages outside RASA, only feeding it with the minimum and using the responses , maybe you can look their work and catch some ideas .

Best regards

With the code you already have and the guide Actions should work.