βAurabase Cloud est en bêta ouverte — accès instantanéObtenir un accès →
IA Native

IA native sur Postgres : NL2SQL, RAG & Agents

NL2SQL et RAG intégrés directement au backend Aurabase — pas des connecteurs ajoutés après coup. Nommer précisément ce que « natif » veut dire, capacité par capacité.

L’essentiel

Aurabase intègre le NL2SQL (texte vers SQL, validé et borné) et le RAG (recherche vectorielle pgvector, embeddings HNSW) directement dans le backend, avec 3 fournisseurs LLM natifs (OpenAI, Anthropic/Claude, Gemini). Mistral, Scaleway AI et Ollama restent accessibles via un endpoint compatible OpenAI, pas via un client natif dédié.

#
Texte vers SQL

NL2SQL — une question en langage naturel, un SQL sûr

Le moteur NL2SQL d’Aurabase valide chaque requête générée avant de l’exécuter : parsing AST via sqlparser, allowlist stricte de fonctions SQL, et un LIMIT borné toujours présent dans le SQL rendu. Ce n’est pas un simple appel LLM sans garde-fou — c’est un validateur qui refuse tout ce qui n’est pas un SELECT simple.

01
Question
Langage naturel, ex. « CA du mois par client premium »
02
LLM natif
OpenAI, Anthropic ou Gemini traduit en SQL
03
Validation AST
sqlparser : SELECT seul, allowlist de fonctions
04
LIMIT borné
Plafond configurable, jamais silencieux
05
Exécution
Lecture seule, schéma isolé par projet

Le validateur rejette explicitement les CTE/WITH, les sous-requêtes, les UNION, les fonctions hors liste blanche (count, sum, avg, min, max, lower, upper, coalesce, date_trunc, now), et tout accès au catalogue système. Le plafond de lignes par défaut est configurable côté serveur, et peut être resserré par requête — jamais élargi au-delà du plafond serveur.

#
Recherche vectorielle

RAG natif et pgvector — sans brique tierce

pgvector 0.8.6 est déjà présent dans l’image Postgres de chaque projet Aurabase, avec un pipeline d’ingestion incluant retry réseau et une recherche vectorielle HNSW sur 3 classes de dimensions (768, 1536 et 3072) — largement sous la limite de 16 000 dimensions que supporte pgvector.

01
Ingestion
Documents du projet, avec retry réseau
02
Embeddings
768 / 1536 / 3072 dimensions selon le modèle
03
Stockage pgvector
Embarqué dans l’image Postgres tenant
04
Recherche HNSW
Recherche vectorielle approximative rapide
05
Contexte au LLM
Passages pertinents injectés dans le prompt

Pas d’étape séparée pour « ajouter » pgvector : l’extension fait partie de l’image tenant standard. Le pipeline d’ingestion, lui, est une capacité applicative Aurabase construite au-dessus. Voir le guide RAG pas-à-pas pour la mise en œuvre complète.

Le stockage est organisé par namespace : chaque document ingéré (POST /v1/ai/{project_id}/rag/ingest) est chunké, embeddé, puis rangé dans la colonne vectorielle correspondant à sa dimension. La recherche (POST /v1/ai/{project_id}/rag/query) combine récupération et génération ; un endpoint séparé (GET /v1/ai/{project_id}/search) expose la recherche vectorielle seule, sans appel LLM. Changer de modèle d’embedding ne casse pas l’historique : un namespace peut être ré-indexé (POST /v1/ai/{project_id}/rag/{namespace}/reindex) sous un nouveau modèle sans tout ré-ingérer.

Nuance technique rarement documentée ailleurs : au-delà de 2 000 dimensions, HNSW n’indexe pas le type vector standard de pgvector. Pour la classe 3072, Aurabase bascule automatiquement sur halfvec(3072) (précision réduite, indexable) plutôt que de silencieusement dégrader la recherche en scan séquentiel. Par défaut, la récupération renvoie 5 passages (top_k) au-dessus d’un seuil de similarité de 0.3 — les deux réglages sont surchargeables par requête.

#
Fournisseurs LLM

3 fournisseurs natifs, et ce que « natif » exclut

OpenAI, Anthropic (Claude) et Google Gemini ont un client natif dédié dans le code d’Aurabase. Mistral, Scaleway AI et Ollama restent accessibles, mais via un endpoint compatible OpenAI — une nuance qui compte si votre choix de fournisseur dépend de ce détail d’intégration.

FournisseurIntégrationCe que ça change
OpenAIClient natif dédiéConfiguration directe par clé API du projet
Anthropic (Claude)Client natif dédiéConfiguration directe par clé API du projet
Google GeminiClient natif dédiéConfiguration directe par clé API du projet
MistralEndpoint compatible OpenAIFonctionne, sans client dédié optimisé
Scaleway AIEndpoint compatible OpenAIFonctionne, sans client dédié optimisé
Ollama (auto-hébergé)Endpoint compatible OpenAIUtile pour un LLM local ou on-prem
#
Comparatif

Pourquoi Supabase mise sur des connecteurs plutôt que sur du NL2SQL natif

Supabase a lancé un connecteur Claude officiel en février 2026, puis une app ChatGPT officielle au printemps 2026. Les deux permettent d’interroger une base Supabase depuis une interface conversationnelle tierce — une approche d’orchestration externe, différente d’un moteur NL2SQL intégré au backend lui-même. Voir aussi notre comparaison complète Aurabase vs Supabase.

#
Sécurité

Ce qui empêche un LLM d’exécuter n’importe quelle requête

Trois garde-fous s’appliquent avant toute exécution : validation syntaxique stricte (SELECT seul, allowlist de fonctions), bornage de résultat par LIMIT, et isolation du schéma interrogé au seul projet appelant. Le schéma introspecté n’est jamais fourni par le client — il vient de la base du projet, seule source qui fasse autorité.

Un accès qui reste read-only
Le validateur n’accepte que des requêtes SELECT. Toute tentative d’INSERT, UPDATE, DELETE, DROP, CREATE ou ALTER générée par le modèle est rejetée au niveau de l’arbre syntaxique — avant exécution, pas seulement par une instruction dans le prompt.

Au-delà du SELECT-only, le validateur rejette aussi les CTE/WITH, les sous-requêtes, les UNION/INTERSECT/EXCEPT, les fonctions-tables (generate_series, pg_sleep…), les fonctions-fenêtre, le dollar-quoting et les clauses de verrouillage (FOR UPDATE). Une passe de sécurité exhaustive parcourt ensuite l’intégralité de l’arbre syntaxique — DISTINCT ON, OFFSET, FETCH, clauses intra-agrégat inclus — pour empêcher qu’une fonction interdite se glisse dans un recoin de la requête que le premier parcours n’aurait pas visité.

#
Agents

Agents IA sur Postgres — function calling, pas de SQL libre

Un agent construit avec un framework comme LangChain ou LlamaIndex peut appeler les endpoints REST d’Aurabase — NL2SQL, RAG, base de données — comme des outils invocables depuis sa propre boucle de function calling. Le NL2SQL joue alors un rôle précis : transformer la sous-question de l’agent en SQL validé, plutôt que de laisser l’agent générer et exécuter du SQL sans contrôle.

Concrètement, l’outil exposé à l’agent enveloppe un simple appel HTTP vers l’endpoint NL2SQL — c’est le SDK, pas un connecteur dédié au framework, qui fait le travail :

tools/nl2sql-tool.ts
TYPESCRIPT
// Outil personnalisé, appelé par la boucle de function calling de votre agent
export async function nl2sqlTool(question: string) {
const { data, error } = await aura.ai.nl2sql(question, undefined, { limit: 20 })
if (error) throw error
return { sql: data.sql, tables: data.tables }
}
Pas de connecteur packagé aujourd’hui
Aurabase ne fournit pas, à ce jour, de connecteur LangChain ou LlamaIndex officiel packagé : l’intégration passe par des appels HTTP standard vers les endpoints du SDK. Vérifiez la documentation à jour avant de vous appuyer sur une intégration officielle non confirmée.
#
Questions Fréquentes

Foire Aux Questions

Le NL2SQL peut-il modifier des données (UPDATE, DELETE) ?+
Non. Le validateur n’accepte que des requêtes SELECT : toute tentative d’INSERT, UPDATE, DELETE, DROP, CREATE ou ALTER générée par le modèle est rejetée au niveau de l’arbre syntaxique, avant exécution — pas seulement par une consigne dans le prompt.
pgvector suffit-il, ou faut-il une base vectorielle dédiée ?+
Selon la littérature disponible sur ces comparatifs, pgvector ferme l’écart ou l’emporte en dessous d’environ 10 millions de vecteurs ; l’écart avec une base vectorielle dédiée se creuse au-delà de 50 millions. Pour la plupart des cas d’usage RAG applicatifs, pgvector natif suffit — une base dédiée devient pertinente à très grande échelle.
Le serveur MCP d’Aurabase est-il fiable pour connecter un agent IA ?+
Son statut de fiabilité n’a pas fait l’objet d’une vérification récente au moment de la rédaction de cet article. Consultez la documentation officielle à jour avant de vous appuyer dessus en production.
ALLER PLUS LOIN

Connectez du NL2SQL et du RAG à votre base Postgres

Sans assemblage tiers, directement dans le backend.

Aucune carte bancaire requise · 500 MB gratuits · 50 000 MAU