Spaces:
Sleeping
Sleeping
| import os | |
| import duckdb | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| # Connect to (or create) a DuckDB database file | |
| # conn = duckdb.connect('kpai_db.db') | |
| conn = duckdb.connect(f"md:?motherduck_token={os.getenv('MOTHERDUCK_TOKEN')}") | |
| # Create the USERS table | |
| conn.execute(''' | |
| CREATE TABLE IF NOT EXISTS USERS ( | |
| user_id UUID PRIMARY KEY, | |
| username VARCHAR(100) NOT NULL, | |
| email VARCHAR(100) NOT NULL, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
| ); | |
| ''') | |
| # Create the SESSIONS table | |
| conn.execute(''' | |
| CREATE TABLE IF NOT EXISTS SESSIONS ( | |
| session_id UUID PRIMARY KEY, | |
| user_id UUID NOT NULL, | |
| session_start TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| session_end TIMESTAMP DEFAULT (CURRENT_TIMESTAMP + INTERVAL '2' HOUR), | |
| FOREIGN KEY(user_id) REFERENCES USERS(user_id) | |
| ); | |
| ''') | |
| # Create the RESPONSES table | |
| conn.execute(''' | |
| CREATE TABLE IF NOT EXISTS RESPONSES ( | |
| response_id UUID PRIMARY KEY, | |
| session_id UUID NOT NULL, | |
| user_id UUID NOT NULL, | |
| user_input_text TEXT NOT NULL, | |
| response_text TEXT NOT NULL, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY(session_id) REFERENCES SESSIONS(session_id), | |
| FOREIGN KEY(user_id) REFERENCES USERS(user_id) | |
| ); | |
| ''') | |
| # Create the AGENT_RESPONSES table | |
| conn.execute(''' | |
| CREATE TABLE IF NOT EXISTS AGENT_RESPONSES ( | |
| agent_response_id UUID PRIMARY KEY, | |
| response_id UUID NOT NULL, | |
| agent_name VARCHAR(50) NOT NULL, | |
| user_input TEXT NOT NULL, | |
| agent_response_text TEXT NOT NULL, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY(response_id) REFERENCES RESPONSES(response_id) | |
| ); | |
| ''') | |
| # Create the FEEDBACK table | |
| conn.execute(''' | |
| CREATE TABLE IF NOT EXISTS FEEDBACK ( | |
| feedback_id UUID PRIMARY KEY, | |
| response_id UUID NOT NULL, | |
| user_id UUID NOT NULL, | |
| feedback_score TEXT, | |
| feedback_text TEXT, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY(response_id) REFERENCES RESPONSES(response_id), | |
| FOREIGN KEY(user_id) REFERENCES USERS(user_id) | |
| ); | |
| ''') | |
| # Close the connection | |
| conn.close() | |
| print("Database and tables created successfully.") | |