Skip to content

Releases: lhhkuki/deepseek-proxy-manager

AI Proxy Manager v3.0.0

29 May 09:39

Choose a tag to compare

AI Proxy Manager v3.0.0

新增

  • 新增总览页,集中显示代理状态、Codex 模式、当前模型、当前账号、诊断报告、最近错误、更新检查和配置备份恢复。
  • 新增模型预设选择页,选择预设后进入模型配置页面,并预填模型 ID、名称、API 地址、上游协议、推理能力和图片输入能力。
  • 新增软件内确认弹窗,替换删除模型、删除账号、恢复配置等 Windows 原生弹窗。
  • 新增后端诊断、模型预设、备份恢复和最新版本检查接口。

优化

  • 模型配置支持手动选择“支持图片输入”,不再只依赖内部模型判断。
  • 优化 Tab 切换动画,总览和其他板块切换体验保持一致。
  • 优化备份策略:不再生成账号流水备份,配置备份自动保留最近 20 个,并清理历史 auth 流水备份。
  • 新增 release 目录清理脚本,打包前自动清理旧安装包,避免多个历史安装包堆叠。

验证

  • 通过 Python 编译检查。
  • 通过前端 ESLint。
  • 通过前端生产构建。
  • 通过备份裁剪和账号保险箱保留的接口测试。

AI Proxy Manager v2.5.2

28 May 03:13

Choose a tag to compare

更新内容

  • 重做项目介绍页,突出 Codex 本地模型与账号控制台定位。
  • 更新版本到 2.5.2,并同步安装包文件名说明。
  • 延续 2.5.x 的 Codex 配置切换、纯 API 启动器、插件增强、多账号管理和额度查看能力。
  • 包含本地安全加固:管理接口写操作校验、本地代理 bearer token、模型 Base URL SSRF 防护、配置接口不暴露明文 API Key。
  • 修复 Responses 协议兼容问题:字符串 input、Anthropic system/tool_choice 映射、OpenAI 流式完成事件重复等。

安装

下载 AI Proxy Manager Setup 2.5.2.exe 并双击安装。安装包已包含后端程序,不需要额外安装 Python。

验证

  • python -m compileall -f proxy api_server.py proxy_manager.py
  • npm run lint
  • npm run build
  • python -m PyInstaller proxy-backend.spec --noconfirm --clean
  • npm run electron:build:win

v2.5.1 — 安全加固、搜索级联、消息清理修复

12 May 13:42

Choose a tag to compare

v2.5.1 更新内容

Codex 配置切换

  • 新增官方账号 / 第三方插件兼容模式切换:可在软件「设置」页一键切换 ~/.codex/config.toml
  • 插件兼容模式:保留 ChatGPT 官方登录态,模型请求走本地代理 http://127.0.0.1:15800/v1,用于 API 中转时继续使用插件市场。
  • 官方账号模式:移除 AIProxyManager provider,切回官方 ChatGPT 登录态,不修改 auth.json
  • 登录态检测:读取 ~/.codex/auth.json 判断是否已完成 ChatGPT 官方登录。
  • 自动备份:写入 Codex 配置前备份到 ~/.codex/backups_proxy_manager/

安全加固

  • API Key 加密存储:Fernet 加密 + enc:v2: 前缀,明文不再落盘
  • 原子化配置写入:临时文件 + os.replace(),JSON 损坏自动恢复
  • SSRF 防护base_url 校验拒绝内网/私有 IP
  • CORS 限制:仅允许 localhost/dev 来源
  • Electron 安全nodeIntegration: false + contextIsolation: true + preload.cjs
  • Fernet 密钥随机生成os.urandom(32) 替代确定性推导
  • cryptography 顶层 import:缺失时友好报错

搜索功能

  • 四级搜索引擎级联:Bing → 搜狗 → 360 → DuckDuckGo,一个不通自动切下一个
  • 流式路径自动执行:web_search 结果内联推送,Codex 无需自己执行搜索
  • 工具消息去重排序:按 tool_calls 顺序排列,去除重复

关键修复

  • 修复未知 /v1/* 透传 URL 拼接错误
  • 日志队列满时不再影响代理请求
  • API Key 加密失败时阻止保存,避免静默写入空密文
  • 启动时不再强杀未知端口占用进程
  • 推理开关只看模型配置,忽略 Codex 请求级的值
  • thinking 字段仅对已知推理模型注入
  • 孤儿 tool_calls/tool 消息全面清理(邻接检查 + 去重 + 排序)
  • response_format 过滤,仅透传 text/json_object
  • 推理缓存 TTL 生效(1小时)
  • 流式读取 socket 120s 超时,防止线程挂起
  • HTTPError 连接关闭,防止 fd 泄漏
  • 重试指数退避(2^attempt)
  • 优雅关闭:API stop 先于 SIGTERM

清理

  • 删除不可用的 gui/、重复的 main.js、多余的 electron-builder.yml

安装

下载 AI.Proxy.Manager.Setup.2.5.1.exe 运行即可。

修复

  • 修复 Codex 配置切换后按钮高亮没有跟随当前模式更新的问题。切回官方账号后,官方选项会变成蓝色,第三方选项会恢复普通状态。
  • 修复 Codex 在官方账号和第三方插件兼容模式之间切换后,会话记录列表按 provider 分组导致看起来丢失的问题。现在切换时会同步会话 provider,并在同步前备份会话元数据和状态索引。

v2.5.0 — 安全加固、异常恢复、优雅生命周期

12 May 07:41

Choose a tag to compare

v2.5.0 更新内容

P0 修复

  • JSON 解析异常处理:请求体 JSON 解析失败时返回友好错误,不再崩溃
  • 响应体大小限制:上游响应超过 50MB 时拒绝读取,防止内存溢出

P1 修复

  • fetchWithRetry 重试逻辑:5xx 服务端错误自动重试(带退避),4xx 客户端错误直接返回
  • _drain_log_queue 并发竞态:改用 try get_nowait except Empty 替代不安全的 .empty() 检查
  • handleToggleProxy 乐观更新:操作后轮询服务器实际状态,不再盲目乐观
  • ModelDialog 退出动画:去掉内部冗余的 AnimatePresence,由 App.tsx 统一管理

P2 改进

  • Electron 启动轮询:用健康检查轮询替代写死的 4 秒延迟,后端就绪后立即显示窗口
  • 后端优雅关闭:窗口关闭时先发 SIGTERM,等待 3 秒,再发 SIGKILL
  • is_already_running 平台兼容:非 Windows 平台跳过 ctypes,改用端口检测
  • ModelCard 空值保护:name/id 均为空时 firstLetter 用 ? 兜底
  • 日志 ID 去重:用自增计数器替代时间戳,消除碰撞警告

v2.4.0 以来的累积改动

  • Fernet 加密替代 XOR(兼容旧密钥自动迁移)
  • /api/models 接口字段白名单防注入
  • API Key 加密失败时记录日志
  • Fernet key 文件版本标记(F1 前缀)
  • 流式错误分类:区分 HTTPError / ConnectionError / 其他异常
  • _stream_anthropic 请求顺序修复:先发 SSE 头再请求上游
  • API 线程崩溃隔离:异常时打印 traceback
  • 流式传输保证 response.completed 事件(即使上游请求失败)
  • config 验证白名单、日志清理、线程安全锁
  • model owned_by 改为 openai 兼容插件

安装方法

下载 AI-Proxy-Manager-Setup-2.5.0.exe 运行即可,无需安装 Python。

v2.4.0 — 无需安装 Python,开箱即用

08 May 13:00

Choose a tag to compare

重大更新

  • Python 后端打包为独立 exe — 不再需要用户单独安装 Python
  • 安装程序包含完整运行环境,双击安装即可使用
  • 包体积:112MB(Electron + 后端 exe)

不再需要

  • ❌ 安装 Python
  • ❌ 运行 pip install
  • ❌ 配置环境变量

迁移

如果你之前使用 v2.3.x,卸载旧版后安装 v2.4.0 即可。模型配置保留在 .codex/proxy_config.json 不受影响。

v2.3.1 — 工具输出图片修复

08 May 10:31

Choose a tag to compare

修复

  • 工具输出图片处理 — function_call_output 返回值中的 image 数据块现在正确转换为对应协议的图像格式(OpenAI: image_url,Anthropic: image source),不再丢弃为文本 placeholder
  • 两个翻译路径(OpenAI / Anthropic)均已修复

安装程序

包含最新 Python 后端代码,支持 DeepSeek / Kimi Code / Moonshot 三供应商。

v2.3 — 流式修复 + 推理完善 + 全量审查

07 May 20:17

Choose a tag to compare

修复

  • OpenAI 流式 502 — 补充缺失的 HTTP 响应头(send_response + end_headers),非流式流式均正常
  • Anthropic thinking 注入 — 带 tool_calls 的 assistant 消息自动补空 thinking 块,Kimi 推理不再 400
  • handler.py try/except — 整个 _handle_responses 纳入 try 保护,异常不再悄悄崩溃
  • 前端日志去重 — 轮询改为就地替换,不再重复追加
  • reasoning_content 缓存 — 响应中的推理内容缓存并在输出回退,V4 Pro 空 content 不再 502
  • system 消息去重 — instructions 和 input 中的 system 消息不再重复

清理

  • 移除死代码、精简日志输出
  • requirements.txt 标注 pystray/pillow 为旧 GUI 可选依赖
  • 全文语法编译通过,TypeScript 编译通过

v2.2 — Electron 前端 + 推理开关 + 多供应商完善

07 May 11:45

Choose a tag to compare

新增

  • 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

v2.1 — spawn_agent 恢复 + 代码审查修复

06 May 18:53

Choose a tag to compare

修复

  • 恢复 Anthropic 路径 spawn_agent 支持:不再硬删除,改为邻接匹配算法自动判断保留/清理
  • 推理循环修复:移除空 reasoning_content 注入,解决 V4 Pro 重复输出 bug
  • 自启动修复__file__ 正确指向入口文件而非 config.py
  • 线程安全:推理缓存加 threading.Lock
  • 空值处理_extract_text(None) 不再返回字符串 "None"
  • 死代码清理:移除不可达的 data: [DONE] 检查
  • 未用导入清理:gui/app.py 移除 sysjson

变更文件

  • proxy/translate_anthropic.py — spawn_agent 特判移除,改为通用邻接清理
  • proxy/translate_openai.py — 推理缓存空值注入移除 + 线程锁
  • proxy/config.py — 自启动路径修复 + 线程锁
  • proxy/handler.py — _extract_text 空值处理
  • gui/app.py — 未用导入清理
  • README.md — 项目结构更新

v2.0 — 模块化重构 + 多供应商支持

06 May 15:26

Choose a tag to compare

新增

  • Anthropic Messages API 翻译:自动检测 Kimi Code 地址,切换协议格式
  • 多供应商支持:DeepSeek / Kimi Code / Moonshot 无缝切换,填什么地址自动适配
  • 图片传输修复:data URI 正确转为 base64 图像块,不再当纯文本发送
  • 启动器 .bat:双击即可启动,无需命令行

重构

  • 1615 行单体文件拆分为 7 个模块(proxy/、gui/)
  • Mixin 继承架构:ProxyHandler(OpenAITranslateMixin, AnthropicTranslateMixin, BaseHTTPRequestHandler)
  • 入口文件精简化至 30 行

修复

  • 孤儿 tool_use/tool_result 通用清理算法(邻接匹配 + 全局扫荡)
  • spawn_agent、update_plan 等 Codex 专属工具调用不再导致上游 API 报错
  • 流式 SSE 格式兼容(OpenAI data: vs Anthropic data: 空格差异)
  • total_tokens 字段补全

文件结构

deepseek-proxy-manager/
├── proxy_manager.py            ← 入口
├── requirements.txt
├── 启动代理.bat
├── proxy/
│   ├── config.py               ← 配置、常量、推理缓存
│   ├── server.py               ← 代理服务器线程
│   ├── handler.py              ← HTTP 路由 + 通用方法
│   ├── translate_openai.py     ← OpenAI Chat Completions 翻译
│   └── translate_anthropic.py  ← Anthropic Messages 翻译
└── gui/
    └── app.py                  ← 托盘 GUI