pythonintermediate

OpenAI Streaming with SSE in FastAPI

Stream OpenAI responses as Server-Sent Events from a FastAPI endpoint.

python
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from openai import AsyncOpenAI

app   = FastAPI()
client = AsyncOpenAI()

async def stream_llm(prompt: str):
    stream = await client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role':'user','content':prompt}],
        stream=True,
    )
    async for chunk in stream:
        delta = chunk.choices[0].delta.content
        if delta:
            yield f'data: {delta}\n\n'
    yield 'data: [DONE]\n\n'

@app.get('/chat')
async def chat(prompt: str = 'Hello!'):
    return StreamingResponse(stream_llm(prompt), media_type='text/event-stream')

Use Cases

  • streaming AI APIs
  • real-time responses
  • SSE endpoints

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.