refactor: replace processed output comparison with baseline-based validation in SSE simulator

This commit is contained in:
CJACK
2026-04-05 01:34:06 +08:00
parent 93879c9808
commit 0bebb4b28d
20 changed files with 3014 additions and 3853 deletions

View File

@@ -83,7 +83,7 @@ data: <json or text>
POST /admin/dev/raw-samples/capture
```
它会把原始上游流和项目最终输出一起落到 `tests/raw_stream_samples/<sample-id>/`,并生成 `openai.output.txt` 作为最终输出的对照基线,便于后续继续分析字段和做回放比对
会把请求元信息和原始上游流落到 `tests/raw_stream_samples/<sample-id>/`。项目最终输出不会再写入样本目录,而是留给本地回放工具按需生成,写到 `artifacts/raw-stream-sim/<run-id>/<sample-id>/` 里做对照和查阅
## 6. `CONTENT_FILTER` 终态样本

View File

@@ -235,8 +235,19 @@ go run ./cmd/ds2api-tests --no-preflight
说明:
- 该工具默认重放 `tests/raw_stream_samples/manifest.json` 声明的 canonical 样本,按上游 SSE 顺序做 1:1 仿真解析。
- 默认校验不出现 `FINISHED` 文本泄露,并要求存在结束信号。
- 如果样本目录里存在 `openai.output.txt`,会直接拿它和重放结果做对照;否则会回退到 `openai.stream.sse` / `openai.response.json`
- 结果会写入 `artifacts/raw-stream-sim/*.json`,可供其他测试脚本或排障流程复用
- 每次运行都会把本地派生结果写入 `artifacts/raw-stream-sim/<run-id>/<sample-id>/replay.output.txt`,并输出结构化报告
- 如果你有历史基线目录,可以通过 `--baseline-root` 让工具直接做文本对比
### 对单个样本做回放比对
```bash
./tests/scripts/compare-raw-stream-sample.sh markdown-format-example-20260405-spacefix
```
说明:
- 该脚本会从 raw-only 样本目录读取 `upstream.stream.sse`
- 回放结果会写入 `artifacts/raw-stream-sim/<run-id>/<sample-id>/`,便于直接查阅。
- 如果传入历史基线目录,脚本会自动对比当前回放输出和基线文本。
### 采集永久样本
@@ -246,7 +257,7 @@ go run ./cmd/ds2api-tests --no-preflight
POST /admin/dev/raw-samples/capture
```
这个接口会把请求上游原始流和最终输出一起写入 `tests/raw_stream_samples/<sample-id>/`,以后可以直接拿来做回放和字段分析。
这个接口会把请求元信息和上游原始流写入 `tests/raw_stream_samples/<sample-id>/`,以后可以直接拿来做回放和字段分析。派生输出会在本地回放时再生成,不再落在样本目录里。
### 指定输出目录和超时