from fastapi import FastAPI, Request, UploadFile, File import openai import os from io import BytesIO openai.api_key = os.environ["OPENAI_API_KEY"] app = FastAPI() @app.post("/chat") async def chat(req: Request): data = await req.json() messages = data.get("messages", []) response = openai.chat.completions.create( model="gpt-4o", messages=messages ) return {"reply": response.choices[0].message.content} @app.post("/transcribe") async def transcribe(file: UploadFile = File(...)): audio_bytes = await file.read() audio_file = BytesIO(audio_bytes) audio_file.name = file.filename # Required so OpenAI knows the format response = openai.audio.transcriptions.create( model="whisper-1", file=audio_file ) return {"text": response.text}