1/5
Projet ouvert · Google ADK · BigQuery

Une question en français.
Un SQL vérifié.
Le bon graphique.

Un assistant data qui ne voit jamais le schéma : il choisit dans une couche sémantique, le code écrit et contrôle la requête.

Données publiques fictives thelook_ecommerce→
2/5
La règle d'architecture

Le modèle choisit des noms.
Le code écrit le SQL.

Gemini (ADK)traduit la question en métriques, axes, filtres et période du catalogue
semantique.yaml8 métriques, 15 dimensions, 3 jointures, valeurs exactes (Brésil = « Brasil »)
CompilateurSQL paramétré, déterministe, testé sans modèle
Garde-fouslecture seule, dry-run, tables en liste blanche, plafond 1 Go appliqué par BigQuery
Graphiquechoisi par la forme du résultat, rendu en Vega-Lite
3/5
Mesuré les 15 et 16 octobre 2026

20 questions de référence, résultats recalculés à la main

20/20résultats exacts, comparés valeur par valeur à du SQL écrit sans la couche sémantique
18/18graphiques du type attendu
2/2refus corrects : e-mails clients, données absentes du catalogue
0,002 $de BigQuery pour l'évaluation complète (336 Mo facturés)

20 questions valident la chaîne de traitement, pas un taux de réussite en production : la liste s'allonge avec chaque question réelle qui échoue.

4/5
Ce qui a cassé

Trois pièges, trois parades

185 appels d'outils inventés

Un paramètre en objets imbriqués : le modèle appelait « Filtre » et un interpréteur Python qui n'existent pas. Parade : paramètres plats, plafond de 8 appels modèle.

Un chiffre d'affaires gonflé de 34 %

Sommer tous les statuts, annulés et retournés compris (2025 : 2,45 M au lieu de 1,83 M). Parade : une seule définition, dans le YAML, citée dans les limites de la réponse.

Des courbes entre catégories

L'interface suivait la suggestion du modèle. Parade : la forme du résultat décide, la suggestion n'est retenue que si elle est compatible.

5/5
Le code

Ouvert, testé, déployé puis supprimé

Google ADK 2.10, Gemini 2.5 Flash sur Vertex AI, BigQuery, FastAPI, Vega-Lite. Cloud Run privé avec un compte de service à deux rôles.

make test : 57 tests sans identifiants.
make e2e : les 20 questions réelles.
make cloud-down : nettoyage vérifié.