项目/监控运维
监控运维 · 运行中 · AI 自动收录

DSH 失效 API Key 根除

DSH 失效 API Key 根除

清理失效 DeepSeek key,禁用 official 通道并锁定记忆蒸馏路由,消除 AUTH 告警。

✦ 删除失效 DeepSeek key、禁用 official 通道并锁定蒸馏路由,AUTH 告警已消除。
约 4 分钟阅读
DSHAPI Keymemory-eternal告警治理配置补丁
← 返回列表

本项目记录并固化 DSH 主机上「自动沉淀异常:AUTH ... key ****1805 is invalid」的根除过程。问题表现为每轮对话结束触发自动沉淀时,memory-eternal 先按注册顺序调用 deepseek-official/deepseek-flash,而该通道使用的 DEEPSEEK_API_KEY 已失效并返回 401,导致插件健康状态翻红、面板持续告警,随后才回退到其他 provider。根因是失效凭证仍留在 /root/.dsh/.credentials.yaml,且 official provider 未被禁用。处理方式包括:从凭证库删除失效 key;在 web profile 补丁中新增 llm-deepseek 并设置 disabled: true;将记忆蒸馏路由锁定为 deepseek-account/deepseek-flash。改动经 DSH HMR 约 2 秒热重载生效,无需重启 dsh-web。验证显示 llm-routes 仅保留账号 OAuth 通道,llm-test 返回 ok,capture-log 健康恢复正常,真实自动沉淀成功进入审核中心。当前告警已消除,但蒸馏仅剩一个候选,账号通道异常时会真实失败并告警。

功能

  • 从凭证库移除已 401 的 DEEPSEEK_API_KEY,保留网关 key、微信 token 与账号 grant。
  • 通过 profile 补丁禁用 deepseek-official,仅保留 deepseek-account 账号 OAuth 通道。
  • 将 captureProvider/captureModel 锁定为 deepseek-account/deepseek-flash,避免按注册顺序误选失效通道。
  • HMR 热重载配置,无需重启 dsh-web。
  • 提供 llm-routes、llm-test、capture-log、dump-config 验证路径及回滚命令。

技术栈

DSHmemory-eternalDeepSeek APIOAuthYAML 配置补丁HMR

使用 / 部署教程

1. 备份配置

在 .223 主机上备份三个文件:

  • /root/.dsh/.credentials.yaml → .bak-20261030-stale-key
  • /root/.dsh/profiles/web/cordis.patch.yml → .bak-20261030-disable-official
  • /root/.dsh/memory-eternal-config.json → .bak-20261030-distill-provider

可使用 cp -a 源文件 备份文件。

2. 删除失效凭证

编辑 /root/.dsh/.credentials.yaml,移除 refs.DEEPSEEK_API_KEY,保留 DSH_GATEWAY_KEY、微信 token 和账号 grant。

3. 禁用 official provider

在 /root/.dsh/profiles/web/cordis.patch.yml 新增条目:- id: llm-deepseek,并设置 disabled: true。保存后 HMR 约 2 秒热重载,无需重启 dsh-web。

4. 锁定蒸馏路由

将 memory-eternal 配置写入 captureProvider=deepseek-account、captureModel=deepseek-flash。若独立页保存被 HMR 守卫拒绝(HMR transactions cannot be nested),改用宿主 POST /memory-eternal/api/config 写入,或直接改 profile 补丁层。

5. 验证

  • GET http://127.0.0.1:19387/memory-eternal/api/llm-routes,确认 providers 仅 deepseek-account,current 为 deepseek-account/deepseek-flash。
  • POST .../llm-test {},确认 ok=true、candidates=1。
  • GET .../capture-log,确认 health.ok=true,lastOkAt 晚于修复时间。
  • 执行 /opt/dsh/node_modules/.bin/dsh --profile web --dump-config,确认 llm-deepseek 含 disabled: true 且全文无 deepseek-official 引用。

6. 回滚

恢复备份文件后等待 HMR 约 2 秒;若不生效再执行 systemctl restart dsh-web。

常见问题

为什么会出现 AUTH key ****1805 is invalid 告警?

失效 DEEPSEEK_API_KEY 仍在凭证库,且 deepseek-official 按注册顺序排第一,自动沉淀先调用它返回 401。

修改后需要重启 dsh-web 吗?

不需要。DSH HMR 监听 profile 补丁,约 2 秒热重载;仅回滚后不生效时再执行 systemctl restart dsh-web。

如何确认修复生效?

检查 llm-routes 仅 deepseek-account,llm-test 返回 ok=true,capture-log 的 health.ok=true 且 lastOkAt 晚于修复时间。

以后要用 DeepSeek 官方 API 怎么办?

先写入有效 key,再删除 cordis.patch.yml 中 llm-deepseek 的 disabled;或改走本机网关。

注意

  • 若需恢复 DeepSeek 官方 API 通道,先生成有效 key 写入凭证,再删除 cordis.patch.yml 中 llm-deepseek 的 disabled;也可改走本机网关 baseURL http://127.0.0.1:8100/v1、apiKeyEnv DSH_GATEWAY_KEY。
  • 记忆蒸馏目前只有 deepseek-account 一个候选,无兜底;账号通道异常时自动沉淀会真实失败并告警。
  • memory-eternal 独立页保存会被宿主以 HMR transactions cannot be nested 拒绝,应走宿主 API/config 或直接改 profile 补丁层。

评论

加载中…