def validate(self, dispatcher, tracker, domain):
slot_values = self.extract_other_slots(dispatcher, tracker, domain)
slot_to_fill = tracker.get_slot(REQUESTED_SLOT)
if slot_to_fill:
slot_values.update(self.extract_requested_slot(dispatcher, tracker, domain))
for slot, value in slot_values.items():
if slot == 'full_name':
if value.replace(" ","").isalpha() == False:
dispatcher.utter_template('utter_wrong_full_name', tracker)
slot_values[slot] = None
elif (' ' in value) == False:
slot_values['first_name'] = value
else :
val = value.split()
slot_values['first_name'] = val[0]
slot_values['last_name'] = val[1]
While using the above code in FormAction I am getting, RuntimeError: dictionary changed size during iteration. Is this correct way to filling the optional slots in form action