Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 

88 rindas
2.8 KiB

  1. # This files contains your custom actions which can be used to run
  2. # custom Python code.
  3. #
  4. # See this guide on how to implement these action:
  5. # https://rasa.com/docs/rasa/custom-actions
  6. # This is a simple example for a custom action which utters "Hello World!"
  7. from typing import Any, Text, Dict, List
  8. from rasa_sdk import Action, Tracker
  9. from rasa_sdk.executor import CollectingDispatcher
  10. from connect_to_database import UpdateData
  11. import datetime
  12. #
  13. #
  14. # class ActionHelloWorld(Action):
  15. #
  16. # def name(self) -> Text:
  17. # return "action_hello_world"
  18. #
  19. # def run(self, dispatcher: CollectingDispatcher,
  20. # tracker: Tracker,
  21. # domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
  22. #
  23. # dispatcher.utter_message(text="Hello World!")
  24. #
  25. # return []
  26. #FOR GETTING THE USER'S BROWSER AND DEVICE INFORMATION THROUGH CUSTOM DATA.
  27. # class ActionGetData(Action):
  28. # def name(self) -> Text:
  29. # return "action_get_data"
  30. # def run(self, dispatcher: CollectingDispatcher,
  31. # tracker: Tracker,
  32. # domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
  33. # events = tracker.current_state()['events']
  34. # user_events = []
  35. # for e in events:
  36. # if e['event'] == 'user':
  37. # user_events.append(e)
  38. # custom_data = user_events[-1]['metadata']
  39. # print(custom_data)
  40. # return []
  41. #FOR DATABASE CONNECTIVITY AND UPDATION (NAME, EMAIL, DATE, SESSION ID).
  42. # class ActionSubmit(Action):
  43. # def name(self) -> Text:
  44. # return "action_submit"
  45. # def run(self, dispatcher: CollectingDispatcher,
  46. # tracker: Tracker,
  47. # domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
  48. # current_time = str(datetime.datetime.now())
  49. # current_time = current_time.split(":")
  50. # current_time = current_time[0] + ":" + current_time[1]
  51. # DataUpdate(tracker.get_slot("name"),tracker.get_slot("email"), current_time, tracker.sender_id)
  52. #GET THE USER'S BROWSER AND DEVICE INFORMATION THROUGH INIT PAYLOAD AND UPDATE THE TABLE USER_DEVICE_IMFORMATION.
  53. class ActionUpdateData(Action):
  54. def name(self) -> Text:
  55. return "action_update_data"
  56. def run(self, dispatcher: CollectingDispatcher,
  57. tracker: Tracker,
  58. domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
  59. device = tracker.get_slot("device_and_browser").split(",")[0].capitalize()
  60. browser = tracker.get_slot("device_and_browser").split(",")[1].capitalize()
  61. current_time = str(datetime.datetime.now())
  62. current_time = current_time.split(":")
  63. current_time = current_time[0] + ":" + current_time[1]
  64. current_time = datetime.datetime.strptime(current_time, "%Y-%m-%d %H:%M")
  65. UpdateData(device, browser, current_time, tracker.sender_id)