[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80481":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":8,"rankLanguage":8,"license":16,"archived":17,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":24,"discoverSource":25},80481,"DeepSeek_Web_To_API","Meow-Calculations\u002FDeepSeek_Web_To_API","Meow-Calculations",null,"Go",70,11,73,2,0,40.24,"MIT License",true,false,"main",[],"2026-06-12 04:01:28","# DeepSeek_Web_To_API\n\n语言 \u002F Language: [中文](README.MD) | [English](README.en.md)\n\nDeepSeek_Web_To_API 是一个自托管的 Go 网关，把 DeepSeek Web 侧的会话能力封装为 OpenAI、Claude 和 Gemini 风格的 API，并提供 React 管理台用于账号、密钥、代理、缓存、历史记录和运行状态管理。\n\n当前版本：**v1.0.13** · 自托管部署，参见 [docs\u002Fdeployment.md](docs\u002Fdeployment.md)\n\n## 核心能力\n\n- **OpenAI 兼容**：`\u002Fv1\u002Fmodels`、`\u002Fv1\u002Fchat\u002Fcompletions`、`\u002Fv1\u002Fresponses`、`\u002Fv1\u002Ffiles`、`\u002Fv1\u002Fembeddings`。\n- **Claude 兼容**：`\u002Fanthropic\u002Fv1\u002Fmessages`、`\u002Fv1\u002Fmessages`、`\u002Fmessages`、`count_tokens`。\n- **Gemini 兼容**：`\u002Fv1beta\u002Fmodels\u002F{model}:generateContent`、`streamGenerateContent` 以及 `\u002Fv1\u002Fmodels\u002F{model}:*`。\n- **多账号托管**：账号池自动选号、刷新 token、处理并发槽位；`globalMaxInflight=1` 多账号配置会在启动时打印 WARN 提示。\n- **429 弹性 fail-over**：上游返回 429 时账号切换不消耗 maxAttempts 预算，池中仍有空闲账号时对客户端透明；401\u002F502\u002F5xx 保持原行为。\n- **直通 token**：调用方 token 不在托管密钥中时，按 DeepSeek token 直通。\n- **响应缓存**：内存默认 TTL 30 分钟（上限 3.8 GB），磁盘默认 TTL 48 小时（上限 16 GB，gzip）。TTL 由 WebUI\u002FStore 配置全权控制，热更新立即生效。\n- **CIF 前缀复用（Current Input File）**：inline-prefix 模式无需文件上传，跨账号复用历史上下文；每会话最多 2 条 prefix 变体（LRU 提升），`maxTailChars` 128 KB；chat_history 记录 7 列 CIF 状态字段；WebUI 4 张卡片可视化（PREFIX 复用率 \u002F CHECKPOINT 刷新 \u002F TAIL 大小 \u002F CURRENT INPUT 耗时）。\n- **Thinking-Injection 提示词拆分**：`ReasoningEffortPrompt`（~250 B）追加到 user 消息末尾，`ToolChainPlaybookPrompt`（~3 KB）前置到 system 消息头部，消除上游 fast-path 静默丢弃工具链规则的根因。\n- **严格模型白名单**：`resolveCanonicalModel` 移除启发式 family-prefix fallback，未在 supported 列表或 alias map 内的模型 ID 一律返回 4xx；`deepseek-v4-vision` 从 `\u002Fv1\u002Fmodels` 及所有内部路径移除并硬性封锁。\n- **全路径会话自动删除**：`AutoDeleteRemoteSession` 共享 helper 同时挂载到 `\u002Fv1\u002Fchat\u002Fcompletions`、`\u002Fv1\u002Fresponses`、`\u002Fv1\u002Fmessages`（Anthropic\u002FClaude Code）三条路径；Gemini 经 proxyViaOpenAI 间接生效。\n- **安全策略热加载**：banned_content \u002F banned_regex \u002F jailbreak.patterns \u002F blocked_ips \u002F 重复违规自动拉黑，全部存入独立 SQLite，运行时 PUT `\u002Fadmin\u002Fsettings` 热更新无需重启；生产已部署约 140 条 banned_content + 35 条 banned_regex + 151 条 jailbreak.patterns + 6 条 blocked_ips + auto_ban（threshold=3 \u002F window=600s）。\n- **版本正确上报**：`\u002Fadmin\u002Fversion` 通过 `internal\u002Fversion.BuildVersion` ldflags 注入当前 tag，不再固定报 \"dev\"。\n- **运维能力**：`\u002Fhealthz`、`\u002Freadyz`、安全响应头、CORS、JSON UTF-8 入站校验、优雅退出。\n- **账号与历史记录**：账号池单独写入 `data\u002Faccounts.sqlite`；对话历史写入 SQLite，默认保留 2 万条，详情内容 gzip 压缩。\n- **管理台**：`\u002Fadmin` 提供账号、代理、密钥、运行设置、对话历史、测试器、总览指标和新版本提醒。\n\n## 快速开始\n\n### 本地源码运行\n\n```bash\ncp .env.example .env\nnpm ci --prefix webui\nnpm run build --prefix webui\ngo run .\u002Fcmd\u002FDeepSeek_Web_To_API\n```\n\n示例 `.env` 默认监听 `127.0.0.1:5001`，打开 `http:\u002F\u002F127.0.0.1:5001\u002Fadmin` 进入管理台。\n\n### Docker Compose\n\n```bash\ncp .env.example .env\ndocker compose up -d\n```\n\nCompose 默认把宿主机 `${DEEPSEEK_WEB_TO_API_HOST_PORT:-6011}` 映射到容器内 `5001`，并把 `.\u002Fdata` 挂载为配置回写、账号 SQLite、历史记录和缓存目录。\n\n### 二进制构建\n\n```bash\nnpm ci --prefix webui\nnpm run build --prefix webui\ngo build -trimpath -ldflags=\"-s -w -X DeepSeek_Web_To_API\u002Finternal\u002Fversion.BuildVersion=$(cat VERSION)\" \\\n  -o deepseek-web-to-api .\u002Fcmd\u002FDeepSeek_Web_To_API\n```\n\n`scripts\u002Fdeploy_107.py` 自动读取 `VERSION` 文件并注入 ldflags，SCP 上传后通过 systemd 重启，支持 `SKIP_BUILD=1` 跳过编译直接用现有产物。\n\n## 最小配置\n\n复制 `.env.example` 后至少修改：\n\n- `DEEPSEEK_WEB_TO_API_CONFIG_JSON` 里的 `api_keys`：给外部客户端使用的 API Key。\n- `admin.key` 或 `admin.password_hash`：管理台登录凭据。\n- `admin.jwt_secret`：管理台 JWT 签名密钥。\n- `server.bind_addr`：如果前面有 Caddy\u002FNginx 反代，建议改为 `127.0.0.1`。\n- `DEEPSEEK_WEB_TO_API_ACCOUNTS_SQLITE_PATH`：账号 SQLite 路径，默认 `data\u002Faccounts.sqlite`。\n\n账号不再需要写 JSON。进入管理台后，在\"批量导入\"页面直接粘贴一行一个 `账号:密码`，后端写入独立 SQLite。\n\n## API 使用示例\n\nOpenAI Chat Completions：\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:5001\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer your-api-key-1\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"gpt-5.5\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}],\n    \"stream\": true\n  }'\n```\n\nClaude Messages：\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:5001\u002Fanthropic\u002Fv1\u002Fmessages \\\n  -H \"x-api-key: your-api-key-1\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}],\n    \"stream\": true\n  }'\n```\n\n更多接口见 [API.md](API.md)。\n\n## 文档\n\n- [文档导航](docs\u002FREADME.md)\n- [项目总览](docs\u002FProject%20Overview\u002FProject%20Overview.md)\n- [架构设计](docs\u002FArchitecture%20Design\u002FArchitecture%20Design.md)\n- [配置说明](docs\u002Fconfiguration.md)\n- [部署运维](docs\u002Fdeployment.md)\n- [API 兼容系统](docs\u002FAPI%20Compatibility%20System\u002FAPI%20Compatibility%20System.md)\n- [Prompt 兼容流程](docs\u002Fprompt-compatibility.md)\n- [存储与缓存](docs\u002Fstorage-cache.md)\n- [安全说明](docs\u002Fsecurity.md)\n- [测试与交付](docs\u002FTesting%20and%20Delivery\u002FTesting%20and%20Delivery.md)\n\n## 开发验证\n\n仓库 CI 与本地 PR Gate 使用同一批命令：\n\n```bash\n.\u002Fscripts\u002Flint.sh\n.\u002Ftests\u002Fscripts\u002Fcheck-refactor-line-gate.sh\n.\u002Ftests\u002Fscripts\u002Frun-unit-all.sh\nnpm run build --prefix webui\n```\n\n仅修改文档时，至少运行 `git diff --check` 和旧项目残留扫描。\n\n## 许可证\n\n本项目使用 [MIT 许可证](LICENSE)。允许任何人免费使用、复制、修改、合并、发布、分发、再许可与销售本软件的副本，前提是在所有副本或重要部分中保留版权与许可声明。软件按\"原样\"提供，不附带任何明示或默示的担保。\n\n## 免责声明\n\n本项目仅用于学习、研究、个人实验和内部验证。使用者需要自行确认部署、调用和账号使用行为是否符合相关服务条款、平台规则和法律法规。维护者不对账号风险、数据丢失、第三方限制或任何直接\u002F间接损失负责。\n","DeepSeek_Web_To_API 是一个自托管的 Go 网关，将 DeepSeek Web 会话能力封装为 OpenAI、Claude 和 Gemini 风格的 API，并提供 React 管理台用于账号、密钥、代理、缓存、历史记录和运行状态管理。其核心功能包括多账号托管与自动选号、429 弹性切换、响应缓存及 CIF 前缀复用等。项目支持多种主流 AI 服务的兼容接口，如 OpenAI 的 `\u002Fv1\u002Fchat\u002Fcompletions` 和 Claude 的 `\u002Fanthropic\u002Fv1\u002Fmessages`。此外，还具备安全策略热加载、严格的模型白名单管理和运维能力，确保系统的稳定性和安全性。该工具适用于需要将 DeepSeek Web 会话能力集成到现有系统或应用中的场景，特别是那些希望利用多种 AI 服务但又需统一管理接口的企业或开发者。","2026-06-11 04:00:54","CREATED_QUERY"]