DeepSeek Bridge API 桥接
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_310a65be/deepseek-bridge。
技能介绍
要解决什么问题
在本地或内网里直接调用 DeepSeek 时,常见痛点是:长回答容易在网关或客户端超时、并发把单线程 Flask 打满、容器 docker stop 时在飞请求被硬切,以及线上缺少可量化的错误与延迟。DeepSeek Bridge 把 DeepSeek 封装成一套 HTTP 服务(推荐镜像 deepseek-bridge:v5),对外提供 /ask、/health、/metrics,让 Agent 或其它服务用固定契约调用,而不是各自拼 SDK 与重试逻辑。
核心能力与工作方式
- 默认 SSE 流式:
POST /ask中stream默认为true,Content-Type: text/event-stream,按行读data:事件,以data: [DONE]结束;长生成边返回,chunk 间隔超时 120s,总时长不受READ_TIMEOUT限制。 - 非流式兼容:
stream: false返回{"answer", "req_id"};对 429/500/502/503/504 最多自动重试 2 次(指数退避),流式走无重试 session,避免重放长请求。 - 限流与多线程:
Semaphore+ FIFO 队列(MAX_CONCURRENT、QUEUE_SIZE);队列满返回 429 与retry_after_ms。v1.9.0 起threaded=True,SSE 长连接不再阻塞其它请求;流式在生成器finally释放信号量,避免客户端断开导致泄漏。 - 优雅关闭:收到 SIGTERM 后拒绝新请求(503),在飞请求执行完毕再退出。
- 上游连接:
requests.Session()单例复用连接;timeout=(5, 300),读取超时可由READ_TIMEOUT配置。 - 可观测性:
/metrics暴露 Prometheus 指标(请求总数、成功/错误/超时/拒绝、active_requests、平均延迟等);结构化日志便于排障。
适用边界与注意点
- 部署:文档只推荐 Docker
deepseek-bridge:v5;API Key 优先从只读挂载/bridge-key/key.txt读取,避免 PowerShell 传环境变量时&等字符截断导致 401。 - 错误语义:502 且 body 含 DeepSeek 401 表示 Key 无效;504 表示上游超时;关闭中为 503。
- 路由触发词(供 Agent 识别):如「问 DeepSeek」「调用 DeepSeek」「DeepSeek Bridge」等。
适合需要稳定 HTTP 桥接 + 流式长回答 + 限流与指标的场景;不适合只想在对话里偶尔问一句、且不需要自建服务的用法。
使用场景
- 在 OpenClaw 或自建 Agent 里,用户说「问 DeepSeek」时,由服务向本机 `POST /ask` 拉 SSE 流式回答,避免直连官方接口各写一套重试
- 内网只允许出站到固定容器时,把 DeepSeek 调用收敛到 `deepseek-bridge:v5`,统一限流、错误码与 `req_id` 便于日志关联
- 长文档/复杂推理需要边生成边返回,客户端按 `data:` 行解析直到 `[DONE]`,减少非流式 `READ_TIMEOUT` 整段超时
- 容器编排定期 `docker stop` 升级镜像时,依赖 SIGTERM 优雅关闭与 503 拒新,避免升级窗口内请求被硬断且无指标
适合人员
- 维护 OpenClaw 数据目录、用只读挂载 `/bridge-key/key.txt` 管理 DeepSeek Key、并负责重建 v5 镜像的运维
- 为自动化脚本或微服务对接 `stream: false` JSON 与流式 SSE 两种 `/ask` 模式的后端集成工程师
- 需要把 `deepseek_bridge_requests_*` 与 `active_requests` 接入告警、并区分 429 队列满与 504 上游超时的可观测性工程师
- 在 Windows PowerShell 环境部署过环境变量 Key 导致 401、转而采用 key 文件挂载方案的自托管部署者