ChinaWHAPI
← 返回知识中心
Streaming SSEReal-timeImplementation

流式输出(Streaming)vs 阻塞调用:如何选择和实现

AI API 支持流式和非流式两种响应模式。了解两者的优缺点,以及如何在代码中实现。

阻塞调用(Blocking)

客户端发送请求,等待服务器处理完整结果后一次性返回。优点是实现简单,适合批量处理;缺点是响应延迟高,用户需要等待整个生成过程完成。

流式输出(Streaming)

服务器通过 Server-Sent Events(SSE)实时推送生成的内容块,前端逐字显示。优点是用户体验好(打字机效果),感知延迟低;缺点是实现复杂,需要处理流式解析。

Python 流式示例

from openai import OpenAI

client = OpenAI(api_key="key", base_url="https://chinawhapi.com/v1")

stream = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=[{"role": "user", "content": "解释微服务"}],
    stream=True,
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Node.js 流式示例

const stream = await client.chat.completions.create({
  model: "qwen3.6-plus",
  messages: [{ role: "user", content: "解释微服务" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

适用场景

聊天界面、实时助手、代码补全 → 流式输出。批量内容生成、报告导出、异步处理 → 阻塞调用。