Replies: 2 comments
|
升级一下吧,我看dsh-v0.1.0-rc.8里已经修复了,我用的dsh-v0.1.1-rc.2正常,是这个commit增加的 |
0 replies
|
最新评论判断正确:该字段已由 rc.8 相关 commit 加入,当前 0.1.1-rc.2 可正常使用。升级后保留 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
TL;DR
@deepseek-ai/dsh-root@0.1.0-rc.7的llm-pi-ai配置 schema 会静默丢弃显式的compat.supportsDeveloperRole: false。pi-ai 随后按 URL/模型自动推断 reasoning model 支持developermessage role;只接受systemrole 的 SGLang/Qwen OpenAI-compatible endpoint 因此返回 HTTP 400Unexpected message role.。官方目前不接受外部 PR,下面的 fork 分支仅作为可审阅、可 cherry-pick 的修复与测试证据。
环境
0.1.0-rc.7,上游基线99f6f02fecdb7dff40c3fbc9470f5907c29f74caopenai-completions没有在报告或分支中提交 endpoint、API key 或本地部署配置。
现象
配置希望覆盖自动探测:
但 rc.7 实际发出的第一条 instruction message 是:
{"role":"developer","content":"..."}SGLang 返回 HTTP 400,底层错误为
Unexpected message role.。在 Harness 页面上,该请求还可能表现为400 status code (no body)/CONTEXT_WINDOW_EXCEEDED,容易被误诊为上下文长度问题。应用修复后,相同配置和其他参数不变,实际 payload 变为:
{"role":"system","content":"..."}本地 Standard 与 Router Standard 两条真实请求均正常完成。
根因
PiAiCompatProfile和compatProfileschema 只暴露了:thinkingFormatsupportsReasoningEffort因此配置加载阶段会丢掉
supportsDeveloperRole: false。resolveModelCompat()也没有把该字段按 model → route → installed catalog → pi-ai URL detection 的顺序合并。布尔值false丢失后,pi-ai 只能使用自动推断,并给 reasoning model 发送developerrole。修复
修复分支:
改动包括:
supportsDeveloperRole?: boolean。openai-completions,其他 protocol 保持 fail-loud。false不会被物化过程吞掉。role: system发出。验证
llm-pi-ai:9 个测试文件,218 项全部通过。catalog.ts、config.ts:statements / branches / functions / lines 均为 100%。developer→ 400;修复后system→ 成功。如果维护者认可这个配置边界,可以直接采用或 cherry-pick 上述提交;提交基于当前 rc.7 master,未包含任何本地部署 patch。
All reactions