Skip to content

Latest commit

 

History

History
312 lines (230 loc) · 25.9 KB

File metadata and controls

312 lines (230 loc) · 25.9 KB

MTGA

MTGA

English 简体中文 日本語 한국어 문서 Documentación en Español Documentation en Français Documentação em Português (Brasil) Dokumentation auf Deutsch Документация на русском языке

Введение

MTGA — это решение для провайдера фиксированных моделей IDE на основе локального прокси, совместимое с Windows и macOS.

Примечание: в настоящее время проект поддерживает только API в формате openai, пожалуйста, убедитесь в этом. Другие форматы можно преобразовать в формат openai перед использованием.

Ты ничего не видишь~~

MTGA расшифровывается как Make T Great Again!

Содержание


Журнал изменений

v1.2.0 (Последняя версия)

  • 🔄 Рефакторинг архитектуры отображения моделей - изменена с "один к одному" на "единая модель отображения"
    • клиент trae использует единый ID модели отображения, MTGA переключает фактическую бэкенд-модель через группы конфигураций
    • прокси-сервер поддерживает отображение ID модели и аутентификацию MTGA
    • глобальная конфигурация поддерживает настройку ID модели отображения и ключей аутентификации MTGA
  • Оптимизация управления группами конфигураций - рефакторинг полей и логики валидации групп конфигураций
    • название группы стало необязательным, API URL, фактический ID модели, API Key обязательны
    • поле целевого ID модели удалено, вместо этого используется глобальная настройка отображения модели
    • переименование заголовков таблиц групп, обратная совместимость с старыми конфигурационными файлами
  • 🧪 Добавлена функция автоматического тестирования - полная система тестирования подключения моделей
    • автоматическое тестирование соединения модели после сохранения конфигурации (GET /v1/models/{id_модели})
    • ручное тестирование живости с поддержкой теста завершения чата (POST /v1/chat/completions)
    • подробное логирование тестов, включая содержимое ответов и статистику потребления токенов
  • 🎯 Повышение удобства использования - добавлены кнопка теста живости и подробные подсказки
    • кнопка теста живости с подсказкой (tooltip), предупреждающей о расходе токенов
    • асинхронное тестирование для исключения блокировки UI, улучшенная обработка ошибок
    • безопасное отображение API Key (с маскированием)
История версий

v1.1.1

  • 🐛 Исправлена проблема с функцией изменения hosts — устранена аномалия символов переноса строки при изменении файла hosts

v1.1.0

  • Добавлена функция управления пользовательскими данными — версия в одном файле поддерживает постоянное хранение пользовательских данных
    • Расположение данных: Windows %APPDATA%\MTGA\, macOS/Linux ~/.mtga/
    • Поддержка резервного копирования, восстановления и очистки пользовательских данных
    • Конфигурационные файлы, SSL-сертификаты, резервные копии hosts автоматически сохраняются
  • 🔧 Оптимизирована сборка в один файл — улучшен build_onefile.bat, добавлена поддержка переменных для номеров версий
  • 🎯 Улучшен пользовательский интерфейс — добавлена кнопка обновления списка групп конфигураций, оптимизирована компоновка интерфейса
  • 📖 Улучшена документация — добавлено руководство по сборке в один файл, обновлена документация проекта

v1.0.0

  • Адаптация для Mac OS — поддержка установки приложений macOS
  • 🔄 Изменение провайдера по умолчанию — с DeepSeek на OpenAI
  • 📦 Рефакторинг файлов — файлы, связанные с ds, переименованы в формат *_ds.* для архивации
  • 🌐 Изменение формата URL API — с https://your-api.example.com/v1 на https://your-api.example.com

Быстрый старт

Пользователи Windows (GUI с запуском в один клик)

  1. Скачайте последнюю версию MTGA_GUI-v{версия}-x64.exe с GitHub Releases
  2. Запустите скачанный exe-файл двойным щелчком (требуются права администратора)
  3. В открывшемся графическом интерфейсе заполните API URL и ID модели
    • Для API URL достаточно указать домен (порт опционален, если не уверены — не указывайте), не нужно указывать последующий путь, например: https://your-api.example.com
    • Если хотите включить мультимодальные возможности, можно сопоставить имя модели со встроенным мультимодальным именем модели:
    • model mapping
    • model mapping effects
  4. Нажмите кнопку «Запустить все службы одним кликом»
  5. Дождитесь, пока программа автоматически выполнит следующие действия:
    • Сгенерирует и установит сертификат
    • Изменит файл hosts
    • Запустит прокси-сервер
  6. После завершения настройте IDE в соответствии с Шаг 5: Настройка Trae IDE

Note

  • При первом запуске может потребоваться разрешить доступ через брандмауэр
  • Однопользовательская версия поддерживает постоянное хранение пользовательских данных, настройки и сертификаты сохраняются автоматически

Пользователи macOS (установка через приложение)

Способ установки

  1. Скачайте последнюю версию MTGA_GUI-v{версия}-aarch64.dmg с GitHub Releases
  2. Дважды щелкните файл DMG, система автоматически смонтирует установочный пакет
  3. Перетащите MTGA_GUI.app в папку Applications
  4. Запустите приложение из Launchpad или папки Applications

Способ использования

  1. Запустите MTGA_GUI.app (при первом запуске может потребоваться разрешить выполнение в системных настройках)
  2. В графическом интерфейсе заполните:
    • API URL: адрес вашего API-сервиса (например: https://your-api.example.com)
    • Если хотите включить мультимодальные возможности, можно сопоставить имя модели со встроенным мультимодальным именем модели:
    • model mapping
    • model mapping effects
  3. Нажмите кнопку "Запустить все службы одним кликом"
  4. Программа автоматически выполнит:
    • Генерацию и установку SSL-сертификата в системную связку ключей
    • Изменение файла /etc/hosts (требуются права администратора)
  5. Вручную доверьте сгенерированный сертификат в открывшемся окне связки ключей, стандартное название — MTGA_CA
  6. Запустите локальный прокси-сервер
  7. Выполните настройку согласно Конфигурации Trae IDE ниже

Note

  • Для установки сертификата и изменения файла hosts требуются права администратора
  • Если появляется сообщение «Пакет поврежден», пожалуйста, ознакомьтесь с разделом macOS решение проблемы «Пакет поврежден»

macOS решение проблемы «Пакет поврежден»

Если при запуске MTGA_GUI.app появляется такое сообщение:

app corrupted

Нажмите «Отмена». Затем следуйте приведённым ниже инструкциям для решения проблемы:

Графическое решение

  1. Перейдите на страницу Sentinel Releases и скачайте Sentinel.dmg
  2. Дважды кликните по файлу Sentinel.dmg, затем перетащите Sentinel.app в папку Applications
  3. Запустите Sentinel.app через Launchpad или папку Applications
  4. Перетащите MTGA_GUI.app из этого проекта в левое окно приложения Sentinel.app
    • sentinel add app

MTGA_GUI.app будет автоматически обработано и запущено

Решение через командную строку (CLI)

  1. Найдите полный путь к MTGA_GUI.app, например /Applications/MTGA_GUI.app
  2. Откройте приложение Терминал (Terminal)
  3. Выполните следующую команду, чтобы снять карантин с MTGA_GUI.app:
    xattr -d com.apple.quarantine <полный_путь_к_приложению>
    Эта команда удалит расширенный атрибут com.apple.quarantine у MTGA_GUI.app
  4. Запустите MTGA_GUI.app снова.

Запуск через скрипты

Шаг 0: Подготовка окружения

Windows

  • Система Windows 10 или выше
  • Наличие прав администратора
  • Установленная среда 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 и нажмите Enter. Затем потребуется заполнить некоторую информацию:

  • Country Name (2 letter code) []: введите CN (или другой код страны)
  • Остальные поля (State, Locality, Organization, Common Name for CA) можно заполнить по необходимости или оставить пустыми, рекомендуется ввести X. Common Name можно указать как MTGA_CA или подобное. Email можно оставить пустым.
# 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: Настройка доверия к вашему CA-сертификату в Windows
  1. Найдите файл mtga\ca\ca.crt.
  2. Дважды щелкните файл ca.crt, чтобы открыть просмотрщик сертификатов.
  3. Нажмите кнопку "Установить сертификат...".
  4. Выберите "Текущий пользователь" или "Локальный компьютер". Рекомендуется выбрать "Локальный компьютер" (это требует прав администратора), чтобы изменения применялись ко всем пользователям.
  5. В следующем диалоговом окне выберите "Поместить все сертификаты в следующее хранилище", затем нажмите "Обзор...".
  6. Выберите "Доверенные корневые центры сертификации", затем нажмите "ОК".
  7. Нажмите "Далее", затем "Готово". Если появится предупреждение безопасности, выберите "Да".
Шаг 3: Изменение файла Hosts

⚠️ ВНИМАНИЕ: После выполнения этого шага вы потеряете доступ к оригинальному API OpenAI. Веб-версия останется доступной.

Вам потребуются права администратора для изменения файла 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: Замените его на базовый URL API в формате OpenAI того сайта, к которому вы фактически хотите подключиться (например: "https://your-api.example.com").
    • Подтвердите пути к сертификатам: Скрипт по умолчанию будет искать api.openai.com.crt и api.openai.com.key в mtga\ca. Если ваши сертификаты находятся в другом месте, измените значения CERT_FILE и KEY_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-прокси.
    • При настройке OpenAI в Trae, 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 разрешает входящие подключения к порту 443 для Python (хотя это локальное соединение 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 to keep latest


Благодарности

Каталог ca заимствован из репозитория wkgcass/vproxy, спасибо автору!