22 lines
582 B
Python
22 lines
582 B
Python
from fastapi import FastAPI
|
|
from fastapi.responses import FileResponse
|
|
from pydantic import BaseModel
|
|
from pptx_generator import generate_pptx
|
|
import uuid
|
|
import os
|
|
|
|
app = FastAPI()
|
|
|
|
class Slide(BaseModel):
|
|
title: str
|
|
bullets: list[str]
|
|
|
|
class PresentationData(BaseModel):
|
|
slides: list[Slide]
|
|
|
|
@app.post("/generate")
|
|
def generate(data: PresentationData):
|
|
output_file = f"/tmp/{uuid.uuid4()}.pptx"
|
|
generate_pptx(data.slides, output_file)
|
|
return FileResponse(output_file, media_type="application/vnd.openxmlformats-officedocument.presentationml.presentation")
|