QueryData est un outil de conversion du langage naturel en SQL (NL2SQL) dans l'API Conversational Analytics qui permet à vos agents IA et applications d'IA d'interroger des bases de données opérationnelles en langage naturel. Lorsqu'une application ou un agent envoie une question en langage naturel, QueryData la traduit en une requête SQL spécifique au dialecte, l'exécute sur votre base de données et renvoie les résultats de la requête, ainsi que le code SQL généré et une explication de la façon dont QueryData a interprété la question.
Pour en savoir plus sur l'utilisation de QueryData avec votre base de données, consultez la documentation des bases de données compatibles :
- AlloyDB pour PostgreSQL : présentation de QueryData
- Cloud SQL pour MySQL : présentation de QueryData
- Cloud SQL pour PostgreSQL : présentation de QueryData
- Spanner : présentation de QueryData (bases de données au dialecte GoogleSQL)
- Firestore compatible avec MongoDB : présentation de QueryData
Capacités clés
QueryData offre les fonctionnalités suivantes pour les applications de base de données agentiques :
- Haute précision : atteignez une précision de près de 100 % sur les requêtes critiques en combinant les métadonnées de schéma de base de données avec des ensembles de contexte que vous organisez.
- Pertinence métier : ancrez la génération SQL dans la terminologie du domaine, les définitions des métriques et la logique métier de votre organisation, plutôt que de vous fier uniquement aux noms bruts des tables et des colonnes.
- Explicabilité : générez des explications d'intentions lisibles par l'humain en plus de la requête SQL synthétisée et de la réponse en langage naturel, afin que vous et vos utilisateurs puissiez vérifier comment QueryData a traduit une requête.
- Sécurité des données : appliquez un contrôle des accès au niveau des lignes et protégez les données utilisateur contre l'injection de prompt en utilisant des vues sécurisées paramétrées dans AlloyDB, Cloud SQL pour MySQL et Cloud SQL pour PostgreSQL.
Quand utiliser QueryData
QueryData est conçu pour les développeurs qui créent des applications interactives et des agents IA nécessitant un accès rapide, prévisible et précis aux données des bases de données opérationnelles. Par exemple, QueryData est idéal pour les cas d'utilisation suivants :
- Automatisation du service client : répondez à un grand nombre de demandes d'utilisateurs, telles que "Où est ma commande ?" ou "Quel est le solde actuel de mon compte ?".
- Assistants de recherche pour l'e-commerce et les catalogues : aidez les utilisateurs à filtrer et à explorer des catalogues structurés à l'aide de questions multicritères telles que "Montre-moi des ordinateurs portables légers avec au moins 16 Go de RAM et une autonomie de plus de 10 heures".
- Opérations sur le terrain et outils internes : permettez aux employés d'interroger les niveaux d'inventaire, la disponibilité des pièces ou l'état des tickets d'assistance en temps réel.
- Workflows multi-agents : exposez l'interrogation de base de données structurée en tant qu'outil dans des frameworks agentiques tels que Agent Development Kit (ADK), MCP Toolbox for Databases ou LangChain.
Fonctionnement de QueryData
Les grands modèles de langage (LLM) génériques ne disposent pas d'informations sur les valeurs de données privées de votre organisation, les noms de colonnes cryptiques ou les règles métier spécifiques à un domaine. Pour combler l'écart entre la façon dont les utilisateurs posent des questions et la façon dont votre base de données stocke les données, QueryData utilise le contexte multicouche suivant :
- Ontologies de schéma : descriptions enrichies des tables et des colonnes dans votre catalogue de bases de données ou votre Knowledge Catalog qui expliquent la signification métier des tables, des colonnes, des codes d'état et des relations de jointure.
- Ensembles de contexte : collections sélectionnées associées à votre instance de base de données qui définissent les trois éléments de base suivants :
- Modèles de requêtes : questions représentatives en langage naturel associées à des instructions SQL paramétrées et validées, ainsi qu'à des explications d'intent.
- Facettes de requête : fragments de filtre et prédicats SQL modulaires que QueryData combine de manière dynamique avec des modèles de requête pour permettre la recherche par facettes sans nécessiter de modèle distinct pour chaque combinaison de filtres.
- Recherches de valeurs : requêtes de recherche exacte, de recherche approximative par trigramme ou de recherche vectorielle sémantique qui associent des expressions informelles, des synonymes ou des termes mal orthographiés de l'utilisateur à des valeurs et des colonnes réelles de votre base de données.
Lorsque votre application appelle la méthode projects.locations.queryData dans l'API Conversational Analytics, QueryData effectue les étapes suivantes :
- Résolution des valeurs : exécute des requêtes de recherche de valeurs sur votre base de données pour mapper les expressions d'entités de la requête (telles que les noms de villes, les catégories de produits ou les codes) aux valeurs exactes des colonnes de la base de données.
- Correspondance d'intent et désambiguïsation : associe la question de l'utilisateur aux modèles de requête et aux facettes de votre ensemble de contexte, ainsi qu'à l'ontologie de votre schéma. Si une question est ambiguë ou s'il manque des paramètres obligatoires, QueryData peut renvoyer des questions de désambiguïsation pour clarifier l'intention de l'utilisateur.
- Synthèse de requête : synthétise une requête SQL spécifique au dialecte en combinant la structure de modèle correspondante, les facettes applicables et les valeurs littérales résolues, ou en générant du code SQL à partir de l'ontologie de votre schéma lorsqu'aucun modèle ne correspond.
- Exécution de la requête et réponse : exécute le code SQL généré sur la base de données cible et renvoie l'ensemble de résultats tabulaires, la requête SQL générée, une explication de l'intention et un résumé facultatif en langage naturel.
Stratégies pour obtenir une conversion Text-to-SQL d'une précision quasi parfaite
Atteindre une précision de près de 100 % pour la conversion text-to-SQL est un processus d'ingénierie itératif appelé hill-climbing. Au lieu d'essayer d'anticiper toutes les questions possibles des utilisateurs, vous commencez par des descriptions de schéma de référence, vous évaluez votre agent par rapport à un benchmark représentatif de requêtes SQL de référence à l'aide d'EvalBench, puis vous résolvez les écarts de précision.
Pour en savoir plus sur les stratégies recommandées (ou recettes) pour résoudre les écarts de précision, y compris les diagrammes de l'architecture, les exemples SQL et les benchmarks d'évaluation, consultez Six recettes pour obtenir une conversion Text-to-SQL d'une précision quasi parfaite et essayez l'atelier de programmation associé pour apprendre à implémenter ces recettes de précision Text-to-SQL.
En résumé, les six recettes sont les suivantes :
- Recette 0 : Initialiser un ensemble de contextes et connecter votre application Commencez par ajouter des commentaires descriptifs sur les tables et les colonnes dans votre schéma, puis connectez votre application à QueryData à l'aide des bibliothèques clientes de l'API Conversational Analytics ou de l'outil
cloud-gemini-data-analytics-querydans MCP Toolbox for Databases. - Recette 1 : Injecter l'interprétation avec des modèles de requête. Fournissez des exemples de requêtes SQL validées pour vos questions d'entreprise les plus importantes, et généralisez-les en modèles SQL paramétrés, en explications d'intent paramétrées et en fichiers manifestes qui capturent des variantes de questions sémantiquement équivalentes.
- Recette 2 : Utiliser des modèles à facettes. Associez des modèles de requête de base à des facettes de requête modulaires (conditions SQL réutilisables avec leurs propres fichiers manifestes et intents) afin que QueryData puisse composer de manière dynamique des requêtes multifiltres sans nécessiter de modèle distinct pour chaque combinaison de conditions.
- Recette 3 : Désambiguïser avec la recherche de valeurs. Définissez des requêtes de recherche de valeurs pour associer des expressions de valeurs dans des questions en langage naturel (y compris la terminologie privée, les synonymes et les fautes d'orthographe) à des colonnes et des valeurs de base de données réelles, et laissez QueryData demander des clarifications lorsqu'un terme correspond à plusieurs types d'entités.
- Recette 4 : Intégrer la recherche sémantique et les opérateurs d'IA Combinez des modèles et des facettes SQL structurés avec Vector Search et des opérateurs d'IA intégrés à la base de données (comme
AI.IFetAI.RANKdans AlloyDB) pour filtrer et classer du texte non structuré ou des données multimodales à l'aide de critères sémantiques. - Recette 5 : Utiliser des vues sécurisées paramétrées Appliquez une sécurité stricte au niveau des lignes et protégez les données utilisateur contre l'injection de prompt en liant les paramètres utilisateur authentifiés dans des vues sécurisées paramétrées pour AlloyDB, Cloud SQL pour MySQL et Cloud SQL pour PostgreSQL.
Vous pouvez appliquer ces recettes manuellement ou automatiser le workflow d'optimisation (extension des ensembles d'évaluation, exécution des évaluations EvalBench, analyse des écarts de précision et proposition de nouveaux modèles, facettes et recherches de valeurs) à l'aide de l'agent d'ingénierie de contexte Open Source.
Étapes suivantes
- Consultez le livre blanc Six méthodes pour obtenir une conversion Text-to-SQL d'une précision quasi parfaite.
- Consultez la documentation QueryData de votre base de données :
- Découvrez comment définir le contexte d'un agent de données pour les sources de données de base de données dans l'API Conversational Analytics.
- Consultez la documentation de référence de l'API REST
projects.locations.queryData.