Mit "Select AI" SQL aus Prompts in natürlicher Sprache generieren

Autonome KI-Datenbank auf dedizierter Exadata-Infrastruktur Mit der ausgewählten KI können Sie Ihre Daten in natürlicher Sprache abfragen.

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.

Das 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 über DBMS_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

  • meta.llama-3.3-70b-Instanz (Standard)
  • meta.llama-3.2-90b-vision-instruct
  • meta.llama-3.2-11b-vision-instruct
  • meta.llama-3.1-70b-instruct
  • meta.llama-3.1-405b-instruct
  • cohere.command-r-08-2024
  • cohere.command-r-plus-08-2024
  • cohere.command-r-16k (veraltet)
  • cohere.command–r-plus (veraltet)
  • xai.grok-3
  • xai.grok-3-fast
  • xai.grok-3-mini
  • xai.grok-3-Minischnell
  • cohere.embed-english-v3.0 (Standard)
  • cohere.embed-mehrsprachig-v3.0
  • cohere.embed-englisch-light-v3.0
  • cohere.embed-mehrsprachig-licht-v3.0

Siehe Informationen zum Einbetten von Modellen in generative KI.

Die OCI Generative AI-Chatmodelle werden für alle SELECT AI-Aktionen unterstützt, wie runsql, showsql, explainsql, narrate und chat.

Die OCI-Textmodelle "Generieren" werden nur für die Aktion SELECT AI chat unterstützt.

Informationen zum Konfigurieren Ihrer Profilattribute finden Sie in der Dokumentation .

Azure OpenAI-Service

  • GPT-4o
  • GPT-4
  • GPT-4 Turbo mit Vision
  • GPT-3.5-Turbo

text-embedding-ada-002

Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, chat-Aktion und AI-RAG auswählen.

OpenAI

  • gpt-3.5-turbo (Standard)
  • gpt-4o
  • gpt-4o-mini
  • Gpt-4
  • gpt-4-0613
  • gpt-4-32k
  • gpt-4-32k-0613
  • gpt-3.5-turbo-0613
  • gpt-3.5-turbo-16k
  • gpt-3.5-turbo-16k-0613

text-embedding-ada-002

Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, chat-Aktion und AI-RAG auswählen.

OpenAI-kompatibel

Modelle von OpenAI-kompatiblen Providern wie:
  • Feuerwerk AI
  • xAI
  • Andere
Einbetten von Modellen von OpenAI-kompatiblen Anbietern. Beispiel: Siehe Fireworks AI-Einbettungsmodelle.

Unterstützt eine Vielzahl von Anwendungsfällen.

Cohere

  • Befehl (Standard)
  • Kommando-Nacht (experimentell)
  • Befehl-r
  • Befehl-r-plus
  • Befehlslicht
  • Kommando-Licht-Nacht (experimentell)
  • Benutzerdefinierte Modelle

embed-englisch-v2.0

Am besten geeignet für chat-Aktion.

Google

  • gemini-1.5-flash (Standard)
  • gemini-1.5-pro
  • gemini-1.0-pro
text-embedding-004 (Standard)

Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, chat-Aktion und AI-RAG auswählen.

Anthrop

  • claude-3-5-sonnet-20240620 (Standard)
  • claude-3-opus-20240229
  • claude-3-sonnet-20240229
  • claude-3-haiku-20240307
-

Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, chat-Aktion und AI-RAG auswählen.

Hugging Face

  • Mixtral-8x7B-Instruct-v0.1 (Standard)
  • Meta-Llama-3-70B-Instruct
  • Qwen1.5-1.8B
  • Andere Chat-Modelle
-

Am besten geeignet für die Generierung von SQL aus Eingabeaufforderungen in natürlicher Sprache, chat-Aktion und AI-RAG auswählen.

AWS

  • amazon.titan-eingebettet-Text-v1
  • amazon.titan-embed-text-v2:0
  • cohere.embed-deutsch-v3

Unterstützt eine Vielzahl von Anwendungsfällen.

Hinweis:

  • Geben Sie den OpenAI-kompatiblen Provider über provider_endpoint anstelle des Parameters provider an. 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-instruct bietet robuste multimodale Funktionen.

  • Einbettungsmodelle werden auch als Transformatormodelle bezeichnet.

KI-Konzepte auswählen

Erforscht die Konzepte und Begriffe im Zusammenhang mit Select AI.

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.

Das 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 über DBMS_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:

      1. 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.
      2. 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_PROFILE verwendet werden.
        • Weitere Informationen zu Ratenlimits für Token pro Minute in einem Modell finden Sie unter Azure OpenAI-Servicequotas und -limits.
      3. Zugriff auf Azure OpenAI Service zulassen:
        • Mit Ihrem Secret-API-Schlüssel können Sie den Zugriff auf den Azure-OpenAI-Service zulassen. Weitere Informationen finden Sie im Beispiel in der Dokumentation .
    • 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.
      1. Gehen Sie zu Google AI Studio.
      2. Klicken Sie auf "Bei Google AI Studio anmelden".
      3. Klicken Sie im Prompt-Fenster auf "API-Schlüssel abrufen".
      4. Wählen Sie auf der nächsten Seite alle zutreffenden Optionen aus.
      5. Klicken Sie auf "API-Schlüssel erstellen".
      6. 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.
      1. Rufen Sie die Anthropic Developer Console auf.
      2. Registrieren Sie sich für ein Konto, wenn Sie noch kein Konto haben.
      3. Navigieren Sie nach der Anmeldung zum API-Abschnitt oder zum Dashboard.
      4. Suchen Sie nach einer Option zum Generieren oder Anzeigen von API-Schlüsseln.
      5. Klicken Sie auf diese Option, um einen neuen API-Schlüssel zu erstellen.
      6. 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.
      1. Gehen Sie zu Umarmung.
      2. Registrieren Sie sich für ein Konto, wenn Sie noch kein Konto haben.
      3. Navigieren Sie zu Ihren Kontoeinstellungen.
      4. Suchen Sie im Navigationsmenü die Zugriffstoken.
      5. Klicken Sie auf diese Option, um einen neuen API-Schlüssel zu erstellen.
      6. 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_CREDENTIAL zu erstellen.

      Führen Sie den folgenden Prozess aus, um Ihren API-Schlüssel und Modellnamen abzurufen:

      1. Melden Sie sich für ein AWS-Konto an, wenn Sie noch keines haben.
      2. Erstellen Sie Ihre Zugriffstasten und Secret Keys in der AWS Bedrock-Konsole.
      3. Kopieren Sie die generierten Schlüssel, und speichern Sie sie.
      4. Fordern Sie Zugriff auf ihre Basismodelle an. Siehe Auf Amazon Bedrock-Grundlagenmodelle zugreifen.
      5. 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:

        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.

So konfigurieren Sie DBMS_CLOUD_AI:
  1. Erteilen Sie dem Benutzer, der Select AI verwenden möchte, die Berechtigung EXECUTE für das Package DBMS_CLOUD_AI.

    Standardmäßig wird nur ADMIN-Benutzern die Berechtigung EXECUTE erteilt. Der ADMIN-Benutzer kann anderen Benutzern die Berechtigung EXECUTE erteilen.

  2. 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.

  3. Erstellen Sie Zugangsdaten, um den Zugriff auf Ihren AI-Provider zu ermöglichen.

    Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

Das folgende Beispiel erteilt 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

host

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 azure_resource_name finden Sie unter Profilattribute.

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.

ace

Die Access Control-Einträge (ACE). Der Typ XS$ACE_TYPE wird angegeben, um jeden ACE-Eintrag für die ACL zu erstellen. Weitere Informationen finden Sie unter Creating ACLs and ACEs in Oracle Database 19c Real Application Security Administrator's and Developer's Guide oder Oracle Database 26ai Real Application Security Administrator's and Developer's Guide.

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

credential_name

Der Name der zu speichernden Zugangsdaten. Der Parameter credential_name muss den Oracle-Konventionen für Objektnamen entsprechen, die keine Leerzeichen oder Bindestriche zulassen.

username

Mit den Argumenten username und password werden Ihre Zugangsdaten für AI-Provider angegeben.

username ist ein benutzerdefinierter Benutzername.

password

Mit den Argumenten username und password werden Ihre Zugangsdaten für AI-Provider angegeben.

Die password ist der geheime API-Schlüssel Ihres KI-Providers und hängt vom Provider ab, d.h. OpenAI, Cohere, Azure OpenAI Service, OCI, Google, Anthropic oder Hugging Face. Weitere Informationen finden Sie unter Anforderungen zum Konfigurieren des DBMS_CLOUD_AI-Packages.

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üsselwort AI können Sie keine PL/SQL-Anweisungen, DDL-Anweisungen oder DML-Anweisungen ausführen.

Syntax

Die Syntax zum Ausführen der AI-Eingabeaufforderung lautet:
SELECT AI action natural_language_prompt

Parameter

Die folgenden Parameter sind für den Parameter action verfügbar:
Parameter Beschreibung

runsql

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.

showsql

Zeigt die SQL-Anweisung für einen Prompt in natürlicher Sprache an.

narrate

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.

chat

Generiert eine Antwort direkt aus dem LLM basierend auf dem Prompt. Wenn conversation in der Funktion DBMS_CLOUD_AI.CREATE_PROFILE auf true gesetzt ist, enthält diese Option Inhalt aus früheren Interaktionen oder Prompts, möglicherweise einschließlich Schemametadaten.

explainsql

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 AI wird in Database Actions oder im APEX-Service nicht unterstützt. Sie können nur die Funktion DBMS_CLOUD_AI.GENERATE verwenden.

  • Das Schlüsselwort AI wird nur in einer SELECT-Anweisung unterstützt.

  • Mit dem Schlüsselwort AI können Sie keine PL/SQL-Anweisungen, DDL-Anweisungen oder DML-Anweisungen ausführen.

  • Die Sequenz lautet SELECT, gefolgt von AI. Bei diesen Schlüsselwörtern wird nicht zwischen Groß- und Kleinschreibung unterschieden. Nachdem eine DBMS_CLOUD_AI.SET_PROFILE konfiguriert wurde, ist der Text nach SELECT AI eine Eingabeaufforderung in natürlicher Sprache. Wenn kein AI-Profil festgelegt ist, meldet SELECT AI den 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 AI die generierte SQL für eine bestimmte Eingabeaufforderung in natürlicher Sprache nicht ausführen.

    • Möglicherweise kann SELECT AI keine SQL für eine bestimmte Eingabeaufforderung in natürlicher Sprache generieren.

    In einem solchen Szenario antwortet SELECT AI mit Informationen, die Sie beim Generieren von gültigem SQL unterstützen.

  • Verwenden Sie die Aktion chat mit SELECT AI chat, um mehr über SQL-Konstrukte zu erfahren. Um bessere Ergebnisse mit der Aktion chat zu 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

Dieses Beispiel zeigt, wie Sie mit AWS SQL aus Eingabeaufforderungen in natürlicher Sprache generieren, ausführen und erklären oder mit den mit AWS verfügbaren Modellen chatten können.

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.