| from fastapi import FastAPI, HTTPException |
| from rag_service import rag_service |
|
|
| app = FastAPI( |
| title="Multi-Modal RAG API", |
| description="API for querying documents with text and images", |
| version="1.0.0" |
| ) |
|
|
| @app.get("/") |
| async def root(): |
| return {"message": "Multi-Modal RAG API is running"} |
|
|
| @app.post("/ask") |
| async def ask_question(question: str): |
| """ |
| Ask a question to the RAG system |
| """ |
| try: |
| response = rag_service.ask_question(question) |
| return { |
| "question": question, |
| "response": response, |
| "status": "success" |
| } |
| except Exception as e: |
| raise HTTPException(status_code=500, detail=f"Error processing question: {str(e)}") |
|
|
| @app.get("/health") |
| async def health_check(): |
| """ |
| Health check endpoint |
| """ |
| try: |
| |
| count = rag_service.vectorstore._collection.count() |
| return { |
| "status": "healthy", |
| "vectorstore_documents": count, |
| "docstore_documents": len(rag_service.store.store) |
| } |
| except Exception as e: |
| raise HTTPException(status_code=500, detail=f"Health check failed: {str(e)}") |
|
|