demo / backend /main.py
tfrere's picture
update model testing at server startup
97bea1c
raw
history blame
2.89 kB
from fastapi import FastAPI, UploadFile, File, Form, Request, HTTPException
from fastapi.middleware.cors import CORSMiddleware
import os
from dotenv import load_dotenv
from routes import routers, session_files, active_tasks, benchmark
from tasks.get_available_model_provider import test_models
from datetime import datetime
# Load environment variables from .env file
load_dotenv()
# Verify environment variables are loaded
hf_token = os.getenv("HF_TOKEN")
if not hf_token:
print("⚠️ WARNING: HF_TOKEN environment variable is not set.")
else:
print("ℹ️ HF_TOKEN found in environment variables")
hf_organization = os.getenv("HF_ORGANIZATION")
if not hf_organization:
print("⚠️ WARNING: HF_ORGANIZATION environment variable is not set.")
else:
print(f"ℹ️ HF_ORGANIZATION found: {hf_organization}")
app = FastAPI(title="Yourbench API")
# Activer CORS pour permettre les requêtes depuis le frontend
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Dans un environnement de production, spécifiez les origines exactes
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Ajouter un gestionnaire d'événements pour afficher les session_files au démarrage
@app.on_event("startup")
async def startup_event():
print("\n===== Application Startup at", datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "=====\n")
print(f"Initial session_files: {session_files}")
# Afficher des informations détaillées sur les variables d'environnement
print("\n===== Environment Variables Check =====")
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
print("✅ HF_TOKEN AVAILABLE")
else:
print("❌ HF_TOKEN MISSING - HuggingFace models will not work correctly")
hf_organization = os.environ.get("HF_ORGANIZATION")
if hf_organization:
print(f"✅ HF_ORGANIZATION: {hf_organization}")
else:
print("❌ HF_ORGANIZATION MISSING")
print("\n===== Additional Environment Variables =====")
# Afficher d'autres variables utiles
for env_var in ["PORT", "DEBUG", "PYTHONPATH", "VIRTUAL_ENV"]:
value = os.environ.get(env_var)
if value:
print(f"ℹ️ {env_var}: {value}")
print("=======================================\n")
# Tester les modèles au démarrage et afficher les résultats
print("===== Testing model availability at startup =====")
test_results = test_models(verbose=True)
print("===== Model testing completed =====")
if test_results["working_model"]:
print(f"✅ Found working model: {test_results['working_model']} with provider: {test_results['provider']}")
else:
print("❌ WARNING: No working models found. The application might not function correctly!")
# Enregistrer toutes les routes
for router in routers:
app.include_router(router)