How to set requested_slot to custom value

I have a form action asked for some information from people who used my service. And there are 4 slots to filling in ordered. some people do no want answered question in order. they have fourth intent when first question asked sometimes. So what should I do change the order of 4 slots or how to set requested_slot value to fixed slot value with people’s intent rather than automatically ordered slot? your early reply will be appreciated

Hi @fanlu, The form action sounds like the correct one to use for collecting information from your users to fill the 4 slots.

To help me understand what you are trying to achieve, can you provide a more detailed example of an utter_ask_{slot_name}, and how the users answer is resulting in wrong behavior?

If you are using Rasa X, a screenshot of an example conversation with the slots would be very helpful, off course not with actual data from your users, but something representative.

To change the slot order by some intent may be work.But I am not sure that this is the correct way.

@staticmethod
  def required_slots(tracker: Tracker) -> List[Text]:
    """A list of required slots that the form has to fill"""
    if tracker.latest_message.get("intent", {}).get("name") == "ask_date":
      return ["deliveryDateConfirm", "customerNameConfirm", "orderInfoConfirm", "detailAddressConfirm", "deliveryDuration"]
    else:
      return ["customerNameConfirm", "orderInfoConfirm", "detailAddressConfirm", "deliveryDateConfirm", "deliveryDuration"]

There is another question, There are 2 slot left after 2 solts was filled. Then The user dose not answer the next slot question correctly. The bot is designed to supply another date to get user’s approval(from_intent) or ask convenient date from user(from_entity). but in form_policy.py:

                if tracker.active_form.get("rejected"):
                    if self.state_is_unhappy(tracker, domain):
                        tracker.update(FormValidation(False))
                        return result

if the user is in unhappy path. the form was designed to set validate to False and refuse extract slot from user input. What should I do next?

2019-12-09 17:45:33,945 DEBUG    rasax.community.services.event_service:129 - Saving event from origin 'production' to event service
:                                                                                                                                   
{"sender_id": "368ef5f83cf3463eabee404c20754679", "event": "action_execution_rejected", "timestamp": 1575884733.77557, "name": "deli
very_form", "policy": "policy_0_FormPolicy", "confidence": 1.0}                                                                     
2019-12-09 17:45:34,010 DEBUG    rasax.community.services.event_service:129 - Saving event from origin 'production' to event service
:                                                                                                                                   
{"sender_id": "368ef5f83cf3463eabee404c20754679", "event": "form_validation", "timestamp": 1575884733.777938, "validate": false}    
2019-12-09 17:45:34,071 DEBUG    rasax.community.services.event_service:129 - Saving event from origin 'production' to event service
:                                                                                                                                   
{"sender_id": "368ef5f83cf3463eabee404c20754679", "event": "action", "timestamp": 1575884733.786366, "name": "utter_explain_relative
_day", "policy": "policy_3_MappingPolicy", "confidence": 1}                                                                         
2019-12-09 17:45:34,137 DEBUG    rasax.community.services.event_service:129 - Saving event from origin 'production' to event service
:                                                                                                                                   
{"sender_id": "368ef5f83cf3463eabee404c20754679", "event": "bot", "timestamp": 1575884733.786371, "text": "2019-09-03\u60a8\u770b\u5
3ef\u4ee5\u5417", "data": {"elements": null, "quick_replies": null, "buttons": null, "attachment": null, "image": null, "custom": nu
ll}, "metadata": {}}                                                                                                                
2019-12-09 17:45:34,199 DEBUG    rasax.community.services.event_service:129 - Saving event from origin 'production' to event service
:                                                                                                                                   
{"sender_id": "368ef5f83cf3463eabee404c20754679", "event": "action", "timestamp": 1575884733.794437, "name": "action_listen", "polic
y": "policy_3_MappingPolicy", "confidence": 1}                                                                                      
^[[B2019-12-09 17:49:44 DEBUG    rasa.core.tracker_store:256  - Recreating tracker for id '368ef5f83cf3463eabee404c20754679'        
2019-12-09 17:49:44 DEBUG    rasa.core.processor:267  - Canceled reminder because it is outdated. (event: action_timeout id: 877f246
6-1a68-11ea-aa16-fa163e70cff9) 
2019-12-09 18:14:02 DEBUG    rasa.core.tracker_store:256  - Recreating tracker for id '368ef5f83cf3463eabee404c20754679'
2019-12-09 18:14:02 DEBUG    rasa.core.processor:343  - Received user message '可以的' with intent '{'name': 'confirm', 'confidence$
: 0.9257274270057678}' and entities '[]'                                                                                            
2019-12-09 18:14:02 DEBUG    rasa.core.processor:380  - Logged UserUtterance - tracker now has 36 events                            
2019-12-09 18:14:02 DEBUG    rasa.core.policies.form_policy:146  - There is an active form 'delivery_form'
2019-12-09 18:14:02 DEBUG    rasa.core.policies.form_policy:120  - stages: [{'entity_time': 1.0, 'active_form_delivery_form': 1.0, $
prev_utter_explain_relative_day': 1.0, 'intent_ask_relative_day': 1.0}, {'active_form_delivery_form': 1.0, 'prev_action_listen': 1.$
, 'intent_confirm': 1.0}]                                                                                                           
2019-12-09 18:14:02 DEBUG    rasa.core.policies.form_policy:122  - memorized_form: delivery_form                                    
2019-12-09 18:14:02 DEBUG    rasa.core.policies.form_policy:123  - tracker.active_form: delivery_form                               
2019-12-09 18:14:02 DEBUG    rasa.core.policies.form_policy:133  - There is a memorized tracker state [{'prev_utter_explain_relativ$
_day': 1.0}, {'active_form_delivery_form': 1.0, 'prev_action_listen': 1.0, 'intent_confirm': 1.0}], added `FormValidation(False)` event
2019-12-09 18:14:02 DEBUG    rasa.core.policies.memoization:207  - Current tracker state [{'active_form_delivery_form': 1.0, 'prev_$
elivery_form': 1.0, 'intent_welcome': 1.0}, {'entity_time': 1.0, 'active_form_delivery_form': 1.0, 'prev_action_listen': 1.0, 'inte$
t_ask_relative_day': 1.0}, {'entity_time': 1.0, 'active_form_delivery_form': 1.0, 'prev_utter_explain_relative_day': 1.0, 'intent_a$
k_relative_day': 1.0}, {'active_form_delivery_form': 1.0, 'prev_action_listen': 1.0, 'intent_confirm': 1.0}]
2019-12-09 18:14:02 DEBUG    rasa.core.policies.memoization:221  - There is no memorised next action
2019-12-09 18:14:02 DEBUG    rasa.core.policies.fallback:161  - NLU confidence threshold met, confidence of fallback action set to c
ore threshold (0.1).
2019-12-09 18:14:02 DEBUG    rasa.core.policies.ensemble:435  - Predicted next action using policy_2_KerasPolicy
2019-12-09 18:14:02 DEBUG    rasa.core.processor:209  - Predicted next action 'delivery_form' with confidence 1.00.
2019-12-09 18:14:02 DEBUG    rasa.core.actions.action:448  - Calling action endpoint to run action 'delivery_form'.