Souvikbasur's picture
Add Hugging Face README config properly encoded
ccb1bbd
Raw
History Blame Contribute Delete
1.15 kB
"""
main.py
-------
FastAPI backend exposing a single endpoint:
POST /research
body: {"topic": "reinforcement learning"}
returns: {status, reason, report, agent_log}
Run with:
uvicorn backend.main:app --reload --port 8000
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from backend.orchestrator import run_research_pipeline
from backend import config
app = FastAPI(title="Education Research Agent API")
# Allow the Streamlit frontend (running on a different port) to call this API
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
class ResearchRequest(BaseModel):
topic: str
@app.get("/health")
def health_check():
missing = config.validate_keys()
return {
"status": "ok",
"missing_required_keys": missing,
}
@app.post("/research")
def research(request: ResearchRequest):
topic = request.topic.strip()
if not topic:
return {"status": "error", "reason": "Empty topic.", "report": None, "agent_log": []}
return run_research_pipeline(topic)