# 读取 Chat Completions 流式响应

在 Chat Completions 请求中将 `stream` 设为 `true`，即可通过服务器发送事件（SSE）持续读取生成增量。本页只适用于 Chat Completions；Responses 和 Anthropic Messages 使用各自的事件形态。

```text
POST https://token.moi.matrixorigin.cn/v1/chat/completions
```

## 调用前准备

准备具有 Genesis 权限的访问凭据，以及支持 Chat Completions 流式输出的模型 ID。

## 请求示例

```bash
curl -N -X POST "https://token.moi.matrixorigin.cn/v1/chat/completions" \
  -H "Authorization: Bearer $GENESIS_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/event-stream' \
  -d '{
    "model": "'"$MODEL_ID"'",
    "messages": [{"role": "user", "content": "用一句话说明主键的作用。"}],
    "stream": true
  }'
```

`-N` 会关闭 curl 的输出缓冲，使 SSE 事件能够逐行读取。

## 成功响应

成功时响应媒体类型为 `text/event-stream`。逐个解析完整事件；只有包含 `delta.content` 的事件才追加文本。收到 `data: [DONE]` 后，才将本次结果标记为完成。

```text
data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"主键"}}]}

data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"用于唯一标识表中的每一行。"}}]}

data: [DONE]
```

网络数据块可能拆分一个 SSE 事件。保留不完整状态，直到收到完整事件和 `[DONE]`。

## 错误响应

流建立前的错误使用普通 HTTP 状态和 JSON 错误对象；流开始后的异常可能表现为事件异常或连接中断。连接在 `[DONE]` 前中断时，将结果标记为中断，而不是完成。

## 后续操作

查看完整的 [Chat Completions](chat-completions.md#流式响应) 请求、响应和字段说明。
