Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 16 May 04:56
· 29 commits to main since this release

What's New in v1.1.0

本次更新重点引入了适配器架构,为代理添加了 Anthropic 和 Gemini API 协议兼容支持,同时对核心代码进行了全面重构,显著提升了可维护性和可扩展性

新特性

  • Anthropic Messages API 兼容:新增 POST /v1/messages 端点,支持以 Anthropic API 格式发送请求(包括流式 SSE 转换),让原本仅兼容 OpenAI 的客户端也能接入 Claude 模型
  • Gemini API 兼容:新增 POST /v1beta/models/<model>:generateContent 端点,支持 Gemini API 格式(包括流式 SSE 转换)。同时自动丢弃 safetySettings 字段并在响应中添加 X-Gemini-Warning 头,避免 Copilot API 拒绝请求
  • 新增 GET /fallback 端点:可随时查询当前使用的回退模型

重构与架构改进

  • 引入适配器模式:创建 adapters/ 包,将协议转换逻辑封装为独立适配器(OpenAIAdapter、AnthropicAdapter、GeminiAdapter),新增协议只需添加新的适配器类即可
  • 拆分 main.py:将原约 300 行的单文件按职责拆分为多个模块:
    • auth.py — GitHub OAuth 授权、Token 持久化和自动刷新
    • config.py — 集中管理常量和配置项
    • proxy.py — HTTP 请求转发逻辑
    • models.py — 模型列表查询辅助
    • adapters/common.py — 共享的 fallback 重试和请求清洗工具函数
  • 消除模块级全局变量:用 auth.set_github_token() / auth.get_copilot_token() 等有状态 API 替代裸全局变量,降低模块耦合

代码优化

  • 消除 main.py 中的请求头硬编码:VSCODE_HEADERS 移入 config.py,一处定义全局复用
  • 统一异常处理:将回退模型获取逻辑从内联搬到 adapters/common.py,消除 try/except 裸捕获

Full Changelog: v1.0.2...v1.1.0