I’m pretty sure I’m doing something wrong! I have followed your instructions and adapted the actions.py (4.7 KB) accordingly:
def submit(
self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict]:
"""Define what the form has to do
after all required slots are filled"""
a = next(tracker.get_latest_entity_values(entity_type="itemQty", entity_group = "1", entity_role="orderItem1"))
b = next(tracker.get_latest_entity_values(entity_type="itemName", entity_group = "1", entity_role="orderItem1"))
print("Order1", a + b)
dispatcher.utter_message(text=a+b)
a = next(tracker.get_latest_entity_values(entity_type="itemQty", entity_group = "2", entity_role="orderItem2"))
b = next(tracker.get_latest_entity_values(entity_type="itemName", entity_group = "2", entity_role="orderItem2"))
print("Order2", a + b)
dispatcher.utter_message(text=a+b)
But this is the response from my actions server:
master ● rasa run actions -v -vv
2020-05-31 11:58:14 INFO rasa_sdk.endpoint - Starting action endpoint server...
2020-05-31 11:58:14 INFO rasa_sdk.executor - Registered function for 'restaurant_form'.
2020-05-31 11:58:14 DEBUG rasa_sdk.utils - Using the default number of Sanic workers (1).
2020-05-31 12:00:01 DEBUG rasa_sdk.executor - Received request to run 'restaurant_form'
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - There is no active form
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - Activated the form 'restaurant_form'
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - No pre-filled required slots to validate.
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - Validating user input '{'intent': {'name': 'itemName_order', 'confidence': 1.0}, 'entities': [{'entity': 'itemQty', 'start': 7, 'end': 8, 'role': 'orderItem1', 'group': '1', 'value': '1', 'extractor': 'DIETClassifier'}, {'entity': 'itemName', 'start': 9, 'end': 13, 'role': 'orderItem1', 'group': '1', 'value': 'beer', 'extractor': 'DIETClassifier'}, {'entity': 'itemQty', 'start': 18, 'end': 19, 'role': 'orderItem2', 'group': '2', 'value': '1', 'extractor': 'DIETClassifier'}, {'entity': 'itemName', 'start': 20, 'end': 24, 'role': 'orderItem2', 'group': '2', 'value': 'coke', 'extractor': 'DIETClassifier'}], 'intent_ranking': [{'name': 'itemName_order', 'confidence': 1.0}, {'name': 'deny', 'confidence': 1.3075308835652777e-08}, {'name': 'say_itemQty_or_tableNum', 'confidence': 8.540051332772691e-09}, {'name': 'feedback', 'confidence': 1.0265213123972217e-09}, {'name': 'restart', 'confidence': 4.484710380836532e-10}, {'name': 'ask_unspecified_order', 'confidence': 3.380443147626977e-10}, {'name': 'stop', 'confidence': 2.6472235514773956e-10}, {'name': 'greet', 'confidence': 2.62369348469349e-10}, {'name': 'ask_price', 'confidence': 2.5228685807121565e-10}, {'name': 'preferences', 'confidence': 8.4804066546873e-11}], 'response_selector': {'default': {'response': {'name': None, 'confidence': 0.0}, 'ranking': [], 'full_retrieval_intent': None}}, 'text': 'I want 1 beer and 1 coke'}'
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - Extracted '['beer', 'coke']' for extra slot 'itemName'.
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - Extracted '['1', '1']' for extra slot 'itemQty'.
2020-05-31 12:00:01 DEBUG rasa_sdk.forms - Validating extracted slots: {'itemName': ['beer', 'coke'], 'itemQty': ['1', '1']}
Exception occurred while handling uri: 'http://localhost:5055/webhook'
Traceback (most recent call last):
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/sanic/app.py", line 976, in handle_request
response = await response
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/rasa_sdk/endpoint.py", line 102, in webhook
result = await executor.run(action_call)
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/rasa_sdk/executor.py", line 385, in run
events = await action(dispatcher, tracker, domain)
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/rasa_sdk/forms.py", line 584, in run
events.extend(await self._validate_if_required(dispatcher, tracker, domain))
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/rasa_sdk/forms.py", line 551, in _validate_if_required
return await self.validate(dispatcher, tracker, domain)
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/rasa_sdk/forms.py", line 414, in validate
return await self.validate_slots(slot_values, dispatcher, tracker, domain)
File "/Users/eduardobrigham/Rasa/venv/lib/python3.7/site-packages/rasa_sdk/forms.py", line 371, in validate_slots
validation_output = validate_func(value, dispatcher, tracker, domain)
File "/Users/eduardobrigham/Rasa/rasa_EN/actions/actions.py", line 86, in validate_itemName
if value.lower() in self.itemName_db():
AttributeError: 'list' object has no attribute 'lower'