llm-pi-ai 的 compat schema 丢弃了 pi-ai OpenAICompletionsCompat 大部分字段(如 supportsDeveloperRole),导致手写 provider 不可用 #473
royzhrxy-glitch
started this conversation in
General
Replies: 1 comment
|
这份根因分析是对的。补一个不需要改 dsh plugin --profile web add pi2dsh
dsh plugin --profile web add <对应网关的 Pi provider 包>provider 自带 transport 时会经 DSH 官方 线上录制已经确认 |
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.
摘要
自定义(手写声明)provider 无法通过
llm-pi-ai设置表达 pi-ai 的大部分兼容性开关。settings 的 schema 只接受thinkingFormat和supportsReasoningEffort两个字段,pi-aiOpenAICompletionsCompat中的其余字段——包括supportsDeveloperRole、maxTokensField、supportsStore——会被静默丢弃。对于 pi-ai URL 自动探测不认识的端点(如火山方舟ark.cn-beijing.volces.com、Kimi Codingapi.kimi.com),这会导致支持推理(reasoning)的自定义路由完全不可用。环境
0.1.0-rc.6(npx @deepseek-ai/dsh web)~/.dsh/settings.yaml的llm-pi-ai.providers下复现步骤
reasoningEfforts的模型开启会话。实际表现
上游返回 HTTP 400:
{"code":"InvalidParameter","message":"The parameter `messages.role` specified in the request are not valid: invalid value: `developer`, supported values are: `system`, `assistant`, `user`, `tool`."}根因
packages/llm/llm-pi-ai中 settings 的 compat schema 只有两个字段:而 pi-ai 请求时使用的
OpenAICompletionsCompat约有 20 个字段,其 URL 自动探测(detectCompat)对不在已知名单(deepseek.com、opencode.ai、api.x.ai、api.z.ai、api.moonshot.*等)内的端点,supportsDeveloperRole默认按true处理。ark.cn-beijing.volces.com和api.kimi.com不在名单内。因果链:
reasoningEfforts,reasoning变为true(这是好的——力度选择生效了)。openai-completions.js计算useDeveloperRole = model.reasoning && compat.supportsDeveloperRole。supportsDeveloperRole: false,探测默认true,系统提示以developer角色发送。system/assistant/user/tool)。注意:这同时意味着这些端点上未声明推理的模型能"碰巧"正常工作(
reasoning为false时角色回落到system)——故障恰好在你启用推理功能时出现,非常具有迷惑性。当前使用的绕过方案
本地微型代理把
role: developer改写为system(并剥离store字段)后转发。能用,但不应该需要这样做。请求
llm-pi-aisettings 的compat(路由级与模型级)透传 pi-aiOpenAICompletionsCompat的完整字段——至少supportsDeveloperRole,最好还有maxTokensField/supportsStore/requiresAssistantAfterToolResult——而不是静默丢弃未知键。静默丢弃让错误配置无法被诊断。*.volces.com、Kimiapi.kimi.com、阿里百炼*.aliyuncs.com),或者至少在自定义路由的 compat 完全依赖 URL 猜测时输出警告日志。谢谢!
All reactions