File size: 1,644 Bytes
86e2833 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import os
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime
from sqlalchemy.ext.declarative import declarative_base
import uuid
from datetime import datetime
Base = declarative_base()
class Origin(Base):
__tablename__ = "origin"
id_origin = Column(String, primary_key=True, index=True, default=lambda: str(uuid.uuid4()))
origin = Column(String, nullable=True)
class Status(Base):
__tablename__ = "status"
id_status = Column(String, primary_key=True, index=True, default=lambda: str(uuid.uuid4()))
status = Column(String, nullable=True)
class Prompt(Base):
__tablename__ = "prompt"
id_prompt = Column(String, primary_key=True, index=True, default=lambda: str(uuid.uuid4()))
session_id = Column(String, nullable=False)
id_origin = Column(String, ForeignKey("origin.id_origin"), nullable=False)
prompt = Column(String, nullable=True)
response = Column(String, nullable=True)
class Log(Base):
__tablename__ = "log"
id_log = Column(String, primary_key=True, index=True, default=lambda: str(uuid.uuid4()))
timestamp = Column(DateTime, default=lambda: datetime.utcnow(), nullable=False)
id_prompt = Column(String, ForeignKey("prompt.id_prompt"), nullable=False)
id_status = Column(String, ForeignKey("status.id_status"), nullable=False)
id_origin = Column(String, ForeignKey("origin.id_origin"), nullable=False)
engine = create_engine("sqlite:///db_logsv2.db") # Use PostgreSQL or MySQL in production
Base.metadata.create_all(engine) |