sav-ai-backend / database.py
aablaess's picture
Upload 6 files
99b9ac0 verified
Raw
History Blame Contribute Delete
1.29 kB
import os
from sqlalchemy import create_engine, Column, Integer, String, Float, DateTime, Text
from sqlalchemy.orm import sessionmaker, declarative_base
from datetime import datetime
from dotenv import load_dotenv
# Charger les variables d'environnement
load_dotenv()
# Récupérer l'URL de connexion (ou mettre une valeur par défaut locale pour éviter les crashs directs)
SQLALCHEMY_DATABASE_URL = os.getenv("DATABASE_URL", "postgresql://utilisateur:motdepasse@localhost:5432/nom_de_la_base")
# Création du moteur de connexion
engine = create_engine(SQLALCHEMY_DATABASE_URL)
# Création de la fabrique de sessions
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Base déclarative pour les modèles
Base = declarative_base()
class InteractionLog(Base):
__tablename__ = "interactions"
id = Column(Integer, primary_key=True, index=True)
timestamp = Column(DateTime, default=datetime.now)
query = Column(Text, nullable=False)
intent = Column(String(100))
score = Column(Float)
res_type = Column(String(50))
lang = Column(String(10))
response = Column(Text)
# Dépendance FastAPI pour obtenir une session DB par requête
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()