forked from thangnch/AI_Voicebot
/
actions.py
76 lines (58 loc) · 2.37 KB
/
actions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from rasa_core_sdk import Action
from rasa_core_sdk.events import SlotSet
from rasa_core_sdk.events import UserUtteranceReverted
from rasa_core_sdk.events import AllSlotsReset
from rasa_core_sdk.events import Restarted
import requests
import json
from bs4 import BeautifulSoup
from pyvi import ViTokenizer, ViPosTagger
def name_cap(text):
tarr = text.split()
for idx in range(len(tarr)):
tarr[idx] = tarr[idx].capitalize()
return ' '.join(tarr)
class action_save_cust_info(Action):
def name(self):
return 'action_save_cust_info'
def run(self, dispatcher, tracker, domain):
user_id = (tracker.current_state())["sender_id"]
print(user_id)
cust_name = next(tracker.get_latest_entity_values("cust_name"), None)
cust_sex = next(tracker.get_latest_entity_values("cust_sex"), None)
bot_position = "SHB"
if (cust_sex is None):
cust_sex = "Quý khách"
if (cust_sex == "anh") | (cust_sex == "chị"):
bot_position = "em"
elif (cust_sex == "cô") | (cust_sex == "chú"):
bot_position = "cháu"
else:
cust_sex = "Quý khách"
bot_position = "SHB"
if not cust_name:
#dispatcher.utter_template("utter_greet_name",tracker)
return []
print (name_cap(cust_name))
return [SlotSet('cust_name', " "+name_cap(cust_name)),SlotSet('cust_sex', name_cap(cust_sex)),SlotSet('bot_position', name_cap(bot_position))]
class action_save_mobile_no(Action):
def name(self):
return 'action_save_mobile_no'
def run(self, dispatcher, tracker, domain):
user_id = (tracker.current_state())["sender_id"]
print(user_id)
mobile_no = next(tracker.get_latest_entity_values("inp_number"), None)
if not mobile_no:
return [UserUtteranceReverted()]
mobile_no = mobile_no.replace(" ","")
#print (cust_name)
return [SlotSet('mobile_no', mobile_no)]
class action_reset_slot(Action):
def name(self):
return "action_reset_slot"
def run(self, dispatcher, tracker, domain):
return [SlotSet("transfer_nick", None),SlotSet("transfer_amount", None),SlotSet("transfer_amount_unit", None)]