AI API 流式输出怎么用?OuraiC 的 SSE 与客户端缓冲排查
流式输出把结果分批返回,减少用户等待完整答案的时间。OuraiC 是否支持某个模型与协议的流式行为,需用当前分组实际测试。非流式成功不等于所有流式事件都兼容。

图:按本文操作要点制作的说明图,不是后台或调用成功截图。
Python 示例
import os
from openai import OpenAI
client = OpenAI(
base_url="https://ouraic.cn/v1",
api_key=os.environ["OURAIC_API_KEY"],
timeout=60.0,
)
stream = client.chat.completions.create(
model=os.environ["OURAIC_MODEL"],
messages=[{"role": "user", "content": "解释流式输出,三句话"}],
stream=True,
)
for part in stream:
if part.choices:
text = part.choices[0].delta.content
if text:
print(text, end="", flush=True)
print()
这只处理普通文本增量,不是完整工具调用、思考或所有事件解析器。模型和分组需提前确认,本文没有提供实测成功截图。
一直等到最后才显示
可能是模型首段生成时间、反向代理缓冲、框架收集全部内容或前端渲染方式。分别查看上游是否持续返回事件,以及自己的后端是否及时转发。
不要仅因为前端一次显示,就认定站点没有流式。也不要关闭所有缓冲设置而不确认实际链路。
增量不能按完整对象处理
每个事件可能只含部分文本、元数据或工具参数片段。有些事件没有 choices 或没有文本,解析器需按协议处理。Responses 与 Chat Completions 的事件结构不同。
工具参数还可能分段到达,不能把每一段当成完整 JSON 执行业务动作。
用户中断与费用
关闭页面或取消请求,不必然意味着上游停止生成或绝不计费。核对客户端取消是否传到后端,再查看本站日志。
重试流式请求也可能产生重复生成,给次数与任务设边界,不自动把未显示部分视为免费。
验证顺序
先做短文本流式,记录首段和结束;再测试代理转发;最后测试工具和多轮。保留脱敏事件样例,避免公开输入与 Key。