概述
流式传输允许您在 token 生成时即时接收,而无需等待完整响应。这能显著改善用户感知延迟。适用场景
- 聊天界面 — 显示输入指示器和实时文本
- 长篇响应 — 不让用户等待完整响应
- 代码生成 — 在代码编写过程中实时显示
工作原理
- 在请求中设置
stream: true - OpenModex 打开一个 SSE(Server-Sent Events)连接
- Token 在生成时作为
data:事件发送 - 流以
data: [DONE]结束
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
通过 Server-Sent Events 实时逐 token 接收响应。
stream: truedata: 事件发送data: [DONE] 结束const stream = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Tell me a story.' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Tell me a story."}],
stream=True,
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
stream, _ := client.Chat.Completions.CreateStream(ctx, &openmodex.ChatCompletionParams{
Model: "gpt-4o",
Messages: []openmodex.ChatMessage{{Role: "user", Content: "Tell me a story."}},
})
for chunk, err := range stream.Iter() {
if err != nil { break }
fmt.Print(chunk.Choices[0].Delta.Content)
}
import { useChat } from '@openmodex/react';
function Chat() {
const { messages, input, setInput, sendMessage, isLoading } = useChat({
apiKey: 'omx_sk_...',
model: 'gpt-4o',
});
return (
<div>
{messages.map((m) => (
<div key={m.id}>{m.role}: {m.content}</div>
))}
<input value={input} onChange={(e) => setInput(e.target.value)} />
<button onClick={() => sendMessage()}>Send</button>
</div>
);
}
const stream = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Hello!' }],
stream: true,
routing: {
fallback: ['claude-3.5-sonnet'],
},
});