SQL-Suche (NL2SQL)
Verwenden Sie SQL Search (NL2SQL), um Anforderungen in natürlicher Sprache in validiertes SQL für Unternehmensdaten in OCI Generative AI zu konvertieren.
NL2SQL unterstützt Enterprise AI Agents bei der Arbeit mit föderierten Unternehmensdaten, ohne die zugrunde liegenden Daten zu verschieben oder zu kopieren. Es verwendet eine semantische Anreicherungsebene, um Geschäftsbegriffe Datenbankfeldern, Tabellen und Joins zuzuordnen, und generiert dann SQL aus Eingabe in natürlicher Sprache.
NL2SQL generiert nur SQL. Die Abfrage wird nicht ausgeführt.
Bevor Sie beginnen
Bevor Sie NL2SQL verwenden, erstellen Sie eine Datenbank, und konfigurieren Sie die erforderlichen Datenbankverbindungen.
Sie benötigen mindestens:
- Eine Quell-Oracle Autonomous Database
- Verbindung zur Datenbanktoolserviceanreicherung
- Abfrageverbindung zu Datenbanktools
Semantischen Speicher erstellen
Um NL2SQL zu verwenden, erstellen Sie eine OCI-semantische Speicherressource.
Ein semantischer Speicher wird von einem Vektorspeicher mit strukturierten Daten gesichert und umfasst zwei DBTools-Verbindungen:
- Anreicherungsverbindung
- Abfrageverbindung
In der Konsole
Erstellen Sie in der Konsole einen Vektorspeicher, und wählen Sie Strukturierte Daten aus. Wenn Sie Strukturierte Daten auswählen, werden die Konfigurationsoptionen für den semantischen Speicher angezeigt, einschließlich der Anreicherungseinstellungen und der Datenbankverbindungsdetails.
Mit der OCI Generative AI-API
Erstellen Sie in der OCI Generative AI-API mit dem Vorgang CreateSemanticStore einen semantischen Speicher.
| Basis-URL | Endpunktpfad | Authentifizierung |
|---|---|---|
https://generativeai.${region}.oci.oraclecloud.com/20231130 |
/semanticStores |
Nur IAM-Session |
Die CreateSemanticStore-API ist Teil der OCI Generative AI-Service-API und verwendet die OCI-IAM-basierte Authentifizierung.
DBTools-Verbindungen
NL2SQL verwendet zwei Datenbankverbindungen mit unterschiedlichen Zwecken.
Anreicherungsverbindung
Die Anreicherungsverbindung ist die Verbindung mit höheren Berechtigungen, die während der Anreicherung verwendet wird. Sie benötigen Berechtigungen, um:
- Abfragen ausführen
- DDL-Vorgänge ausführen
- Auf Beispielwerte aus der Datenbank zugreifen
OCI Generative AI verwendet diese Verbindung, um Schemainformationen zu lesen und die für die SQL-Generierung erforderlichen Metadaten zu erstellen.
Abfrageverbindung
Die Abfrageverbindung ist die Verbindung mit niedrigeren Berechtigungen, die zum Ausführen von Abfragen im Namen des abfragenden Benutzers verwendet wird.
Diese Trennung trägt dazu bei, dass die Verantwortlichkeiten für die Generierung und Ausführung unterschiedlich bleiben, und unterstützt eine sicherere Zugriffskontrolle.
Erweiterung
Der Anreicherungsprozess liest Schemametadaten, wie Tabellen und Spalten, aus der angemeldeten Datenbank. OCI Generative AI verwendet diese Metadaten, um ein besseres SQL zu generieren.
Sie können auswählen, wann die Anreicherung ausgeführt wird:
- Beim Erstellen: Die Anreicherung wird automatisch gestartet, nachdem der semantische Speicher erstellt wurde
- Manuell: Die Anreicherung wird später über einen separaten API-Aufruf ausgeführt
Um die Anreicherung manuell auszulösen, rufen Sie die API GenerateEnrichmentJob auf.
SQL aus natürlicher Sprache generieren
Rufen Sie nach Abschluss der Anreicherung die API GenerateSqlFromNl auf, um die Eingabe in natürlicher Sprache in SQL zu konvertieren.
Diese API:
- Akzeptiert Eingabe in natürlicher Sprache
- Verwendet die angereicherten semantischen Metadaten
- Gibt generierte SQL zurück
Diese API führt die SQL nicht für die Datenbank aus.
Abfrageausführung
Der DBTools MCP-Server orchestriert den vollständigen Ausführungsablauf:
- Ruft den NL2SQL-Service auf, um SQL zu generieren.
- Autorisiert die Anforderung.
- Führt die Abfrage für die Quelldatenbank aus.
- Wendet die entsprechenden Leitschienen an.
- Verwendet die Identität des Endbenutzers zur Ausführung.
Auf diese Weise können Agents mit Unternehmensdaten arbeiten und gleichzeitig die Ausführung im Quellsystem unter vorhandenen Berechtigungen beibehalten.
NL2SQL in einem Agent-Workflow verwenden
NL2SQL kann Teil eines umfassenderen Agent-Workflows sein.
Ein Client kann:
- Senden Sie eine Anforderung an die Responses API, um die Agent-Planung zu starten und die Validierung anzufordern
- GenerateSqlFromNl aufrufen, um die Anforderung in natürlicher Sprache in SQL zu konvertieren
- Verwenden Sie den DBTools MCP Server, um die Abfrage bei Bedarf auszuführen
- Übergeben Sie die generierten SQL- oder Abfrageergebnisse für den nächsten Schritt im Workflow wieder an die Responses-API
Auf diese Weise können Sie den strukturierten Datenzugriff mit umfassenderer Agent-Begründung und -Orchestrierung kombinieren.
So passt NL2SQL zu Agents
NL2SQL ist eine Unternehmensdatenfunktion in OCI Generative AI. Es ist nützlich, wenn Ihr Agent mit strukturierten Unternehmensdaten arbeiten muss, indem er Anforderungen in Geschäftssprache in SQL übersetzt.
Im Gegensatz zu Dateisuche, Codeinterpreter, Funktionsaufruf und MCP-Aufruf wird NL2SQL nicht als tools-Eintrag der Responses-API konfiguriert. Es verwendet einen eigenen API-Flow und unterstützende Ressourcen, die sich auf Folgendes konzentrieren:
- Semantischer Shop
- DBTools-Verbindungen
- Erweiterung
- GenerateSqlFromNl
NL2SQL-API
Sie können die folgende API für das Tool NL2SQL verwenden:
- Semantische Filialen
-
CreateSemanticStoreListSemanticStoresGetSemanticStoreUpdateSemanticStoreChangeSemanticStoreCompartmentDeleteSemanticStore
- Anreicherungsjobs
-
ListEnrichmentJobsGetEnrichmentJobGenerateEnrichmentJobCancelEnrichmentJobGenerateSqlFromNl
- SQL generieren
GenerateSqlFromNl