Upload files to 'chatbot/userdetails/actions'
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,61 @@
|
||||
# This files contains your custom actions which can be used to run
|
||||
# custom Python code.
|
||||
#
|
||||
# See this guide on how to implement these action:
|
||||
# https://rasa.com/docs/rasa/custom-actions
|
||||
|
||||
|
||||
# This is a simple example for a custom action which utters "Hello World!"
|
||||
import openpyxl
|
||||
from typing import Any, Text, Dict, List
|
||||
from rasa_sdk import Action, Tracker
|
||||
from rasa_sdk.executor import CollectingDispatcher
|
||||
from rasa_sdk.events import SlotSet
|
||||
|
||||
class ActionSayData(Action):
|
||||
def name(self) -> Text:
|
||||
return "get_slot_data"
|
||||
def run(self, dispatcher: CollectingDispatcher,
|
||||
tracker: Tracker,
|
||||
domain: Dict[Text, Any]) -> List [Dict[Text, Any]]:
|
||||
first_name = tracker.get_slot("first_name")
|
||||
print(first_name)
|
||||
last_name = tracker.get_slot("last_name")
|
||||
print(last_name)
|
||||
phone_num= tracker.get_slot("phone_num")
|
||||
print(phone_num)
|
||||
email_id= tracker.get_slot("email_id")
|
||||
print(email_id)
|
||||
sender_id = tracker.sender_id
|
||||
|
||||
|
||||
def save_user_details_to_excel(details):
|
||||
try:
|
||||
workbook = openpyxl.load_workbook('user_details.xlsx')
|
||||
sheet = workbook.active
|
||||
except FileNotFoundError:
|
||||
workbook = openpyxl.Workbook()
|
||||
sheet = workbook.active
|
||||
sheet.append(['Name', 'Age', 'Email', 'Phone','recipient_id'])
|
||||
sheet.append(details)
|
||||
workbook.save('user_details.xlsx')
|
||||
|
||||
details = [first_name, last_name, phone_num, email_id,sender_id]
|
||||
save_user_details_to_excel(details)
|
||||
|
||||
|
||||
dispatcher.utter_message()
|
||||
|
||||
|
||||
return []
|
||||
|
||||
# Clear the desired slot by setting its value to None
|
||||
class ActionHelloWorld(Action):
|
||||
|
||||
def name(self) -> Text:
|
||||
return "slots_to_clear"
|
||||
|
||||
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
|
||||
slots_to_clear = ["first_name", "last_name", "phone_num","email_id"]
|
||||
events = [SlotSet(slot_name, None) for slot_name in slots_to_clear]
|
||||
return events
|
||||
Reference in New Issue
Block a user