File size: 816 Bytes
a286c29
 
 
e532bec
a286c29
 
 
 
 
 
 
 
 
f7319da
f8391ba
a286c29
 
efd0483
a286c29
 
 
e532bec
 
 
 
 
 
 
 
042042c
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
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}