一个智能的API代理工具,专门用于拦截和重定向OpenAI API请求到自定义后端服务。支持多后端配置、动态模型映射和流式响应处理。 ## 📢 引言 1. Trae IDE 目前支持自定义模型服务商,但是仅支持列表内固定的模型服务商,不支持自定义 base_url,所以无法使用自己的API服务。 2. Github上有不少提出相关的Issue,但是官方基本处于不处理状态,如:[增加自定义模型服务商 base_url 的能力](https://github.com/Trae-AI/Trae/issues/1206)、[自定义 AI 路由 Custom AI API Endpoint](https://github.com/Trae-AI/Trae/issues/963) 3. 基于上述情况,开发了Trae-Proxy,以代理方式将OpenAI的API请求转发到自定义后端,同时支持自定义模型ID映射和动态后端切换。 4. 希望官方早日上线自定义base_url的能力,使Trae成为真正可自定义的IDE。 https://github.com/arch3rPro/Trae-Proxy/blob/main/asset/IDE-Chat.png?raw=true ## 📸 截图

Custom-Model

Custom-Model
支持自定义Openai兼容API

IDE-Builder

IDE-Chat
接入的Qwen3-Coder-Plus模型
## ✨ 主要功能 - **智能代理**: 拦截OpenAI API请求并转发到自定义后端 - **多后端支持**: 配置多个API后端,支持动态切换 - **模型映射**: 自定义模型ID映射,无缝替换目标模型 - **流式响应**: 支持流式和非流式响应模式切换 - **SSL证书**: 自动生成和管理自签名证书 - **Docker部署**: 一键容器化部署,支持生产环境 ## ⚠️ 声明 1. **Trae-Proxy** 是一个拦截和重定向OpenAI API请求到自定义后端服务的工具,不涉及任何修改和逆向官方软件的行为。 2. 本工具仅用于学习和研究目的,使用者应遵守相关法律法规和服务条款。 3. 理论上不仅是TraeIDE,其他支持接入OpenAI SDK或API的服务的IDE或者客户端,都可以无缝接入。 ## 🚀 快速开始 Trae-Proxy安装和使用分为以下几个步骤: 1. Trae-Proxy服务端安装、配置、启动; 2. 客户端安装自签名证书,修改Hosts映射;(将openai域名转发到代理服务上) 3. IDE中添加模型,服务商选择OpenAI,自定义模型ID,输入API密钥; ### 使用Docker Compose(推荐) ```bash # 克隆仓库 git clone https://github.com/arch3rpro/trae-proxy.git cd trae-proxy # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f ``` ### 手动部署 ```bash # 安装依赖 pip install -r requirements.txt # 生成证书 python generate_certs.py # 启动代理服务器 python trae_proxy.py ``` ### 配置文件结构 Trae-Proxy 使用YAML格式的配置文件 `config.yaml`: ```yaml # Trae-Proxy 配置文件 # 代理域名配置 domain: api.openai.com # 后端API配置列表 apis: - name: "deepseek-r1" endpoint: "https://api.deepseek.com" custom_model_id: "deepseek-reasoner" target_model_id: "deepseek-reasoner" stream_mode: null active: true - name: "kimi-k2" endpoint: "https://api.moonshot.cn" custom_model_id: "kimi-k2-0711-preview" target_model_id: "kimi-k2-0711-preview" stream_mode: null active: true - name: "qwen3-coder-plus" endpoint: "https://dashscope.aliyuncs.com/compatible-mode" custom_model_id: "qwen3-coder-plus" target_model_id: "qwen3-coder-plus" stream_mode: null active: true # 代理服务器配置 server: port: 443 debug: true ``` ## 🖥️ 客户端配置 ### 1. 获取服务器自签证书 从服务器复制CA证书到本地: ```bash # 从服务器复制CA证书 scp user@your-server-ip:/path/to/trae-proxy/ca/api.openai.com.crt . ``` ### 2. 安装CA证书 #### Windows 系统 1. 双击 `api.openai.com.crt` 文件 2. 选择"安装证书" 3. 选择"本地计算机" 4. 选择"将所有证书放入下列存储" → "浏览" → "受信任的根证书颁发机构" 5. 完成安装 #### macOS 系统 1. 双击 `api.openai.com.crt` 文件,系统会打开"钥匙串访问" 2. 将证书添加到"系统"钥匙串 3. 双击导入的证书,展开"信任"部分 4. 将"使用此证书时"设置为"始终信任" 5. 关闭窗口并输入管理员密码确认 ### 3. 修改hosts文件 #### Windows 系统 1. 以管理员身份编辑 `C:\Windows\System32\drivers\etc\hosts` 2. 添加以下行(替换为您的服务器IP): ``` your-server-ip api.openai.com ``` #### macOS 系统 1. 打开终端 2. 执行 `sudo vim /etc/hosts` 3. 添加以下行(替换为您的服务器IP): ``` your-server-ip api.openai.com ``` ### 4. 测试连接 ```bash curl https://api.openai.com/v1/models ``` 如果配置正确,您应该能看到代理服务器返回的模型列表。 ## 🔧 系统要求 - **服务器端**: Python 3.9+, OpenSSL, Docker - **客户端**: 管理员权限(修改hosts文件、安装证书) ## 📁 项目结构 ``` trae-proxy/ ├── trae_proxy.py # 主代理服务器 ├── trae_proxy_cli.py # 命令行管理工具 ├── generate_certs.py # 证书生成工具 ├── config.yaml # 配置文件 ├── docker-compose.yml # Docker部署配置 ├── requirements.txt # Python依赖 └── ca/ # 证书和密钥目录 ``` ## 🔍 实现原理 ``` +------------------+ +--------------+ +------------------+ | | | | | | | | | | | | | DeepSeek API +--->+ +--->+ Trae IDE | | | | | | | | Moonshot API +--->+ +--->+ VSCode | | | | | | | | Aliyun API +--->+ Trae-Proxy +--->+ JetBrains | | | | | | | | Self-hosted LLM +--->+ +--->+ OpenAI Clients | | | | | | | | Other API Svcs +--->+ | | | | | | | | | | | | | | | +------------------+ +--------------+ +------------------+ Backend Services Proxy Server Client Apps ``` ## 💡 使用场景 - **API代理**: 将OpenAI API请求转发到私有部署的模型服务 - **模型替换**: 使用自定义模型替换OpenAI官方模型 - **负载均衡**: 在多个后端服务之间分发请求 - **开发测试**: 本地开发环境中的API模拟和测试 ## 📝 许可证 本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。