Files

1 line
107 KiB
JSON

{"repo": "bifangknt/mtga", "files": {"docs/README.fr.md": {"72669fbf8774bd85d2340918819e8491dff87c00": {"t": 1785747257.0049047, "n": 18776, "h": "375d9d683bccebc8", "c": "# MTGA\n\n<picture>\n <img alt=\"MTGA\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/icons/hero-img_f0bb32.png?raw=true\">\n</picture>\n\n[![English](https://img.shields.io/badge/docs-English-purple)](README.en.md) [![简体中文](https://img.shields.io/badge/文档-简体中文-yellow)](../README.md) [![日本語](https://img.shields.io/badge/ドキュ-日本語-b7003a)](README.ja.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](README.ko.md) [![Documentación en Español](https://img.shields.io/badge/docs-Español-orange)](README.es.md) [![Documentation en Français](https://img.shields.io/badge/docs-Français-blue)](README.fr.md) [![Documentação em Português (Brasil)](https://img.shields.io/badge/docs-Português-purple)](README.pt.md) [![Dokumentation auf Deutsch](https://img.shields.io/badge/docs-Deutsch-darkgreen)](README.de.md) [![Документация на русском языке](https://img.shields.io/badge/доки-Русский-darkblue)](README.ru.md)\n\n## Introduction\n\nMTGA est une solution basée sur un proxy local pour fournisseurs de modèles fixes d'IDE, compatible avec Windows et macOS.\n\n**Note : Ce projet ne prend actuellement en charge que les API au format openai, veuillez le confirmer. Les autres formats peuvent être convertis au format openai avant utilisation.**\n\n<details>\n <summary>Tu ne vois rien~~</summary>\n <br>\n <p>MTGA signifie Make T Great Again !</p>\n </details>\n\n## Table des matières\n\n- [MTGA](#mtga)\n - [Introduction](#introduction)\n - [Table des matières](#table-des-matières)\n - [Journal des modifications](#journal-des-modifications)\n - [v1.2.0 (Dernier)](#v120-dernier)\n - [v1.1.1](#v111)\n - [v1.1.0](#v110)\n - [v1.0.0](#v100)\n - [Démarrage rapide](#démarrage-rapide)\n - [Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)](#utilisateurs-windows-méthode-de-lancement-en-un-clic-via-linterface-graphique)\n - [Utilisateurs macOS (installation via l'application)](#utilisateurs-macos-installation-via-lapplication)\n - [Méthode d'installation](#méthode-dinstallation)\n - [Mode d'emploi](#mode-demploi)\n - [macOS Résolution du problème « Le paquet est corrompu »](#macos-résolution-du-problème--le-paquet-est-corrompu-)\n - [Solution graphique](#solution-graphique)\n - [Solution en ligne de commande (cli)](#solution-en-ligne-de-commande-cli)\n - [Lancement par script](#lancement-par-script)\n - [Étape 0 : Préparation de l'environnement](#étape-0--préparation-de-lenvironnement)\n - [Windows](#windows)\n - [Étape 1 : Générer un certificat auto-signé](#étape-1--générer-un-certificat-auto-signé)\n - [Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows](#étape-2--faire-confiance-à-votre-certificat-dautorité-de-certification-sous-windows)\n - [Étape 3 : Modifier le fichier Hosts](#étape-3--modifier-le-fichier-hosts)\n - [Étape 4 : Exécuter le serveur proxy local (Python)](#étape-4--exécuter-le-serveur-proxy-local-python)\n - [Étape 5 : Configurer Trae IDE](#étape-5--configurer-trae-ide)\n - [macOS](#macos)\n - [😎 Restez à jour](#-restez-à-jour)\n - [Références](#références)\n\n---\n\n## Journal des modifications\n\n### v1.2.0 (Dernier)\n\n- 🔄 **Refonte de l'architecture de mapping des modèles** - Passage du \"mapping un-à-un\" à une architecture de \"modèle de mapping unifié\"\n - Le client trae utilise un ID de modèle de mapping unifié, MTGA bascule le modèle backend réel via le groupe de configuration\n - Le serveur proxy supporte le mapping des IDs de modèle et la validation d'authentification MTGA\n - La configuration globale prend en charge la définition de l'ID du modèle de mapping et de la clé d'authentification MTGA\n- ⚡ **Optimisation de la gestion des groupes de configuration** - Refonte des champs et de la logique de validation des groupes de configuration\n - Le nom du groupe de configuration devient optionnel, l'URL API, l'ID réel du modèle et la clé API deviennent obligatoires\n - Suppression du champ d'ID du modèle cible, remplacé par une configuration de mapping globale\n - Renommage des en-têtes des groupes de configuration, rétrocompatibilité avec les anciens fichiers de configuration\n- 🧪 **Ajout d'une fonctionnalité de tests automatisés** - Système complet de test de connexion aux modèles\n - Test automatique de la connexion au modèle après sauvegarde de la configuration (GET `/v1/models/{id du modèle}`)\n - Fonction de test manuel de disponibilité, support des tests de complétion de chat (POST `/v1/chat/completions`)\n - Journal détaillé des tests, incluant le contenu des réponses et le décompte des tokens consommés\n- 🎯 **Amélioration de l'expérience utilisateur** - Ajout d'un bouton de test de disponibilité et d'infobulles détaillées\n - Le bouton de test de disponibilité supporte les infobulles explicatives, indiquant les risques de consommation de tokens\n - Tests asynchrones pour éviter le blocage de l'interface utilisateur, gestion complète des erreurs\n - Affichage sécurisé de la clé API (masquage)\n\n<details>\n<summary>Versions historiques</summary>\n\n### v1.1.1\n\n- 🐛 **Correction d'un problème avec la fonction de modification des hosts** - Résolution d'un problème de caractère de saut de ligne anormal lors de la modification du fichier hosts\n\n### v1.1.0\n\n- ✨ **Nouvelle fonctionnalité de gestion des données utilisateur** - La version monofichier prend en charge le stockage persistant des données utilisateur\n - Emplacement de stockage des données : Windows `%APPDATA%\\MTGA\\`, macOS/Linux `~/.mtga/`\n - Prise en charge de la sauvegarde, de la restauration et de l'effacement des données utilisateur\n - Configuration, certificats SSL, sauvegarde des hosts automatiquement persistants\n- 🔧 **Optimisation de la construction monofichier** - Amélioration de `build_onefile.bat`, prise en charge de la variable de numéro de version\n- 🎯 **Amélioration de l'interface utilisateur** - Ajout d'un bouton d'actualisation de la liste des groupes de configuration, optimisation de la mise en page de l'interface\n- 📖 **Documentation améliorée** - Ajout d'un guide de construction monofichier, mise à jour de la documentation du projet\n\n### v1.0.0\n\n- ✅ **Adaptation pour Mac OS** - Prise en charge de l'installation d'applications macOS\n- 🔄 **Changement de fournisseur par défaut** - Passage de DeepSeek à OpenAI\n- 📦 **Refactorisation des fichiers** - Renommage des fichiers liés à ds au format `*_ds.*` pour archivage\n- 🌐 **Modification du format de l'URL de l'API** - Passage de `https://your-api.example.com/v1` à `https://your-api.example.com`\n\n</details>\n\n---\n\n## Démarrage rapide\n\n### Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-x64.exe` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases)\n2. Double-cliquez sur le fichier exe téléchargé (des privilèges d'administrateur sont requis)\n3. Dans l'interface graphique ouverte, renseignez l'URL de l'API et l'ID du modèle\n - **L'URL de l'API ne nécessite que le domaine (le numéro de port est optionnel, ne le renseignez pas si vous ne comprenez pas), sans la route suivante, par exemple : `https://your-api.example.com`**\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n4. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n5. Attendez que le programme termine automatiquement les opérations suivantes :\n - Génération et installation du certificat\n - Modification du fichier hosts\n - Démarrage du serveur proxy\n6. Une fois terminé, configurez votre IDE selon [Étape 5 : Configuration de Trae IDE](#第-5-步配置-trae-ide)\n\n> [!NOTE]\n>\n> - Un accès au pare-feu peut être requis lors du premier lancement\n> - La version mono-fichier prend en charge la persistance des données utilisateur, la configuration et les certificats sont sauvegardés automatiquement\n\n### Utilisateurs macOS (installation via l'application)\n\n#### Méthode d'installation\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-aarch64.dmg` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases)\n2. Double-cliquez sur le fichier DMG, le système montera automatiquement le package d'installation\n3. Glissez-déposez `MTGA_GUI.app` dans le dossier `Applications`\n4. Lancez l'application depuis le Launchpad ou le dossier Applications\n\n#### Mode d'emploi\n\n1. Lancez `MTGA_GUI.app` (la première exécution peut nécessiter une autorisation dans les préférences système)\n2. Dans l'interface graphique, renseignez :\n - **API URL** : l'adresse de votre service API (par exemple : `https://your-api.example.com`)\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n3. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n4. Le programme effectuera automatiquement :\n - La génération et l'installation du certificat SSL dans le trousseau système\n - La modification du fichier `/etc/hosts` (nécessite les privilèges administrateur)\n5. Vous devez manuellement approuver le certificat généré dans la fenêtre du trousseau qui s'ouvre, nommé par défaut `MTGA_CA`\n6. Démarrez le serveur proxy local\n7. Suivez la configuration [Trae IDE ci-dessous](#第-5-步配置-trae-ide) pour finaliser la configuration\n\n> [!NOTE]\n>\n> - L'installation du certificat et la modification du fichier hosts nécessitent les droits d'administrateur.\n> - En cas d'apparition du message « Le paquet est corrompu », veuillez consulter [macOS Résolution du problème « Le paquet est corrompu »](#macos-résolution-du-problème--le-paquet-est-corrompu-).\n\n## macOS Résolution du problème « Le paquet est corrompu »\n\nSi au lancement de `MTGA_GUI.app` ce message apparaît :\n\n<img width=\"244\" height=\"223\" alt=\"app corrupted\" src=\"../images/app-corrupted.png?raw=true\" />\n\n**Cliquez sur Annuler**. Puis suivez les étapes ci-dessous pour résoudre le problème :\n\n### Solution graphique\n\n1. Rendez-vous sur [Sentinel Releases](https://github.com/alienator88/Sentinel/releases/latest) pour télécharger `Sentinel.dmg`\n2. Double-cliquez sur le fichier `Sentinel.dmg`, puis faites glisser `Sentinel.app` dans le dossier `Applications`\n3. Lancez `Sentinel.app` depuis le Launchpad ou le dossier Applications\n4. Faites glisser `MTGA_GUI.app` de ce projet dans la fenêtre gauche de `Sentinel.app`\n - <img width=\"355.33\" height=\"373.33\" alt=\"sentinel add app\" src=\"../images/sentinel-add-app.png?raw=true\" />\n\n`MTGA_GUI.app` sera automatiquement traité et lancé\n\n### Solution en ligne de commande (cli)\n\n1. Trouvez le chemin complet de `MTGA_GUI.app`, par exemple `/Applications/MTGA_GUI.app`.\n2. Ouvrez l'application Terminal.\n3. Exécutez la commande suivante pour signer `MTGA_GUI.app` :\n ```zsh\n xattr -d com.apple.quarantine <chemin complet de l'application>\n ```\n Cette commande supprime l'attribut étendu `com.apple.quarantine` de `MTGA_GUI.app`.\n4. Lancez `MTGA_GUI.app`.\n\n---\n\n## Lancement par script\n\n### Étape 0 : Préparation de l'environnement\n\n#### Windows\n\n- Système Windows 10 ou supérieur\n- Avoir les privilèges administrateur\n- Installer l'environnement Python, version 3.10 ou supérieure recommandée\n- Installer Git\n\n##### Étape 1 : Générer un certificat auto-signé\n\nOuvrez Git Bash :\n\n```bash\n# Accéder au répertoire ca\ncd \"mtga/ca\"\n\n# 1. Générer le certificat CA (ca.crt et ca.key)\n./genca.sh\n```\n\nLors de l'exécution de `./genca.sh`, il vous demandera \"Do you want to generate ca cert and key? [yes/no]\", saisissez `y` et appuyez sur Entrée. Ensuite, il vous sera demandé de renseigner quelques informations :\n\n- `Country Name (2 letter code) []` : Saisissez `CN` (ou un autre code pays)\n- Les autres champs (comme State, Locality, Organization, Common Name for CA) peuvent être remplis au besoin ou laissés vides, il est recommandé de mettre `X`. Le Common Name peut être `MTGA_CA` ou similaire. L'e-mail peut être laissé vide.\n\n```bash\n# 2. Générer le certificat SSL pour api.openai.com (api.openai.com.crt et api.openai.com.key)\n# Ce script utilisera les fichiers api.openai.com.subj et api.openai.com.cnf situés dans le même répertoire\n./gencrt.sh api.openai.com\n```\n\nUne fois l'exécution terminée, vous trouverez les fichiers importants suivants dans le répertoire `mtga\\ca` :\n\n- `ca.crt` (votre certificat d'autorité de certification personnalisé)\n- `ca.key` (votre clé privée d'autorité de certification personnalisée - **ne pas divulguer**)\n- `api.openai.com.crt` (certificat SSL pour le serveur proxy local)\n- `api.openai.com.key` (clé privée SSL pour le serveur proxy local - **ne pas divulguer**)\n\n##### Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows\n\n1. Localisez le fichier `mtga\\ca\\ca.crt`.\n2. Double-cliquez sur le fichier `ca.crt` pour ouvrir la visionneuse de certificats.\n3. Cliquez sur le bouton \"Installer le certificat...\".\n4. Choisissez \"Utilisateur actuel\" ou \"Ordinateur local\". Il est recommandé de choisir \"Ordinateur local\" (cela nécessite les privilèges administrateur) pour que cela s'applique à tous les utilisateurs.\n5. Dans la boîte de dialogue suivante, sélectionnez \"Placer tous les certificats dans le magasin suivant\", puis cliquez sur \"Parcourir...\".\n6. Sélectionnez \"Autorités de certification racines de confiance\", puis cliquez sur \"OK\".\n7. Cliquez sur \"Suivant\", puis \"Terminer\". Si un avertissement de sécurité apparaît, choisissez \"Oui\".\n\n##### Étape 3 : Modifier le fichier Hosts\n\n**⚠️ AVERTISSEMENT : Après avoir effectué cette étape, vous ne pourrez plus accéder à l'API originale d'OpenAI. L'utilisation du site web n'est pas affectée.**\n\nVous devez modifier le fichier Hosts avec des privilèges d'administrateur pour pointer `api.openai.com` vers votre machine locale.\n\n1. Chemin du fichier Hosts : `C:\\Windows\\System32\\drivers\\etc\\hosts`\n2. Ouvrez ce fichier en tant qu'administrateur avec le Bloc-notes (ou un autre éditeur de texte).\n3. Ajoutez la ligne suivante à la fin du fichier :\n ```\n 127.0.0.1 api.openai.com\n ```\n4. Enregistrez le fichier.\n\n##### Étape 4 : Exécuter le serveur proxy local (Python)\n\n**Avant d'exécuter le serveur proxy :**\n\n1. **Installer les dépendances**:\n ```bash\n pip install Flask requests\n ```\n2. **Configurer le script**:\n - Ouvrez le fichier `trae_proxy.py`.\n - **Modifiez `TARGET_API_BASE_URL`** : Remplacez-la par l'URL de base de l'API au format OpenAI du site auquel vous souhaitez réellement vous connecter (par exemple : `\"https://your-api.example.com\"`).\n - **Vérifiez les chemins des certificats** : Le script lit par défaut `api.openai.com.crt` et `api.openai.com.key` depuis `mtga\\ca`. Si vos certificats ne se trouvent pas à cet emplacement, modifiez les valeurs de `CERT_FILE` et `KEY_FILE`, ou copiez ces deux fichiers dans le `CERT_DIR` spécifié par le script.\n\n**Exécuter le serveur proxy :**\n\nOuvrez l'invite de commandes (cmd) ou PowerShell **en tant qu'administrateur** (car il faut écouter sur le port 443), puis exécutez :\n\n```bash\npython trae_proxy.py\n```\n\nSi tout se passe bien, vous devriez voir les journaux de démarrage du serveur.\n\n##### Étape 5 : Configurer Trae IDE\n\n1. Ouvrez et connectez-vous à Trae IDE.\n2. Dans la boîte de dialogue IA, cliquez sur l'icône du modèle en bas à droite et sélectionnez \"Ajouter un modèle\" à la fin.\n3. **Fournisseur** : Sélectionnez `OpenAI`.\n4. **Modèle** : Sélectionnez \"Modèle personnalisé\".\n5. **ID du modèle** : Saisissez la valeur que vous avez définie pour `CUSTOM_MODEL_ID` dans le script Python (par exemple : `my-custom-local-model`).\n6. **Clé API** :\n - Si votre API cible nécessite une clé API et que Trae la transmet via `Authorization: Bearer <key>`, alors la clé saisie ici sera transmise par le proxy Python.\n - Lors de la configuration d'OpenAI dans Trae, la clé API est liée à la configuration `remove_reasoning_content`. Notre proxy Python ne gère pas cette logique, il se contente de transmettre l'en-tête Authorization. Vous pouvez essayer de saisir la clé requise par votre API cible, ou une clé arbitraire au format `sk-xxxx`.\n\n7. Cliquez sur \"Ajouter un modèle\".\n8. Revenez à la boîte de chat IA et sélectionnez le modèle personnalisé que vous venez d'ajouter dans le menu en bas à droite.\n\nMaintenant, lorsque vous interagissez avec ce modèle personnalisé via Trae, les requêtes devraient passer par votre proxy Python local et être redirigées vers l'`TARGET_API_BASE_URL` que vous avez configuré.\n\n**Conseils de dépannage :**\n\n- **Conflit de port** : Si le port 443 est déjà occupé (par exemple par IIS, Skype ou un autre service), le script Python échouera à démarrer. Vous devez arrêter le service qui utilise ce port, ou modifier le script Python et Nginx (si utilisé) pour écouter sur un autre port (mais cela est plus complexe, car Trae accède en dur au port 443 de `https://api.openai.com`).\n- **Pare-feu** : Assurez-vous que le pare-feu Windows autorise les connexions entrantes sur le port 443 pour Python (même s'il s'agit d'une connexion locale `127.0.0.1`, une configuration spéciale du pare-feu n'est généralement pas nécessaire, mais cela vaut la peine de vérifier).\n- **Problèmes de certificat** : Si Trae signale une erreur liée à SSL/TLS, vérifiez attentivement que le certificat d'autorité de certification (CA) est correctement installé dans les \"Autorités de certification racines de confiance\", et que le proxy Python charge correctement les fichiers `api.openai.com.crt` et `.key`.\n- **Journaux du proxy** : Le script Python imprime quelques journaux qui peuvent vous aider à diagnostiquer les problèmes.\n\nCette solution est plus intégrée que l'utilisation directe de vproxy + nginx, car elle place la terminaison TLS et la logique de proxy dans un seul script Python, ce qui la rend plus adaptée à la validation rapide de prototypes sur Windows.\n\n#### macOS\n\n-> [Méthode de démarrage par script pour Mac OS](https://github.com/BiFangKNT/mtga/blob/gui/docs/README_macOS_cli.md)\n\n---\n\n## 😎 Restez à jour\n\nCliquez sur les boutons Star et Watch en haut à droite du dépôt pour obtenir les dernières mises à jour.\n\n![star to keep latest](https://github.com/BiFangKNT/mtga/blob/gui/images/star-to-keep-latest.gif?raw=true)\n\n---\n\n## Références\n\nLe répertoire `ca` est référencé depuis le dépôt `wkgcass/vproxy`, merci au grand maître !\n"}, "9c7bce21640ed90c658625c1bbcca46da9ed4582": {"t": 1785771885.382678, "n": 18776, "h": "375d9d683bccebc8", "c": "# MTGA\n\n<picture>\n <img alt=\"MTGA\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/icons/hero-img_f0bb32.png?raw=true\">\n</picture>\n\n[![English](https://img.shields.io/badge/docs-English-purple)](README.en.md) [![简体中文](https://img.shields.io/badge/文档-简体中文-yellow)](../README.md) [![日本語](https://img.shields.io/badge/ドキュ-日本語-b7003a)](README.ja.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](README.ko.md) [![Documentación en Español](https://img.shields.io/badge/docs-Español-orange)](README.es.md) [![Documentation en Français](https://img.shields.io/badge/docs-Français-blue)](README.fr.md) [![Documentação em Português (Brasil)](https://img.shields.io/badge/docs-Português-purple)](README.pt.md) [![Dokumentation auf Deutsch](https://img.shields.io/badge/docs-Deutsch-darkgreen)](README.de.md) [![Документация на русском языке](https://img.shields.io/badge/доки-Русский-darkblue)](README.ru.md)\n\n## Introduction\n\nMTGA est une solution basée sur un proxy local pour fournisseurs de modèles fixes d'IDE, compatible avec Windows et macOS.\n\n**Note : Ce projet ne prend actuellement en charge que les API au format openai, veuillez le confirmer. Les autres formats peuvent être convertis au format openai avant utilisation.**\n\n<details>\n <summary>Tu ne vois rien~~</summary>\n <br>\n <p>MTGA signifie Make T Great Again !</p>\n </details>\n\n## Table des matières\n\n- [MTGA](#mtga)\n - [Introduction](#introduction)\n - [Table des matières](#table-des-matières)\n - [Journal des modifications](#journal-des-modifications)\n - [v1.2.0 (Dernier)](#v120-dernier)\n - [v1.1.1](#v111)\n - [v1.1.0](#v110)\n - [v1.0.0](#v100)\n - [Démarrage rapide](#démarrage-rapide)\n - [Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)](#utilisateurs-windows-méthode-de-lancement-en-un-clic-via-linterface-graphique)\n - [Utilisateurs macOS (installation via l'application)](#utilisateurs-macos-installation-via-lapplication)\n - [Méthode d'installation](#méthode-dinstallation)\n - [Mode d'emploi](#mode-demploi)\n - [macOS Résolution du problème « Le paquet est corrompu »](#macos-résolution-du-problème--le-paquet-est-corrompu-)\n - [Solution graphique](#solution-graphique)\n - [Solution en ligne de commande (cli)](#solution-en-ligne-de-commande-cli)\n - [Lancement par script](#lancement-par-script)\n - [Étape 0 : Préparation de l'environnement](#étape-0--préparation-de-lenvironnement)\n - [Windows](#windows)\n - [Étape 1 : Générer un certificat auto-signé](#étape-1--générer-un-certificat-auto-signé)\n - [Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows](#étape-2--faire-confiance-à-votre-certificat-dautorité-de-certification-sous-windows)\n - [Étape 3 : Modifier le fichier Hosts](#étape-3--modifier-le-fichier-hosts)\n - [Étape 4 : Exécuter le serveur proxy local (Python)](#étape-4--exécuter-le-serveur-proxy-local-python)\n - [Étape 5 : Configurer Trae IDE](#étape-5--configurer-trae-ide)\n - [macOS](#macos)\n - [😎 Restez à jour](#-restez-à-jour)\n - [Références](#références)\n\n---\n\n## Journal des modifications\n\n### v1.2.0 (Dernier)\n\n- 🔄 **Refonte de l'architecture de mapping des modèles** - Passage du \"mapping un-à-un\" à une architecture de \"modèle de mapping unifié\"\n - Le client trae utilise un ID de modèle de mapping unifié, MTGA bascule le modèle backend réel via le groupe de configuration\n - Le serveur proxy supporte le mapping des IDs de modèle et la validation d'authentification MTGA\n - La configuration globale prend en charge la définition de l'ID du modèle de mapping et de la clé d'authentification MTGA\n- ⚡ **Optimisation de la gestion des groupes de configuration** - Refonte des champs et de la logique de validation des groupes de configuration\n - Le nom du groupe de configuration devient optionnel, l'URL API, l'ID réel du modèle et la clé API deviennent obligatoires\n - Suppression du champ d'ID du modèle cible, remplacé par une configuration de mapping globale\n - Renommage des en-têtes des groupes de configuration, rétrocompatibilité avec les anciens fichiers de configuration\n- 🧪 **Ajout d'une fonctionnalité de tests automatisés** - Système complet de test de connexion aux modèles\n - Test automatique de la connexion au modèle après sauvegarde de la configuration (GET `/v1/models/{id du modèle}`)\n - Fonction de test manuel de disponibilité, support des tests de complétion de chat (POST `/v1/chat/completions`)\n - Journal détaillé des tests, incluant le contenu des réponses et le décompte des tokens consommés\n- 🎯 **Amélioration de l'expérience utilisateur** - Ajout d'un bouton de test de disponibilité et d'infobulles détaillées\n - Le bouton de test de disponibilité supporte les infobulles explicatives, indiquant les risques de consommation de tokens\n - Tests asynchrones pour éviter le blocage de l'interface utilisateur, gestion complète des erreurs\n - Affichage sécurisé de la clé API (masquage)\n\n<details>\n<summary>Versions historiques</summary>\n\n### v1.1.1\n\n- 🐛 **Correction d'un problème avec la fonction de modification des hosts** - Résolution d'un problème de caractère de saut de ligne anormal lors de la modification du fichier hosts\n\n### v1.1.0\n\n- ✨ **Nouvelle fonctionnalité de gestion des données utilisateur** - La version monofichier prend en charge le stockage persistant des données utilisateur\n - Emplacement de stockage des données : Windows `%APPDATA%\\MTGA\\`, macOS/Linux `~/.mtga/`\n - Prise en charge de la sauvegarde, de la restauration et de l'effacement des données utilisateur\n - Configuration, certificats SSL, sauvegarde des hosts automatiquement persistants\n- 🔧 **Optimisation de la construction monofichier** - Amélioration de `build_onefile.bat`, prise en charge de la variable de numéro de version\n- 🎯 **Amélioration de l'interface utilisateur** - Ajout d'un bouton d'actualisation de la liste des groupes de configuration, optimisation de la mise en page de l'interface\n- 📖 **Documentation améliorée** - Ajout d'un guide de construction monofichier, mise à jour de la documentation du projet\n\n### v1.0.0\n\n- ✅ **Adaptation pour Mac OS** - Prise en charge de l'installation d'applications macOS\n- 🔄 **Changement de fournisseur par défaut** - Passage de DeepSeek à OpenAI\n- 📦 **Refactorisation des fichiers** - Renommage des fichiers liés à ds au format `*_ds.*` pour archivage\n- 🌐 **Modification du format de l'URL de l'API** - Passage de `https://your-api.example.com/v1` à `https://your-api.example.com`\n\n</details>\n\n---\n\n## Démarrage rapide\n\n### Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-x64.exe` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases)\n2. Double-cliquez sur le fichier exe téléchargé (des privilèges d'administrateur sont requis)\n3. Dans l'interface graphique ouverte, renseignez l'URL de l'API et l'ID du modèle\n - **L'URL de l'API ne nécessite que le domaine (le numéro de port est optionnel, ne le renseignez pas si vous ne comprenez pas), sans la route suivante, par exemple : `https://your-api.example.com`**\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n4. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n5. Attendez que le programme termine automatiquement les opérations suivantes :\n - Génération et installation du certificat\n - Modification du fichier hosts\n - Démarrage du serveur proxy\n6. Une fois terminé, configurez votre IDE selon [Étape 5 : Configuration de Trae IDE](#第-5-步配置-trae-ide)\n\n> [!NOTE]\n>\n> - Un accès au pare-feu peut être requis lors du premier lancement\n> - La version mono-fichier prend en charge la persistance des données utilisateur, la configuration et les certificats sont sauvegardés automatiquement\n\n### Utilisateurs macOS (installation via l'application)\n\n#### Méthode d'installation\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-aarch64.dmg` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases)\n2. Double-cliquez sur le fichier DMG, le système montera automatiquement le package d'installation\n3. Glissez-déposez `MTGA_GUI.app` dans le dossier `Applications`\n4. Lancez l'application depuis le Launchpad ou le dossier Applications\n\n#### Mode d'emploi\n\n1. Lancez `MTGA_GUI.app` (la première exécution peut nécessiter une autorisation dans les préférences système)\n2. Dans l'interface graphique, renseignez :\n - **API URL** : l'adresse de votre service API (par exemple : `https://your-api.example.com`)\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n3. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n4. Le programme effectuera automatiquement :\n - La génération et l'installation du certificat SSL dans le trousseau système\n - La modification du fichier `/etc/hosts` (nécessite les privilèges administrateur)\n5. Vous devez manuellement approuver le certificat généré dans la fenêtre du trousseau qui s'ouvre, nommé par défaut `MTGA_CA`\n6. Démarrez le serveur proxy local\n7. Suivez la configuration [Trae IDE ci-dessous](#第-5-步配置-trae-ide) pour finaliser la configuration\n\n> [!NOTE]\n>\n> - L'installation du certificat et la modification du fichier hosts nécessitent les droits d'administrateur.\n> - En cas d'apparition du message « Le paquet est corrompu », veuillez consulter [macOS Résolution du problème « Le paquet est corrompu »](#macos-résolution-du-problème--le-paquet-est-corrompu-).\n\n## macOS Résolution du problème « Le paquet est corrompu »\n\nSi au lancement de `MTGA_GUI.app` ce message apparaît :\n\n<img width=\"244\" height=\"223\" alt=\"app corrupted\" src=\"../images/app-corrupted.png?raw=true\" />\n\n**Cliquez sur Annuler**. Puis suivez les étapes ci-dessous pour résoudre le problème :\n\n### Solution graphique\n\n1. Rendez-vous sur [Sentinel Releases](https://github.com/alienator88/Sentinel/releases/latest) pour télécharger `Sentinel.dmg`\n2. Double-cliquez sur le fichier `Sentinel.dmg`, puis faites glisser `Sentinel.app` dans le dossier `Applications`\n3. Lancez `Sentinel.app` depuis le Launchpad ou le dossier Applications\n4. Faites glisser `MTGA_GUI.app` de ce projet dans la fenêtre gauche de `Sentinel.app`\n - <img width=\"355.33\" height=\"373.33\" alt=\"sentinel add app\" src=\"../images/sentinel-add-app.png?raw=true\" />\n\n`MTGA_GUI.app` sera automatiquement traité et lancé\n\n### Solution en ligne de commande (cli)\n\n1. Trouvez le chemin complet de `MTGA_GUI.app`, par exemple `/Applications/MTGA_GUI.app`.\n2. Ouvrez l'application Terminal.\n3. Exécutez la commande suivante pour signer `MTGA_GUI.app` :\n ```zsh\n xattr -d com.apple.quarantine <chemin complet de l'application>\n ```\n Cette commande supprime l'attribut étendu `com.apple.quarantine` de `MTGA_GUI.app`.\n4. Lancez `MTGA_GUI.app`.\n\n---\n\n## Lancement par script\n\n### Étape 0 : Préparation de l'environnement\n\n#### Windows\n\n- Système Windows 10 ou supérieur\n- Avoir les privilèges administrateur\n- Installer l'environnement Python, version 3.10 ou supérieure recommandée\n- Installer Git\n\n##### Étape 1 : Générer un certificat auto-signé\n\nOuvrez Git Bash :\n\n```bash\n# Accéder au répertoire ca\ncd \"mtga/ca\"\n\n# 1. Générer le certificat CA (ca.crt et ca.key)\n./genca.sh\n```\n\nLors de l'exécution de `./genca.sh`, il vous demandera \"Do you want to generate ca cert and key? [yes/no]\", saisissez `y` et appuyez sur Entrée. Ensuite, il vous sera demandé de renseigner quelques informations :\n\n- `Country Name (2 letter code) []` : Saisissez `CN` (ou un autre code pays)\n- Les autres champs (comme State, Locality, Organization, Common Name for CA) peuvent être remplis au besoin ou laissés vides, il est recommandé de mettre `X`. Le Common Name peut être `MTGA_CA` ou similaire. L'e-mail peut être laissé vide.\n\n```bash\n# 2. Générer le certificat SSL pour api.openai.com (api.openai.com.crt et api.openai.com.key)\n# Ce script utilisera les fichiers api.openai.com.subj et api.openai.com.cnf situés dans le même répertoire\n./gencrt.sh api.openai.com\n```\n\nUne fois l'exécution terminée, vous trouverez les fichiers importants suivants dans le répertoire `mtga\\ca` :\n\n- `ca.crt` (votre certificat d'autorité de certification personnalisé)\n- `ca.key` (votre clé privée d'autorité de certification personnalisée - **ne pas divulguer**)\n- `api.openai.com.crt` (certificat SSL pour le serveur proxy local)\n- `api.openai.com.key` (clé privée SSL pour le serveur proxy local - **ne pas divulguer**)\n\n##### Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows\n\n1. Localisez le fichier `mtga\\ca\\ca.crt`.\n2. Double-cliquez sur le fichier `ca.crt` pour ouvrir la visionneuse de certificats.\n3. Cliquez sur le bouton \"Installer le certificat...\".\n4. Choisissez \"Utilisateur actuel\" ou \"Ordinateur local\". Il est recommandé de choisir \"Ordinateur local\" (cela nécessite les privilèges administrateur) pour que cela s'applique à tous les utilisateurs.\n5. Dans la boîte de dialogue suivante, sélectionnez \"Placer tous les certificats dans le magasin suivant\", puis cliquez sur \"Parcourir...\".\n6. Sélectionnez \"Autorités de certification racines de confiance\", puis cliquez sur \"OK\".\n7. Cliquez sur \"Suivant\", puis \"Terminer\". Si un avertissement de sécurité apparaît, choisissez \"Oui\".\n\n##### Étape 3 : Modifier le fichier Hosts\n\n**⚠️ AVERTISSEMENT : Après avoir effectué cette étape, vous ne pourrez plus accéder à l'API originale d'OpenAI. L'utilisation du site web n'est pas affectée.**\n\nVous devez modifier le fichier Hosts avec des privilèges d'administrateur pour pointer `api.openai.com` vers votre machine locale.\n\n1. Chemin du fichier Hosts : `C:\\Windows\\System32\\drivers\\etc\\hosts`\n2. Ouvrez ce fichier en tant qu'administrateur avec le Bloc-notes (ou un autre éditeur de texte).\n3. Ajoutez la ligne suivante à la fin du fichier :\n ```\n 127.0.0.1 api.openai.com\n ```\n4. Enregistrez le fichier.\n\n##### Étape 4 : Exécuter le serveur proxy local (Python)\n\n**Avant d'exécuter le serveur proxy :**\n\n1. **Installer les dépendances**:\n ```bash\n pip install Flask requests\n ```\n2. **Configurer le script**:\n - Ouvrez le fichier `trae_proxy.py`.\n - **Modifiez `TARGET_API_BASE_URL`** : Remplacez-la par l'URL de base de l'API au format OpenAI du site auquel vous souhaitez réellement vous connecter (par exemple : `\"https://your-api.example.com\"`).\n - **Vérifiez les chemins des certificats** : Le script lit par défaut `api.openai.com.crt` et `api.openai.com.key` depuis `mtga\\ca`. Si vos certificats ne se trouvent pas à cet emplacement, modifiez les valeurs de `CERT_FILE` et `KEY_FILE`, ou copiez ces deux fichiers dans le `CERT_DIR` spécifié par le script.\n\n**Exécuter le serveur proxy :**\n\nOuvrez l'invite de commandes (cmd) ou PowerShell **en tant qu'administrateur** (car il faut écouter sur le port 443), puis exécutez :\n\n```bash\npython trae_proxy.py\n```\n\nSi tout se passe bien, vous devriez voir les journaux de démarrage du serveur.\n\n##### Étape 5 : Configurer Trae IDE\n\n1. Ouvrez et connectez-vous à Trae IDE.\n2. Dans la boîte de dialogue IA, cliquez sur l'icône du modèle en bas à droite et sélectionnez \"Ajouter un modèle\" à la fin.\n3. **Fournisseur** : Sélectionnez `OpenAI`.\n4. **Modèle** : Sélectionnez \"Modèle personnalisé\".\n5. **ID du modèle** : Saisissez la valeur que vous avez définie pour `CUSTOM_MODEL_ID` dans le script Python (par exemple : `my-custom-local-model`).\n6. **Clé API** :\n - Si votre API cible nécessite une clé API et que Trae la transmet via `Authorization: Bearer <key>`, alors la clé saisie ici sera transmise par le proxy Python.\n - Lors de la configuration d'OpenAI dans Trae, la clé API est liée à la configuration `remove_reasoning_content`. Notre proxy Python ne gère pas cette logique, il se contente de transmettre l'en-tête Authorization. Vous pouvez essayer de saisir la clé requise par votre API cible, ou une clé arbitraire au format `sk-xxxx`.\n\n7. Cliquez sur \"Ajouter un modèle\".\n8. Revenez à la boîte de chat IA et sélectionnez le modèle personnalisé que vous venez d'ajouter dans le menu en bas à droite.\n\nMaintenant, lorsque vous interagissez avec ce modèle personnalisé via Trae, les requêtes devraient passer par votre proxy Python local et être redirigées vers l'`TARGET_API_BASE_URL` que vous avez configuré.\n\n**Conseils de dépannage :**\n\n- **Conflit de port** : Si le port 443 est déjà occupé (par exemple par IIS, Skype ou un autre service), le script Python échouera à démarrer. Vous devez arrêter le service qui utilise ce port, ou modifier le script Python et Nginx (si utilisé) pour écouter sur un autre port (mais cela est plus complexe, car Trae accède en dur au port 443 de `https://api.openai.com`).\n- **Pare-feu** : Assurez-vous que le pare-feu Windows autorise les connexions entrantes sur le port 443 pour Python (même s'il s'agit d'une connexion locale `127.0.0.1`, une configuration spéciale du pare-feu n'est généralement pas nécessaire, mais cela vaut la peine de vérifier).\n- **Problèmes de certificat** : Si Trae signale une erreur liée à SSL/TLS, vérifiez attentivement que le certificat d'autorité de certification (CA) est correctement installé dans les \"Autorités de certification racines de confiance\", et que le proxy Python charge correctement les fichiers `api.openai.com.crt` et `.key`.\n- **Journaux du proxy** : Le script Python imprime quelques journaux qui peuvent vous aider à diagnostiquer les problèmes.\n\nCette solution est plus intégrée que l'utilisation directe de vproxy + nginx, car elle place la terminaison TLS et la logique de proxy dans un seul script Python, ce qui la rend plus adaptée à la validation rapide de prototypes sur Windows.\n\n#### macOS\n\n-> [Méthode de démarrage par script pour Mac OS](https://github.com/BiFangKNT/mtga/blob/gui/docs/README_macOS_cli.md)\n\n---\n\n## 😎 Restez à jour\n\nCliquez sur les boutons Star et Watch en haut à droite du dépôt pour obtenir les dernières mises à jour.\n\n![star to keep latest](https://github.com/BiFangKNT/mtga/blob/gui/images/star-to-keep-latest.gif?raw=true)\n\n---\n\n## Références\n\nLe répertoire `ca` est référencé depuis le dépôt `wkgcass/vproxy`, merci au grand maître !\n"}, "86f30f41d2be57fe82f0bd3becf403367ed1bbc7": {"t": 1785771895.2032833, "n": 18840, "h": "8486550a2a1f2fa2", "c": "# MTGA\n\n<picture>\n <img alt=\"MTGA\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/icons/hero-img_f0bb32.png?raw=true\">\n</picture>\n\n[![English](https://img.shields.io/badge/docs-English-purple)](README.en.md) [![简体中文](https://img.shields.io/badge/文档-简体中文-yellow)](../README.md) [![日本語](https://img.shields.io/badge/ドキュ-日本語-b7003a)](README.ja.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](README.ko.md) [![Documentación en Español](https://img.shields.io/badge/docs-Español-orange)](README.es.md) [![Documentation en Français](https://img.shields.io/badge/docs-Français-blue)](README.fr.md) [![Documentação em Português (Brasil)](<https://img.shields.io/badge/docs-Português-purple>)](README.pt.md) [![Dokumentation auf Deutsch](https://img.shields.io/badge/docs-Deutsch-darkgreen)](README.de.md) [![Документация на русском языке](https://img.shields.io/badge/доки-Русский-darkblue)](README.ru.md)\n\n## Introduction\n\nMTGA est une solution basée sur un proxy local pour fournisseurs de modèles fixes d'IDE, compatible avec Windows et macOS.\n\n**Note : Ce projet ne prend actuellement en charge que les API au format openai, veuillez le confirmer. Les autres formats peuvent être convertis au format openai avant utilisation.**\n\n<details>\n <summary>Tu ne vois rien~~</summary>\n <br>\n <p>MTGA signifie Make T Great Again !</p>\n </details>\n\n## Table des matières\n\n- [MTGA](#mtga)\n - [Introduction](#introduction)\n - [Table des matières](#table-des-matières)\n - [Journal des modifications](#journal-des-modifications)\n - [v1.2.0 (Dernier)](#v120-dernier)\n - [v1.1.1](#v111)\n - [v1.1.0](#v110)\n - [v1.0.0](#v100)\n - [Démarrage rapide](#démarrage-rapide)\n - [Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)](#utilisateurs-windows-méthode-de-lancement-en-un-clic-via-linterface-graphique)\n - [Utilisateurs macOS (installation via l'application)](#utilisateurs-macos-installation-via-lapplication)\n - [Méthode d'installation](#méthode-dinstallation)\n - [Mode d'emploi](#mode-demploi)\n - [macOS Résolution du problème « Le paquet est corrompu »](#macos-résolution-du-problème--le-paquet-est-corrompu-)\n - [Solution graphique](#solution-graphique)\n - [Solution en ligne de commande (cli)](#solution-en-ligne-de-commande-cli)\n - [Lancement par script](#lancement-par-script)\n - [Étape 0 : Préparation de l'environnement](#étape-0--préparation-de-lenvironnement)\n - [Windows](#windows)\n - [Étape 1 : Générer un certificat auto-signé](#étape-1--générer-un-certificat-auto-signé)\n - [Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows](#étape-2--faire-confiance-à-votre-certificat-dautorité-de-certification-sous-windows)\n - [Étape 3 : Modifier le fichier Hosts](#étape-3--modifier-le-fichier-hosts)\n - [Étape 4 : Exécuter le serveur proxy local (Python)](#étape-4--exécuter-le-serveur-proxy-local-python)\n - [Étape 5 : Configurer Trae IDE](#étape-5--configurer-trae-ide)\n - [macOS](#macos)\n - [😎 Restez à jour](#-restez-à-jour)\n - [Références](#références)\n\n---\n\n## Journal des modifications\n\n### v1.2.0 (Dernier)\n- 🔄 **Refonte de l'architecture de mapping des modèles** - Passage du \"mapping un-à-un\" à une architecture de \"modèle de mapping unifié\"\n - Le client trae utilise un ID de modèle de mapping unifié, MTGA bascule le modèle backend réel via le groupe de configuration\n - Le serveur proxy supporte le mapping des IDs de modèle et la validation d'authentification MTGA\n - La configuration globale prend en charge la définition de l'ID du modèle de mapping et de la clé d'authentification MTGA\n- ⚡ **Optimisation de la gestion des groupes de configuration** - Refonte des champs et de la logique de validation des groupes de configuration\n - Le nom du groupe de configuration devient optionnel, l'URL API, l'ID réel du modèle et la clé API deviennent obligatoires\n - Suppression du champ d'ID du modèle cible, remplacé par une configuration de mapping globale\n - Renommage des en-têtes des groupes de configuration, rétrocompatibilité avec les anciens fichiers de configuration\n- 🧪 **Ajout d'une fonctionnalité de tests automatisés** - Système complet de test de connexion aux modèles\n - Test automatique de la connexion au modèle après sauvegarde de la configuration (GET `/v1/models/{id du modèle}`)\n - Fonction de test manuel de disponibilité, support des tests de complétion de chat (POST `/v1/chat/completions`)\n - Journal détaillé des tests, incluant le contenu des réponses et le décompte des tokens consommés\n- 🎯 **Amélioration de l'expérience utilisateur** - Ajout d'un bouton de test de disponibilité et d'infobulles détaillées\n - Le bouton de test de disponibilité supporte les infobulles explicatives, indiquant les risques de consommation de tokens\n - Tests asynchrones pour éviter le blocage de l'interface utilisateur, gestion complète des erreurs\n - Affichage sécurisé de la clé API (masquage)\n\n<details>\n<summary>Versions historiques</summary>\n\n### v1.1.1\n\n- 🐛 **Correction d'un problème avec la fonction de modification des hosts** - Résolution d'un problème de caractère de saut de ligne anormal lors de la modification du fichier hosts\n\n### v1.1.0\n\n- ✨ **Nouvelle fonctionnalité de gestion des données utilisateur** - La version monofichier prend en charge le stockage persistant des données utilisateur\n - Emplacement de stockage des données : Windows `%APPDATA%\\MTGA\\`, macOS/Linux `~/.mtga/`\n - Prise en charge de la sauvegarde, de la restauration et de l'effacement des données utilisateur\n - Configuration, certificats SSL, sauvegarde des hosts automatiquement persistants\n- 🔧 **Optimisation de la construction monofichier** - Amélioration de `build_onefile.bat`, prise en charge de la variable de numéro de version\n- 🎯 **Amélioration de l'interface utilisateur** - Ajout d'un bouton d'actualisation de la liste des groupes de configuration, optimisation de la mise en page de l'interface\n- 📖 **Documentation améliorée** - Ajout d'un guide de construction monofichier, mise à jour de la documentation du projet\n\n### v1.0.0\n\n- ✅ **Adaptation pour Mac OS** - Prise en charge de l'installation d'applications macOS \n- 🔄 **Changement de fournisseur par défaut** - Passage de DeepSeek à OpenAI \n- 📦 **Refactorisation des fichiers** - Renommage des fichiers liés à ds au format `*_ds.*` pour archivage \n- 🌐 **Modification du format de l'URL de l'API** - Passage de `https://your-api.example.com/v1` à `https://your-api.example.com`\n\n</details>\n\n---\n\n## Démarrage rapide\n\n### Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-x64.exe` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier exe téléchargé (des privilèges d'administrateur sont requis) \n3. Dans l'interface graphique ouverte, renseignez l'URL de l'API et l'ID du modèle \n - **L'URL de l'API ne nécessite que le domaine (le numéro de port est optionnel, ne le renseignez pas si vous ne comprenez pas), sans la route suivante, par exemple : `https://your-api.example.com`** \n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n4. Cliquez sur le bouton \"Lancer tous les services en un clic\" \n5. Attendez que le programme termine automatiquement les opérations suivantes : \n - Génération et installation du certificat \n - Modification du fichier hosts \n - Démarrage du serveur proxy \n6. Une fois terminé, configurez votre IDE selon [Étape 5 : Configuration de Trae IDE](#第-5-步配置-trae-ide)\n\n> [!NOTE] \n> - Un accès au pare-feu peut être requis lors du premier lancement \n> - La version mono-fichier prend en charge la persistance des données utilisateur, la configuration et les certificats sont sauvegardés automatiquement\n\n### Utilisateurs macOS (installation via l'application)\n\n#### Méthode d'installation\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-aarch64.dmg` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier DMG, le système montera automatiquement le package d'installation \n3. Glissez-déposez `MTGA_GUI.app` dans le dossier `Applications` \n4. Lancez l'application depuis le Launchpad ou le dossier Applications\n\n#### Mode d'emploi\n\n1. Lancez `MTGA_GUI.app` (la première exécution peut nécessiter une autorisation dans les préférences système)\n2. Dans l'interface graphique, renseignez :\n - **API URL** : l'adresse de votre service API (par exemple : `https://your-api.example.com`)\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n3. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n4. Le programme effectuera automatiquement :\n - La génération et l'installation du certificat SSL dans le trousseau système\n - La modification du fichier `/etc/hosts` (nécessite les privilèges administrateur)\n5. Vous devez manuellement approuver le certificat généré dans la fenêtre du trousseau qui s'ouvre, nommé par défaut `MyLocalCA`\n6. Démarrez le serveur proxy local\n7. Suivez la configuration [Trae IDE ci-dessous](#第-5-步配置-trae-ide) pour finaliser la configuration\n\n> [!NOTE]\n> - L'installation du certificat et la modification du fichier hosts nécessitent les droits d'administrateur.\n> - En cas d'apparition du message « Le paquet est corrompu », veuillez consulter [macOS Résolution du problème « Le paquet est corrompu »](#macos-résolution-du-problème--le-paquet-est-corrompu-).\n\n## macOS Résolution du problème « Le paquet est corrompu »\n\nSi au lancement de `MTGA_GUI.app` ce message apparaît :\n\n<img width=\"244\" height=\"223\" alt=\"app corrupted\" src=\"../images/app-corrupted.png?raw=true\" />\n\n**Cliquez sur Annuler**. Puis suivez les étapes ci-dessous pour résoudre le problème :\n\n### Solution graphique\n\n1. Rendez-vous sur [Sentinel Releases](https://github.com/alienator88/Sentinel/releases/latest) pour télécharger `Sentinel.dmg`\n2. Double-cliquez sur le fichier `Sentinel.dmg`, puis faites glisser `Sentinel.app` dans le dossier `Applications`\n3. Lancez `Sentinel.app` depuis le Launchpad ou le dossier Applications\n4. Faites glisser `MTGA_GUI.app` de ce projet dans la fenêtre gauche de `Sentinel.app`\n - <img width=\"355.33\" height=\"373.33\" alt=\"sentinel add app\" src=\"../images/sentinel-add-app.png?raw=true\" />\n\n`MTGA_GUI.app` sera automatiquement traité et lancé\n\n### Solution en ligne de commande (cli)\n\n1. Trouvez le chemin complet de `MTGA_GUI.app`, par exemple `/Applications/MTGA_GUI.app`.\n2. Ouvrez l'application Terminal.\n3. Exécutez la commande suivante pour signer `MTGA_GUI.app` :\n ```zsh\n xattr -d com.apple.quarantine <chemin complet de l'application>\n ```\n Cette commande supprime l'attribut étendu `com.apple.quarantine` de `MTGA_GUI.app`.\n4. Lancez `MTGA_GUI.app`.\n\n---\n\n## Lancement par script\n\n### Étape 0 : Préparation de l'environnement\n\n#### Windows\n\n- Système Windows 10 ou supérieur\n- Avoir les privilèges administrateur\n- Installer l'environnement Python, version 3.10 ou supérieure recommandée\n- Installer Git\n\n##### Étape 1 : Générer un certificat auto-signé\n\nOuvrez Git Bash :\n\n```bash\n# Accéder au répertoire ca\ncd \"mtga/ca\"\n\n# 1. Générer le certificat CA (ca.crt et ca.key)\n./genca.sh\n```\n\nLors de l'exécution de `./genca.sh`, il vous demandera \"Do you want to generate ca cert and key? [yes/no]\", saisissez `y` et appuyez sur Entrée. Ensuite, il vous sera demandé de renseigner quelques informations :\n\n* `Country Name (2 letter code) []` : Saisissez `CN` (ou un autre code pays)\n* Les autres champs (comme State, Locality, Organization, Common Name for CA) peuvent être remplis au besoin ou laissés vides, il est recommandé de mettre `X`. Le Common Name peut être `MyLocalCA` ou similaire. L'e-mail peut être laissé vide.\n\n```bash\n# 2. Générer le certificat SSL pour api.openai.com (api.openai.com.crt et api.openai.com.key)\n# Ce script utilisera les fichiers api.openai.com.subj et api.openai.com.cnf situés dans le même répertoire\n./gencrt.sh api.openai.com\n```\n\nUne fois l'exécution terminée, vous trouverez les fichiers importants suivants dans le répertoire `mtga\\ca` :\n\n* `ca.crt` (votre certificat d'autorité de certification personnalisé)\n* `ca.key` (votre clé privée d'autorité de certification personnalisée - **ne pas divulguer**)\n* `api.openai.com.crt` (certificat SSL pour le serveur proxy local)\n* `api.openai.com.key` (clé privée SSL pour le serveur proxy local - **ne pas divulguer**)\n\n##### Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows\n\n1. Localisez le fichier `mtga\\ca\\ca.crt`.\n2. Double-cliquez sur le fichier `ca.crt` pour ouvrir la visionneuse de certificats.\n3. Cliquez sur le bouton \"Installer le certificat...\".\n4. Choisissez \"Utilisateur actuel\" ou \"Ordinateur local\". Il est recommandé de choisir \"Ordinateur local\" (cela nécessite les privilèges administrateur) pour que cela s'applique à tous les utilisateurs.\n5. Dans la boîte de dialogue suivante, sélectionnez \"Placer tous les certificats dans le magasin suivant\", puis cliquez sur \"Parcourir...\".\n6. Sélectionnez \"Autorités de certification racines de confiance\", puis cliquez sur \"OK\".\n7. Cliquez sur \"Suivant\", puis \"Terminer\". Si un avertissement de sécurité apparaît, choisissez \"Oui\".\n\n##### Étape 3 : Modifier le fichier Hosts\n\n**⚠️ AVERTISSEMENT : Après avoir effectué cette étape, vous ne pourrez plus accéder à l'API originale d'OpenAI. L'utilisation du site web n'est pas affectée.**\n\nVous devez modifier le fichier Hosts avec des privilèges d'administrateur pour pointer `api.openai.com` vers votre machine locale.\n\n1. Chemin du fichier Hosts : `C:\\Windows\\System32\\drivers\\etc\\hosts`\n2. Ouvrez ce fichier en tant qu'administrateur avec le Bloc-notes (ou un autre éditeur de texte).\n3. Ajoutez la ligne suivante à la fin du fichier :\n ```\n 127.0.0.1 api.openai.com\n ```\n4. Enregistrez le fichier.\n\n##### Étape 4 : Exécuter le serveur proxy local (Python)\n\n**Avant d'exécuter le serveur proxy :**\n\n1. **Installer les dépendances**:\n ```bash\n pip install Flask requests\n ```\n2. **Configurer le script**:\n * Ouvrez le fichier `trae_proxy.py`.\n * **Modifiez `TARGET_API_BASE_URL`** : Remplacez-la par l'URL de base de l'API au format OpenAI du site auquel vous souhaitez réellement vous connecter (par exemple : `\"https://your-api.example.com\"`).\n * **Vérifiez les chemins des certificats** : Le script lit par défaut `api.openai.com.crt` et `api.openai.com.key` depuis `mtga\\ca`. Si vos certificats ne se trouvent pas à cet emplacement, modifiez les valeurs de `CERT_FILE` et `KEY_FILE`, ou copiez ces deux fichiers dans le `CERT_DIR` spécifié par le script.\n\n**Exécuter le serveur proxy :**\n\nOuvrez l'invite de commandes (cmd) ou PowerShell **en tant qu'administrateur** (car il faut écouter sur le port 443), puis exécutez :\n\n```bash\npython trae_proxy.py\n```\n\nSi tout se passe bien, vous devriez voir les journaux de démarrage du serveur.\n\n##### Étape 5 : Configurer Trae IDE\n\n1. Ouvrez et connectez-vous à Trae IDE.\n2. Dans la boîte de dialogue IA, cliquez sur l'icône du modèle en bas à droite et sélectionnez \"Ajouter un modèle\" à la fin.\n3. **Fournisseur** : Sélectionnez `OpenAI`.\n4. **Modèle** : Sélectionnez \"Modèle personnalisé\".\n5. **ID du modèle** : Saisissez la valeur que vous avez définie pour `CUSTOM_MODEL_ID` dans le script Python (par exemple : `my-custom-local-model`).\n6. **Clé API** :\n * Si votre API cible nécessite une clé API et que Trae la transmet via `Authorization: Bearer <key>`, alors la clé saisie ici sera transmise par le proxy Python.\n * Lors de la configuration d'OpenAI dans Trae, la clé API est liée à la configuration `remove_reasoning_content`. Notre proxy Python ne gère pas cette logique, il se contente de transmettre l'en-tête Authorization. Vous pouvez essayer de saisir la clé requise par votre API cible, ou une clé arbitraire au format `sk-xxxx`.\n\n7. Cliquez sur \"Ajouter un modèle\".\n8. Revenez à la boîte de chat IA et sélectionnez le modèle personnalisé que vous venez d'ajouter dans le menu en bas à droite.\n\nMaintenant, lorsque vous interagissez avec ce modèle personnalisé via Trae, les requêtes devraient passer par votre proxy Python local et être redirigées vers l'`TARGET_API_BASE_URL` que vous avez configuré.\n\n**Conseils de dépannage :**\n\n* **Conflit de port** : Si le port 443 est déjà occupé (par exemple par IIS, Skype ou un autre service), le script Python échouera à démarrer. Vous devez arrêter le service qui utilise ce port, ou modifier le script Python et Nginx (si utilisé) pour écouter sur un autre port (mais cela est plus complexe, car Trae accède en dur au port 443 de `https://api.openai.com`).\n* **Pare-feu** : Assurez-vous que le pare-feu Windows autorise les connexions entrantes sur le port 443 pour Python (même s'il s'agit d'une connexion locale `127.0.0.1`, une configuration spéciale du pare-feu n'est généralement pas nécessaire, mais cela vaut la peine de vérifier).\n* **Problèmes de certificat** : Si Trae signale une erreur liée à SSL/TLS, vérifiez attentivement que le certificat d'autorité de certification (CA) est correctement installé dans les \"Autorités de certification racines de confiance\", et que le proxy Python charge correctement les fichiers `api.openai.com.crt` et `.key`.\n* **Journaux du proxy** : Le script Python imprime quelques journaux qui peuvent vous aider à diagnostiquer les problèmes.\n\nCette solution est plus intégrée que l'utilisation directe de vproxy + nginx, car elle place la terminaison TLS et la logique de proxy dans un seul script Python, ce qui la rend plus adaptée à la validation rapide de prototypes sur Windows.\n\n#### macOS\n\n-> [Méthode de démarrage par script pour Mac OS](https://github.com/BiFangKNT/mtga/blob/gui/docs/README_macOS_cli.md)\n\n---\n\n## 😎 Restez à jour\n\nCliquez sur les boutons Star et Watch en haut à droite du dépôt pour obtenir les dernières mises à jour.\n\n![star to keep latest](https://github.com/BiFangKNT/mtga/blob/gui/images/star-to-keep-latest.gif?raw=true)\n\n---\n\n## Références\n\nLe répertoire `ca` est référencé depuis le dépôt `wkgcass/vproxy`, merci au grand maître !"}, "14765f5bf3f85b9e71d288e100b78b6beb7b6e79": {"t": 1785771896.5148656, "n": 16897, "h": "78de184b90cd840a", "c": "# MTGA\n\n<picture>\n <img alt=\"MTGA\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/icons/hero-img_f0bb32.png?raw=true\">\n</picture>\n\n[![English](https://img.shields.io/badge/docs-English-purple)](README.en.md) [![简体中文](https://img.shields.io/badge/文档-简体中文-yellow)](../README.md) [![日本語](https://img.shields.io/badge/ドキュ-日本語-b7003a)](README.ja.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](README.ko.md) [![Documentación en Español](https://img.shields.io/badge/docs-Español-orange)](README.es.md) [![Documentation en Français](https://img.shields.io/badge/docs-Français-blue)](README.fr.md) [![Documentação em Português (Brasil)](<https://img.shields.io/badge/docs-Português-purple>)](README.pt.md) [![Dokumentation auf Deutsch](https://img.shields.io/badge/docs-Deutsch-darkgreen)](README.de.md) [![Документация на русском языке](https://img.shields.io/badge/доки-Русский-darkblue)](README.ru.md)\n\n## Introduction\n\nMTGA est une solution basée sur un proxy local pour fournisseurs de modèles fixes d'IDE, compatible avec Windows et macOS.\n\n**Note : Ce projet ne prend actuellement en charge que les API au format openai, veuillez le confirmer. Les autres formats peuvent être convertis au format openai avant utilisation.**\n\n<details>\n <summary>Tu ne vois rien~~</summary>\n <br>\n <p>MTGA signifie Make T Great Again !</p>\n </details>\n\n## Table des matières\n\n* [Journal des modifications](#journal-des-modifications)\n* [Démarrage rapide](#démarrage-rapide)\n * [Utilisateurs Windows (méthode de démarrage en un clic avec GUI)](#utilisateurs-windows-méthode-de-démarrage-en-un-clic-avec-gui)\n * [Utilisateurs macOS (installation d'application)](#utilisateurs-macos-installation-dapplication)\n* [Démarrage à partir d'un script](#démarrage-à-partir-dun-script)\n * [Étape 0 : Préparation de l'environnement](#étape-0--préparation-de-lenvironnement)\n * [Windows](#windows)\n * [Étape 1 : Générer un certificat auto-signé](#étape-1--générer-un-certificat-auto-signé)\n * [Étape 2 : Faire confiance à votre certificat d'autorité de certification par Windows](#étape-2--faire-confiance-à-votre-certificat-dautorité-de-certification-par-windows)\n * [Étape 3 : Modifier le fichier Hosts](#étape-3--modifier-le-fichier-hosts)\n * [Étape 4 : Exécuter le serveur proxy local (Python)](#étape-4--exécuter-le-serveur-proxy-local-python)\n * [Étape 5 : Configurer l'IDE Trae](#étape-5--configurer-lide-trae)\n * [macOS](#macos)\n * [😎 Restez à jour](#--restez-à-jour)\n\n---\n\n## Journal des modifications\n\n### v1.2.0 (Dernier)\n- 🔄 **Refonte de l'architecture de mapping des modèles** - Passage du \"mapping un-à-un\" à une architecture de \"modèle de mapping unifié\"\n - Le client trae utilise un ID de modèle de mapping unifié, MTGA bascule le modèle backend réel via le groupe de configuration\n - Le serveur proxy supporte le mapping des IDs de modèle et la validation d'authentification MTGA\n - La configuration globale prend en charge la définition de l'ID du modèle de mapping et de la clé d'authentification MTGA\n- ⚡ **Optimisation de la gestion des groupes de configuration** - Refonte des champs et de la logique de validation des groupes de configuration\n - Le nom du groupe de configuration devient optionnel, l'URL API, l'ID réel du modèle et la clé API deviennent obligatoires\n - Suppression du champ d'ID du modèle cible, remplacé par une configuration de mapping globale\n - Renommage des en-têtes des groupes de configuration, rétrocompatibilité avec les anciens fichiers de configuration\n- 🧪 **Ajout d'une fonctionnalité de tests automatisés** - Système complet de test de connexion aux modèles\n - Test automatique de la connexion au modèle après sauvegarde de la configuration (GET `/v1/models/{id du modèle}`)\n - Fonction de test manuel de disponibilité, support des tests de complétion de chat (POST `/v1/chat/completions`)\n - Journal détaillé des tests, incluant le contenu des réponses et le décompte des tokens consommés\n- 🎯 **Amélioration de l'expérience utilisateur** - Ajout d'un bouton de test de disponibilité et d'infobulles détaillées\n - Le bouton de test de disponibilité supporte les infobulles explicatives, indiquant les risques de consommation de tokens\n - Tests asynchrones pour éviter le blocage de l'interface utilisateur, gestion complète des erreurs\n - Affichage sécurisé de la clé API (masquage)\n\n<details>\n<summary>Versions historiques</summary>\n\n### v1.1.1\n\n- 🐛 **Correction d'un problème avec la fonction de modification des hosts** - Résolution d'un problème de caractère de saut de ligne anormal lors de la modification du fichier hosts\n\n### v1.1.0\n\n- ✨ **Nouvelle fonctionnalité de gestion des données utilisateur** - La version monofichier prend en charge le stockage persistant des données utilisateur\n - Emplacement de stockage des données : Windows `%APPDATA%\\MTGA\\`, macOS/Linux `~/.mtga/`\n - Prise en charge de la sauvegarde, de la restauration et de l'effacement des données utilisateur\n - Configuration, certificats SSL, sauvegarde des hosts automatiquement persistants\n- 🔧 **Optimisation de la construction monofichier** - Amélioration de `build_onefile.bat`, prise en charge de la variable de numéro de version\n- 🎯 **Amélioration de l'interface utilisateur** - Ajout d'un bouton d'actualisation de la liste des groupes de configuration, optimisation de la mise en page de l'interface\n- 📖 **Documentation améliorée** - Ajout d'un guide de construction monofichier, mise à jour de la documentation du projet\n\n### v1.0.0\n\n- ✅ **Adaptation pour Mac OS** - Prise en charge de l'installation d'applications macOS \n- 🔄 **Changement de fournisseur par défaut** - Passage de DeepSeek à OpenAI \n- 📦 **Refactorisation des fichiers** - Renommage des fichiers liés à ds au format `*_ds.*` pour archivage \n- 🌐 **Modification du format de l'URL de l'API** - Passage de `https://your-api.example.com/v1` à `https://your-api.example.com`\n\n</details>\n\n---\n\n## Démarrage rapide\n\n### Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-x64.exe` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier exe téléchargé (des privilèges d'administrateur sont requis) \n3. Dans l'interface graphique ouverte, renseignez l'URL de l'API et l'ID du modèle \n - **L'URL de l'API ne nécessite que le domaine (le numéro de port est optionnel, ne le renseignez pas si vous ne comprenez pas), sans la route suivante, par exemple : `https://your-api.example.com`** \n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n4. Cliquez sur le bouton \"Lancer tous les services en un clic\" \n5. Attendez que le programme termine automatiquement les opérations suivantes : \n - Génération et installation du certificat \n - Modification du fichier hosts \n - Démarrage du serveur proxy \n6. Une fois terminé, configurez votre IDE selon [Étape 5 : Configuration de Trae IDE](#第-5-步配置-trae-ide)\n\n> [!NOTE] \n> - Un accès au pare-feu peut être requis lors du premier lancement \n> - La version mono-fichier prend en charge la persistance des données utilisateur, la configuration et les certificats sont sauvegardés automatiquement\n\n### Utilisateurs macOS (installation via l'application)\n\n#### Méthode d'installation\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-aarch64.dmg` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier DMG, le système montera automatiquement le package d'installation \n3. Glissez-déposez `MTGA_GUI.app` dans le dossier `Applications` \n4. Lancez l'application depuis le Launchpad ou le dossier Applications\n\n#### Mode d'emploi\n\n1. Lancez `MTGA_GUI.app` (la première exécution peut nécessiter une autorisation dans les préférences système)\n2. Dans l'interface graphique, renseignez :\n - **API URL** : l'adresse de votre service API (par exemple : `https://your-api.example.com`)\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n3. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n4. Le programme effectuera automatiquement :\n - La génération et l'installation du certificat SSL dans le trousseau système\n - La modification du fichier `/etc/hosts` (nécessite les privilèges administrateur)\n5. Vous devez manuellement approuver le certificat généré dans la fenêtre du trousseau qui s'ouvre, nommé par défaut `MyLocalCA`\n6. Démarrez le serveur proxy local\n7. Suivez la configuration [Trae IDE ci-dessous](#第-5-步配置-trae-ide) pour finaliser la configuration\n\n> **Remarques :**\n> - La première exécution nécessite de saisir le mot de passe administrateur pour modifier les fichiers système\n> - Il peut être nécessaire d'autoriser l'exécution de l'application dans \"Préférences Système > Sécurité et confidentialité\"\n> - En cas de problème de permissions réseau, autorisez l'accès au réseau pour l'application dans \"Préférences Système > Sécurité et confidentialité > Pare-feu\"\n\n---\n\n## Lancement par script\n\n### Étape 0 : Préparation de l'environnement\n\n#### Windows\n\n- Système Windows 10 ou supérieur\n- Avoir les privilèges administrateur\n- Installer l'environnement Python, version 3.10 ou supérieure recommandée\n- Installer Git\n\n##### Étape 1 : Générer un certificat auto-signé\n\nOuvrez Git Bash :\n\n```bash\n# 切换到 ca 目录\ncd \"mtga/ca\"\n\n# 1. 生成 CA 证书 (ca.crt 和 ca.key)\n./genca.sh\n```\n\nLors de l'exécution de `./genca.sh`, il vous demandera \"Do you want to generate ca cert and key? [yes/no]\", saisissez `y` et appuyez sur Entrée. Ensuite, il vous sera demandé de renseigner quelques informations :\n\n* `Country Name (2 letter code) []` : Saisissez `CN` (ou un autre code pays)\n* Les autres champs (comme State, Locality, Organization, Common Name for CA) peuvent être remplis au besoin ou laissés vides, il est recommandé de mettre `X`. Le Common Name peut être `MyLocalCA` ou similaire. L'e-mail peut être laissé vide.\n\n```bash\n# 2. 生成 api.openai.com 的服务器证书 (api.openai.com.crt 和 api.openai.com.key)\n# 这个脚本会使用同目录下的 api.openai.com.subj 和 api.openai.com.cnf 配置文件\n./gencrt.sh api.openai.com\n```\n\nUne fois l'exécution terminée, vous trouverez les fichiers importants suivants dans le répertoire `mtga\\ca` :\n\n* `ca.crt` (votre certificat d'autorité de certification personnalisé)\n* `ca.key` (votre clé privée d'autorité de certification personnalisée - **ne pas divulguer**)\n* `api.openai.com.crt` (certificat SSL pour le serveur proxy local)\n* `api.openai.com.key` (clé privée SSL pour le serveur proxy local - **ne pas divulguer**)\n\n##### Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows\n\n1. Localisez le fichier `mtga\\ca\\ca.crt`.\n2. Double-cliquez sur le fichier `ca.crt` pour ouvrir la visionneuse de certificats.\n3. Cliquez sur le bouton \"Installer le certificat...\".\n4. Choisissez \"Utilisateur actuel\" ou \"Ordinateur local\". Il est recommandé de choisir \"Ordinateur local\" (cela nécessite les privilèges administrateur) pour que cela s'applique à tous les utilisateurs.\n5. Dans la boîte de dialogue suivante, sélectionnez \"Placer tous les certificats dans le magasin suivant\", puis cliquez sur \"Parcourir...\".\n6. Sélectionnez \"Autorités de certification racines de confiance\", puis cliquez sur \"OK\".\n7. Cliquez sur \"Suivant\", puis \"Terminer\". Si un avertissement de sécurité apparaît, choisissez \"Oui\".\n\n##### Étape 3 : Modifier le fichier Hosts\n\n**⚠️ AVERTISSEMENT : Après avoir effectué cette étape, vous ne pourrez plus accéder à l'API originale d'OpenAI. L'utilisation du site web n'est pas affectée.**\n\nVous devez modifier le fichier Hosts avec des privilèges d'administrateur pour pointer `api.openai.com` vers votre machine locale.\n\n1. Chemin du fichier Hosts : `C:\\Windows\\System32\\drivers\\etc\\hosts`\n2. Ouvrez ce fichier en tant qu'administrateur avec le Bloc-notes (ou un autre éditeur de texte).\n3. Ajoutez la ligne suivante à la fin du fichier :\n ```\n 127.0.0.1 api.openai.com\n ```\n4. Enregistrez le fichier.\n\n##### Étape 4 : Exécuter le serveur proxy local (Python)\n\n**Avant d'exécuter le serveur proxy :**\n\n1. **Installer les dépendances**:\n ```bash\n pip install Flask requests\n ```\n2. **Configurer le script**:\n * Ouvrez le fichier `trae_proxy.py`.\n * **Modifiez `TARGET_API_BASE_URL`** : Remplacez-la par l'URL de base de l'API au format OpenAI du site auquel vous souhaitez réellement vous connecter (par exemple : `\"https://your-api.example.com\"`).\n * **Vérifiez les chemins des certificats** : Le script lit par défaut `api.openai.com.crt` et `api.openai.com.key` depuis `mtga\\ca`. Si vos certificats ne se trouvent pas à cet emplacement, modifiez les valeurs de `CERT_FILE` et `KEY_FILE`, ou copiez ces deux fichiers dans le `CERT_DIR` spécifié par le script.\n\n**Exécuter le serveur proxy :**\n\nOuvrez l'invite de commandes (cmd) ou PowerShell **en tant qu'administrateur** (car il faut écouter sur le port 443), puis exécutez :\n\n```bash\npython trae_proxy.py\n```\n\nSi tout se passe bien, vous devriez voir les journaux de démarrage du serveur.\n\n##### Étape 5 : Configurer Trae IDE\n\n1. Ouvrez et connectez-vous à Trae IDE.\n2. Dans la boîte de dialogue IA, cliquez sur l'icône du modèle en bas à droite et sélectionnez \"Ajouter un modèle\" à la fin.\n3. **Fournisseur** : Sélectionnez `OpenAI`.\n4. **Modèle** : Sélectionnez \"Modèle personnalisé\".\n5. **ID du modèle** : Saisissez la valeur que vous avez définie pour `CUSTOM_MODEL_ID` dans le script Python (par exemple : `my-custom-local-model`).\n6. **Clé API** :\n * Si votre API cible nécessite une clé API et que Trae la transmet via `Authorization: Bearer <key>`, alors la clé saisie ici sera transmise par le proxy Python.\n * Lors de la configuration d'OpenAI dans Trae, la clé API est liée à la configuration `remove_reasoning_content`. Notre proxy Python ne gère pas cette logique, il se contente de transmettre l'en-tête Authorization. Vous pouvez essayer de saisir la clé requise par votre API cible, ou une clé arbitraire au format `sk-xxxx`.\n\n7. Cliquez sur \"Ajouter un modèle\".\n8. Revenez à la boîte de chat IA et sélectionnez le modèle personnalisé que vous venez d'ajouter dans le menu en bas à droite.\n\nMaintenant, lorsque vous interagissez avec ce modèle personnalisé via Trae, les requêtes devraient passer par votre proxy Python local et être redirigées vers l'`TARGET_API_BASE_URL` que vous avez configuré.\n\n**Conseils de dépannage :**\n\n* **Conflit de port** : Si le port 443 est déjà occupé (par exemple par IIS, Skype ou un autre service), le script Python échouera à démarrer. Vous devez arrêter le service qui utilise ce port, ou modifier le script Python et Nginx (si utilisé) pour écouter sur un autre port (mais cela est plus complexe, car Trae accède en dur au port 443 de `https://api.openai.com`).\n* **Pare-feu** : Assurez-vous que le pare-feu Windows autorise les connexions entrantes sur le port 443 pour Python (même s'il s'agit d'une connexion locale `127.0.0.1`, une configuration spéciale du pare-feu n'est généralement pas nécessaire, mais cela vaut la peine de vérifier).\n* **Problèmes de certificat** : Si Trae signale une erreur liée à SSL/TLS, vérifiez attentivement que le certificat d'autorité de certification (CA) est correctement installé dans les \"Autorités de certification racines de confiance\", et que le proxy Python charge correctement les fichiers `api.openai.com.crt` et `.key`.\n* **Journaux du proxy** : Le script Python imprime quelques journaux qui peuvent vous aider à diagnostiquer les problèmes.\n\nCette solution est plus intégrée que l'utilisation directe de vproxy + nginx, car elle place la terminaison TLS et la logique de proxy dans un seul script Python, ce qui la rend plus adaptée à la validation rapide de prototypes sur Windows.\n\n#### macOS\n\n-> [Méthode de démarrage par script pour Mac OS](https://github.com/BiFangKNT/mtga/blob/gui/docs/README_macOS_cli.md)\n\n---\n\n## 😎 Restez à jour\n\nCliquez sur les boutons Star et Watch en haut à droite du dépôt pour obtenir les dernières mises à jour.\n\n![star to keep latest](https://github.com/BiFangKNT/mtga/blob/gui/images/star-to-keep-latest.gif?raw=true)\n\n---\n\n## Références\n\nLe répertoire `ca` est référencé depuis le dépôt `wkgcass/vproxy`, merci au grand maître !"}, "8b57e25531d2ed73ba192d4cbffb7470b42dc697": {"t": 1785771898.3183763, "n": 15015, "h": "cd90dfd70bd5b058", "c": "# MTGA\n\n<picture>\n <img alt=\"MTGA\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/icons/hero-img_f0bb32.png?raw=true\">\n</picture>\n\n[![English](https://img.shields.io/badge/docs-English-purple)](README.en.md) [![简体中文](https://img.shields.io/badge/文档-简体中文-yellow)](../README.md) [![日本語](https://img.shields.io/badge/ドキュ-日本語-b7003a)](README.ja.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](README.ko.md) [![Documentación en Español](https://img.shields.io/badge/docs-Español-orange)](README.es.md) [![Documentation en Français](https://img.shields.io/badge/docs-Français-blue)](README.fr.md) [![Documentação em Português (Brasil)](<https://img.shields.io/badge/docs-Português-purple>)](README.pt.md) [![Dokumentation auf Deutsch](https://img.shields.io/badge/docs-Deutsch-darkgreen)](README.de.md) [![Документация на русском языке](https://img.shields.io/badge/доки-Русский-darkblue)](README.ru.md)\n\n## Introduction\n\nMTGA est une solution basée sur un proxy local pour fournisseurs de modèles fixes d'IDE, compatible avec Windows et macOS.\n\n**Note : Ce projet ne prend actuellement en charge que les API au format openai, veuillez le confirmer. Les autres formats peuvent être convertis au format openai avant utilisation.**\n\n<details>\n <summary>Tu ne vois rien~~</summary>\n <br>\n <p>MTGA signifie Make T Great Again !</p>\n </details>\n\n## Table des matières\n\n* [Journal des modifications](#journal-des-modifications)\n* [Démarrage rapide](#démarrage-rapide)\n * [Utilisateurs Windows (méthode de démarrage en un clic avec GUI)](#utilisateurs-windows-méthode-de-démarrage-en-un-clic-avec-gui)\n * [Utilisateurs macOS (installation d'application)](#utilisateurs-macos-installation-dapplication)\n* [Démarrage à partir d'un script](#démarrage-à-partir-dun-script)\n * [Étape 0 : Préparation de l'environnement](#étape-0--préparation-de-lenvironnement)\n * [Windows](#windows)\n * [Étape 1 : Générer un certificat auto-signé](#étape-1--générer-un-certificat-auto-signé)\n * [Étape 2 : Faire confiance à votre certificat d'autorité de certification par Windows](#étape-2--faire-confiance-à-votre-certificat-dautorité-de-certification-par-windows)\n * [Étape 3 : Modifier le fichier Hosts](#étape-3--modifier-le-fichier-hosts)\n * [Étape 4 : Exécuter le serveur proxy local (Python)](#étape-4--exécuter-le-serveur-proxy-local-python)\n * [Étape 5 : Configurer l'IDE Trae](#étape-5--configurer-lide-trae)\n * [macOS](#macos)\n * [😎 Restez à jour](#--restez-à-jour)\n\n---\n\n## Journal des modifications\n\n### v1.1.1 (Dernière version)\n\n- 🐛 **Correction d'un problème avec la fonction de modification des hosts** - Résolution d'un problème de caractère de saut de ligne anormal lors de la modification du fichier hosts\n\n### v1.1.0\n\n- ✨ **Nouvelle fonctionnalité de gestion des données utilisateur** - La version monofichier prend en charge le stockage persistant des données utilisateur\n - Emplacement de stockage des données : Windows `%APPDATA%\\MTGA\\`, macOS/Linux `~/.mtga/`\n - Prise en charge de la sauvegarde, de la restauration et de l'effacement des données utilisateur\n - Configuration, certificats SSL, sauvegarde des hosts automatiquement persistants\n- 🔧 **Optimisation de la construction monofichier** - Amélioration de `build_onefile.bat`, prise en charge de la variable de numéro de version\n- 🎯 **Amélioration de l'interface utilisateur** - Ajout d'un bouton d'actualisation de la liste des groupes de configuration, optimisation de la mise en page de l'interface\n- 📖 **Documentation améliorée** - Ajout d'un guide de construction monofichier, mise à jour de la documentation du projet\n\n### v1.0.0\n\n- ✅ **Adaptation pour Mac OS** - Prise en charge de l'installation d'applications macOS \n- 🔄 **Changement de fournisseur par défaut** - Passage de DeepSeek à OpenAI \n- 📦 **Refactorisation des fichiers** - Renommage des fichiers liés à ds au format `*_ds.*` pour archivage \n- 🌐 **Modification du format de l'URL de l'API** - Passage de `https://your-api.example.com/v1` à `https://your-api.example.com`\n\n---\n\n## Démarrage rapide\n\n### Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-x64.exe` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier exe téléchargé (des privilèges d'administrateur sont requis) \n3. Dans l'interface graphique ouverte, renseignez l'URL de l'API et l'ID du modèle \n - **L'URL de l'API ne nécessite que le domaine (le numéro de port est optionnel, ne le renseignez pas si vous ne comprenez pas), sans la route suivante, par exemple : `https://your-api.example.com`** \n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n4. Cliquez sur le bouton \"Lancer tous les services en un clic\" \n5. Attendez que le programme termine automatiquement les opérations suivantes : \n - Génération et installation du certificat \n - Modification du fichier hosts \n - Démarrage du serveur proxy \n6. Une fois terminé, configurez votre IDE selon [Étape 5 : Configuration de Trae IDE](#第-5-步配置-trae-ide)\n\n> [!NOTE] \n> - Un accès au pare-feu peut être requis lors du premier lancement \n> - La version mono-fichier prend en charge la persistance des données utilisateur, la configuration et les certificats sont sauvegardés automatiquement\n\n### Utilisateurs macOS (installation via l'application)\n\n#### Méthode d'installation\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-aarch64.dmg` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier DMG, le système montera automatiquement le package d'installation \n3. Glissez-déposez `MTGA_GUI.app` dans le dossier `Applications` \n4. Lancez l'application depuis le Launchpad ou le dossier Applications\n\n#### Mode d'emploi\n\n1. Lancez `MTGA_GUI.app` (la première exécution peut nécessiter une autorisation dans les préférences système)\n2. Dans l'interface graphique, renseignez :\n - **API URL** : l'adresse de votre service API (par exemple : `https://your-api.example.com`)\n - **Si vous souhaitez activer les capacités multimodales, vous pouvez mapper le nom du modèle vers un nom de modèle multimodal intégré :**\n - <img width=\"247\" height=\"76\" alt=\"model mapping\" src=\"../images/model-mapping.png?raw=true\" />\n - <img width=\"380\" height=\"141\" alt=\"model mapping effects\" src=\"../images/model-mapping-effects.png?raw=true\" />\n3. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n4. Le programme effectuera automatiquement :\n - La génération et l'installation du certificat SSL dans le trousseau système\n - La modification du fichier `/etc/hosts` (nécessite les privilèges administrateur)\n5. Vous devez manuellement approuver le certificat généré dans la fenêtre du trousseau qui s'ouvre, nommé par défaut `MyLocalCA`\n6. Démarrez le serveur proxy local\n7. Suivez la configuration [Trae IDE ci-dessous](#第-5-步配置-trae-ide) pour finaliser la configuration\n\n> **Remarques :**\n> - La première exécution nécessite de saisir le mot de passe administrateur pour modifier les fichiers système\n> - Il peut être nécessaire d'autoriser l'exécution de l'application dans \"Préférences Système > Sécurité et confidentialité\"\n> - En cas de problème de permissions réseau, autorisez l'accès au réseau pour l'application dans \"Préférences Système > Sécurité et confidentialité > Pare-feu\"\n\n---\n\n## Lancement par script\n\n### Étape 0 : Préparation de l'environnement\n\n#### Windows\n\n- Système Windows 10 ou supérieur\n- Avoir les privilèges administrateur\n- Installer l'environnement Python, version 3.10 ou supérieure recommandée\n- Installer Git\n\n##### Étape 1 : Générer un certificat auto-signé\n\nOuvrez Git Bash :\n\n```bash\n# 切换到 ca 目录\ncd \"mtga/ca\"\n\n# 1. 生成 CA 证书 (ca.crt 和 ca.key)\n./genca.sh\n```\n\nLors de l'exécution de `./genca.sh`, il vous demandera \"Do you want to generate ca cert and key? [yes/no]\", saisissez `y` et appuyez sur Entrée. Ensuite, il vous sera demandé de renseigner quelques informations :\n\n* `Country Name (2 letter code) []` : Saisissez `CN` (ou un autre code pays)\n* Les autres champs (comme State, Locality, Organization, Common Name for CA) peuvent être remplis au besoin ou laissés vides, il est recommandé de mettre `X`. Le Common Name peut être `MyLocalCA` ou similaire. L'e-mail peut être laissé vide.\n\n```bash\n# 2. 生成 api.openai.com 的服务器证书 (api.openai.com.crt 和 api.openai.com.key)\n# 这个脚本会使用同目录下的 api.openai.com.subj 和 api.openai.com.cnf 配置文件\n./gencrt.sh api.openai.com\n```\n\nUne fois l'exécution terminée, vous trouverez les fichiers importants suivants dans le répertoire `mtga\\ca` :\n\n* `ca.crt` (votre certificat d'autorité de certification personnalisé)\n* `ca.key` (votre clé privée d'autorité de certification personnalisée - **ne pas divulguer**)\n* `api.openai.com.crt` (certificat SSL pour le serveur proxy local)\n* `api.openai.com.key` (clé privée SSL pour le serveur proxy local - **ne pas divulguer**)\n\n##### Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows\n\n1. Localisez le fichier `mtga\\ca\\ca.crt`.\n2. Double-cliquez sur le fichier `ca.crt` pour ouvrir la visionneuse de certificats.\n3. Cliquez sur le bouton \"Installer le certificat...\".\n4. Choisissez \"Utilisateur actuel\" ou \"Ordinateur local\". Il est recommandé de choisir \"Ordinateur local\" (cela nécessite les privilèges administrateur) pour que cela s'applique à tous les utilisateurs.\n5. Dans la boîte de dialogue suivante, sélectionnez \"Placer tous les certificats dans le magasin suivant\", puis cliquez sur \"Parcourir...\".\n6. Sélectionnez \"Autorités de certification racines de confiance\", puis cliquez sur \"OK\".\n7. Cliquez sur \"Suivant\", puis \"Terminer\". Si un avertissement de sécurité apparaît, choisissez \"Oui\".\n\n##### Étape 3 : Modifier le fichier Hosts\n\n**⚠️ AVERTISSEMENT : Après avoir effectué cette étape, vous ne pourrez plus accéder à l'API originale d'OpenAI. L'utilisation du site web n'est pas affectée.**\n\nVous devez modifier le fichier Hosts avec des privilèges d'administrateur pour pointer `api.openai.com` vers votre machine locale.\n\n1. Chemin du fichier Hosts : `C:\\Windows\\System32\\drivers\\etc\\hosts`\n2. Ouvrez ce fichier en tant qu'administrateur avec le Bloc-notes (ou un autre éditeur de texte).\n3. Ajoutez la ligne suivante à la fin du fichier :\n ```\n 127.0.0.1 api.openai.com\n ```\n4. Enregistrez le fichier.\n\n##### Étape 4 : Exécuter le serveur proxy local (Python)\n\n**Avant d'exécuter le serveur proxy :**\n\n1. **Installer les dépendances**:\n ```bash\n pip install Flask requests\n ```\n2. **Configurer le script**:\n * Ouvrez le fichier `trae_proxy.py`.\n * **Modifiez `TARGET_API_BASE_URL`** : Remplacez-la par l'URL de base de l'API au format OpenAI du site auquel vous souhaitez réellement vous connecter (par exemple : `\"https://your-api.example.com\"`).\n * **Vérifiez les chemins des certificats** : Le script lit par défaut `api.openai.com.crt` et `api.openai.com.key` depuis `mtga\\ca`. Si vos certificats ne se trouvent pas à cet emplacement, modifiez les valeurs de `CERT_FILE` et `KEY_FILE`, ou copiez ces deux fichiers dans le `CERT_DIR` spécifié par le script.\n\n**Exécuter le serveur proxy :**\n\nOuvrez l'invite de commandes (cmd) ou PowerShell **en tant qu'administrateur** (car il faut écouter sur le port 443), puis exécutez :\n\n```bash\npython trae_proxy.py\n```\n\nSi tout se passe bien, vous devriez voir les journaux de démarrage du serveur.\n\n##### Étape 5 : Configurer Trae IDE\n\n1. Ouvrez et connectez-vous à Trae IDE.\n2. Dans la boîte de dialogue IA, cliquez sur l'icône du modèle en bas à droite et sélectionnez \"Ajouter un modèle\" à la fin.\n3. **Fournisseur** : Sélectionnez `OpenAI`.\n4. **Modèle** : Sélectionnez \"Modèle personnalisé\".\n5. **ID du modèle** : Saisissez la valeur que vous avez définie pour `CUSTOM_MODEL_ID` dans le script Python (par exemple : `my-custom-local-model`).\n6. **Clé API** :\n * Si votre API cible nécessite une clé API et que Trae la transmet via `Authorization: Bearer <key>`, alors la clé saisie ici sera transmise par le proxy Python.\n * Lors de la configuration d'OpenAI dans Trae, la clé API est liée à la configuration `remove_reasoning_content`. Notre proxy Python ne gère pas cette logique, il se contente de transmettre l'en-tête Authorization. Vous pouvez essayer de saisir la clé requise par votre API cible, ou une clé arbitraire au format `sk-xxxx`.\n\n7. Cliquez sur \"Ajouter un modèle\".\n8. Revenez à la boîte de chat IA et sélectionnez le modèle personnalisé que vous venez d'ajouter dans le menu en bas à droite.\n\nMaintenant, lorsque vous interagissez avec ce modèle personnalisé via Trae, les requêtes devraient passer par votre proxy Python local et être redirigées vers l'`TARGET_API_BASE_URL` que vous avez configuré.\n\n**Conseils de dépannage :**\n\n* **Conflit de port** : Si le port 443 est déjà occupé (par exemple par IIS, Skype ou un autre service), le script Python échouera à démarrer. Vous devez arrêter le service qui utilise ce port, ou modifier le script Python et Nginx (si utilisé) pour écouter sur un autre port (mais cela est plus complexe, car Trae accède en dur au port 443 de `https://api.openai.com`).\n* **Pare-feu** : Assurez-vous que le pare-feu Windows autorise les connexions entrantes sur le port 443 pour Python (même s'il s'agit d'une connexion locale `127.0.0.1`, une configuration spéciale du pare-feu n'est généralement pas nécessaire, mais cela vaut la peine de vérifier).\n* **Problèmes de certificat** : Si Trae signale une erreur liée à SSL/TLS, vérifiez attentivement que le certificat d'autorité de certification (CA) est correctement installé dans les \"Autorités de certification racines de confiance\", et que le proxy Python charge correctement les fichiers `api.openai.com.crt` et `.key`.\n* **Journaux du proxy** : Le script Python imprime quelques journaux qui peuvent vous aider à diagnostiquer les problèmes.\n\nCette solution est plus intégrée que l'utilisation directe de vproxy + nginx, car elle place la terminaison TLS et la logique de proxy dans un seul script Python, ce qui la rend plus adaptée à la validation rapide de prototypes sur Windows.\n\n#### macOS\n\n-> [Méthode de démarrage par script pour Mac OS](https://github.com/BiFangKNT/mtga/blob/gui/docs/README_macOS_cli.md)\n\n---\n\n## 😎 Restez à jour\n\nCliquez sur les boutons Star et Watch en haut à droite du dépôt pour obtenir les dernières mises à jour.\n\n![star to keep latest](https://github.com/BiFangKNT/mtga/blob/gui/images/star-to-keep-latest.gif?raw=true)\n\n---\n\n## Références\n\nLe répertoire `ca` est référencé depuis le dépôt `wkgcass/vproxy`, merci au grand maître !"}, "70cf84230f4a22e97750686fb9736df32e8d57a9": {"t": 1785771899.5900753, "n": 14673, "h": "491dab74bb09d55a", "c": "# MTGA\n\n<picture>\n <img alt=\"MTGA\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/icons/hero-img_f0bb32.png?raw=true\">\n</picture>\n\n[![English](https://img.shields.io/badge/docs-English-purple)](README.en.md) [![简体中文](https://img.shields.io/badge/文档-简体中文-yellow)](../README.md) [![日本語](https://img.shields.io/badge/ドキュ-日本語-b7003a)](README.ja.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](README.ko.md) [![Documentación en Español](https://img.shields.io/badge/docs-Español-orange)](README.es.md) [![Documentation en Français](https://img.shields.io/badge/docs-Français-blue)](README.fr.md) [![Documentação em Português (Brasil)](<https://img.shields.io/badge/docs-Português-purple>)](README.pt.md) [![Dokumentation auf Deutsch](https://img.shields.io/badge/docs-Deutsch-darkgreen)](README.de.md) [![Документация на русском языке](https://img.shields.io/badge/доки-Русский-darkblue)](README.ru.md)\n\n## Introduction\n\nMTGA est une solution basée sur un proxy local pour fournisseurs de modèles fixes d'IDE, compatible avec Windows et macOS.\n\n**Note : Ce projet ne prend actuellement en charge que les API au format openai, veuillez le confirmer. Les autres formats peuvent être convertis au format openai avant utilisation.**\n\n<details>\n <summary>Tu ne vois rien~~</summary>\n <br>\n <p>MTGA signifie Make T Great Again !</p>\n </details>\n\n## Table des matières\n\n* [Journal des modifications](#journal-des-modifications)\n* [Démarrage rapide](#démarrage-rapide)\n * [Utilisateurs Windows (méthode de démarrage en un clic avec GUI)](#utilisateurs-windows-méthode-de-démarrage-en-un-clic-avec-gui)\n * [Utilisateurs macOS (installation d'application)](#utilisateurs-macos-installation-dapplication)\n* [Démarrage à partir d'un script](#démarrage-à-partir-dun-script)\n * [Étape 0 : Préparation de l'environnement](#étape-0--préparation-de-lenvironnement)\n * [Windows](#windows)\n * [Étape 1 : Générer un certificat auto-signé](#étape-1--générer-un-certificat-auto-signé)\n * [Étape 2 : Faire confiance à votre certificat d'autorité de certification par Windows](#étape-2--faire-confiance-à-votre-certificat-dautorité-de-certification-par-windows)\n * [Étape 3 : Modifier le fichier Hosts](#étape-3--modifier-le-fichier-hosts)\n * [Étape 4 : Exécuter le serveur proxy local (Python)](#étape-4--exécuter-le-serveur-proxy-local-python)\n * [Étape 5 : Configurer l'IDE Trae](#étape-5--configurer-lide-trae)\n * [macOS](#macos)\n * [😎 Restez à jour](#--restez-à-jour)\n\n---\n\n## Journal des modifications\n\n### v1.1.1 (Dernière version)\n\n- 🐛 **Correction d'un problème avec la fonction de modification des hosts** - Résolution d'un problème de caractère de saut de ligne anormal lors de la modification du fichier hosts\n\n### v1.1.0\n\n- ✨ **Nouvelle fonctionnalité de gestion des données utilisateur** - La version monofichier prend en charge le stockage persistant des données utilisateur\n - Emplacement de stockage des données : Windows `%APPDATA%\\MTGA\\`, macOS/Linux `~/.mtga/`\n - Prise en charge de la sauvegarde, de la restauration et de l'effacement des données utilisateur\n - Configuration, certificats SSL, sauvegarde des hosts automatiquement persistants\n- 🔧 **Optimisation de la construction monofichier** - Amélioration de `build_onefile.bat`, prise en charge de la variable de numéro de version\n- 🎯 **Amélioration de l'interface utilisateur** - Ajout d'un bouton d'actualisation de la liste des groupes de configuration, optimisation de la mise en page de l'interface\n- 📖 **Documentation améliorée** - Ajout d'un guide de construction monofichier, mise à jour de la documentation du projet\n\n### v1.0.0\n\n- ✅ **Adaptation pour Mac OS** - Prise en charge de l'installation d'applications macOS \n- 🔄 **Changement de fournisseur par défaut** - Passage de DeepSeek à OpenAI \n- 📦 **Refactorisation des fichiers** - Renommage des fichiers liés à ds au format `*_ds.*` pour archivage \n- 🌐 **Modification du format de l'URL de l'API** - Passage de `https://your-api.example.com/v1` à `https://your-api.example.com`\n\n---\n\n## Démarrage rapide\n\n### Utilisateurs Windows (méthode de lancement en un clic via l'interface graphique)\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-x64.exe` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier exe téléchargé (des privilèges d'administrateur sont requis) \n3. Dans l'interface graphique ouverte, renseignez l'URL de l'API et l'ID du modèle \n - **L'URL de l'API ne nécessite que le domaine (le numéro de port est optionnel, ne le renseignez pas si vous ne comprenez pas), sans la route suivante, par exemple : `https://your-api.example.com`** \n - **Attention à bien distinguer le nom du modèle, ne le confondez pas avec les noms de modèles intégrés :** \n - <img width=\"249\" height=\"67\" alt=\"differentiate model name\" src=\"https://github.com/BiFangKNT/mtga/blob/gui/images/differentiate-model_name.png?raw=true\" /> \n4. Cliquez sur le bouton \"Lancer tous les services en un clic\" \n5. Attendez que le programme termine automatiquement les opérations suivantes : \n - Génération et installation du certificat \n - Modification du fichier hosts \n - Démarrage du serveur proxy \n6. Une fois terminé, configurez votre IDE selon [Étape 5 : Configuration de Trae IDE](#第-5-步配置-trae-ide)\n\n> [!NOTE] \n> - Un accès au pare-feu peut être requis lors du premier lancement \n> - La version mono-fichier prend en charge la persistance des données utilisateur, la configuration et les certificats sont sauvegardés automatiquement\n\n### Utilisateurs macOS (installation via l'application)\n\n#### Méthode d'installation\n\n1. Téléchargez la dernière version de `MTGA_GUI-v{numéro de version}-aarch64.dmg` depuis [GitHub Releases](https://github.com/BiFangKNT/mtga/releases) \n2. Double-cliquez sur le fichier DMG, le système montera automatiquement le package d'installation \n3. Glissez-déposez `MTGA_GUI.app` dans le dossier `Applications` \n4. Lancez l'application depuis le Launchpad ou le dossier Applications\n\n#### Mode d'emploi\n\n1. Lancez `MTGA_GUI.app` (la première exécution peut nécessiter une autorisation dans les préférences système)\n2. Dans l'interface graphique, renseignez :\n - **API URL** : l'adresse de votre service API (par exemple : `https://your-api.example.com`)\n - **ID du modèle** : nom personnalisé du modèle (évitez les conflits avec les modèles intégrés)\n3. Cliquez sur le bouton \"Lancer tous les services en un clic\"\n4. Le programme effectuera automatiquement :\n - La génération et l'installation du certificat SSL dans le trousseau système\n - La modification du fichier `/etc/hosts` (nécessite les privilèges administrateur)\n5. Vous devez manuellement approuver le certificat généré dans la fenêtre du trousseau qui s'ouvre, nommé par défaut `MyLocalCA`\n6. Démarrez le serveur proxy local\n7. Suivez la configuration [Trae IDE ci-dessous](#第-5-步配置-trae-ide) pour finaliser la configuration\n\n> **Remarques :**\n> - La première exécution nécessite de saisir le mot de passe administrateur pour modifier les fichiers système\n> - Il peut être nécessaire d'autoriser l'exécution de l'application dans \"Préférences Système > Sécurité et confidentialité\"\n> - En cas de problème de permissions réseau, autorisez l'accès au réseau pour l'application dans \"Préférences Système > Sécurité et confidentialité > Pare-feu\"\n\n---\n\n## Lancement par script\n\n### Étape 0 : Préparation de l'environnement\n\n#### Windows\n\n- Système Windows 10 ou supérieur\n- Avoir les privilèges administrateur\n- Installer l'environnement Python, version 3.10 ou supérieure recommandée\n- Installer Git\n\n##### Étape 1 : Générer un certificat auto-signé\n\nOuvrez Git Bash :\n\n```bash\n# 切换到 ca 目录\ncd \"mtga/ca\"\n\n# 1. 生成 CA 证书 (ca.crt 和 ca.key)\n./genca.sh\n```\n\nLors de l'exécution de `./genca.sh`, il vous demandera \"Do you want to generate ca cert and key? [yes/no]\", saisissez `y` et appuyez sur Entrée. Ensuite, il vous sera demandé de renseigner quelques informations :\n\n* `Country Name (2 letter code) []` : Saisissez `CN` (ou un autre code pays)\n* Les autres champs (comme State, Locality, Organization, Common Name for CA) peuvent être remplis au besoin ou laissés vides, il est recommandé de mettre `X`. Le Common Name peut être `MyLocalCA` ou similaire. L'e-mail peut être laissé vide.\n\n```bash\n# 2. 生成 api.openai.com 的服务器证书 (api.openai.com.crt 和 api.openai.com.key)\n# 这个脚本会使用同目录下的 api.openai.com.subj 和 api.openai.com.cnf 配置文件\n./gencrt.sh api.openai.com\n```\n\nUne fois l'exécution terminée, vous trouverez les fichiers importants suivants dans le répertoire `mtga\\ca` :\n\n* `ca.crt` (votre certificat d'autorité de certification personnalisé)\n* `ca.key` (votre clé privée d'autorité de certification personnalisée - **ne pas divulguer**)\n* `api.openai.com.crt` (certificat SSL pour le serveur proxy local)\n* `api.openai.com.key` (clé privée SSL pour le serveur proxy local - **ne pas divulguer**)\n\n##### Étape 2 : Faire confiance à votre certificat d'autorité de certification sous Windows\n\n1. Localisez le fichier `mtga\\ca\\ca.crt`.\n2. Double-cliquez sur le fichier `ca.crt` pour ouvrir la visionneuse de certificats.\n3. Cliquez sur le bouton \"Installer le certificat...\".\n4. Choisissez \"Utilisateur actuel\" ou \"Ordinateur local\". Il est recommandé de choisir \"Ordinateur local\" (cela nécessite les privilèges administrateur) pour que cela s'applique à tous les utilisateurs.\n5. Dans la boîte de dialogue suivante, sélectionnez \"Placer tous les certificats dans le magasin suivant\", puis cliquez sur \"Parcourir...\".\n6. Sélectionnez \"Autorités de certification racines de confiance\", puis cliquez sur \"OK\".\n7. Cliquez sur \"Suivant\", puis \"Terminer\". Si un avertissement de sécurité apparaît, choisissez \"Oui\".\n\n##### Étape 3 : Modifier le fichier Hosts\n\n**⚠️ AVERTISSEMENT : Après avoir effectué cette étape, vous ne pourrez plus accéder à l'API originale d'OpenAI. L'utilisation du site web n'est pas affectée.**\n\nVous devez modifier le fichier Hosts avec des privilèges d'administrateur pour pointer `api.openai.com` vers votre machine locale.\n\n1. Chemin du fichier Hosts : `C:\\Windows\\System32\\drivers\\etc\\hosts`\n2. Ouvrez ce fichier en tant qu'administrateur avec le Bloc-notes (ou un autre éditeur de texte).\n3. Ajoutez la ligne suivante à la fin du fichier :\n ```\n 127.0.0.1 api.openai.com\n ```\n4. Enregistrez le fichier.\n\n##### Étape 4 : Exécuter le serveur proxy local (Python)\n\n**Avant d'exécuter le serveur proxy :**\n\n1. **Installer les dépendances**:\n ```bash\n pip install Flask requests\n ```\n2. **Configurer le script**:\n * Ouvrez le fichier `trae_proxy.py`.\n * **Modifiez `TARGET_API_BASE_URL`** : Remplacez-la par l'URL de base de l'API au format OpenAI du site auquel vous souhaitez réellement vous connecter (par exemple : `\"https://your-api.example.com\"`).\n * **Vérifiez les chemins des certificats** : Le script lit par défaut `api.openai.com.crt` et `api.openai.com.key` depuis `mtga\\ca`. Si vos certificats ne se trouvent pas à cet emplacement, modifiez les valeurs de `CERT_FILE` et `KEY_FILE`, ou copiez ces deux fichiers dans le `CERT_DIR` spécifié par le script.\n\n**Exécuter le serveur proxy :**\n\nOuvrez l'invite de commandes (cmd) ou PowerShell **en tant qu'administrateur** (car il faut écouter sur le port 443), puis exécutez :\n\n```bash\npython trae_proxy.py\n```\n\nSi tout se passe bien, vous devriez voir les journaux de démarrage du serveur.\n\n##### Étape 5 : Configurer Trae IDE\n\n1. Ouvrez et connectez-vous à Trae IDE.\n2. Dans la boîte de dialogue IA, cliquez sur l'icône du modèle en bas à droite et sélectionnez \"Ajouter un modèle\" à la fin.\n3. **Fournisseur** : Sélectionnez `OpenAI`.\n4. **Modèle** : Sélectionnez \"Modèle personnalisé\".\n5. **ID du modèle** : Saisissez la valeur que vous avez définie pour `CUSTOM_MODEL_ID` dans le script Python (par exemple : `my-custom-local-model`).\n6. **Clé API** :\n * Si votre API cible nécessite une clé API et que Trae la transmet via `Authorization: Bearer <key>`, alors la clé saisie ici sera transmise par le proxy Python.\n * Lors de la configuration d'OpenAI dans Trae, la clé API est liée à la configuration `remove_reasoning_content`. Notre proxy Python ne gère pas cette logique, il se contente de transmettre l'en-tête Authorization. Vous pouvez essayer de saisir la clé requise par votre API cible, ou une clé arbitraire au format `sk-xxxx`.\n\n7. Cliquez sur \"Ajouter un modèle\".\n8. Revenez à la boîte de chat IA et sélectionnez le modèle personnalisé que vous venez d'ajouter dans le menu en bas à droite.\n\nMaintenant, lorsque vous interagissez avec ce modèle personnalisé via Trae, les requêtes devraient passer par votre proxy Python local et être redirigées vers l'`TARGET_API_BASE_URL` que vous avez configuré.\n\n**Conseils de dépannage :**\n\n* **Conflit de port** : Si le port 443 est déjà occupé (par exemple par IIS, Skype ou un autre service), le script Python échouera à démarrer. Vous devez arrêter le service qui utilise ce port, ou modifier le script Python et Nginx (si utilisé) pour écouter sur un autre port (mais cela est plus complexe, car Trae accède en dur au port 443 de `https://api.openai.com`).\n* **Pare-feu** : Assurez-vous que le pare-feu Windows autorise les connexions entrantes sur le port 443 pour Python (même s'il s'agit d'une connexion locale `127.0.0.1`, une configuration spéciale du pare-feu n'est généralement pas nécessaire, mais cela vaut la peine de vérifier).\n* **Problèmes de certificat** : Si Trae signale une erreur liée à SSL/TLS, vérifiez attentivement que le certificat d'autorité de certification (CA) est correctement installé dans les \"Autorités de certification racines de confiance\", et que le proxy Python charge correctement les fichiers `api.openai.com.crt` et `.key`.\n* **Journaux du proxy** : Le script Python imprime quelques journaux qui peuvent vous aider à diagnostiquer les problèmes.\n\nCette solution est plus intégrée que l'utilisation directe de vproxy + nginx, car elle place la terminaison TLS et la logique de proxy dans un seul script Python, ce qui la rend plus adaptée à la validation rapide de prototypes sur Windows.\n\n#### macOS\n\n-> [Méthode de démarrage par script pour Mac OS](https://github.com/BiFangKNT/mtga/blob/gui/docs/README_macOS_cli.md)\n\n---\n\n## 😎 Restez à jour\n\nCliquez sur les boutons Star et Watch en haut à droite du dépôt pour obtenir les dernières mises à jour.\n\n![star to keep latest](https://github.com/BiFangKNT/mtga/blob/gui/images/star-to-keep-latest.gif?raw=true)\n\n---\n\n## Références\n\nLe répertoire `ca` est référencé depuis le dépôt `wkgcass/vproxy`, merci au grand maître !"}}}}