Repository navigation
Releases
Releases · QuanhuZeYu/dsh-upstream-model-audit
v0.3.0 — host 半补全:responses/anthropic/自研通道的上游模型声明
每个助手 step 下方显示「上游实际返回的模型名」,并在适配器没有记录时用 host 半旁路补全。
安装
dsh plugin --profile web add github:QuanhuZeYu/dsh-upstream-model-audit装好后重启一次 DSH(host 半要在 node 进程里装观察点),之后刷新页面即可。
这个版本做了什么
- host 半补全:pi-ai 只在 chat completions 且"响应名 ≠ 请求名"时才写
responseModel,responses / azure / codex 分支从不写,Anthropic 只在换名时写,自研通道只留请求模型 —— 现在由 fetch 旁路观察 +llm/stream中间件补写,实测 11000 次 responses 调用从 0 条可见变为可见; - 四类事实:上游声明的模型名、服务档位(
service_tier/usage.speed)、请求体里实际发出的模型名、响应体形状; - 上游自相矛盾时照实留档:一次响应内出现过的不同声明都会记下(
上游先后来过 A、B),不挑一个"正确"的; - 兜底:content-type 不可信时按内容嗅探形状;响应体没声明时读响应头;只采纳 2xx 响应的声明;跳过计数/目录/鉴权端点;
- 展示仍是纯客户端:补进去的值由 DSH 自己持久化,浏览器半读 durable 事件,没有新事件类型、没有投影、没有 RPC、不进模型上下文;
- 38 条规格测试 + 两条真实 pi-ai 通道(
openai-responses/anthropic-messages)的端到端验证。
已知边界
- 需要重启一次 DSH;
- 没有 replayState 的调用(中断或未正常结束,实测 40 次)没有可写载体,插件不伪造;
- 失败尝试(
assistant/attempt)不含模型名,只记成功那次(与 sub2api 一致); - 上游确实没声明模型名时不显示(不猜);
- 走
globalThis.fetch的 provider 才能被观察。
完整说明见 README。