I want to generate ticket of those issues which are unresolved by chatbot and store that ticket in db along with agent id and issue raised. So for that i had used below code but getting error for dialoguestatetracker , can anybody help how can i get the required output.
import pyodbc import random from rasa.shared.nlu.training_data import loading from rasa.shared.core.trackers import DialogueStateTracker def create_connection(): server = ‘Server name’ database = ‘DB name’ username = ‘user’ password = ‘pass’ driver = ‘{ODBC Driver 17 for SQL Server}’ # Change this based on your ODBC driver
connection_string = f"DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}"
conn = pyodbc.connect(connection_string)
return conn
def fetch_data(query): conn = create_connection() cursor = conn.cursor() cursor.execute(query) rows = cursor.fetchall() conn.close() return rows
def store_ticket(ticket_number, agent_id, issue): query = “INSERT INTO Tickets (TicketNumber, AgentID, Issue) VALUES (?, ?, ?)” data = (ticket_number, agent_id, issue) conn = create_connection() cursor = conn.cursor() cursor.execute(query, data) conn.commit() conn.close()
def generate_ticket_number(tracker: DialogueStateTracker) → str: “”“Generates a unique ticket number and stores it in the database.”“” sender_id = tracker.sender_id slots = {slot.value: slot for slot in tracker.slots} issue = tracker.latest_message.data[‘text’] ticket_number = random.randint(100000,999999) store_ticket(ticket_number, sender_id, issue) return ticket_number
def bot_conversation(tracker: DialogueStateTracker) → str: “”“Generates a ticket through data taken from the bot conversation.”“” issue = tracker.latest_message.data[‘text’] sender_id = tracker.sender_id return generate_ticket_number(tracker)
if name == “main”: tracker = DialogueStateTracker ticket_number = bot_conversation(tracker)