Connexion requise
Saisis le GATEWAY_ADMIN_TOKEN en haut à droite puis clique sur « Connecter ».
Tableau de bord
Usage par compte client : jetons · images · secondes de vidéo · coût.
| Jour | Semaine | Mois |
|---|
Créer une clé API
La clé complète n'est affichée qu'une seule fois. Copie-la.
Clés existantes
Clés de service seulement ; les clés d'un compte se voient sous Comptes.
| ID | Nom | Clé (masquée) | Statut | RPM | Budget | Modèles | Sécurité | Usage |
|---|
Comptes
Utilisateurs du service des comptes. Consommation agrégée depuis les clés du compte.
| Offre | Dernière connexion | Clés | Requêtes | Dépenses depuis l’origine |
|---|
Clés fournisseur
Une clé = un abonnement : formule, fin, restant dans son unité (rafraîchi toutes les deux secondes), réglages sur la ligne.
Registre des fournisseurs
Les clés se règlent ci-dessus ; ici les APIs (nom, protocole, URL, clés), puis les modèles servis, rangés par catégorie.
APIs
| Nom | Protocole | Base URL | Clés |
|---|
Jetons d'abonnement Claude
Un jeton = un compte Claude. Seuls les jetons actifs sont transmis au relais ; le jeton n'est jamais réaffiché.
| Compte | Clé | Statut | Fin | Détail |
|---|
Tarif client par modèle
Micro-dollars entiers par million de jetons (ou par unité pour image / seconde), déduits du crédit du compte quel que soit notre coût d'achat. Un zéro est un prix.
| Modèle | Palier (jetons) | Entrée | Cache lu | Cache écrit 5 min | Cache écrit 1 h | Sortie | Par unité | Coût fournisseur | Marge (µ$) | Coût relevé le |
|---|
Plages de coefficient
Jours ISO (1 = lundi) du début de la plage, heures locales du fuseau IANA, fin exclusive. 1 000 = ×1, 500 = moitié prix.
| Modèle | Jours | Début | Fin | Fuseau | Coefficient (‰) |
|---|
Analytics — tokens & coût réel
Consommation dans le temps et coût recalculé depuis le tarif de chaque modèle.
Aucune consommation sur la période.
Coût par modèle dans le temps
Empilé par modèle · coût réel au tarif courant ($/Mtok)
Tokens entrée / sortie
Empilé · entrée vs sortie par période
Coût par modèle
Répartition sur la période, du plus coûteux au moins coûteux
Détail par modèle
Le tarif appliqué rend chaque coût vérifiable
| Modèle | Provider | Requêtes | Tokens in | Tokens out | Tarif in/out ($/Mtok) | Coût (USD) |
|---|
Plans
Les offres Yumi AI se créent et se règlent ici.
| Nom | Type | Modèles | Débit |
|---|
Sécurité de la console admin
Protège UNIQUEMENT ce panneau d'administration (l'API reste protégée par les clés yumi-…). Recommandé si la box est exposée sur internet.
Activer un identifiant / mot de passe
Déploiement : domaine + HTTPS
Génère la config nginx (WebSocket inclus) + les commandes TLS à copier-coller EN ROOT sur le serveur. Pour ta sécurité, la console n'exécute rien en root elle-même.
1) DNS : crée un enregistrement A « domaine → IP du serveur ». 2) Lance les commandes ci-dessous en root :
Version minimale de l'app
Une app (clé d'appareil) qui n'envoie pas X-Mi-Version ou envoie une version plus ancienne reçoit 426 app_update_required avec le lien ci-dessous. Vide = aucun contrôle. Les clés de service et les clés API du compte ne sont pas concernées.
File des images 3K/4K
Une image 3K/4K dont le pool est plein attend la première clé libre, au maximum ce nombre de secondes ; au-delà, l'appel reçoit 429 avec Retry-After. Publié à l'app dans account_limits.
Comment ça marche
La gateway expose un endpoint compatible OpenAI et route vers un agent CLI.
Client (SDK OpenAI) │ Authorization: Bearer yumi-… ▼ Yumi AI Gateway (/v1/chat/completions) ├─► claude_cli → claude -p … ├─► kimi_cli → kimi -p … (stream-json) └─► mistral_cli → vibe -p … --yolo
Modèles disponibles
Le nom du modèle dans l'appel sélectionne l'agent CLI. Pour Claude, le suffixe choisit la variante — -sonnet (Sonnet 5), -opus (Opus 4.8), -haiku (Haiku 4.5), -fable (Fable 5) — le modèle exact étant défini par CLI_MODEL_MAP. Liste en direct depuis /v1/models :
Exemples d'appel
Remplace BASE et yumi-… par les tiens.
curl Python (SDK OpenAI) JavaScript (fetch)Exposer l'API (mapping de port sur la box)
Si la gateway tourne sur un nano-ordinateur (Raspberry Pi / SmartPi) derrière une box internet, il faut rediriger un port pour y accéder depuis l'extérieur.
| Service | Port | Note |
|---|---|---|
| Gateway (HTTP) | 8001 | Port d'écoute par défaut (variable PORT). Bind 0.0.0.0 sur le nano-PC. |
| HTTPS (nginx) | 443 | Recommandé : nginx + TLS devant la gateway, on n'expose que le 443. |
| SSH | 22 | Ne PAS rediriger publiquement. |
- Sur le nano-PC : lance la gateway en écoute sur 0.0.0.0:8001 (IP LAN, ex. 192.168.1.50).
- Sur la box (routeur) : crée une redirection de port (NAT/Port Forwarding) port externe → 192.168.1.50:8001 (ou 443 si nginx/TLS).
- Utilise l'IP publique de la box, ou un DNS dynamique (DuckDNS…) car l'IP résidentielle change.
- Sécurité : n'expose jamais sans TLS + clé yumi-…. Restreins la console admin (ADMIN_IP_ALLOWLIST, pare-feu).
L'avantage de la solution
- Un seul endpoint OpenAI pour plusieurs agents CLI.
- Toute l'orchestration agentique du CLI via un simple appel chat.
- Auto-hébergé : les credentials ne quittent jamais ton serveur.
- Clés maîtresses par client : rate-limit, budget, allow-list, suivi de coût.
- Zéro lock-in : on change de provider via le routage.
Débogueur
Capture, en mémoire et pour une durée bornée, tout ce qui passe par l'API pour un compte. Sans capture allumée, rien n'est gardé.
Boutique de connexions
Parcours le catalogue et connecte un service en un clic — la gateway construit le connecteur et le câble sur les CLI ciblés.
Connecteur MCP sur mesure
Branche des serveurs MCP (outils) sur les agents CLI.
Connecteurs enregistrés
Coche/décoche une cible CLI directement ici — le changement est appliqué aussitôt et le token est conservé.
| Nom | Transport | Cibles | Détail | Statut |
|---|
Créer un serveur MCP compatible
Prompt prêt à donner à un agent AI pour générer un serveur MCP branchable ici. Adapte la liste des outils.
Notes importantes
- Le token va dans l'en-tête Authorization AVEC le préfixe « Bearer » (sinon 401). L'en-tête Accept (application/json, text/event-stream) est ajouté automatiquement (anti-406).
- La gateway traduit chaque connecteur au format NATIF du CLI ciblé — kimi (mcp.json), claude (claude mcp add), mistral/vibe (config.toml, transport « http »). Rien à adapter côté connecteur.
- Édite un connecteur (crayon) pour changer ses cibles sans re-saisir le token : le secret existant est préservé.
- Coche plusieurs CLI pour câbler le même serveur MCP sur tous en un clic.
- Détails, formats par CLI et dépannage (401 / 406 / 502 / hang) : docs/mcp-integration.md du dépôt.
Skills
Procédures réutilisables (format SKILL.md). Injectées dans le dossier de travail de l'agent : Claude, Kimi et Grok les découvrent nativement ; Vibe via son préambule. Portée par clé, comme les connecteurs MCP.
| Skill | Portée |
|---|
Terminal — connecter les CLI
Providers & authentification des CLI
Configure la clé de chaque CLI puis teste la connexion.
Sécurité de la clé
Limite ce que l'agent peut faire (anti prompt-injection). Contrôle fin sur Claude ; best-effort sur Kimi/Vibe.