semantic-rag / app.py
nicebeam's picture
Create app.py
768c652 verified
Raw History Blame Contribute Delete
1.1 kB
"""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)