Skip to content

BiFangKNT/mtga

Repository files navigation

MTGA

MTGA

简介

MTGA 是一个基于本地代理的 IDE 固定模型服务商解决方案,适用于 Windows 和 macOS。

  1. clone,2) 运行!
你什么也看不见~~

MTGA 即 Make T Great Again !

重大更新

  • 适配 Mac OS 端 -> 快速开始 - MacOS
  • 代理的默认服务商从 DeepSeek 变更为 OpenAI
  • ds 相关文件重命名为 *_ds.* 格式存档,如有需要可以手动从脚本启动,或自行打包。
  • 接受的 API URL 从 https://your-api.example.com/v1 变更为 https://your-api.example.com

目录


快速开始

Windows 用户(GUI一键启动方式)

  1. 双击运行 MTGA_GUI.exe(需要管理员权限)
  2. 在打开的图形界面中,填写 API URL 和模型 ID
    • 注意区分好模型名,不要和内置模型名冲突:
    • image
  3. 点击"一键启动全部服务"按钮
  4. 等待程序自动完成以下操作:
    • 生成并安装证书
    • 修改hosts文件
    • 启动代理服务器
  5. 完成后,按照第 5 步:配置 Trae IDE进行IDE配置

注意:首次运行可能需要允许防火墙访问权限

macOS 用户(应用程序安装)

安装方式

  1. GitHub Releases 下载最新版本的 MTGA_GUI_Installer.dmg
  2. 双击 DMG 文件,系统会自动挂载安装包
  3. MTGA_GUI.app 拖拽到 Applications 文件夹
  4. 从启动台或 Applications 文件夹启动应用程序

使用方法

  1. 启动 MTGA_GUI.app(首次运行可能需要在系统偏好设置中允许运行)
  2. 在图形界面中填写:
    • API URL:你的 API 服务地址(例如:https://your-api.example.com
    • 模型 ID:自定义模型名称(避免与内置模型冲突)
  3. 点击"一键启动全部服务"按钮
  4. 程序会自动完成:
    • 生成并安装 SSL 证书到系统钥匙串
    • 修改 /etc/hosts 文件(需要管理员权限)
  5. 需要手动在打开的钥匙串窗口中信任生成的证书,默认名称为 MyLocalCA
  6. 启动本地代理服务器
  7. 按照下方的 Trae IDE 配置 完成设置

注意事项:

  • 首次运行需要输入管理员密码以修改系统文件
  • 可能需要在"系统偏好设置 > 安全性与隐私"中允许应用运行
  • 如遇到网络权限问题,请在"系统偏好设置 > 安全性与隐私 > 防火墙"中允许应用访问网络

从脚本启动

第 0 步:环境准备

Windows

  • 系统为 windows 10 以上
  • 拥有管理员权限
  • 安装 python 环境,推荐 python 3.10 以上
  • 安装 git
第 1 步:生成自签名证书

打开 Git Bash:

# 切换到 ca 目录
cd "mtga/ca"

# 1. 生成 CA 证书 (ca.crt 和 ca.key)
./genca.sh

执行 ./genca.sh 时,它会问你 "Do you want to generate ca cert and key? [yes/no]",输入 y 并按回车。之后会要求填写一些信息:

  • Country Name (2 letter code) []: 填 CN (或其他国家代码)
  • 其他字段(如 State, Locality, Organization, Common Name for CA)可以按需填写或留空,建议填X。Common Name 可以填 MyLocalCA 之类的。邮箱可以留空。
# 2. 生成 api.openai.com 的服务器证书 (api.openai.com.crt 和 api.openai.com.key)
# 这个脚本会使用同目录下的 api.openai.com.subj 和 api.openai.com.cnf 配置文件
./gencrt.sh api.openai.com

执行完毕后,在 mtga\ca 目录下你会找到以下重要文件:

  • ca.crt (你的自定义 CA 证书)
  • ca.key (你的自定义 CA 私钥 - 请勿泄露)
  • api.openai.com.crt (用于本地代理服务器的 SSL 证书)
  • api.openai.com.key (用于本地代理服务器的 SSL 私钥 - 请勿泄露)
第 2 步:让 Windows 信任你的 CA 证书
  1. 找到 mtga\ca\ca.crt 文件。
  2. 双击 ca.crt 文件,打开证书查看器。
  3. 点击"安装证书..."按钮。
  4. 选择"当前用户"或"本地计算机"。推荐选择"本地计算机"(这需要管理员权限),这样对所有用户生效。
  5. 在下一个对话框中,选择"将所有的证书都放入下列存储",然后点击"浏览..."。
  6. 选择"受信任的根证书颁发机构",然后点击"确定"。
  7. 点击"下一步",然后"完成"。如果弹出安全警告,选择"是"。
第 3 步:修改 Hosts 文件

⚠️警告:执行这一步之后,你将无法访问原来的 openai 的api。网页使用不影响。

你需要用管理员权限修改 Hosts 文件,将 api.openai.com 指向你的本地机器。

  1. Hosts 文件路径: C:\Windows\System32\drivers\etc\hosts
  2. 以管理员身份,使用记事本(或其他文本编辑器)打开此文件。
  3. 在文件末尾添加一行:
    127.0.0.1 api.openai.com
    
  4. 保存文件。
第 4 步:运行本地代理服务器 (Python)

运行代理服务器之前:

  1. 安装依赖:
    pip install Flask requests
  2. 配置脚本:
    • 打开 trae_proxy.py 文件。
    • 修改 TARGET_API_BASE_URL: 将其替换为你实际要连接的那个站点的 OpenAI 格式 API 的基础 URL (例如: "https://your-api.example.com")。
    • 确认证书路径: 脚本默认会从 mtga\ca 读取 api.openai.com.crtapi.openai.com.key。如果你的证书不在此路径,请修改 CERT_FILEKEY_FILE 的值,或者将这两个文件复制到脚本指定的 CERT_DIR

运行代理服务器:

打开命令提示符 (cmd) 或 PowerShell 以管理员身份运行 (因为要监听 443 端口),然后执行:

python trae_proxy.py

如果一切顺利,你应该会看到服务器启动的日志。

第 5 步:配置 Trae IDE
  1. 打开并登录 Trae IDE。

  2. 在 AI 对话框中,点击右下角的模型图标,选择末尾的"添加模型"。

  3. 服务商:选择 OpenAI

  4. 模型:选择"自定义模型"。

  5. 模型 ID:填写你在 Python 脚本中 CUSTOM_MODEL_ID 定义的值 (例如: my-custom-local-model)。

  6. API 密钥

    • 如果你的目标 API 需要 API 密钥,并且 Trae 会将其通过 Authorization: Bearer <key> 传递,那么这里填写的密钥会被 Python 代理转发。
    • Trae 配置 OpenAI 时,API 密钥与 remove_reasoning_content 配置相关。我们的 Python 代理不处理这个逻辑,它只是简单地转发 Authorization 头部。你可以尝试填写你的目标 API 所需的密钥,或者一个任意的 sk-xxxx 格式的密钥。
  7. 点击"添加模型"。

  8. 回到 AI 聊天框,右下角选择你刚刚添加的自定义模型。

现在,当你通过 Trae 与这个自定义模型交互时,请求应该会经过你的本地 Python 代理,并被转发到你配置的 TARGET_API_BASE_URL

故障排除提示:

  • 端口冲突:如果 443 端口已被占用 (例如被 IIS、Skype 或其他服务占用),Python 脚本会启动失败。你需要停止占用该端口的服务,或者修改 Python 脚本和 Nginx (如果使用) 监听其他端口 (但这会更复杂,因为 Trae 硬编码访问 https://api.openai.com 的 443 端口)。
  • 防火墙:确保 Windows 防火墙允许 Python 监听 443 端口的入站连接 (尽管是本地连接 127.0.0.1,通常不需要特别配置防火墙,但值得检查)。
  • 证书问题:如果 Trae 报错 SSL/TLS 相关错误,请仔细检查 CA 证书是否已正确安装到"受信任的根证书颁发机构",以及 Python 代理是否正确加载了 api.openai.com.crt.key
  • 代理日志:Python 脚本会打印一些日志,可以帮助你诊断问题。

这个方案比直接使用 vproxy + nginx 的方式更集成一些,将 TLS 终止和代理逻辑都放在了一个 Python 脚本中,更适合快速在 Windows 上进行原型验证。

macOS

-> Mac OS 脚本启动方法


😎 保持更新

点击仓库右上角 Star 和 Watch 按钮,获取最新动态。

star gif


引用

ca目录引用自wkgcass/vproxy仓库,感谢大佬!

About

基于本地代理的方式,绕过 IDE 的固定模型服务商限制

Resources

License

Stars

Watchers

Forks

Packages

No packages published