StreamingResponse 是 FastAPI 中提供的一种特殊响应类型,用于流式发送数据到客户端,而不是一次性返回全部内容。

它非常适合用于:

  • 实时聊天输出

  • 视频/音频流

  • 文件下载(大文件)

  • 生成大型响应内容的过程

基本用法

from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import asyncio

app = FastAPI()

async def generate_stream():
yield “Hello”
await asyncio.sleep(1)
yield ” world”
await asyncio.sleep(1)
yield “!”

@app.get(“/stream”)
async def stream():
return StreamingResponse(generate_stream(), media_type=”text/plain”)

访问 /stream

客户端会:

  • 第 0 秒收到 "Hello"

  • 第 1 秒收到 " world"

  • 第 2 秒收到 "!"

这就是流式返回的效果

作者 admin

百度广告效果展示