Spaces:
No application file
No application file
File size: 1,101 Bytes
768c652 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | """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)
|