Spaces:
Sleeping
Sleeping
File size: 1,696 Bytes
4a5d5fa c5fb75b 4a5d5fa c5fb75b 328d050 c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b 4a5d5fa c5fb75b |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import logging
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from services import queue_manager
logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s")
app = FastAPI(title="AI ADD Generator", version="1.0")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# ---------------------------
# Pydantic models
# ---------------------------
class IdeaRequest(BaseModel):
idea: str
class ConfirmationRequest(BaseModel):
task_id: str
confirm: bool
# ---------------------------
# API endpoints
# ---------------------------
@app.post("/submit_idea")
async def submit_idea(request: IdeaRequest):
task_id = await queue_manager.add_task(request.idea)
return {"status": "submitted", "task_id": task_id}
@app.post("/confirm")
async def confirm_task(request: ConfirmationRequest):
task = queue_manager.get_task_status(request.task_id)
if not task:
raise HTTPException(status_code=404, detail="Task not found")
if task["status"] != queue_manager.TaskStatus.WAITING_CONFIRMATION:
raise HTTPException(status_code=400, detail="Task not waiting for confirmation")
await queue_manager.confirm_task(request.task_id)
return {"status": "confirmed", "task": task}
@app.get("/status/{task_id}")
async def status(task_id: str):
task = queue_manager.get_task_status(task_id)
if not task:
raise HTTPException(status_code=404, detail="Task not found")
return task
@app.get("/")
async def health():
return {"status": "running"}
|