Open jiangdongguo opened 5 years ago
我现在有这么一个场景:当我们输入“”查询车牌号码粤A12345“”,rasa core能够返回请求的数据给我,但当我再次输入“”再帮我查一下身份证号码“”时,rasa core却把上一次车牌的结果返回给我,而没有问我继续输入身份证号码,请问是什么原因导致的呢?期待解答!谢谢!
Rasa Core logs:
192.168.0.110 - - [2019-06-08 11:44:37] "POST /webhooks/rest/webhook HTTP/1.1" 200 452 1.066897 2019-06-08 11:44:51 DEBUG rasa_core.tracker_store - Recreating tracker for id '152869574032212890:123' 2019-06-08 11:44:52 DEBUG rasa_core.processor - Received user message '查询车牌号码粤 A12345' with intent '{'name': 'request_number', 'confidence': 0.964844109378438}' and entities '[{'entity': 'item', 'value': '车牌', 'start': 2, 'end': 6, 'confidence': None, 'extractor': 'ner_mitie', 'processors': ['ner_synonyms']}, {'entity': 'number', 'value': 'A12345', 'st art': 6, 'end': 13, 'confidence': None, 'extractor': 'ner_mitie'}]' 2019-06-08 11:44:52 DEBUG rasa_core.processor - Logged UserUtterance - tracker now has 170 events 2019-06-08 11:44:52 DEBUG rasa_core.processor - Current slot values: business: None item: None number: None requested_slot: None 2019-06-08 11:44:52 DEBUG rasa_core.policies.memoization - Current tracker state [None, None, None, {}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_action_listen': 1.0, 'inten t_request_number': 1.0}] 2019-06-08 11:44:52 DEBUG rasa_core.policies.memoization - There is no memorised next action 2019-06-08 11:44:52 DEBUG rasa_core.policies.form_policy - There is no active form 2019-06-08 11:44:52 DEBUG rasa_core.policies.ensemble - Predicted next action using policy_1_MobilePolicy 2019-06-08 11:44:52 DEBUG rasa_core.processor - Predicted next action 'number_form' with prob 0.99. 2019-06-08 11:44:52 DEBUG rasa_core.actions.action - Calling action endpoint to run action 'number_form'. 2019-06-08 11:44:52 WARNING py.warnings - E:\ComPython\LittleTeligen\RasaCore\venv\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request i s being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning) 2019-06-08 11:44:52 DEBUG rasa_core.processor - Action 'number_form' ended with events '['Form(number_form)', 'SlotSet(key: item, value: 车牌)', 'SlotSet(key: number, value:粤A12345)', 'SlotSet(key: item, value: None)', 'Form(None)', 'SlotSet(key: requested_slot, value: None)']' 2019-06-08 11:44:52 DEBUG rasa_core.processor - Bot utterance 'BotUttered(text: {"method": "queryCarInfo", "wccpproxy": "{\"result\": 1, \"resultMsg\": \"none\", \"list\": [{\"owne rName\": \"\\u5f20\\u4e09\", \"idCard\": \"450981199305174536\", \"color\": \"\\u9ec4\\u8272\", \"firstRegDate\": \"2019-03-23\", \"brand\": \"BMW\", \"model\": \"x3\", \"carType\": \" normal\", \"numType\": \"plate\", \"carNum\": \"\\u7ca4a12345\"}]}"}, data: { "elements": null, "buttons": [], "attachment": null })' 2019-06-08 11:44:52 DEBUG rasa_core.policies.memoization - Current tracker state [None, None, {}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_action_listen': 1.0, 'intent_requ est_number': 1.0}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_number_form': 1.0, 'intent_request_number': 1.0}] 2019-06-08 11:44:52 DEBUG rasa_core.policies.memoization - There is no memorised next action 2019-06-08 11:44:52 DEBUG rasa_core.policies.form_policy - There is no active form 2019-06-08 11:44:52 DEBUG rasa_core.policies.ensemble - Predicted next action using policy_1_MobilePolicy 2019-06-08 11:44:52 DEBUG rasa_core.processor - Predicted next action 'action_listen' with prob 1.00. 2019-06-08 11:44:52 DEBUG rasa_core.processor - Action 'action_listen' ended with events '[]' 192.168.0.110 - - [2019-06-08 11:44:52] "POST /webhooks/rest/webhook HTTP/1.1" 200 1184 1.067888 2019-06-08 11:44:58 DEBUG rasa_core.tracker_store - Recreating tracker for id '152869574032212890:123' 2019-06-08 11:44:59 DEBUG rasa_core.processor - Received user message '帮我查一下身份证号码 with intent '{'name': 'request_number', 'confidence': 0.9043155210530247}' and entities '[{'e ntity': 'item', 'value': '身份证', 'start': 2, 'end': 7, 'confidence': None, 'extractor': 'ner_mitie', 'processors': ['ner_synonyms']}]' 2019-06-08 11:44:59 DEBUG rasa_core.processor - Logged UserUtterance - tracker now has 180 events 2019-06-08 11:44:59 DEBUG rasa_core.processor - Current slot values: business: None item: None number: 粤A12345 requested_slot: None 2019-06-08 11:44:59 DEBUG rasa_core.policies.memoization - Current tracker state [None, {}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_action_listen': 1.0, 'intent_request_nu mber': 1.0}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_number_form': 1.0, 'intent_request_number': 1.0}, {'entity_item': 1.0, 'prev_action_listen': 1.0, 'intent_request_number': 1.0}] 2019-06-08 11:44:59 DEBUG rasa_core.policies.memoization - There is no memorised next action 2019-06-08 11:44:59 DEBUG rasa_core.policies.form_policy - There is no active form 2019-06-08 11:44:59 DEBUG rasa_core.policies.ensemble - Predicted next action using policy_1_MobilePolicy 2019-06-08 11:44:59 DEBUG rasa_core.processor - Predicted next action 'number_form' with prob 1.00. 2019-06-08 11:44:59 DEBUG rasa_core.actions.action - Calling action endpoint to run action 'number_form'. 2019-06-08 11:44:59 WARNING py.warnings - E:\ComPython\LittleTeligen\RasaCore\venv\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request i s being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning) 2019-06-08 11:44:59 DEBUG rasa_core.processor - Action 'number_form' ended with events '['Form(number_form)', 'SlotSet(key: number, value: 粤12345)', 'SlotSet(key: item, value: None)', 'Form(None)', 'SlotSet(key: requested_slot, value: None)']' 2019-06-08 11:44:59 DEBUG rasa_core.processor - Bot utterance 'BotUttered(text: {"method": "queryCarInfo", "wccpproxy": "{\"result\": 1, \"resultMsg\": \"none\", \"list\": [{\"owne rName\": \"\\u5f20\\u4e09\", \"idCard\": \"450981199305174536\", \"color\": \"\\u9ec4\\u8272\", \"firstRegDate\": \"2019-03-23\", \"brand\": \"BMW\", \"model\": \"x3\", \"carType\": \" normal\", \"numType\": \"plate\", \"carNum\": \"\\u7ca4a12345\"}]}"}, data: { "elements": null, "buttons": [], "attachment": null })' 2019-06-08 11:44:59 DEBUG rasa_core.policies.memoization - Current tracker state [{}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_action_listen': 1.0, 'intent_request_number': 1.0}, {'entity_item': 1.0, 'entity_number': 1.0, 'prev_number_form': 1.0, 'intent_request_number': 1.0}, {'entity_item': 1.0, 'prev_action_listen': 1.0, 'intent_request_number': 1.0}, {'entity_item': 1.0, 'prev_number_form': 1.0, 'intent_request_number': 1.0}] 2019-06-08 11:44:59 DEBUG rasa_core.policies.memoization - There is no memorised next action 2019-06-08 11:44:59 DEBUG rasa_core.policies.form_policy - There is no active form 2019-06-08 11:44:59 DEBUG rasa_core.policies.ensemble - Predicted next action using policy_1_MobilePolicy 2019-06-08 11:44:59 DEBUG rasa_core.processor - Predicted next action 'action_listen' with prob 1.00. 2019-06-08 11:44:59 DEBUG rasa_core.processor - Action 'action_listen' ended with events '[]' 192.168.0.110 - - [2019-06-08 11:44:59] "POST /webhooks/rest/webhook HTTP/1.1" 200 1184 1.083746
story:
# happy with request number * greet - utter_answer_greet * request_number - number_form - form{"name": "number_form"} - form{"name": null} * thanks - utter_answer_thanks
action code:
class NumberForm(FormAction): def name(self): """Request Number action唯一标识""" return "number_form" def validate_number(self, value, dispatcher, tracker, domain): pass def validate_item(self, value, dispatcher, tracker, domain): pass @staticmethod def required_slots(tracker): number = tracker.get_slot('number') if number is not None: return ["number"] return ["item", "number"] def submit(self, dispatcher, tracker, domain): inputItem = tracker.get_slot("item") inputNum = tracker.get_slot("number") print("##### current slot:item={0},number={1}".format(inputItem, inputNum)) return []
train core model configs:
def train_dialogue_keras_form(domain_file="configs/core/domain_form.yml", model_path="models/dialogue_keras_form_new", training_data_file="data/stories_data/form"): fallback = FallbackPolicy( fallback_action_name="action_default_fallback", nlu_threshold=0.4, core_threshold=0.3 ) agent = Agent(domain_file, policies=[MemoizationPolicy(max_history=5), MobilePolicy(epochs=100, batch_size=16), FormPolicy(), fallback]) training_data = agent.load_data(training_data_file) agent.train( training_data, validation_split=0.2 ) agent.persist(model_path) return agent
domain.yml:
forms: - number_form intents: - affirm - deny - greet - goodbye - thanks - whoareyou - whattodo - whereyoufrom - mod_happy - mod_unhappy - mod_angry - mod_worried - request_number - request_business - search_item - say_jokes - ask_age - ask_sex - out_of_scope - welcome slots: item: type: unfeaturized auto_fill: false number: type: unfeaturized auto_fill: false business: type: unfeaturized auto_fill: false entities: - item - number - business
我现在有这么一个场景:当我们输入“”查询车牌号码粤A12345“”,rasa core能够返回请求的数据给我,但当我再次输入“”再帮我查一下身份证号码“”时,rasa core却把上一次车牌的结果返回给我,而没有问我继续输入身份证号码,请问是什么原因导致的呢?期待解答!谢谢!
Rasa Core logs:
story:
action code:
train core model configs:
domain.yml: