Tutorial: building assistant sales form not working

Hello! So i’m new. And using ubuntu if that helps. Did the basics tutorial, and everything was fine. Then i started: Tutorial: Building Assistants I did the FAQ bot and everything worked fine. I did everything on “Building a contextual assistant” section up to running the program after uncommenting these lines in endpoints.yml: action_endpoint: ** url: “http://localhost:5055/webhook”**

I ran rasa run actions in first terminal. Then i ran “rasa train” in second terminal and after that “rasa shell”. All good, no errors. FAQ bot worked. But when i tried to run sales form by writing “sales” in the input, i got this in second terminal:

(venv) vytenis@lenovo:~/Desktop/rasa_chatbots/en_advanced_chatbot$ rasa shell
2020-04-20 14:26:39 INFO     root  - Connecting to channel 'cmdline' which was specified by the '--connector' argument. Any other channels will be ignored. To connect to all given channels, omit the '--connector' argument.
2020-04-20 14:26:39 INFO     root  - Starting Rasa server on http://localhost:5005
/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/rasa/core/policies/keras_policy.py:265: FutureWarning: 'KerasPolicy' is deprecated and will be removed in version 2.0. Use 'TEDPolicy' instead.
  current_epoch=meta["epochs"],
Bot loaded. Type a message and press enter (use '/stop' to exit): 
Your input ->  hello                                                                                  
Hi
Your input ->  what is rasa                                                                           
Rasa X is a tool to learn from real conversations and improve your assistant. Read more [here](https://rasa.com/docs/rasa-x/)
Your input ->  sales                                                                                  
2020-04-20 14:27:13 ERROR    rasa.core.processor  - Encountered an exception while running action 'sales_form'. Bot will continue, but the actions events are lost. Please check the logs of your action server for more information.

In the first terminal i got this:

(venv) vytenis@lenovo:~/Desktop/rasa_chatbots/en_advanced_chatbot$ rasa run actions
2020-04-19 18:37:57 INFO     rasa_sdk.endpoint  - Starting action endpoint server...
2020-04-19 18:37:57 INFO     rasa_sdk.executor  - Registered function for 'sales_form'.
Exception occurred while handling uri: 'http://localhost:5055/webhook'
Traceback (most recent call last):
  File "/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/sanic/app.py", line 976, in handle_request
    response = await response
  File "/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/rasa_sdk/endpoint.py", line 86, in webhook
    result = await executor.run(action_call)
  File "/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/rasa_sdk/executor.py", line 281, in run
    events = await action(dispatcher, tracker, domain)
  File "/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/rasa_sdk/forms.py", line 524, in run
    events = await self._activate_if_required(dispatcher, tracker, domain)
  File "/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/rasa_sdk/forms.py", line 460, in _activate_if_required
    for slot_name in self.required_slots(tracker):
  File "/home/vytenis/Desktop/rasa_chatbots/en_advanced_chatbot/venv/lib/python3.6/site-packages/rasa_sdk/forms.py", line 35, in required_slots
    "A form must implement required slots that it has to fill"
NotImplementedError: A form must implement required slots that it has to fill

Any ideas? I tried to look for an answer, but couldn’t find it. I rechecked if did everything right. I think i did. PS I am kind of new to writing issues here or anywhere else, so if you have any recommendations what other information i should include or exclude, i’m all ears! Thanks!

And here’s my actions.py

Hey, Vytenis. It looks like you have an easy fix. You need to indent those two functions (required_slots and submit) a level to make them part of the class. Do that and then give it a try.

1 Like