rag-chatbot / db_utils.py
Sakalya122's picture
Upload 11 files
5750894 verified
Raw
History Blame Contribute Delete
3.08 kB
from dotenv import load_dotenv
import mysql.connector
import time
import os
load_dotenv()
def get_db_connection():
connection = mysql.connector.connect(
host=os.getenv("DB_HOST"),
port=os.getenv("DB_PORT"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=os.getenv("DB_NAME")
)
cursor = connection.cursor()
return connection, cursor
def create_application_logs():
connection, cursor = get_db_connection()
try:
create_query = """
CREATE TABLE application_logs(id INT AUTO_INCREMENT PRIMARY KEY, session_id varchar(255), user_query TEXT, gpt_response TEXT, model varchar(100),
gpt_response_time varchar(100), input_token int, output_token int, total_token int, feedback bool, feedback_note TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);"""
cursor.execute(create_query)
connection.commit()
print(f"Created application_logs table...")
except mysql.connector.Error as err:
print(f"Error: {err}")
finally:
cursor.close()
connection.close()
def insert_application_logs(session_id: str, user_query:str, gpt_response: str, model: str, gpt_response_time: str,
input_token: int, output_token: int, total_token: int, feedback: bool=None, feedback_note: str=None):
connection, cursor = get_db_connection()
try:
insert_query = """
INSERT INTO application_logs (session_id, user_query, response, model,
response_time, input_tokens, output_tokens, total_tokens, feedback, feedback_note)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
"""
values = (session_id, user_query, gpt_response, model, gpt_response_time,
input_token, output_token, total_token, feedback, feedback_note)
cursor.execute(insert_query, values)
connection.commit()
print("Record inserted into application_logs table...")
except mysql.connector.Error as err:
print(f"Error: {err}")
finally:
cursor.close()
connection.close()
def get_past_conversation(session_id):
messages = []
start_time = time.time()
try:
connection, cursor = get_db_connection()
sql_query = "SELECT * from application_logs where session_id = %s;"
cursor.execute(sql_query, (session_id, ))
result = cursor.fetchall()
for row in result:
message_user = {"role": "human", "content": row[2]}
message_assistant = {"role": "ai", "content": row[3]}
messages.extend([message_user, message_assistant])
except Exception as e:
print(f"Error: {str(e)}")
raise e
finally:
connection.close()
cursor.close()
end_time = time.time()
elapsed_time = end_time - start_time
print(f"All session messages retrieved successfully, Time taken: {elapsed_time}")
return messages