Spaces:
Paused
Paused
| title: Trae2api | |
| emoji: 🔥 | |
| colorFrom: blue | |
| colorTo: gray | |
| sdk: docker | |
| pinned: false | |
| app_port: 17080 | |
| ## 项目介绍 | |
| Trae2API 是一个将 Trae API 转换为 OpenAI API 格式的服务,仅用于技术交流学习,不可用于任何商业行为! | |
| 声明:本项目未进行任何逆向、破解,仅提供基于明文HTTP API的包装服务。 | |
| 提示:使用该项目可能会导致您的Trae账号被识别、标记或封禁,请酌情使用! | |
| ### 功能特点 | |
| * 获取模型列表 | |
| * 多轮对话支持 | |
| * 流式/非流式输出 | |
| * 思考类模型思考内容展示 | |
| * RefreshToken自动刷新/持久化 | |
| ### 不会支持 | |
| * 代理访问,请部署在非国内的其他亚洲区域服务器 | |
| * 多账号轮询永远不会支持,虽然很简单 | |
| ## 环境变量获取指南 | |
| 要使用 Trae2API最新版本,您需要获取以下环境变量。请按照对应指南获取: | |
| ### Mac|Windows 平台 | |
| 使用搜索工具查询获取: | |
| 1. 安装 `everything|mac使用其他工具` 搜索工具 | |
| 2. 退出Trae重新登录 | |
| 3. 登录Trae之后,回到显示Login Successful的网页上,复制上面的这个地址栏内容,里面可以获取到 ClientID | |
| 4. 进入Trae发起一次对话 | |
| 5. 使用搜索工具在电脑中全局搜索 `storage.json` 文件获取 RefreshToken、UserID | |
| 6. AppID 固定使用: `6eefa01c-1036-4c7e-9ca5-d891f63bfcd8` | |
| 7. 提示:上述信息获取后请妥善保存,除了RefreshToken,其他可以一直使用 | |
| ### 生成随机 AUTH_TOKEN | |
| 您可以使用以下随机生成的 Token 作为 AUTH_TOKEN。 | |
| *(注:此处原为交互式 Token 生成器,Markdown 中无法实现。请自行生成一个安全的随机字符串。)* | |
| ## 必需的环境变量 | |
| ### APP_ID | |
| Trae API 应用 ID,可从 ai_1_stdout.log 文件中获取 | |
| ### CLIENT_ID | |
| OAuth Client ID,可从 main.log 文件中获取 | |
| ### REFRESH_TOKEN | |
| OAuth Refresh Token,可从 storage.json 文件中获取 | |
| ### USER_ID | |
| User ID,可从 main.log 文件中获取 | |
| ### AUTH_TOKEN | |
| API 访问鉴权 Token,可自定义设置 | |
| 建议使用数字+字母生成的字符串确保安全性,不要包含特殊字符 | |
| ## 可选的环境变量 | |
| ### BASE_URL | |
| 获取模型、对话、获取文件上传Token的基本路径(如果你是亚洲区域,可以忽略此变量) | |
| 默认值:`https://trae-api-sg.mchost.guru` | |
| ### REFRESH_TOKEN_URL | |
| 刷新RefreshToken和Token的基本路径(如果你是亚洲区域,可以忽略此变量) | |
| 默认值:`https://api-sg-central.trae.ai` | |
| ### REFRESH_TOKEN_CACHE_ENABLED **v1.0.7** | |
| 是否开启Redis缓存RefreshToken,开启并配置链接地址后,最新的RefreshToken会被缓存到Redis中,避免误容器重启导致RefreshToken失效 | |
| 默认值:false | |
| ### REDIS_CONN_STRING **v1.0.7** | |
| Redis链接地址,和REFRESH_TOKEN_CACHE_ENABLED搭配使用(推荐白嫖upstash免费额度) | |
| 格式:`redis://:password@redis.example.com:6379`(upstash请使用`rediss//`开头的配置) | |
| ### AUTO_CONTINUE_ENABLED **v1.0.8** | |
| 是否开启Claude3.7自动继续对话,开启后如果对话因为token限制而截断,会自动发起继续请求并维持长链接回复直到内容全部回复完成(继续对话内容中可能包含一些AI回复的无用数据,需要手动删除) | |
| 默认值:false | |
| ### GET_FILE_ID_URL(暂未使用) | |
| 获取上传文件ID的基础路径(如果你是亚洲区域,可以忽略此变量) | |
| 默认值:`https://imagex-ap-singapore-1.bytevcloudapi.com` | |
| ### UPLOAD_FILE_URL(暂未使用) | |
| 上传文件的基础路径(如果你是亚洲区域,可以忽略此变量) | |
| 默认值:`https://tos-sg16-share.vodupload.com` | |
| ## API 使用示例 | |
| ### 获取模型列表 | |
| ```http | |
| GET http://localhost:17080/v1/models | |
| Authorization: Bearer your_auth_token | |
| ``` | |
| ```bash | |
| curl http://localhost:17080/v1/models -H "Authorization: Bearer your_auth_token" | |
| ``` | |
| ### 发起对话 | |
| ```http | |
| POST http://localhost:17080/v1/chat/completions | |
| Authorization: Bearer your_auth_token | |
| Content-Type: application/json | |
| { | |
| "model": "gpt-4o", | |
| "messages": [ | |
| { | |
| "role": "user", | |
| "content": "你好" | |
| } | |
| ], | |
| "stream": false | |
| } | |
| ``` | |
| ```bash | |
| curl http://localhost:17080/v1/chat/completions \ | |
| -H "Authorization: Bearer your_auth_token" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"model":"gpt-4o","messages":[{"role":"user","content":"你好"}],"stream":false}' | |
| ``` | |
| ### 流式对话 | |
| ```http | |
| POST http://localhost:17080/v1/chat/completions | |
| Authorization: Bearer your_auth_token | |
| Content-Type: application/json | |
| { | |
| "model": "gpt-4o", | |
| "messages": [ | |
| { | |
| "role": "user", | |
| "content": "你好" | |
| } | |
| ], | |
| "stream": true | |
| } | |
| ``` | |
| ```bash | |
| curl http://localhost:17080/v1/chat/completions \ | |
| -H "Authorization: Bearer your_auth_token" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"model":"gpt-4o","messages":[{"role":"user","content":"你好"}],"stream":true}' | |
| ``` | |
| ## 请求地址环境变量参考 | |
| 根据你注册时使用的节点区域来决定使用哪种环境变量 | |
| ### 亚洲区域环境变量(默认) | |
| ```bash | |
| BASE_URL=https://trae-api-sg.mchost.guru | |
| REFRESH_TOKEN_URL=https://api-sg-central.trae.ai | |
| ``` | |
| ### 美区域环境变量 | |
| ```bash | |
| BASE_URL=https://trae-api-us.mchost.guru | |
| REFRESH_TOKEN_URL=https://api-us-east.trae.ai | |
| ``` | |
| ## 常见问题解决方案 | |
| ### 为什么AI不回答我的问题? | |
| Trae的Claude3.5被写入了系统提示词,仅会回复代码类问题,可尝试使用claude3.7模型。 | |
| ### 开启claude3.7续答功能返回的代码为什么不能直接运行? | |
| 续答过程中AI会在开头回复一些无用或者重复内容,需要手动删除。 | |
| ### 为什么我没有找到环境变量? | |
| 请先向AI发起一次对话,然后再查找相关日志文件。 | |
| ### 为什么我的Trae登录失效/无法使用了? | |
| Trae2api会使用本地的refreshToken来刷新Token,而refreshToken使用一次之后立即失效,会导致Trae本身记录的refreshToken失效无法刷新Token,如果你有Trae本身的使用需求,建议放弃使用本项目,或者在虚拟机或其他电脑中额外开启一个Trea用来提供2api服务。 | |
| ### refreshToken有效期是多久? | |
| 目前已知refreshToken可持续刷新,理论字节不调整,可以持续使用。 | |
| ### 为什么容器启动报错refreshToken invalid? | |
| 当前配置的refreshToken失效了,请退出Trae的账号,重新登录,然后获取最新的refreshToken填入环境变量中,获取之后就不需要再打开Trae了。 | |
| ### 为什么我本地测试接口没问题,用容器启动就会报错? | |
| Trae在不同的区域调用的是不同的接口地址,目前已知有sg(新加坡)和us(美国)两个不同的地址,默认使用sg的接口,你可以更换地址相关的环境变量以使用指定的接口地址。 | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |