Distopia22's picture
Fix: Update response format and add better error handling
480f467
raw
history blame
2.01 kB
import logging
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from api.routes import router
from config.settings import settings
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Create FastAPI app
app = FastAPI(
title=settings.api_title,
version=settings.api_version,
description=settings.api_description
)
# CORS configuration
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routes
app.include_router(router, prefix="/api")
@app.on_event("startup")
async def startup_event():
"""Log startup information"""
logger.info("=" * 50)
logger.info(f"🚀 {settings.api_title} v{settings.api_version}")
logger.info("=" * 50)
if settings.groq_api_key:
logger.info(f"✅ Groq API Key: Configured (length: {len(settings.groq_api_key)})")
logger.info(f"✅ Groq Model: {settings.groq_model}")
else:
logger.error("❌ GROQ_API_KEY is NOT set!")
logger.error("⚠️ API will NOT function without valid API key")
logger.info("=" * 50)
@app.get("/")
async def root():
"""Root endpoint"""
return {
"service": settings.api_title,
"version": settings.api_version,
"status": "running",
"endpoints": {
"docs": "/docs",
"health": "/api/v1/health",
"coding": "/api/coding",
"upload": "/api/upload-file"
}
}
@app.get("/api/v1/health")
async def health_check():
"""Health check endpoint"""
api_key_status = "configured" if settings.groq_api_key else "missing"
return {
"status": "healthy",
"service": settings.api_title,
"version": settings.api_version,
"groq_api_key": api_key_status,
"groq_model": settings.groq_model
}