Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from ..state import GenerateRequest, GenerateResponse | |
| from ..graph.router import run_pipeline | |
| from ..tools import get_logger | |
| logger = get_logger() | |
| app = FastAPI( | |
| title="Agentic Multiwriter API", | |
| version="0.1.0", | |
| description="Multi-agent research & writing pipeline using LangGraph and LLMs.", | |
| ) | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| def health() -> dict: | |
| return {"status": "ok"} | |
| def generate(payload: GenerateRequest) -> GenerateResponse: | |
| logger.info("API: /generate called with topic='%s', mode='%s'", payload.topic, payload.mode) | |
| state = run_pipeline(topic=payload.topic, mode=payload.mode) | |
| return GenerateResponse( | |
| topic=state.get("topic", payload.topic), | |
| mode=state.get("mode", payload.mode), | |
| outline=state.get("outline", []) or [], | |
| draft=state.get("draft", "") or "", | |
| revised_draft=state.get("revised_draft", "") or "", | |
| final_output=state.get("final_output", "") or "", | |
| meta=state.get("meta", {}) or {}, | |
| ) | |