Replies: 2 comments
|
核验通过(对照 main/master HEAD 1. attribution.ts 支持自定义身份但无配置管道——成立。 2. llm-deepseek 无配置键——成立。 3. llm-pi-ai 剥离 user-agent 且不可用 headers 覆盖——成立,且这是有意的保留名规则。 提案与现有不变量一致: 实现上的三点建议:
这属于低风险、可 cherry-pick 的配置管道补全;与 #3222(403 被归为 AUTH)是两半:这个解决"网关按 UA 放行"的接入问题,那个解决错误分类的可见性问题。值得合并评估。 |
|
官方未支持前临时应对用这个插件:https://github.com/MwumLi/dsh-fetch-header-rewrite |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
动机
起因来自 [Bug] HTTP 403 授权拒绝被归类为 AUTH,UI 显示 "API key is invalid",原始错误不可见 的问题。
部分网关/提供方按
User-Agent做 allowlist 策略(例如企业内部网关只放行特定客户端标识)。当前 dsh 的所有 LLM 请求都强制发送固定的deepseek-harness/<version> (+https://github.com/deepseek-ai/deepseek-harness),白标/企业部署无法替换,导致这类网关无法接入。现状
packages/llm/llm/src/attribution.ts:attributionHeaders(identity)函数参数已支持自定义AppIdentity,但没有部署配置管道;默认APP_IDENTITY硬编码llm-deepseek:无相关配置键llm-pi-ai:provider profile 的headers配置会把user-agent作为保留名剥离(requestHeaders()),无法通过 headers 覆盖期望
提供一个统一的配置点,作用于所有 provider:
所有 provider(
deepseek-official、llm-pi-ai下的各 route)的请求User-Agent都替换为my-product/1.0.0 (+https://my-site.example)。设计建议
LlmRuntime(ctx.llm)拥有并暴露appIdentity,默认APP_IDENTITYctx.llm.appIdentity()读取,传入attributionHeaders(identity)兼容性
deepseek-harness/...)All reactions