Recherche SQL (NL2SQL)
Utilisez SQL Search (NL2SQL) pour convertir des demandes en langage naturel en SQL validé pour les données d'entreprise dans OCI Generative AI.
NL2SQL aide les agents d'IA d'entreprise à travailler avec des données d'entreprise fédérées sans déplacer ou copier les données sous-jacentes. Il utilise une couche d'enrichissement sémantique pour mapper des termes métier avec des champs de base de données, des tables et des jointures, puis génère du code SQL à partir d'une entrée en langue naturelle.
NL2SQL génère SQL uniquement. Il n'exécute pas l'interrogation.
Avant de commencer
Avant d'utiliser NL2SQL, créez une base de données et configurez les connexions requises.
Au minimum, vous devez :
- Oracle Autonomous Database source
- Connexion d'enrichissement du service d'outils de base de données
- Connexion d'interrogation du service d'outils de base de données
Créer un magasin sémantique
Pour utiliser NL2SQL, créez une ressource de magasin sémantique OCI.
Un magasin sémantique est soutenu par un magasin vectoriel avec des données structurées et comprend deux connexions DBTools :
- Connexion d'enrichissement
- Connexion à l'interrogation
Dans la console
Dans la console, créez un magasin de vecteurs et sélectionnez Données structurées. Lorsque vous sélectionnez Données structurées, les options de configuration du magasin sémantique s'affichent, notamment les paramètres d'enrichissement et les détails de connexion à la base de données.
En utilisant l'API du service d'intelligence artificielle générative pour OCI
Dans l'API du service d'intelligence artificielle générative pour OCI, créez un magasin sémantique à l'aide de l'opération CreateSemanticStore.
| URL de base | Chemin du point d'extrémité | Authentification |
|---|---|---|
https://generativeai.${region}.oci.oraclecloud.com/20231130 |
/semanticStores |
Session IAM uniquement |
L'API CreateSemanticStore fait partie de l'API du service d'intelligence artificielle générative pour OCI et utilise l'authentification basée sur OCI IAM.
Connexions DBTools
NL2SQL utilise deux connexions de base de données à des fins différentes.
Connexion d'enrichissement
La connexion d'enrichissement est la connexion à privilèges supérieurs utilisée lors de l'enrichissement. Elle a besoin de privilèges pour :
- Exécuter des interrogations
- Effectuer des opérations LDD
- Accéder aux exemples de valeurs de la base de données
OCI Generative AI utilise cette connexion pour lire les informations du schéma et créer les métadonnées nécessaires à la génération SQL.
Connexion à l'interrogation
La connexion d'interrogation est la connexion avec privilèges inférieurs utilisée pour exécuter des interrogations pour le compte de l'utilisateur qui effectue l'interrogation.
Cette séparation permet de garder les responsabilités de génération et d'exécution distinctes et prend en charge un contrôle d'accès plus sûr.
Enrichissement
Le processus d'enrichissement lit les métadonnées du schéma, telles que les tables et les colonnes, à partir de la base de données connectée. OCI Generative AI utilise ces métadonnées pour générer un meilleur SQL.
Vous pouvez effectuer une sélection lors de l'exécution de l'enrichissement :
- À la création : L'enrichissement commence automatiquement après la création du magasin sémantique
- Manuel : L'enrichissement s'exécute plus tard au moyen d'un appel d'API distinct
Pour déclencher l'enrichissement manuellement, appelez l'API GenerateEnrichmentJob.
Générer SQL à partir du langage naturel
Une fois l'enrichissement terminé, appelez l'API GenerateSqlFromNl pour convertir l'entrée en langue naturelle en SQL.
Cette API :
- Accepte les entrées en langue naturelle
- Utilise les métadonnées sémantiques enrichies
- Retourne le code SQL généré
Cette API n'exécute pas le SQL sur la base de données.
Exécution de l'interrogation
Le serveur MCP DBTools orchestre le flux d'exécution complet :
- Appelle le service NL2SQL pour générer du code SQL.
- Autorise la demande.
- Exécute l'interrogation sur la base de données source.
- Applique les garde-corps appropriés.
- Utilise l'identité de l'utilisateur final pour l'exécution.
Cela permet aux agents de travailler avec les données d'entreprise tout en maintenant l'exécution dans le système source sous les autorisations existantes.
Utiliser NL2SQL dans un workflow Agentic
NL2SQL peut faire partie d'un workflow agentique plus large.
Un client peut :
- Envoyer une demande à l'API Réponses pour démarrer la planification de l'agent et la validation de la demande
- Appeler GenerateSqlFromNl pour convertir la demande en langage naturel en SQL
- Utilisez le serveur MCP DBTools pour exécuter l'interrogation, si nécessaire
- Transmettre les résultats SQL ou d'interrogation générés à l'API de réponses pour l'étape suivante du flux de travail
Cela vous permet de combiner l'accès aux données structurées avec un raisonnement et une orchestration d'agent plus larges.
Fonctionnement de NL2SQL avec les agents
NL2SQL est une capacité de données d'entreprise basée sur l'intelligence artificielle générative pour OCI. Il est utile lorsque votre agent doit utiliser des données d'entreprise structurées en traduisant des demandes en langage métier en SQL.
Contrairement à la recherche de fichiers, à l'interpréteur de code, à l'appel de fonction et à l'appel MCP, NL2SQL n'est pas configuré en tant qu'entrée tools d'API de réponses. Il utilise son propre flux d'API et ses ressources de soutien, centrées sur :
- Magasin sémantique
- Connexions à DBTools
- Enrichissement
- GenerateSqlFromNl
API NL2SQL
Vous pouvez utiliser l'API suivante pour l'outil NL2SQL :
- Magasins sémantiques
-
CreateSemanticStoreListSemanticStoresGetSemanticStoreUpdateSemanticStoreChangeSemanticStoreCompartmentDeleteSemanticStore
- Tâches d'enrichissement
-
ListEnrichmentJobsGetEnrichmentJobGenerateEnrichmentJobCancelEnrichmentJobGenerateSqlFromNl
- Générer SQL
GenerateSqlFromNl