# 把文本、SSE与Responses分别验收

用真实本机模型运行独立Chat流式与Responses请求，保存delta、完成状态和各自结果；不以一种接口成功代替全面兼容。

## 实测范围

OpenAI Node SDK真实HTTP与SSE → 本机Ollama；分别记录两个协议。

## 运行环境

- node v24.14.0
- ollama 0.40.9
- openai 7.43.0
- ai 7.0.130
- @ai-sdk/openai-compatible 3.0.65

## 操作步骤

### 1. 准备可独立运行的SDK项目

解压练习包，按lock文件安装，使用本机11435服务与本地占位认证；不需要商业Key。

```bash
cd sdk && npm ci
```

### 2. 把Chat流式跑到结束

发7+5短任务，逐块收集delta.content，记录所有finish_reason；收到第一块时还不能宣布任务完成。

```bash
node run.mjs compatible ../openai-compatible-api/new-result.json
```

### 3. 再单独请求Responses

使用responses.create及input结构，保留output_text或实际错误；不用Chat的成功推断它也成功。

### 4. 核对各自输出与范围

下载结果包含chunk数量、完整正文和结束状态，以及Responses独立结果。结果有差异要保留，不能丢弃失败试次。

### 5. 再按项目需要增加其他能力

工具往返、视觉和结构化输出各有独立验收，本页只覆盖明确列出的两个请求；不承诺其他网关或型号全部兼容。

## 实际观察

- SSE输出：7 + 5 = 12；块数 9；结束 ['stop']
- Responses：COMPAT_LOCAL_OK
- 实际路径：[{"method": "POST", "path": "/v1/chat/completions", "status": 200, "elapsedMs": 2027}, {"method": "POST", "path": "/v1/responses", "status": 200, "elapsedMs": 1034}]
- 本API组真实发出2次非流式Chat探针，分别gemini-2.5-flash与gemini-2.5-flash-lite，均HTTP429（当前测试Key分组上游饱和）。以下共享该组探针，绝非本页另发调用；随后SSE、Vercel、n8n、图片请求均未发送。
- 严格只返回整数的断言失败：实际是“7 + 5 = 12”；SSE传输与stop完成不代表格式约束通过。

## 未验证与限制

- 本批获授权使用既有测试Key，OpenAI SDK两次最小探针均HTTP429：当前测试Key分组上游饱和，随后停止。不能据此声称全站不可用；本地成功不能当作apizt上游或实扣成功。
- 本地Responses仅无状态；没有验证previous_response_id、商业模型工具调用或厂商内置工具。

## 官方来源

- [OpenAI 官方：本地兼容API调用](https://developers.openai.com/cookbook/articles/gpt-oss/run-locally-ollama#use-the-api)
- [Ollama 官方：Chat和无状态Responses边界](https://docs.ollama.com/api/openai-compatibility)

截图若展示本页执行记录，是结果日志视图，不是产品原生界面。
