AsrorAsr's picture
Upload folder using huggingface_hub
d57519c verified
Raw
History Blame Contribute Delete
1.5 kB
import os
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from config import settings
from routes.documents import router as documents_router
from routes.chat import router as chat_router
@asynccontextmanager
async def lifespan(app: FastAPI):
"""Application lifespan - create required directories on startup."""
os.makedirs(settings.UPLOAD_DIR, exist_ok=True)
os.makedirs(settings.CHROMA_DB_PATH, exist_ok=True)
print("✅ RAG Assistant API started")
print(f" LLM Model: {settings.LLM_MODEL}")
print(f" Embedding Model: {settings.EMBEDDING_MODEL}")
print(f" ChromaDB Path: {settings.CHROMA_DB_PATH}")
yield
print("🛑 RAG Assistant API shutting down")
app = FastAPI(
title="RAG Assistant API",
description="A Retrieval-Augmented Generation assistant that answers questions from uploaded PDF documents.",
version="1.0.0",
lifespan=lifespan,
)
# CORS middleware for frontend
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:5173", "http://localhost:3000", "*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Register routers
app.include_router(documents_router)
app.include_router(chat_router)
@app.get("/api/health")
async def health_check():
return {"status": "healthy"}
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8001, reload=True)