"""Semantic RAG - Simplified for HF Spaces""" import os from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel from openai import OpenAI app = FastAPI(title="Semantic RAG DB") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) class SearchRequest(BaseModel): query: str class SearchResponse(BaseModel): answer: str @app.get("/") def root(): return {"status": "running", "message": "Semantic RAG API"} @app.get("/health") def health(): return {"status": "healthy"} @app.post("/search", response_model=SearchResponse) def search(req: SearchRequest): if not os.getenv("OPENAI_API_KEY"): raise HTTPException(400, "OPENAI_API_KEY not set") response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": req.query}], max_tokens=1000, ) return SearchResponse(answer=response.choices[0].message.content)