Spaces:
Sleeping
Sleeping
| 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() | |