Spaces:
Sleeping
Sleeping
Download app/db/models.py from rriviere/attrition-api-dev: direct link, hf CLI and curl.
- Browser
- Download file 4.85 kB
-
https://huggingface.co/spaces/rriviere/attrition-api-dev/resolve/main/app/db/models.py
- Command line
-
hf download hf://spaces/rriviere/attrition-api-dev/app/db/models.py
-
curl -L -o models.py https://huggingface.co/spaces/rriviere/attrition-api-dev/resolve/main/app/db/models.py
4.85 kB
| from sqlalchemy import Column, Integer, SmallInteger, String, Boolean, Float, DateTime, ForeignKey | |
| from sqlalchemy.sql import func | |
| from sqlalchemy.orm import DeclarativeBase | |
| class Base(DeclarativeBase): | |
| pass | |
| class Employee(Base): | |
| __tablename__ = "employees" | |
| id = Column(Integer, primary_key=True, autoincrement=True) | |
| created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) | |
| # Identité | |
| age = Column(Integer, nullable=False) | |
| genre = Column(String, nullable=False) | |
| statut_marital = Column(String, nullable=False) | |
| revenu_mensuel = Column(Integer, nullable=False) | |
| # Poste | |
| departement = Column(String, nullable=False) | |
| poste = Column(String, nullable=False) | |
| niveau_hierarchique_poste = Column(SmallInteger, nullable=False) | |
| domaine_etude = Column(String, nullable=False) | |
| niveau_education = Column(SmallInteger, nullable=False) | |
| # Expérience | |
| nombre_experiences_precedentes = Column(Integer, nullable=False) | |
| annee_experience_totale = Column(Integer, nullable=False) | |
| annees_dans_l_entreprise = Column(Integer, nullable=False) | |
| annees_dans_le_poste_actuel = Column(Integer, nullable=False) | |
| annees_sous_responsable_actuel = Column(Integer, nullable=False) | |
| annees_depuis_la_derniere_promotion = Column(Integer, nullable=False) | |
| # Performance | |
| note_evaluation_actuelle = Column(SmallInteger, nullable=False) | |
| note_evaluation_precedente = Column(SmallInteger, nullable=False) | |
| augmentation_salaire_precedente = Column(Integer, nullable=False) | |
| nb_formations_suivies = Column(Integer, nullable=False) | |
| nombre_participation_pee = Column(Integer, nullable=False) | |
| # Satisfaction | |
| satisfaction_employee_environnement = Column(SmallInteger, nullable=False) | |
| satisfaction_employee_nature_travail = Column(SmallInteger, nullable=False) | |
| satisfaction_employee_equipe = Column(SmallInteger, nullable=False) | |
| satisfaction_employee_equilibre_pro_perso = Column(SmallInteger, nullable=False) | |
| # Conditions | |
| heure_supplementaires = Column(String, nullable=False) | |
| frequence_deplacement = Column(String, nullable=False) | |
| distance_domicile_travail = Column(Integer, nullable=False) | |
| # Cible | |
| a_quitte_l_entreprise = Column(Boolean, nullable=False) | |
| class Prediction(Base): | |
| __tablename__ = "predictions" | |
| id = Column(Integer, primary_key=True, autoincrement=True) | |
| created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) | |
| # Inputs — miroir exact de PredictionInput | |
| age = Column(Integer, nullable=False) | |
| genre = Column(String, nullable=False) | |
| statut_marital = Column(String, nullable=False) | |
| poste = Column(String, nullable=False) | |
| domaine_etude = Column(String, nullable=False) | |
| niveau_education = Column(SmallInteger, nullable=False) | |
| departement = Column(String, nullable=False) | |
| niveau_hierarchique_poste = Column(SmallInteger, nullable=False) | |
| nombre_experiences_precedentes = Column(Integer, nullable=False) | |
| annee_experience_totale = Column(Integer, nullable=False) | |
| annees_dans_l_entreprise = Column(Integer, nullable=False) | |
| annees_dans_le_poste_actuel = Column(Integer, nullable=False) | |
| annees_sous_responsable_actuel = Column(Integer, nullable=False) | |
| annees_depuis_la_derniere_promotion = Column(Integer, nullable=False) | |
| note_evaluation_actuelle = Column(SmallInteger, nullable=False) | |
| note_evaluation_precedente = Column(SmallInteger, nullable=False) | |
| augmentation_salaire_precedente = Column(Integer, nullable=False) | |
| nb_formations_suivies = Column(Integer, nullable=False) | |
| nombre_participation_pee = Column(Integer, nullable=False) | |
| satisfaction_employee_environnement = Column(SmallInteger, nullable=False) | |
| satisfaction_employee_nature_travail = Column(SmallInteger, nullable=False) | |
| satisfaction_employee_equipe = Column(SmallInteger, nullable=False) | |
| satisfaction_employee_equilibre_pro_perso = Column(SmallInteger, nullable=False) | |
| heure_supplementaires = Column(String, nullable=False) | |
| frequence_deplacement = Column(String, nullable=False) | |
| distance_domicile_travail = Column(Integer, nullable=False) | |
| revenu_mensuel = Column(Integer, nullable=False) | |
| # Outputs | |
| prediction = Column(SmallInteger, nullable=False) | |
| probabilite = Column(Float, nullable=False) | |
| class Log(Base): | |
| __tablename__ = "logs" | |
| id = Column(Integer, primary_key=True, autoincrement=True) | |
| timestamp = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) | |
| endpoint = Column(String, nullable=False) | |
| method = Column(String, nullable=False) | |
| status_code = Column(Integer, nullable=False) | |
| response_time_ms = Column(Float, nullable=False) | |
| prediction_id = Column(Integer, ForeignKey("predictions.id"), nullable=True) |