MTGA 即 Make T Great Again !
-
4. 点击"一键启动全部服务"按钮
5. 等待程序自动完成以下操作:
- 生成并安装证书
- 修改hosts文件
- 启动代理服务器
6. 完成后,按照[第 5 步:配置 Trae IDE](#第-5-步配置-trae-ide)进行IDE配置
> [!NOTE]
> - 首次运行可能需要允许防火墙访问权限
> - 单文件版本支持用户数据持久化存储,配置和证书会自动保存
### macOS 用户(应用程序安装)
#### 安装方式
1. 从 [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) 下载最新版本的 `MTGA_GUI-v{版本号}-aarch64.dmg`
2. 双击 DMG 文件,系统会自动挂载安装包
3. 将 `MTGA_GUI.app` 拖拽到 `Applications` 文件夹
4. 从启动台或 Applications 文件夹启动应用程序
#### 使用方法
1. 启动 `MTGA_GUI.app`(首次运行可能需要在系统偏好设置中允许运行)
2. 在图形界面中填写:
- **API URL**:你的 API 服务地址(例如:`https://your-api.example.com`)
- **如果希望启用多模态能力,可以将模型名映射到内置多模态模型名上:**
-
-
3. 点击"一键启动全部服务"按钮
4. 程序会自动完成:
- 生成并安装 SSL 证书到系统钥匙串
- 修改 `/etc/hosts` 文件(需要管理员权限)
5. 需要手动在打开的钥匙串窗口中信任生成的证书,默认名称为 `MyLocalCA`
6. 启动本地代理服务器
7. 按照下方的 [Trae IDE 配置](#第-5-步配置-trae-ide) 完成设置
> [!NOTE]
> - 证书安装和 hosts 修改需要管理员权限
> - 如提示“包已损坏”,请参考 [macOS 解决 “包已损坏” 问题](#macos-解决-包已损坏-问题)
## macOS 解决 “包已损坏” 问题
如果启动 `MTGA_GUI.app` 时弹出这样的提示:
**点击取消**。然后参考以下步骤解决:
### 图形化解决方案
1. 到 [Sentinel Releases](https://github.com/alienator88/Sentinel/releases/latest) 下载 `Sentinel.dmg`
2. 双击 `Sentinel.dmg` 文件,将 `Sentinel.app` 拖拽到 `Applications` 文件夹
3. 从启动台或 Applications 文件夹启动 `Sentinel.app`
4. 将本项目的 `MTGA_GUI.app` 拖拽到 `Sentinel.app` 的左侧窗口中
-
`MTGA_GUI.app` 将被自动处理并启动
### cli 解决方案
1. 找到 `MTGA_GUI.app` 完整路径,如 `/Applications/MTGA_GUI.app`。
2. 打开终端(Terminal)应用程序。
3. 执行以下命令签名 `MTGA_GUI.app`:
```zsh
xattr -d com.apple.quarantine <应用完整路径>
```
这会移除 `MTGA_GUI.app` 中的 `com.apple.quarantine` 扩展属性。
4. 启动 `MTGA_GUI.app`。
---
## 从脚本启动
### 第 0 步:环境准备
#### Windows
- 系统为 windows 10 以上
- 拥有管理员权限
- 安装 python 环境,推荐 python 3.10 以上
- 安装 git
##### 第 1 步:生成自签名证书
打开 Git Bash:
```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` 之类的。邮箱可以留空。
```bash
# 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. **安装依赖**:
```bash
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.crt` 和 `api.openai.com.key`。如果你的证书不在此路径,请修改 `CERT_FILE` 和 `KEY_FILE` 的值,或者将这两个文件复制到脚本指定的 `CERT_DIR`。
**运行代理服务器:**
打开命令提示符 (cmd) 或 PowerShell **以管理员身份运行** (因为要监听 443 端口),然后执行:
```bash
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