Repository navigation
v1.1.0
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