On a vérifié cette distinction directement dans le code du service aura-ai, pas dans une page marketing : trois modules de provider (anthropic, gemini, openai) composent le gateway, rien de plus. Le reste du paysage confirme qu’il s’agit d’une vraie catégorie développeur, pas d’un argument marketing isolé. Neon publie deux pages dédiées (« AI Gateway » et « Backend for AI agents »), LiteLLM s’est imposé comme projet open source de référence, et Braintrust y consacre ses propres comparatifs.
L’essentiel
- 3 fournisseurs natifs vérifiés dans le code : OpenAI, Anthropic (Claude), Google Gemini (
aura-ai/src/llm/mod.rs). - Mistral, Scaleway AI et Ollama passent par l’adaptateur OpenAI générique (
OPENAI_BASE_URL), pas par un client dédié. - Le natif apporte plus que la connexion : circuit breaker par (projet, fournisseur), retry à backoff, chaîne de fallback (ordre par défaut Anthropic → OpenAI → Google), normalisation des motifs d’arrêt.
- Anthropic ne couvre que le chat : pas d’API d’embeddings, contrairement à OpenAI et Gemini qui couvrent les deux.
- Neon, LiteLLM et Braintrust confirment la même catégorie côté marché, avec trois approches différentes : gateway managé, proxy open source, contenu comparatif.
Qu’est-ce qu’un AI Gateway sur un backend Postgres ?
Un AI Gateway centralise les appels vers des fournisseurs LLM externes derrière une seule interface, au lieu de coder chaque intégration SDK côté application. Les clés API restent côté serveur, jamais exposées au client. Le gateway ajoute une couche commune de retry, de bascule et de comptage de coûts par-dessus des fournisseurs dont les formats de réponse diffèrent.
Sur un backend Postgres comme Aurabase, ce choix a une conséquence directe : le même gateway alimente le chat applicatif, le NL2SQL (traduction langage naturel vers SQL) et le RAG (recherche vectorielle pgvector). Un fournisseur mal intégré dégrade les trois fonctionnalités à la fois, pas une seule. C’est ce qui rend la distinction natif/compatible plus qu’un détail d’implémentation.
Fournisseur natif ou endpoint compatible : la différence concrète
Un client natif code la forme réelle de l’API du fournisseur : structure de la requête, format de réponse, champs d’usage propres à ce fournisseur. C’est le cas d’Anthropic, dont l’API « Messages » ne ressemble pas à celle d’OpenAI, ou de Gemini, dont le comptage des tokens de raisonnement (thoughtsTokenCount) s’ajoute au compteur de sortie au lieu d’y être déjà inclus.
Un endpoint compatible OpenAI, lui, réutilise le client OpenAI existant et change seulement l’URL de base. Cela fonctionne parce que le fournisseur tiers (Mistral, Scaleway AI, Ollama) a choisi d’imiter le contrat d’API d’OpenAI, souvent avec des écarts : pas de champ de tokens de raisonnement séparé, pas de garantie sur la forme exacte des erreurs. La compatibilité s’arrête là où l’imitation s’arrête.
3 clients LLM natifs chez Aurabase, pas plus
Le fichier qui organise les providers dans aura-ai ne laisse pas de place à l’ambiguïté. Trois modules, un par fournisseur natif, rien d’autre déclaré.
Chaque module implémente le trait ChatProvider (complétion, streaming, nom de modèle). Deux d’entre eux, OpenAI et Gemini, implémentent en plus EmbeddingProvider. Anthropic n’en a pas besoin : Claude n’expose pas d’API d’embeddings côté fournisseur, un fait produit d’Anthropic lui-même, pas une lacune du code Aurabase.
| OpenAI | CLIENT NATIF | Chat + calcul d’embeddings vectoriels haute fidélité |
|---|---|---|
| Anthropic (Claude) | CLIENT NATIF | Inférence Chat & complétion structurée de modèles Claude |
| Google Gemini | CLIENT NATIF | Chat + embeddings, comptage de tokens de raisonnement additif |
| Mistral | ENDPOINT COMPATIBLE | Routage via le protocole standard compatible OpenAI (URL personnalisée) |
| Scaleway AI | ENDPOINT COMPATIBLE | Route via le client openai.rs, variable OPENAI_BASE_URL |
| Ollama (auto-hébergé) | ENDPOINT COMPATIBLE | Route via le client openai.rs, variable OPENAI_BASE_URL |
Brancher Mistral, Scaleway AI ou Ollama sur un projet Aurabase
Configurer Mistral, Scaleway AI ou Ollama ne demande pas de nouveau module : la même variable OPENAI_BASE_URL redirige le client openai.rs vers un autre point de terminaison compatible. C’est une bascule de configuration, pas un développement.
Le comportement change en conséquence. Les erreurs HTTP restent classifiées par le même mécanisme (429 → limite de débit, 5xx → transitoire et retryable, 404 → modèle inconnu), parce que la classification vit au niveau du transport HTTP, pas du parsing spécifique au fournisseur. Ce qui ne suit pas : le comptage précis des tokens de raisonnement, propre au client dédié Gemini.
Pourquoi le natif change la donne : bascule, erreurs, facturation
Le gateway d’Aurabase ajoute trois mécanismes de résilience au-dessus des trois clients natifs. Un circuit breaker par couple (projet, fournisseur) coupe les appels vers un fournisseur en échec répété, avec un jeton de sonde en état semi-ouvert avant de le rouvrir. Un retry à backoff exponentiel avec jitter relance les erreurs transitoires (timeout, 5xx, 429), sans dépendance à une bibliothèque externe de nombres aléatoires.
Quand plusieurs fournisseurs sont configurés en chaîne, une seule tentative est faite par fournisseur avant de basculer au suivant, pour éviter l’amplification (retry × fallback) qui multiplierait les appels amont et la latence totale. L’ordre par défaut de cette chaîne est Anthropic, puis OpenAI, puis Google Gemini.
Chaque fournisseur nomme aussi différemment le motif d’arrêt d’une réponse : length chez OpenAI, MAX_TOKENS chez Gemini, max_tokens chez Anthropic, pour la même réalité (troncature). Le code normalise ces trois vocabulaires vers un jeu commun (stop, length, content_filter, tool_use, other). Sans cette normalisation, un client multi-fournisseur devrait connaître les trois vocabulaires pour détecter une réponse tronquée.
La facturation illustre le même risque. Chez OpenAI et Anthropic, le raisonnement du modèle est déjà compris dans le compteur de tokens de sortie facturés. Chez Gemini, thoughtsTokenCount s’ajoute séparément à candidatesTokenCount : l’ignorer sous-estime le coût réel d’une requête. Un adaptateur générique compatible OpenAI n’a aucune raison de connaître cette particularité, propre au format de réponse natif de Gemini.
Neon, LiteLLM, Braintrust : où se situent les meilleurs LLM gateways en 2026 ?
Le marché confirme qu’un AI Gateway est devenu une brique attendue, pas un argument marketing isolé. Neon publie deux pages produit dédiées, « AI Gateway » et « Backend for AI agents », toutes deux orientées développeur Postgres. LiteLLM s’est imposé comme projet open source de référence pour unifier les appels vers un grand nombre de fournisseurs derrière un format proche d’OpenAI. Braintrust publie de son côté ses propres comparatifs sur le sujet, signe que la catégorie pèse assez pour justifier du contenu éditorial dédié.
Ces acteurs répondent à un besoin réel : réduire le couplage entre le code applicatif et un fournisseur LLM donné. La différence avec Aurabase tient à l’intégration. Le gateway ne vit pas à côté du backend : il partage le même service que le NL2SQL et le RAG, sur la même base Postgres. Le compromis inverse existe aussi : un proxy dédié comme LiteLLM couvre en général davantage de fournisseurs qu’un gateway intégré à un backend applicatif.
| Aurabase | Intégré au backend Postgres (service aura-ai) | 3 natifs vérifiés + compatible OpenAI pour le reste |
|---|---|---|
| Neon AI Gateway | Produit dédié, à côté de la base Postgres managée | Documenté sur deux pages officielles distinctes |
| LiteLLM | Proxy open source indépendant, devant n’importe quel backend | Large éventail de fournisseurs via un format proche d’OpenAI |
Quand choisir un gateway natif, quand choisir un proxy généraliste
Un gateway natif comme celui d’Aurabase a un avantage réel quand le backend et l’IA doivent rester dans le même système : NL2SQL, RAG et chat applicatif partagent alors la même politique de résilience et la même facturation, sans service supplémentaire à opérer.
Le compromis inverse existe. Si votre priorité est de couvrir un très grand nombre de fournisseurs, ou si le gateway doit servir plusieurs backends indépendants et pas seulement un projet Postgres, un proxy généraliste comme LiteLLM reste souvent le bon choix. Aurabase ne cherche pas à concurrencer cette largeur de couverture : le pari est la profondeur sur 3 fournisseurs majeurs, intégrée au reste du backend.
Pour comprendre comment cette intégration change concrètement l’usage du NL2SQL par rapport à une approche par connecteurs externes, l’approche choisie par Supabase, voir Supabase mise sur des connecteurs, pas sur du NL2SQL natif.
Gateway natif intégré contre proxy LLM généraliste
Synthèse des critères qui distinguent réellement les deux approches, sans jugement de valeur : chacune répond à un besoin différent.
| Fournisseurs | Profondeur sur 3 fournisseurs majeurs + compatible OpenAI pour le reste | Large éventail de fournisseurs, intégration généralement uniforme |
|---|---|---|
| Clés API | Chiffrées côté backend, même service que la base de données | Chiffrées côté proxy, service séparé du backend applicatif |
| Lien NL2SQL / RAG | Même service, même résolveur de provider | Aucun lien natif, intégration à construire soi-même |
| Résilience | Circuit breaker par (projet, fournisseur), fallback, retry à backoff | Dépend de la configuration retenue pour le proxy |
| Déploiement | Un service en moins à opérer (déjà dans le backend) | Détachable, réutilisable sur plusieurs projets/backends |
Pour voir ce gateway à l’œuvre sur un cas concret, voir le tutoriel NL2SQL sur Postgres. Pour le détail des capacités IA natives d’Aurabase, voir la page IA native.