LLM Gateway

Documentation

Guide d’utilisation

Comment configurer et utiliser LLM Gateway de bout en bout.

Principe

LLM Gateway est un point d’entrée unique vers plusieurs fournisseurs d’IA (OpenAI, Anthropic, Google Gemini, Mistral, Ollama, Nicomind). Chaque application reçoit UNE clé LLM Gateway ; la gateway connaît le fournisseur configuré pour cette app et y route les requêtes en injectant les vrais identifiants.

  • Une clé par application — les vraies clés des fournisseurs ne quittent jamais la gateway.
  • Le fournisseur et ses identifiants se configurent par application, depuis le dashboard.
  • Les identifiants sont chiffrés en base ; ils ne sont jamais réaffichés.

Connexion au dashboard

Deux façons de se connecter : le super-administrateur intégré (identifiant + mot de passe définis dans la configuration du serveur), ou un utilisateur créé par invitation qui se connecte avec son email et son mot de passe.

Créer une application

  1. Ouvrir la page Apps.
  2. Créer une app en lui donnant un nom.
  3. Copier la clé API affichée — elle n’est montrée qu’une seule fois.

Cette clé est celle que tes clients utiliseront pour appeler la gateway (et seulement celle-ci).

Configurer un fournisseur

  1. Ouvrir la page Providers (menu latéral).
  2. Choisir le fournisseur (OpenAI, Anthropic, Google, Mistral, Ollama, Nicomind).
  3. Remplir les champs demandés (clé API, URL, et pour Nicomind les paramètres OIDC).
  4. Cliquer sur « Tester » pour vérifier les identifiants, puis « Enregistrer ».

Le provider est unique pour toute la gateway : toutes les applications l’utilisent. Le formulaire s’adapte au fournisseur choisi, et un champ secret laissé vide lors d’une modification conserve la valeur déjà enregistrée.

Appeler la gateway

Utilise le client/SDK habituel de ton fournisseur, mais pointe-le sur la gateway et utilise la clé de ton application. Remplace <gateway> par l’URL de la gateway et <APP_KEY> par la clé de ton app.

OpenAI / Mistral — base : https://<gateway>/v1

curl https://<gateway>/v1/chat/completions \
  -H "Authorization: Bearer <APP_KEY>" -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Bonjour"}]}'

Anthropic (Claude)

curl https://<gateway>/v1/messages \
  -H "x-api-key: <APP_KEY>" -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-3-5-sonnet-latest","max_tokens":256,"messages":[{"role":"user","content":"Bonjour"}]}'

Google (Gemini)

curl "https://<gateway>/v1beta/models/gemini-1.5-pro:generateContent" \
  -H "x-goog-api-key: <APP_KEY>" -H "Content-Type: application/json" \
  -d '{"contents":[{"role":"user","parts":[{"text":"Bonjour"}]}]}'

Format Ollama (fournisseur Ollama, Nicomind ou OpenAI)

curl https://<gateway>/api/chat \
  -H "Authorization: Bearer <APP_KEY>" -H "Content-Type: application/json" \
  -d '{"model":"gpt-oss:120b","messages":[{"role":"user","content":"Bonjour"}],"stream":false}'

Avec le fournisseur OpenAI (OpenAI ou tout hôte au format OpenAI, par exemple un proxy LiteLLM), la gateway traduit /api/chat, /api/generate, /api/embed et /api/tags vers les endpoints /v1 du fournisseur : les apps écrites pour l’API Ollama continuent de fonctionner sans modification.

n8n : pour une app dont le fournisseur est Ollama, Nicomind ou OpenAI, utilise le node « Ollama Chat Model » avec l’URL de la gateway comme Base URL et la clé de l’app comme API key.

Utilisateurs & rôles

Tu peux inviter des membres par email et leur attribuer un rôle. Un rôle est un ensemble d’accès (lire les logs, gérer les apps, etc.) choisis dans un catalogue.

  1. Page Rôles → créer un rôle en cochant les accès voulus.
  2. Page Utilisateurs → inviter par email en choisissant un rôle.
  3. Copier le lien d’invitation et l’envoyer ; la personne définit son mot de passe et accède à l’app.

Les accès sont appliqués partout : un utilisateur ne voit que les pages autorisées et ne peut effectuer que les actions permises par son rôle.

Codes d’erreur

Les erreurs de la gateway suivent un format uniforme : { "error": { "code", "message", "provider", "status", "detail" } }. Principaux codes :

  • no_provider_configured — aucun fournisseur configuré pour cette app (Apps → Provider).
  • provider_auth_failed — identifiants du fournisseur invalides/expirés.
  • provider_unreachable — l’URL du fournisseur n’est pas joignable.
  • missing_required_field — un champ requis manque dans la config du fournisseur.
  • invalid_api_key — clé LLM Gateway invalide.