Spaces:
Sleeping
Sleeping
# app/api/v1/ppt.py | |
from fastapi import APIRouter, HTTPException | |
from fastapi.responses import FileResponse | |
from pydantic import BaseModel | |
from typing import List | |
from app.services.ppt_service import generate_ppt_file | |
router = APIRouter() | |
class Slide(BaseModel): | |
title: str | |
content: str | |
class PPTInput(BaseModel): | |
slides: List[Slide] | |
def generate_ppt(payload: PPTInput): | |
try: | |
ppt_path = generate_ppt_file([slide.dict() for slide in payload.slides]) | |
filename = ppt_path.split("/")[-1] | |
return FileResponse( | |
ppt_path, | |
media_type="application/vnd.openxmlformats-officedocument.presentationml.presentation", | |
filename=filename | |
) | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |