StreamingResponse în FastAPI în FastAPI

responses FastAPI 0.110+ / Starlette Q&A / Distribuie cod

Transmiterea continuă a datelor mari în flux: generatoare asincrone, fișiere CSV masive și Server-Sent Events (SSE).

Sintaxă
StreamingResponse(generator(), media_type="text/event-stream")

Atunci când generezi rapoarte masive cu milioane de rânduri sau când livrezi date în timp real (cum ar fi răspunsurile generate token cu token de un model LLM / OpenAI prin Server-Sent Events), încărcarea întregului conținut în memoria RAM a serverului poate bloca procesul.

Clasa StreamingResponse consumă un generator asincron Python și transmite datele către client în bucăți mici (chunked transfer encoding), menținând consumul de memorie la un nivel constant și minim.

Exemplu: Generator asincron livrat prin StreamingResponse
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import asyncio

app = FastAPI()

async def fake_data_streamer():
    for i in range(1, 6):
        await asyncio.sleep(1) # Simulare calcul sau așteptare eveniment
        yield f"Pachet date #{i}
"

@app.get("/stream")
async def stream_data():
    return StreamingResponse(fake_data_streamer(), media_type="text/plain")

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: StreamingResponse în FastAPI

Ai o nelămurire despre utilizarea comenzii StreamingResponse în FastAPI sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.