Mit "Select AI" SQL aus Prompts in natürlicher Sprache generieren
Mit dem Feature "KI auswählen" kann autonome KI-Datenbank generative KI mit Large Language Models (LLMs) verwenden, um den Eingabetext des Benutzers in Oracle SQL zu konvertieren. Select AI verarbeitet die Eingabeaufforderung in natürlicher Sprache, ergänzt die Eingabeaufforderung mit Metadaten und generiert dann eine SQL-Abfrage und führt sie aus.
Unterstützte Plattform
Select AI wird auf der serverlosen Autonomous AI Database und der Autonomous AI Database auf der dedizierten Exadata-Infrastruktur und der Cloud bei Kunden unterstützt.
- Autonome KI-Datenbank Serverlos
- Autonome KI-Datenbank auf dedizierter Exadata-Infrastruktur
- Region Autonome KI-Datenbank auf dedizierter Exadata-Infrastruktur
- Autonome KI-Datenbank Cloud@Customer
Informationen zur SQL-Generierung
Die Verwendung natürlicher Sprache zur Interaktion mit Ihren Datenbankdaten ist jetzt mit LLMs möglich. Dies bedeutet, dass Sie die Datenbank in natürlicher Sprache abfragen können, z.B. in einfachem Englisch.
Wenn Sie Select AI verwenden, verwaltet Autonomous AI Database den Prozess der Konvertierung natürlicher Sprache in SQL. Dies bedeutet, dass Sie eine Eingabeaufforderung in natürlicher Sprache anstelle von SQL-Code für die Interaktion mit Ihren Daten bereitstellen können. Select AI dient als Produktivitäts-Tool für SQL-Benutzer und -Entwickler und ermöglicht es nicht erfahrenen SQL-Benutzern, nützliche Erkenntnisse aus ihren Daten abzuleiten, ohne Datenstrukturen oder technische Sprachen verstehen zu müssen.
DBMS_CLOUD_AI-Package in Autonomous AI Database ermöglicht die Integration mit einem benutzerdefinierten LLM zur Generierung von SQL-Code mit Eingabeaufforderungen in natürlicher Sprache. Das Package unterstützt das LLM dabei, das Datenbankschema zu kennen und es anzuweisen, eine mit diesem Schema konsistente SQL-Abfrage zu erstellen. Das DBMS_CLOUD_AI-Package funktioniert mit KI-Providern wie OpenAI, Cohere, Azure OpenAI Service und Oracle Cloud Infrastructure Generative AI.
Hinweis:
Benutzer müssen über einen Account beim KI-Provider verfügen und ihre Zugangsdaten überDBMS_CLOUD_AI-Objekte bereitstellen, die von der Autonomous AI Database verwendet werden.
Terminologie
Es ist wichtig, die verschiedenen Begriffe zu verstehen, die mit Select AI verwendet werden, bevor Sie sie verwenden.
Die folgenden Begriffe beziehen sich auf das Feature "AI auswählen":
| Begriff | Definition |
|---|---|
|
Datenbankzugangsdaten |
Datenbankzugangsdaten sind Authentifizierungszugangsdaten für den Zugriff auf und die Interaktion mit Datenbanken. Sie bestehen in der Regel aus einem Benutzernamen und einem Kennwort, manchmal ergänzt durch zusätzliche Authentifizierungsfaktoren wie Sicherheitstoken. Diese Zugangsdaten werden verwendet, um eine sichere Verbindung zwischen einer Anwendung oder einem Benutzer und einer Datenbank herzustellen und sicherzustellen, dass nur autorisierte Personen oder Systeme auf die in der Datenbank gespeicherten Daten zugreifen und diese bearbeiten können. |
|
Halluzination im LLM |
Halluzination im Kontext von Large Language Models bezieht sich auf ein Phänomen, bei dem das Modell Text generiert, der falsch, unsinnig oder nicht mit der Eingabeaufforderung verknüpft ist. Obwohl es ein Ergebnis des Versuchs des Modells ist, kohärenten Text zu erzeugen, können diese Fälle Informationen enthalten, die fabriziert, irreführend oder rein fantasievoll sind. Halluzinationen können aufgrund von Verzerrungen in Trainingsdaten, mangelndem Kontextverständnis oder Einschränkungen im Trainingsprozess des Modells auftreten. |
| IAM | Mit Oracle Cloud Infrastructure Identity and Access Management (IAM) können Sie den Zugriff auf Ihre Cloud-Ressourcen kontrollieren. Sie können den Zugriffstyp einer Benutzergruppe kontrollieren und festlegen, für welche spezifischen Ressourcen der Zugriff gilt. Weitere Informationen finden Sie unter Überblick über Identity and Access Management. |
|
Natural Language Prompts |
Natural Language Prompts sind menschenlesbare Anweisungen oder Anforderungen, die zur Anleitung generativer KI-Modelle wie Large Language Models bereitgestellt werden. Anstatt bestimmte Programmiersprachen oder Befehle zu verwenden, können Benutzer mit diesen Modellen interagieren, indem sie Eingabeaufforderungen in einer dialogorientierteren oder natürlichen Sprachform eingeben. Die Modelle generieren dann die Ausgabe basierend auf dem angegebenen Prompt. |
|
Network Access Control-Liste (ACL) |
Eine Netzwerkzugriffssteuerungsliste ist eine Gruppe von Regeln oder Berechtigungen, die definieren, welcher Netzwerkverkehr durch ein Netzwerkgerät wie einen Router, eine Firewall oder ein Gateway geleitet werden darf. ACLs werden verwendet, um eingehenden und ausgehenden Datenverkehr basierend auf verschiedenen Kriterien wie IP-Adressen, Portnummern und Protokollen zu steuern und zu filtern. Sie spielen eine entscheidende Rolle bei der Netzwerksicherheit, indem sie es Administratoren ermöglichen, den Netzwerkverkehr zu verwalten und einzuschränken, um unbefugten Zugriff, potenzielle Angriffe und Datenschutzverletzungen zu verhindern. |
|
Ähnlichkeitssuche |
Die Ähnlichkeitssuche identifiziert und ruft Datenpunkte ab, die einer bestimmten Abfrage entsprechen, indem Featurevektoren in einem Vektorspeicher verglichen werden. |
|
Vektorabstände |
Vektorabstände messen die Ähnlichkeit oder Unähnlichkeit zwischen Merkmalvektoren, indem sie den Abstand zwischen ihnen in einem mehrdimensionalen Raum berechnen. |
|
Vektorindex |
Ein Vektorindex organisiert und speichert Featurevektoren, um eine effiziente Ähnlichkeitssuche und das Abrufen verwandter Daten zu ermöglichen. |
|
Vektoren |
Ein Vektorspeicher umfasst Systeme, die semantische Ähnlichkeitssuche mit Vektoreinbettungen speichern, verwalten und ermöglichen. Dazu gehören Standalone-Vektordatenbanken und Oracle Database 23ai AI Vector Search. |
Verwendungsrichtlinien
Enthält Verwendungsrichtlinien, die eine effektive und ordnungsgemäße Verwendung von Eingabeaufforderungen in natürlicher Sprache für die SQL-Generierung gewährleisten, um eine verbesserte Benutzererfahrung zu gewährleisten.
Verwendungszweck
Dieses Feature ist für die Generierung und Ausführung von SQL-Abfragen gedacht, die sich aus vom Benutzer bereitgestellten Eingabeaufforderungen in natürlicher Sprache ergeben. Es automatisiert, was ein Benutzer manuell basierend auf seinen Schemadaten in Kombination mit einem Large Language Model (LLM) seiner Wahl ausführen kann.
Während jede Eingabeaufforderung bereitgestellt werden kann, einschließlich derer, die sich nicht auf die Erstellung von SQL-Abfrageergebnissen beziehen, konzentriert sich Select AI auf die Generierung von SQL-Abfragen. Mit "AI auswählen" können allgemeine Anforderungen mit der Aktion chat weitergeleitet werden.
Prompt-Erweiterungsdaten
Die Datenbank erweitert den benutzerdefinierten Prompt um Datenbankmetadaten, um Halluzinationen aus dem LLM zu mildern. Die erweiterte Eingabeaufforderung wird dann an das benutzerdefinierte LLM gesendet, um die Abfrage zu erstellen.
Die Datenbank ergänzt die Eingabeaufforderung nur mit Schemametadaten. Diese Metadaten können Schemadefinitionen, Tabellen- und Spaltenkommentare sowie im Data Dictionary und Katalog verfügbare Inhalte enthalten. Für die Zwecke der SQL-Generierung stellt die Datenbank beim Erweitern der Eingabeaufforderung keinen Tabellen- oder View-Inhalt (tatsächliche Zeilen- oder Spaltenwerte) bereit.
Die Aktion narrate liefert jedoch das Ergebnis der Abfrage, die Datenbankdaten enthalten kann, an das benutzerdefinierte LLM, aus dem Text in natürlicher Sprache generiert werden soll, der die Abfrageergebnisse beschreibt.
WARNUNG:
Große Sprachmodelle (LLMs) wurden auf einer breiten Palette von Textdokumentationen und Inhalten trainiert, in der Regel aus dem Internet. Infolgedessen haben LLMs möglicherweise Muster aus ungültigen oder böswilligen Inhalten integriert, einschließlich SQL-Injection. LLMs sind zwar in der Lage, nützliche und relevante Inhalte zu generieren, können jedoch auch falsche und falsche Informationen generieren, einschließlich SQL-Abfragen, die zu ungenauen Ergebnissen führen und/oder die Sicherheit Ihrer Daten beeinträchtigen.
Die vom benutzerdefinierten LLM-Provider in Ihrem Namen generierten Abfragen werden in Ihrer Datenbank ausgeführt. Ihre Nutzung dieser Funktion erfolgt ausschließlich auf eigene Gefahr und stellt ungeachtet anderer Geschäftsbedingungen im Zusammenhang mit den von Oracle bereitgestellten Services Ihre Zustimmung zu diesem Risiko dar und schließt ausdrücklich die Verantwortung oder Haftung von Oracle für Schäden aus, die sich aus dieser Nutzung ergeben.
Wählen Sie Ihren KI-Anbieter und Ihre LLMs
Wählen Sie einen KI-Anbieter und ein LLM, das Ihre Sicherheitsstandards erfüllt und Ihren spezifischen Anforderungen entspricht, wie Text- oder Codegenerierung.
Verschiedene LLMs übertreffen verschiedene Aufgaben basierend auf ihren Trainingsdaten und dem beabsichtigten Zweck. Einige Modelle eignen sich hervorragend für die Textgenerierung, können aber bei der Codegenerierung nicht gut funktionieren, während andere speziell für Codierungsaufgaben optimiert sind. Wählen Sie ein LLM, das Ihren Bedürfnissen am besten entspricht.
| KI-Provider | LLMs | Einbettungsmodell für RAG | Zweck |
|---|---|---|---|
|
OCI Generative AI |
|
Siehe Informationen zum Einbetten von Modellen in generative KI. |
Die OCI Generative AI-Chatmodelle werden für alle Die OCI-Textmodelle "Generieren" werden nur für die Aktion Informationen zum Konfigurieren Ihrer Profilattribute finden Sie in der Dokumentation . |
|
Azure OpenAI-Service |
|
text-embedding-ada-002 |
Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, |
|
OpenAI |
|
text-embedding-ada-002 |
Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, |
|
OpenAI-kompatibel |
Modelle von OpenAI-kompatiblen Providern wie:
|
Einbetten von Modellen von OpenAI-kompatiblen Anbietern. Beispiel: Siehe Fireworks AI-Einbettungsmodelle. |
Unterstützt eine Vielzahl von Anwendungsfällen. |
|
Cohere |
|
embed-englisch-v2.0 |
Am besten geeignet für |
|
|
|
text-embedding-004 (Standard) |
Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, |
|
Anthrop |
|
- |
Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, |
|
Hugging Face |
|
- |
Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, |
|
AWS |
|
Unterstützt eine Vielzahl von Anwendungsfällen. |
Hinweis:
-
Geben Sie den OpenAI-kompatiblen Provider über
provider_endpointanstelle des Parametersprovideran. Siehe hier. -
Für Modelle, die Images akzeptieren, verwenden Sie
meta.llama-3.2-90b-vision-instruct. Dieses Modell wird speziell für Vision und Bilder trainiert. Obwohl es für die Text- und SQL-Generierung verwendet werden kann, eignet sich das Modell am besten für Bilder. Weitere Informationen finden Sie unter Chat in OCI Generative AI.Das Modell
meta.llama-3.2-11b-vision-instructbietet robuste multimodale Funktionen. -
Einbettungsmodelle werden auch als Transformatormodelle bezeichnet.
SQL-Generierung
Die Verwendung natürlicher Sprache für die Interaktion mit Ihren Datenbankdaten ist jetzt mit LLMs erreichbar. Dies bedeutet, dass Sie die Datenbank in natürlicher Sprache abfragen können, z. B. in reinem Englisch.
Wenn Sie Select AI verwenden, verwaltet Autonomous AI Database den Prozess der Konvertierung natürlicher Sprache in SQL. Dies bedeutet, dass Sie eine Eingabeaufforderung in natürlicher Sprache anstelle von SQL-Code für die Interaktion mit Ihren Daten bereitstellen können. Select AI dient als Produktivitäts-Tool für SQL-Benutzer und -Entwickler und ermöglicht es nicht erfahrenen SQL-Benutzern, nützliche Erkenntnisse aus ihren Daten abzuleiten, ohne Datenstrukturen oder technische Sprachen verstehen zu müssen.
DBMS_CLOUD_AI-Package in Autonomous AI Database ermöglicht die Integration mit einem benutzerdefinierten LLM zur Generierung von SQL-Code mit Eingabeaufforderungen in natürlicher Sprache. Das Package unterstützt das LLM dabei, das Datenbankschema zu kennen und es anzuweisen, eine mit diesem Schema konsistente SQL-Abfrage zu erstellen. Das DBMS_CLOUD_AI-Package funktioniert mit KI-Providern wie OpenAI, Cohere, Azure OpenAI Service und Oracle Cloud Infrastructure Generative AI.
Hinweis:
Benutzer müssen über einen Account beim KI-Provider verfügen und ihre Zugangsdaten überDBMS_CLOUD_AI-Objekte bereitstellen, die von der Autonomous AI Database verwendet werden.
Verwenden Sie DBMS_CLOUD_AI, um AI-Profile zu konfigurieren
Autonomous AI Database verwendet KI-Profile, um den Zugriff auf ein LLM zu erleichtern und zu konfigurieren und für die Generierung von SQL-Anweisungen aus Eingabeaufforderungen in natürlicher Sprache einzurichten.
AI-Profile umfassen Datenbankobjekte, die das Ziel für Abfragen in natürlicher Sprache sind. Metadaten, die von diesen Zielen verwendet werden, können Datenbanktabellennamen, Spaltennamen, Spaltendatentypen und Kommentare enthalten. AI-Profile werden mit den Prozeduren DBMS_CLOUD_AI.CREATE_PROFILE und DBMS_CLOUD_AI.SET_PROFILE erstellt und konfiguriert.
Anforderungen zum Konfigurieren des DBMS_CLOUD_AI-Packages
Zur Ausführung von DBMS_CLOUD_AI ist Folgendes erforderlich:
- Zugriff auf einen Oracle Cloud Infrastructure-Cloud-Account und eine Autonomous AI Database-Instanz.
- Ein kostenpflichtiger API-Account für einen unterstützten KI-Provider, einer der folgenden:
-
OpenAI: Um OpenAI zu ermöglichen, SQL aus Prompts in natürlicher Sprache zu generieren, rufen Sie API-Schlüssel aus Ihrem kostenpflichtigen OpenAI-Account ab.
Sie finden den Secret-API-Schlüssel in Ihren Benutzereinstellungen.
-
Cohere: Um Cohere die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache zu ermöglichen, rufen Sie API-Schlüssel von Ihrem kostenpflichtigen Cohere-Konto ab.
Klicken Sie auf Dashboard und dann in der linken Navigation auf API-Schlüssel. Kopieren Sie den Standard-API-Schlüssel, oder erstellen Sie einen anderen Schlüssel. Weitere Informationen finden Sie unter API-Schlüssel.
-
Azure OpenAI Service: So aktivieren Sie Azure OpenAI Service, SQL aus Eingabeaufforderungen in natürlicher Sprache zu generieren, konfigurieren und erteilen Zugriff auf den AI-Provider.
Führen Sie die folgenden Schritte aus, um Azure OpenAI Service zu verwenden:
- Rufen Sie Ihre geheimen API-Schlüssel ab. Sie finden Ihre API-Schlüssel im Abschnitt "Resource Management" Ihres Azure-Portals. Klicken Sie auf der Ressourcenseite für Azure OpenAI-Service auf Schlüssel und Endpunkt. Sie können entweder KEY1 oder KEY2 kopieren.
- Erstellen Sie eine Azure OpenAI-Serviceressource, und stellen Sie ein Modell bereit: Azure OpenAI-Serviceressource erstellen und bereitstellen.
Tipp:
- Beachten Sie den Ressourcennamen und den Deployment-Namen, da diese Parameter zur Bereitstellung der Netzwerkzugriffsberechtigung und zum Erstellen des Azure OpenAI Service-Profils mit der Prozedur
DBMS_CLOUD_AI.CREATE_PROFILEverwendet werden. - Weitere Informationen zu Ratenlimits für Token pro Minute in einem Modell finden Sie unter Azure OpenAI-Servicequotas und -limits.
- Beachten Sie den Ressourcennamen und den Deployment-Namen, da diese Parameter zur Bereitstellung der Netzwerkzugriffsberechtigung und zum Erstellen des Azure OpenAI Service-Profils mit der Prozedur
- Zugriff auf Azure OpenAI Service zulassen:
- OCI Generative AI: Siehe So generieren Sie den API-Signaturschlüssel.
- Google: Um Google AI Studio zu ermöglichen, SQL- und Textantworten auf Ihre Eingabeaufforderungen in natürlicher Sprache zu generieren, beziehen Sie API-Schlüssel aus Ihrem kostenpflichtigen Google AI Studio-Konto.
- Gehen Sie zu Google AI Studio.
- Klicken Sie auf "Bei Google AI Studio anmelden".
- Klicken Sie im Prompt-Fenster auf "API-Schlüssel abrufen".
- Wählen Sie auf der nächsten Seite alle zutreffenden Optionen aus.
- Klicken Sie auf "API-Schlüssel erstellen".
-
Klicken Sie im neuen Projekt auf API-Schlüssel erstellen.
Auf dem Bildschirm wird der Fortschritt angezeigt und ein API-Schlüssel generiert. Kopieren Sie den Schlüssel, und speichern Sie ihn.
- Anthropisch: Damit Anthropic Developer Console SQL- und Textantworten für Eingabeaufforderungen in natürlicher Sprache generieren kann, rufen Sie API-Schlüssel aus Ihrem kostenpflichtigen Anthropic Developer Console-Konto ab.
- Rufen Sie die Anthropic Developer Console auf.
- Registrieren Sie sich für ein Konto, wenn Sie noch kein Konto haben.
- Navigieren Sie nach der Anmeldung zum API-Abschnitt oder zum Dashboard.
- Suchen Sie nach einer Option zum Generieren oder Anzeigen von API-Schlüsseln.
- Klicken Sie auf diese Option, um einen neuen API-Schlüssel zu erstellen.
-
Kopieren Sie den generierten API-Schlüssel, und speichern Sie ihn.
Die Claude API ist ein kostenpflichtiger Service. Sie müssen Ihrem Konto Guthaben hinzufügen, bevor Sie den API-Schlüssel verwenden können.
- Hugging Face: Um Hugging Face als KI-Provider zum Generieren von SQL- und Textantworten auf Ihre Eingabeaufforderungen in natürlicher Sprache zu aktivieren, erhalten Sie API-Schlüssel aus Ihrem kostenpflichtigen Hugging Face-Konto.
- Gehen Sie zu Umarmung.
- Registrieren Sie sich für ein Konto, wenn Sie noch kein Konto haben.
- Navigieren Sie zu Ihren Kontoeinstellungen.
- Suchen Sie im Navigationsmenü die Zugriffstoken.
- Klicken Sie auf diese Option, um einen neuen API-Schlüssel zu erstellen.
- Kopieren Sie den generierten API-Schlüssel, und speichern Sie ihn.
-
AWS: Um AWS zu aktivieren, rufen Sie Ihren API-Schlüssel und Ihre Modell-ID ab.
Rufen Sie Ihren API-Schlüssel ab, und verwenden Sie ihn, um Zugangsdaten über
DBMS_CLOUD.CREATE_CREDENTIALzu erstellen.Führen Sie den folgenden Prozess aus, um Ihren API-Schlüssel und Modellnamen abzurufen:
- Melden Sie sich für ein AWS-Konto an, wenn Sie noch keines haben.
- Erstellen Sie Ihre Zugriffstasten und Secret Keys in der AWS Bedrock-Konsole.
- Kopieren Sie die generierten Schlüssel, und speichern Sie sie.
- Fordern Sie Zugriff auf ihre Basismodelle an. Siehe Auf Amazon Bedrock-Grundlagenmodelle zugreifen.
- Rufen Sie die Modell-ID ab. Sie benötigen die Modell-ID in der Prozedur
DBMS_CLOUD_AI.CREATE_PROFILE. Die Modell-ID hängt von den verwendeten Ressourcen ab. Wenn Sie verwenden:- ein Basismodell, geben Sie die Modell-ID oder den zugehörigen ARN (Amazon Resource Names) an. Eine Liste der Modell-IDs für Basismodelle finden Sie unter Amazon Bedrock-Basismodell-IDs.
- ein Inferenzprofil, geben Sie die Inferenzprofil-ID oder deren ARN an. Eine Liste der Inferenzprofil-IDs finden Sie unter Unterstützte Regionen und Modelle für regionsübergreifende Inferenz.
- ein bereitgestelltes Modell, geben Sie die ARN des bereitgestellten Durchsatzes an. Weitere Informationen finden Sie unter Inferenz mit einem bereitgestellten Durchsatz ausführen.
- ein benutzerdefiniertes Modell, den bereitgestellten Durchsatz dafür erwerben. Geben Sie dann die ARN des resultierenden bereitgestellten Modells an. Weitere Informationen finden Sie unter Benutzerdefiniertes Modell in Amazon Bedrock verwenden.
- ein Amazon Bedrock Marketplace-Modell, geben Sie die ID oder die ARN des von Ihnen erstellten Marketplace-Endpunkts an (siehe Amazon Bedrock Marketplace).
Hinweis:
Das importierte Modell wird mit der Bedrock Converse API nicht unterstützt.
Informationen zur Verwendung von AWS als Provider finden Sie unter Beispiel: KI mit AWS auswählen.
-
- Netzwerk-ACL-Berechtigungen für den Zugriff auf Ihren externen AI-Provider.
Hinweis:
Netzwerk-ACL ist für OCI Generative AI nicht anwendbar. - Zugangsdaten, die Zugriff auf den AI-Provider ermöglichen.
DBMS_CLOUD_AI-Package konfigurieren
Bevor Sie "AI auswählen" verwenden, führen Sie die folgenden Schritte aus, um DBMS_CLOUD_AI zu aktivieren.
DBMS_CLOUD_AI:
-
Erteilen Sie dem Benutzer, der Select AI verwenden möchte, die Berechtigung
EXECUTEfür das PackageDBMS_CLOUD_AI.Standardmäßig wird nur ADMIN-Benutzern die Berechtigung
EXECUTEerteilt. Der ADMIN-Benutzer kann anderen Benutzern die BerechtigungEXECUTEerteilen. -
Erteilen Sie dem Benutzer, der Select AI verwenden möchte, und dem AI-Providerendpunkt Netzwerk-ACL-Zugriff.
Der ADMIN-Benutzer kann Netzwerk-ACL-Zugriff erteilen. Weitere Informationen finden Sie unter Prozedur APPEND_HOST_ACE in Oracle Database 19c PL/SQL-Packages and Types Reference oder Oracle Database 26ai PL/SQL Packages and Types Reference.
- Erstellen Sie Zugangsdaten, um den Zugriff auf Ihren AI-Provider zu ermöglichen.
Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
ADB_USER die Berechtigung EXECUTE:grant execute on DBMS_CLOUD_AI to ADB_USER;Im folgenden Beispiel wird ADB_USER die Berechtigung zur Verwendung des Endpunkts api.openai.com erteilt.
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'api.openai.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'ADB_USER',
principal_type => xs_acl.ptype_db)
);
END;
/
APPEND_HOST_ACE-Funktionsparameter
| Parameter | Beschreibung |
|---|---|
|
|
Der Host, bei dem es sich um den Namen oder die IP-Adresse des Hosts handeln kann. Sie können einen Platzhalter verwenden, um eine Domain oder ein IP-Subnetz anzugeben. Beim Host- oder Domainnamen ist die Groß-/Kleinschreibung nicht zu beachten. Verwenden Sie für OpenAI api.openai.com. Verwenden Sie für Cohere api.cohere.ai. Verwenden Sie für Azure OpenAI Service <azure_resource_name>.openai.azure.com. Weitere Informationen zu Für Google verwenden Sie generativelanguage.googleapis.com. Verwenden Sie für Anthropic api.anthropic.com. Um das Gesicht zu umarmen, verwenden Sie api-inference.huggingface.co. |
|
|
Die Access Control-Einträge (ACE). Der Typ |
Im Folgenden finden Sie ein Beispiel für das Erstellen von Zugangsdaten, um den Zugriff auf OpenAI zu ermöglichen.
EXEC DBMS_CLOUD.CREATE_CREDENTIAL('OPENAI_CRED', 'OPENAI', 'your_api_token');DBMS_CLOUD.CREATE_CREDENTIAL-Parameter
| Parameter | Beschreibung |
|---|---|
|
|
Der Name der zu speichernden Zugangsdaten. Der Parameter |
|
|
Mit den Argumenten
|
|
|
Mit den Argumenten Die |
AI-Profil erstellen und festlegen
Beschreibt die Schritte zum Erstellen und Aktivieren eines AI-Profils.
Verwenden Sie DBMS_CLOUD_AI.CREATE_PROFILE, um ein AI-Profil zu erstellen. Starten Sie als Nächstes DBMS_CLOUD_AI.SET_PROFILE, um das AI-Profil zu aktivieren, sodass Sie SELECT AI mit einer Eingabeaufforderung in natürlicher Sprache verwenden können.
Hinweis:
Sie müssen DBMS_CLOUD_AI.SET_PROFILE in jeder neuen Datenbanksession (Verbindung) ausführen, bevor Sie SELECT AI verwenden.
Im folgenden Beispiel mit dem OpenAI-Provider wird ein AI-Profil mit dem Namen OPENAI erstellt und das OPENAI-Profil für die aktuelle Benutzersession festgelegt.
-- Create AI profile
--
SQL> BEGIN
DBMS_CLOUD_AI.create_profile(
'OPENAI',
'{"provider": "openai",
"credential_name": "OPENAI_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "sales"},
{"owner": "SH", "name": "products"},
{"owner": "SH", "name": "countries"}]
}');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
SQL> EXEC DBMS_CLOUD_AI.set_profile('OPENAI');
PL/SQL procedure successfully completed.
Eingabeaufforderungen mit AI-Schlüsselwort eingeben
Verwenden Sie AI als Schlüsselwort in einer SELECT-Anweisung für die Interaktion mit der Datenbank mit Eingabeaufforderungen in natürlicher Sprache.
Das Schlüsselwort AI in einer SELECT-Anweisung weist die SQL-Ausführungs-Engine an, mit dem im aktiven AI-Profil angegebenen LLM die natürliche Sprache zu verarbeiten und SQL zu generieren.
Sie können das Schlüsselwort AI in einer Abfrage mit Oracle-Clients wie SQL Developer, OML-Notizbüchern und Tools von Drittanbietern verwenden, um mit der Datenbank in natürlicher Sprache zu interagieren.
Hinweis:
Mit dem SchlüsselwortAI können Sie keine PL/SQL-Anweisungen, DDL-Anweisungen oder DML-Anweisungen ausführen.
Syntax
SELECT AI action natural_language_promptParameter
| Parameter | Beschreibung |
|---|---|
|
|
Führen Sie den angegebenen SQL-Befehl mit einer Eingabeaufforderung in natürlicher Sprache aus. Dies ist die Standardaktion. Sie können diesen Parameter optional angeben. |
|
|
Zeigt die SQL-Anweisung für einen Prompt in natürlicher Sprache an. |
|
|
Die Ausgabe der Eingabeaufforderung wird in natürlicher Sprache erklärt. Diese Option sendet das SQL-Ergebnis an den AI-Provider, um eine Übersicht in natürlicher Sprache zu erstellen. |
|
|
Generiert eine Antwort direkt aus dem LLM basierend auf dem Prompt. Wenn |
|
|
Die aus der Eingabeaufforderung generierte SQL wird in natürlicher Sprache erläutert. Diese Option sendet die generierte SQL an den AI-Provider, um eine Erklärung in natürlicher Sprache zu erstellen. |
Verwendungshinweise
-
Die Option
AIwird in Database Actions oder im APEX-Service nicht unterstützt. Sie können nur die FunktionDBMS_CLOUD_AI.GENERATEverwenden. -
Das Schlüsselwort
AIwird nur in einerSELECT-Anweisung unterstützt. -
Mit dem Schlüsselwort
AIkönnen Sie keine PL/SQL-Anweisungen, DDL-Anweisungen oder DML-Anweisungen ausführen. -
Die Sequenz lautet
SELECT, gefolgt vonAI. Bei diesen Schlüsselwörtern wird nicht zwischen Groß- und Kleinschreibung unterschieden. Nachdem eineDBMS_CLOUD_AI.SET_PROFILEkonfiguriert wurde, ist der Text nachSELECT AIeine Eingabeaufforderung in natürlicher Sprache. Wenn kein AI-Profil festgelegt ist, meldetSELECTAIden folgenden Fehler:ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" -
Für die Verwendung von Sonderzeichen gelten die Oracle-Richtlinien. Verwenden Sie beispielsweise zwei einfache Anführungszeichen, wenn Sie ein Apostroph in einem Satz verwenden.
select ai how many customers in SF don''t own their own home -
LLMs unterliegen Halluzinationen, und die Ergebnisse sind nicht immer korrekt:
-
Möglicherweise kann
SELECT AIdie generierte SQL für eine bestimmte Eingabeaufforderung in natürlicher Sprache nicht ausführen. -
Möglicherweise kann
SELECT AIkeine SQL für eine bestimmte Eingabeaufforderung in natürlicher Sprache generieren.
In einem solchen Szenario antwortet
SELECT AImit Informationen, die Sie beim Generieren von gültigem SQL unterstützen. -
-
Verwenden Sie die Aktion
chatmitSELECT AI chat, um mehr über SQL-Konstrukte zu erfahren. Um bessere Ergebnisse mit der Aktionchatzu erzielen, verwenden Sie Datenbankansichten oder Tabellen mit kontextbezogenen Spaltennamen, oder fügen Sie Spaltenkommentare hinzu, die Werte erläutern, die in den Spalten gespeichert sind. -
Informationen zum Zugriff auf DBA- oder USER-Ansichten finden Sie unter DBMS_CLOUD_AI-Ansichten.
Beispiel: AI-Aktionen auswählen
Diese Beispiele veranschaulichen gängige Select AI-Aktionen.
Das folgende Beispiel zeigt Aktionen wie runsql (Standard), showsql, narrate, chat, explainsql, feedback und summarize, die Sie mit SELECT AI ausführen können. In diesen Beispielen wird das Schema sh mit AI-Provider- und Profilattributen verwendet, die in der Funktion DBMS_CLOUD_AI.CREATE_PROFILE angegeben sind. Verwenden Sie "AI-Aktionen auswählen", nachdem Sie Ihr AI-Profil mit der Prozedur DBMS_CLOUD_AI.SET_PROFILE in der aktuellen Session festgelegt haben.
Um eine Übersicht über den Text zu generieren, verwenden Sie SELECT AI SUMMARIZE <TEXT>.
SQL> select ai how many customers exist;
CUSTOMER_COUNT
--------------
55500
SQL> select ai showsql how many customers exist;
RESPONSE
----------------------------------------------------
SELECT COUNT(*) AS total_customers
FROM SH.CUSTOMERS
SQL> select ai narrate how many customers exist;
RESPONSE
------------------------------------------------------
There are a total of 55,500 customers in the database.
SQL> select ai chat how many customers exist;
RESPONSE
--------------------------------------------------------------------------------
It is impossible to determine the exact number of customers that exist as it con
stantly changes due to various factors such as population growth, new businesses
, and customer turnover. Additionally, the term "customer" can refer to individu
als, businesses, or organizations, making it difficult to provide a specific num
ber.
SQL> select ai explainsql how many customers in San Francisco are married;
RESPONSE
--------------------------------------------------------------------------------
SELECT COUNT(*) AS customer_count
FROM SH.CUSTOMERS AS c
WHERE c.CUST_STATE_PROVINCE = 'San Francisco' AND c.CUST_MARITAL_STATUS = 'Married';
Explanation:
- We use the 'SH' table alias for the 'CUSTOMERS' table for better readability.
- The query uses the 'COUNT(*)' function to count the number of rows that match the given conditions.
- The 'WHERE' clause is used to filter the results:
- 'c.CUST_STATE_PROVINCE = 'San Francisco'' filters customers who have 'San Francisco' as their state or province.
- 'c.CUST_MARITAL_STATUS = 'Married'' filters customers who have 'Married' as their marital status.
The result of this query will give you the count of customers in San Francisco who are married, using the column alias 'customer_count' for the result.
Remember to adjust the table and column names based on your actual schema if they differ from the example.
Feel free to ask if you have more questions related to SQL or database in general.
-- Feedback on SQL Text
-- Negative feedback example:
SQL > select ai feedback for query "select ai showsql how many watch histories in total", please use sum instead of count;
-- Positive feedback example:
SQL > select ai feedback for query "select ai showsql how many watch histories in total", the sql query generated is correct;
-- Feedback on SQL ID
-- Negative feedback example:
SQL > select ai feedback please use sum instead of count for sql_id 1v1z68ra6r9zf;
-- Positive feedback example:
SQL > select ai feedback sql query result is correct for sql_id 1v1z68ra6r9zf;
-- If not specified, use default LASTAI SQL
-- To use default LASTAI sql, make sure that set server output off;
-- Negative feedback example:
SQL > select ai feedback please use ascending sorting for ranking;
-- Positive feedback example:
SQL > select ai feedback the result is correct;
SQL> SELECT AI SUMMARIZE
Like countless other people around the globe, I stream music, and like more
than six hundred million of them I mainly use Spotify. Streaming currently
accounts for about eighty per cent of the American recording industry’s
revenue, and in recent years Spotify’s health is often consulted as a measure
for the health of the music business over all. Last spring, the International
Federation of the Phonographic Industry reported global revenues of $28.6
billion, making for the ninth straight year of growth. All of this was
unimaginable in the two-thousands, when the major record labels appeared
poorly equipped to deal with piracy and the so-called death of physical media.
On the consumer side, the story looks even rosier. Adjusted for inflation, a
... (skipped 1000 rows in the middle)
Pelly writes of some artists, in search of viral fame, who surreptitiously use
social media to effectively beta test melodies and motifs, basically putting
together songs via crowdsourcing. Artists have always fretted about the
pressure to conform, but the data-driven, music-as-content era feels
different. “You are a Spotify employee at that point,” Daniel Lopatin, who
makes abstract electronic music as Oneohtrix Point Never, told Pelly. “If your
art practice is so ingrained in the brutal reality that Spotify has outlined
for all of us, then what is the music that you’re not making? What does the
music you’re not making sound like?” Listeners might wonder something similar.
What does the music we’re not hearing sound like?;
RESPONSE
------------------------------------------------------------------------------
The music streaming industry, led by Spotify, has revolutionized the way
people consume music, with streaming accounting for 80% of the American
recording industry's revenue. However, this shift has also complicated the
lives of artists, who struggle to survive in a hyper-abundant present where
music is often valued for its convenience rather than its artistic merit.
Spotify's algorithms prioritize popularity and profitability over artistic
diversity, leading to a homogenization of music and a devaluation of the
labor that goes into creating it. Meanwhile, the company's executives reap
enormous profits, with CEO Daniel Ek's net worth rivaling that of the
wealthiest musicians. As music critic Liz Pelly argues, the streaming economy
raises important questions about autonomy, creativity, and the value of art
in a world where everything is readily available and easily accessible.
Beispiel: AI mit AWS auswählen
Das folgende Beispiel zeigt, wie AWS als KI-Anbieter mit Amazon Bedrock und seinen Basismodellen verwendet wird. Das Beispiel zeigt das Erstellen von AWS-Zugangsdaten, das Bereitstellen von Netzwerkzugriff, das Erstellen eines KI-Profils und die Verwendung von Select AI-Aktionen, um SQL-Abfragen aus Eingabeaufforderungen in natürlicher Sprache zu generieren und mit den AWS-Grundlagenmodellen zu chatten.
Um AWS zu verwenden, rufen Sie den Zugriffsschlüssel, die Secret Keys und die Modell-ID ab. Siehe hier. Verwenden Sie die Modell-ID als Attribut model in der Prozedur DBMS_CLOUD_AI.CREATE_PROFILE. Sie müssen das Attribut model explizit angeben, da kein Standardmodell angegeben ist.
--Grant EXECUTE privilege to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_AI to ADB_USER;
--
-- Create Credential for AI provider
--
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'AWS_CRED',
username => '<your_AWS_access_key>',
password => '<your_AWS_secret_key>'
);
END;
/
PL/SQL procedure successfully completed.
--
-- Grant Network ACL for AWS
--
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'bedrock-runtime.us-east-1.amazonaws.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'ADB_USER',
principal_type => xs_acl.ptype_db)
);
END;
/
PL/SQL procedure successfully completed.
--
-- Create AI profile
--
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name =>'AWS',
attributes =>'{"provider": "aws",
"credential_name": "AWS_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "countries"},
{"owner": "SH", "name": "supplementary_demographics"},
{"owner": "SH", "name": "profits"},
{"owner": "SH", "name": "promotions"},
{"owner": "SH", "name": "products"}],
"model" : "anthropic.claude-v2",
"conversation" : "true"
}');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
EXEC DBMS_CLOUD_AI.SET_PROFILE('AWS');
PL/SQL procedure successfully completed.
--
-- Use AI
--
SELECT AI how many customers exist;
"RESPONSE"
"COUNT(*)"
55500
SELECT AI how many customers in San Francisco are married;
"RESPONSE"
"COUNT(*)"
46
SELECT AI showsql how many customers in San Francisco are married;
"RESPONSE"
"SELECT COUNT(*) AS "Number of Married Customers in San Francisco"
FROM "SH"."CUSTOMERS" C
WHERE UPPER(C."CUST_CITY") = UPPER('San Francisco')
AND UPPER(C."CUST_MARITAL_STATUS") = UPPER('Married')"
SELECT AI explainsql how many customers in San Francisco are married;
"RESPONSE""SELECT
COUNT(*) AS "Number of Married Customers in San Francisco"
FROM "SH"."CUSTOMERS" C
WHERE C."CUST_CITY" = 'San Francisco'
AND C."CUST_MARITAL_STATUS" = 'Married'
Explanation:
- Used table alias C for CUSTOMERS table
- Used easy to read column names like CUST_CITY, CUST_MARITAL_STATUS
- Enclosed table name, schema name and column names in double quotes
- Compared string values in WHERE clause without UPPER() since the values are not in double quotes
- Counted number of rows satisfying the condition and aliased the count as "Number of Married Customers in San Francisco""
SELECT AI narrate what are the top 3 customers in San Francisco;
"RESPONSE"
The top 3 customers in San Francisco ordered by credit limit in descending order are:
1. Bert Katz
2. Madallyn Ladd
3. Henrietta Snodgrass
SELECT AI chat what is Autonomous AI Database;
"RESPONSE"
"An Autonomous AI Database is a cloud database service provided by Oracle Corporation. Some key features of Oracle Autonomous AI Database include:
- Fully automated and self-driving - The database automatically upgrades, patches, tunes, and backs itself up without any human intervention required.
- Self-securing - The database uses machine learning to detect threats and automatically apply security updates.
- Self-repairing - The database monitors itself and automatically recovers from failures and errors without downtime.
- Self-scaling - The database automatically scales compute and storage resources up and down as needed to meet workload demands.
- Serverless - The database is accessed as a cloud service without having to manually provision any servers or infrastructure.
- High performance - The database uses Oracle's advanced automation and machine learning to continuously tune itself for high performance.
- Multiple workload support - Supports transaction processing, analytics, graph processing, etc in a single converged database.
- Fully managed - Oracle handles all the management and administration of the database. Users just load and access their data.
- Compatible - Supports common SQL and Oracle PL/SQL for easy migration from on-prem Oracle databases.
So in summary, an Oracle Autonomous AI Database is a fully automated, self-driving, self-securing, and self-repairing database provided as a simple cloud service. The automation provides high performance, elasticity, and availability with minimal human labor required."
--
--Clear the profile
--
BEGIN
DBMS_CLOUD_AI.CLEAR_PROFILE;
END;
/
PL/SQL procedure successfully completed.
--
--Drop the profile
--
EXEC DBMS_CLOUD_AI.DROP_PROFILE('AWS');
PL/SQL procedure successfully completed.