v2.2 — Electron 前端 + 推理开关 + 多供应商完善
新增
- Electron + React 桌面应用 — 全新前端,替代 tkinter GUI。单窗口启动,关闭即停止后端
- 推理开关 — 每个模型独立开启/关闭推理增强(布尔值
reasoning,开启时自动设 budget_tokens=8192) - Anthropic thinking 块往返保留 — 推理内容在 Anthropic ↔ Responses 双向翻译中完整保留,Kimi Code 开启推理不再 400
- API Key 静态加密 — XOR + 机器绑定密钥加密存储(
proxy_api_key.enc),不再明文落盘 - Headless 启动器 —
proxy_manager.py纯后台运行,不弹 tkinter 窗口。控制台显示状态,Ctrl+C 停止 - NSIS 安装程序 — 打包为
AI Proxy Manager Setup.exe,用户到手直接安装
改进
- 每模型独立配置 — 模型新增
base_url+api_key+reasoning字段,多供应商随意切换 - 孤儿 tool_use 邻接清理 — Anthropic 格式消息自动匹配/清理,不再逐个硬编码 spawn_agent/update_plan
- 图片传输 — data URI → base64 / URL 源双向转换,保留图像数据
- stream_options.include_usage — 流式响应确保完整 token 计数
- max_completion_tokens — 替代已废弃的 max_tokens
- 推理缓存线程安全 — threading.Lock 保护
_REASONING_CACHE读写
修复
- 自启动
__file__指向proxy/config.py而非入口文件 _extract_text(None)返回字符串 "None"(应返回 "")- 推理循环:空
reasoning_content注入逻辑改为仅 tool_calls 消息,避免文本消息循环 - 工具调用:spawn_agent、update_plan 等 Codex 专有工具不再导致上游 API 报错
- PowerShell 宽度标识
.pack(width=80)tkinter 无效参数 get_active_model_config()无 api_key 时返回 401 明确报错
文件结构
deepseek-proxy-manager/
├── proxy_manager.py ← 后端启动器(代理 15800 + API 15801)
├── api_server.py ← Flask REST API
├── proxy/
│ ├── config.py ← 配置、密钥加密、推理缓存
│ ├── server.py ← HTTP 代理服务器
│ ├── handler.py ← 请求路由 + 通用方法
│ ├── translate_openai.py ← Responses → Chat Completions
│ └── translate_anthropic.py ← Responses → Anthropic Messages
├── gui/ ← tkinter(旧版保留)
├── frontend/ ← Electron + React 前端
└── 启动代理.bat