DBMS_CLOUD_AI-Package

Das Package DBMS_CLOUD_AI mit Select AI erleichtert und konfiguriert die Übersetzung von Eingabeaufforderungen in natürlicher Sprache, um SQL-Anweisungen zu generieren, auszuführen und zu erläutern. Ermöglicht außerdem Retrieval Augmented Generation und Interaktionen in natürlicher Sprache, einschließlich des Chats mit LLMs.

Voraussetzungen

Eine ausgehende Konnektivität muss von Ihrem Flottenadministrator mit einem NAT-Gateway konfiguriert worden sein, wie unten beschrieben:
  • Sie können ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN) erstellen, in das sich Ihre autonomen KI-Datenbankressourcen befinden, indem Sie die Anweisungen in der Dokumentation zu Oracle Cloud Infrastructure unter NAT-Gateway erstellen befolgen.
  • Fügen Sie nach dem Erstellen des NAT-Gateways eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich autonome KI-Datenbankressourcen befinden. Damit können diese Ressourcen über das Gateway einen öffentlichen Schlüssel von Ihrer Azure AD-Instanz abrufen:
    1. Gehen Sie zur Seite Subnetzdetails für das Subnetz.
    2. Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzes, um die Seite Routentabellendetails anzuzeigen.
    3. Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
      • Zielort: 0.0.0.0/0
      • Zieltyp: NAT-Gateway
      • Ziel: Der Name des NAT-Gateway, das Sie gerade im VCN erstellt haben

      Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.

    4. Zurück zur Seite Subnetzdetails für das Subnetz.
    5. Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
    6. Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
    7. Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
      • Zieltyp: CIDR
      • Zielort: 0.0.0.0/0
      • IP-Protokoll: TCP
      • Quellportbereich: 443
      • Ziel-Portbereich: Alle

      Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.

Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.

Diese Einstellungen werden vom Flottenadministrator beim Erstellen der Exadata Cloud@Customer-Infrastruktur definiert, wie unter Exadata Database Service on Cloud@Customer mit der Konsole bereitstellen beschrieben.

Hinweis:

Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.

Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.

Zusammenfassung der DBMS_CLOUD_AI-Unterprogramme

In diesem Abschnitt werden die DBMS_CLOUD_AI-Unterprogramme behandelt, die mit Autonomous AI Database bereitgestellt werden.

Unterprogramm Beschreibung

Prozedur CREATE_PROFILE

Diese Prozedur erstellt ein neues AI-Profil zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache in SQL-Anweisungen.

Prozedur DISABLE_PROFILE

Mit diesem Verfahren wird ein AI-Profil in der aktuellen Datenbank deaktiviert.

Prozedur DROP_PROFILE

Diese Prozedur löscht ein vorhandenes AI-Profil.

Prozedur ENABLE_PROFILE

Mit diesem Verfahren kann ein AI-Profil in der aktuellen Datenbank verwendet werden.

Generierungsfunktion

Diese Funktion generiert eine SQL-Anweisung, die AI zum Übersetzen verwendet.

Prozedur SET_ATTRIBUTE

Diese Prozedur legt AI-Profilattribute fest.

Prozedur SET_PROFILE

Diese Prozedur legt das AI-Profil für die aktuelle Datenbank fest.

Prozedur CREATE_PROFILE

Die Prozedur erstellt ein neues AI-Profil zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache in SQL-Anweisungen.

Syntax

DBMS_CLOUD_AI.CREATE_PROFILE
   profile_name        IN  VARCHAR2,
   attributes          IN  CLOB      DEFAULT NULL,
   status              IN  VARCHAR2  DEFAULT NULL,
   description         IN  CLOB      DEFAULT NULL
);

Parameter

Parameter Beschreibung

profile_name

Ein Name für das AI-Profil. Der Profilname muss den Benennungsregeln der Oracle SQL-ID entsprechen. Der Profilname darf maximal 125 Zeichen lang sein.

Dies ist ein obligatorischer Parameter.

attributes

Profilattribute im JSON-Format. Weitere Informationen finden Sie unter Profilattribute von AI.

Der Standardwert ist NULL.

status

Status des Profils.

Der Standardwert ist Aktivieren.

description

Beschreibung für das AI-Profil.

Der Standardwert ist NULL.

Beispiel

BEGIN
     DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name    => 'OpenAI,
          attributes      => JSON_OBJECT('provider' value 'openai',
                                         'credential_name' value 'openai_cred'),
          description     => 'AI profile to use OpenAI for SQL translation'
     );
END;
/

Prozedur DROP_PROFILE

Die Prozedur löscht ein vorhandenes AI-Profil. Wenn das Profil nicht vorhanden ist, löst die Prozedur einen Fehler aus.

Syntax

DBMS_CLOUD_AI.DROP_PROFILE(
       profile_name        IN   VARCHAR2,
       force               IN   BOOLEAN DEFAULT FALSE
 );

Parameter

Parameter Beschreibung

profile_name

Name des AI-Profils

force

Wenn TRUE verwendet wird, ignoriert die Prozedur Fehler, wenn kein AI-Profil vorhanden ist.

Der Standardwert für diesen Parameter lautet FALSE.

Beispiel

BEGIN
     DBMS_CLOUD_AI.DROP_PROFILE(profile_name => 'OPENAI');
END;
/

Verwendungshinweise

Verwenden Sie force, um ein Profil zu löschen und Fehler zu ignorieren, wenn kein AI-Profil vorhanden ist.

Prozedur ENABLE_PROFILE

Diese Prozedur aktiviert das vom Benutzer angegebene AI-Profil. Die Prozedur ändert den Status des AI-Profils in ENABLED.

Syntax

DBMS_CLOUD_AI.ENABLE_PROFILE(
     profile_name         IN   VARCHAR2
 );

Parameter

Parameter Beschreibung

profile_name

Name des zu aktivierenden AI-Profils

Dieser Parameter ist erforderlich.

Beispiel für die Aktivierung eines KI-Profils

BEGIN
     DBMS_CLOUD_AI.ENABLE_PROFILE(
         profile_name    => 'OPENAI'
     );
END;
/

Prozedur DISABLE_PROFILE

Mit diesem Verfahren wird das AI-Profil in der aktuellen Datenbank deaktiviert. Mit dieser Prozedur wird der Status des AI-Profils in DISABLED geändert.

Syntax

DBMS_CLOUD_AI.DISABLE_PROFILE(
      profile_name  IN  VARCHAR2
);

Parameter

Parameter Beschreibung

profile_name

Name für das AI-Profil.

Dieser Parameter ist erforderlich.

Beispiel

BEGIN
     DBMS_CLOUD_AI.DISABLE_PROFILE(
         profile_name    => 'OPENAI'
     );
END;
/

Prozedur SET_ATTRIBUTE

Mit diesem Verfahren können Sie AI-Profilattribute festlegen.

Syntax

DBMS_CLOUD_AI.SET_ATTRIBUTE(
      profile_name         IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   CLOB
);

Parameter

Nur der Eigentümer kann die Attribute des AI-Profils festlegen oder ändern. Eine Liste der unterstützten Attribute finden Sie unter Profilattribute.

Parameter Beschreibung

profile_name

Name des AI-Profils, für das Sie die Attribute festlegen möchten.

Dieser Parameter ist erforderlich.

attribute_name

Name des AI-Profilattributs

Dieser Parameter ist erforderlich.

attribute_value

Wert des Profilattributs.

Der Standardwert ist NULL.

Beispiel

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OPENAI',
   attribute_name  => 'credential_name',
   attribute_value => 'OPENAI_CRED_NEW'
 );
END;
/

Prozedur SET_PROFILE

Diese Prozedur legt das AI-Profil für die aktuelle Session fest.

Nachdem Sie ein AI-Profil für die Datenbanksession festgelegt haben, wird jede SQL-Anweisung mit dem Präfix SELECT AI als Eingabeaufforderung in natürlicher Sprache betrachtet. Je nach der mit dem Präfix AI angegebenen Aktion wird eine Antwort mit AI generiert. Informationen zur Verwendung des Präfixes AI finden Sie unter AI-Schlüsselwort zur Eingabe von Prompts verwenden. Optional können Sie die Profilattribute überschreiben oder Attribute ändern, indem Sie sie im JSON-Format angeben. Informationen zum Festlegen der Attribute finden Sie unter Prozedur SET_ATTRIBUTE.

Das AI-Profil kann nur für die aktuelle Session festgelegt werden, wenn der Eigentümer des AI-Profils der Sessionbenutzer ist.

Um ein AI-Profil für alle Sessions eines bestimmten Datenbankbenutzers oder für alle Benutzersessions in der Datenbank festzulegen, sollten Sie einen Datenbankereignistrigger für das Ereignis AFTER LOGON für den bestimmten Benutzer oder die gesamte Datenbank verwenden. Weitere Informationen finden Sie unter CREATE TRIGGER-Anweisung in Oracle Database 19c Database PL/SQL Language Reference oder Oracle Database 26ai Database PL/SQL Language Reference.

Syntax

DBMS_CLOUD_AI.SET_PROFILE(
    profile_name      IN  VARCHAR2,
);

Parameter

Parameter Beschreibung

profile_name

Ein Name für das AI-Profil in der aktuellen Session.

Dieser Parameter ist erforderlich.

Beispiel


   BEGIN
        DBMS_CLOUD_AI.SET_PROFILE(
          profile_name    => 'OPENAI'
        );
   END;
   /

Generierungsfunktion

Diese Funktion stellt eine zustandslose AI-Übersetzung bereit. Mit Ihrem vorhandenen AI-Profil können Sie diese Funktion verwenden, um die unterstützten Aktionen wie showsql, narrate oder chat auszuführen. Die Standardaktion ist showsql.

Mit dieser Funktion können auch einige oder alle Profilattribute überschrieben werden.

Syntax

DBMS_CLOUD_AI.GENERATE(
    prompt          IN  CLOB,
    profile_name    IN  VARCHAR2 DEFAULT NULL,
    action          IN  VARCHAR2 DEFAULT NULL,
    attributes      IN  CLOB     DEFAULT NULL
) RETURN CLOB;

Parameter

Parameter Beschreibung

prompt

Eingabeaufforderung in natürlicher Sprache zur Übersetzung mit KI.

Die Eingabeaufforderung kann SELECT AI <action> als Präfix enthalten. Die Aktion kann auch separat als "action"-Parameter angegeben werden. Der in der Eingabeaufforderung angegebene Wert action setzt den Parameter "action" außer Kraft. Die Standardaktion ist showsql.

Dieser Parameter ist erforderlich.

profile_name

Name des AI-Profils. Dieser Parameter ist optional, wenn in der Session bereits ein AI-Profil mit DBMS_CLOUD_AI.SET_PROFILE festgelegt ist.

Der Standardwert ist NULL.

Folgende Bedingungen gelten:
  • Wenn ein Profil in der aktuellen Session festgelegt ist, kann der Benutzer das Argument profile_name in der Funktion DBMS_CLOUD_AI.GENERATE weglassen.
  • Wenn das Argument profile_name in der Funktion DBMS_CLOUD_AI.GENERATE angegeben wird, setzt es alle Werte außer Kraft, die in der Session mit der Prozedur DBMS_CLOUD_AI.SET_PROFILE festgelegt wurden.
  • Wenn in der Session kein Profil mit der Prozedur DBMS_CLOUD_AI.SET_PROFILE festgelegt ist, muss das Argument profile_name in der Funktion DBMS_CLOUD_AI.GENERATE angegeben werden.

Hinweis:

Bei Database Actions können Sie entweder das Argument profile_name in DBMS_CLOUD_AI.GENERATE angeben oder zwei Schritte als PL/SQL-Skript ausführen: DBMS_CLOUD_AI.SET_PROFILE und DBMS_CLOUD_AI.GENERATE.
EXEC DBMS_CLOUD_AI.set_profile('OPENAI');

-----------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'showsql')
FROM dual;

------------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'narrate')
FROM dual;
-------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'what is oracle autonomous database',
                              profile_name => 'OPENAI',
                              action       => 'chat')
FROM dual;
Weitere Informationen finden Sie unter SQL-Anweisungen im Codeeditor ausführen.
action

Aktion zum Übersetzen natürlicher Eingabeaufforderungen mit KI. Die unterstützten Aktionen umfassen showsql (Standard), narrate und chat. Beschreibungen von Aktionen sind unter Benutzereingaben mit AI-Schlüsselwörtern eingeben enthalten.

Hinweis:

Diese Funktion unterstützt die Aktion runsql nicht. Wenn Sie die Aktion runsql angeben, wird der folgende Fehler zurückgegeben:
ORA-20000: runsql action is not supported by generate function ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line xxxx 
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 2696 ORA-06512: at line x
attributes Überschreiben Sie bestimmte AI-Profilattribute, indem Sie Attribute im JSON-Format angeben. Weitere Informationen finden Sie unter Profilattribute.

Beispiele

Die folgenden Beispiele zeigen die Aktionen showsql, narrate und chat, die mit der Funktion DBMS_CLOUD_AI.GENERATE verwendet werden können.

Ein Beispiel für die Aktion showsql:

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'showsql')
FROM dual;

Ein Beispiel für die Aktion narrate:

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'narrate')
FROM dual;

Ein Beispiel für die Aktion chat:

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'what is oracle autonomous database',
                              profile_name => 'OPENAI',
                              action       => 'chat')
FROM dual;

Funktion GENERATE_SYNTHETIC_DATA

Mit dieser Prozedur können Sie synthetische Daten für eine einzelne Tabelle, mehrere Tabellen oder ein vollständiges Schema generieren.

Im Folgenden wird die Syntax zum Generieren synthetischer Daten für eine einzelne Tabelle beschrieben.

Syntax

DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
  profile_name        IN  VARCHAR2,
  object_name         IN  DBMS_ID,
  owner_name          IN  DBMS_ID,
  record_count        IN  NUMBER,
  user_prompt         IN  CLOB DEFAULT NULL,
  params              IN  CLOB DEFAULT NULL
);

Im Folgenden wird die Syntax zum Generieren synthetischer Daten für mehrere Tabellen beschrieben.

DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
  profile_name        IN  VARCHAR2,
  object_list         IN  CLOB,
  params              IN  CLOB DEFAULT NULL
);

Wenn Sie nicht möchten, dass Tabellendaten oder Vektorsuchdokumente an ein LLM gesendet werden, kann ein Benutzer mit Administratorberechtigungen diesen Zugriff für alle Benutzer der angegebenen Datenbank deaktivieren. Dadurch wird die Aktion narrate deaktiviert.

Parameter

Parameter Obligatorisch Beschreibung

profile_name

Ja

Das AI-Profil mit den erforderlichen LLM-Serviceinformationen. Dies kann mit der Prozedur CREATE_PROFILE erstellt werden.

object_name

Ja Geben Sie einen Tabellennamen an, um synthetische Daten aufzufüllen.
  • Die Berechtigungen SELECT und INSERT für die Tabellenobjekte sind für den Benutzer erforderlich, der sie verwendet.
  • Die Tabelle ist entweder leer oder enthält Datensätze.
owner_name Nr.

Geben Sie den Datenbankbenutzer an, der Eigentümer des referenzierten Objekts ist. Wenn kein bestimmter Eigentümer angegeben ist, verwendet die Prozedur standardmäßig das Schema des Benutzers, der sie ausführt.

record_count Nr.

Die Anzahl der Datensätze, die synthetisch generiert werden sollen.

user_prompt

Nr. Zusätzliche Informationen, die ein Benutzer erwähnen kann, um synthetische Daten zu generieren. Beispiel: Um einen Datensatz für eine Tabelle namens MOVIE mit einer Spalte release_date zu generieren, kann user_prompt Folgendes sein:

Das Veröffentlichungsdatum für die Filme sollte 2019 sein

params

Nr.

Optionale Attribute, die im JSON-Objektzeichenfolgenformat angegeben werden, um das Verhalten einer API zu ändern. Siehe Optionale Parameter.

object_list

Ja Verwenden Sie diesen Parameter, um synthetische Daten in mehreren Tabellen zu generieren. Dieser Parameter nimmt Informationen zu Tabellenobjekten zusammen mit seinen Argumenten auf und enthält dieselben Argumente, die in der einzelnen Tabelle angegeben sind. Siehe object_list Parameter.

Optionale Parameter

Parameter Wertdatentyp Datum Beschreibung

sample_rows

Nummer

0 <= sample_rows <= 100

Geben Sie die Anzahl der Zeilen aus der Tabelle an, die als Beispiel für das LLM bei der Datengenerierung verwendet werden sollen.

Der Wert 0 bedeutet, dass keine Beispielzeilen verwendet werden. Der Standardwert ist 0.

table_statistics

Boolescher Wert

  • True
  • False

Aktivieren oder deaktivieren Sie die Verwendung von Tabellenstatistikinformationen.

Der Standardwert ist False.

priority

String (Zeichenfolgendatentyp)

Gültige Werte:

  • HIGH
  • MEDIUM
  • LOW

Weisen Sie einen Prioritätswert zu, der die Anzahl der parallelen Anforderungen definiert, die zum Generieren synthetischer Daten an das LLM gesendet werden. Aufgaben mit höherer Priorität verbrauchen mehr Datenbankressourcen und werden schneller abgeschlossen.

Der Standardwert ist HIGH.

  • HIGH: Gibt die Anzahl der parallelen LLM-Anforderungen basierend auf der ECPU-Anzahl der Datenbank an (oder die OCPU-Anzahl, wenn Ihre Datenbank OCPUs verwendet).

  • MEDIUM: Legt die Anzahl der nebenläufigen Prozesse gemäß dem Nebenläufigkeitslimit für den Medium-Service fest. Der Standardwert ist 4.

  • LOW: Führt den Pipelinejob ohne parallele Verarbeitung in einer seriellen Reihenfolge aus.

Die maximale Anzahl gleichzeitiger paralleler Prozesse für die Generierung synthetischer Daten ist auf 64 begrenzt.

comments

Boolescher Wert
  • True
  • False

Aktivieren oder deaktivieren Sie das Senden von Kommentaren an das LLM, um die Datengenerierung zu steuern.

Der Standardwert ist False.

object_list-Parameter

Parameter Wertdatentyp Obligatorisch Beschreibung

owner

String (Zeichenfolgendatentyp)

Ja

Gibt den Datenbankbenutzer an, der Eigentümer des referenzierten Objekts ist. Wenn kein bestimmter Eigentümer angegeben ist, verwendet die Prozedur standardmäßig das Schema des Benutzers, der sie ausführt.

name

String (Zeichenfolgendatentyp)

Nr.

Geben Sie einen Tabellennamen an, um synthetische Daten aufzufüllen. Die Berechtigung SELECT und INSERT für die Tabellenobjekte sind für den Benutzer erforderlich, der die Tabelle it.The verwendet, die entweder leer ist oder Datensätze enthält.

record_count

Nummer

Nr.

Die Anzahl der Datensätze, die synthetisch generiert werden sollen. Bitte geben Sie eine Zahl größer als 0 an.

Geben Sie record_count oder record_count_percentage an.

record_count_percentage

Nummer

Nr.

Der Prozentsatz der Anzahl der Datensätze, die synthetisch generiert werden sollen. Bitte geben Sie eine Zahl größer als 0 an.

Bei einer Metadatenklondatenbank, in der die Tabellenmetadaten einschließlich Statistiken beibehalten werden, wird der Parameter record_count_percentage unterstützt.

Geben Sie record_count oder record_count_percentage an.

Wenn Sie den Parameter record_count_percentage verwenden, wird die endgültige Datensatzanzahl in der Tabelle wie folgt berechnet:
Original_Num_Rows *
      record_count_percentage

user_prompt

String (Zeichenfolgendatentyp) Nr. Entspricht: user_prompt in Parameters. Die user_prompt ist mit einem bestimmten Tabellenobjekt verknüpft.

Beispiele

Die folgenden Beispiele zeigen die Funktion DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA zum Generieren synthetischer Daten für eine einzelne Tabelle und mehrere Tabellen. Ein vollständiges Beispiel und weitere Beispiele finden Sie in der Dokumentation .

BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_name  => 'Director',
        owner_name   => 'ADB_USER',
        record_count => 5
    );
END;
/
PL/SQL procedure successfully completed.
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
                         {"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
                         {"owner": "ADB_USER", "name": "Actor","record_count":10},
                         {"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies are released in 2009"}]'
    );
END;
/
PL/SQL procedure successfully completed.

Prozedur ENABLE_DATA_ACCESS

Dieses Verfahren ermöglicht das Senden von Daten an LLM für anwendbare Select AI-Features. Dies ist das Standardverhalten. Diese Prozedur kann nur von einem Administrator ausgeführt werden.

Diese Prozedur kontrolliert den Datenzugriff für die folgenden Select AI-Funktionen:

  • Aktion narrate
  • Retrieval Augmented Generation (RAG)
  • Synthetische Datengenerierung

Syntax

DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();

Parameter

Für dieses Verfahren sind keine Parameter erforderlich.

Beispiel für die Aktivierung des Datenzugriffs

BEGIN
  DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();
END;
/

Prozedur DISABLE_DATA_ACCESS

Dieses Verfahren deaktiviert das Senden von Daten an LLM für anwendbare Select AI-Features. Diese Prozedur kann nur von einem Administrator ausgeführt werden.

Diese Prozedur begrenzt die folgenden Select AI-Funktionen:

  • Aktion narrate
  • Retrieval Augmented Generation (RAG)
  • Synthetische Datengenerierung

Syntax

DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();

Parameter

Für dieses Verfahren sind keine Parameter erforderlich.

Beispiel zum Deaktivieren des Datenzugriffs

BEGIN
  DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();
END;
/

Prozedur CREATE_VECTOR_INDEX

Bei dieser Prozedur wird ein Vektorindex in der angegebenen Vektordatenbank erstellt und mit Daten aus einem Objektspeicher mit einem asynchronen Scheduler-Job aufgefüllt.

Syntax

PROCEDURE CREATE_VECTOR_INDEX(                                              
   index_name          IN  VARCHAR2,                                        
   attributes          IN  CLOB      DEFAULT NULL,                          
   status              IN  VARCHAR2  DEFAULT NULL,                          
   description         IN  CLOB      DEFAULT NULL                           
); 

Parameter

Parameter Beschreibung

index_name

Name des Vektorindex. Der Vektorindexname muss den Benennungsregeln der Oracle SQL-ID entsprechen. Der Name des Vektorspeichers darf maximal 125 Zeichen lang sein.

Dies ist ein obligatorischer Parameter.

attributes

Benutzerdefinierte Attribute für den Vektorindex in JSON. Eine Liste der konfigurierbaren Parameter finden Sie in der Dokumentation .

Der Standardwert ist NULL.

status
Status des Vektorindex. Mögliche Werte sind:
  • Enabled
  • Disabled

Der Standardwert ist Deaktiviert.

description

Beschreibung für den Vektorindex.

Der Standardwert ist NULL.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie einen Vektorindex erstellen und die Attribute als JSON-Parameter konfigurieren.

BEGIN                                                                
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(                                 
            index_name    => 'MY_INDEX'                                   
            attributes    => JSON_OBJECT(                                 
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',              
                       'profile_name'      value 'OCIGENAI',         
                       'location'          value                          
                         'https://objectstorage.us-phoenix-1.' ||         
                         'oraclecloud.com/n/mynamespace/b/mybucket',      
                       'object_store_credential_name'   value 'OS_CRED',              
                       'chunk_size'        value 2048,                    
                       'chunk_overlap'     value 256,                     
                       'refresh_rate'      value 720)                     
       );                                                                 
END;                                                                 
/

Prozedur DROP_VECTOR_INDEX

Mit diesem Verfahren wird ein Vektorspeicherindex entfernt. Es entfernt normalerweise das Vektorspeicher-Indexobjekt und löscht den Vektorspeicher. Wenn dieser Wert auf FALSE gesetzt ist, stellt das Argument include_data sicher, dass die Prozedur das Vektorspeicherindexobjekt nur entfernt, während der Vektorspeicher beibehalten wird.

Syntax

PROCEDURE DROP_VECTOR_INDEX(                                                
   index_name          IN  VARCHAR2,           
   include_data        IN  BOOLEAN DEFAULT TRUE,                            
   force               IN  BOOLEAN DEFAULT FALSE                           
);

Parameter

Parameter Beschreibung

index_name

Name des Vektorindex. Der Vektorindexname muss den Benennungsregeln der Oracle SQL-ID entsprechen. Der Name des Vektorspeichers darf maximal 125 Zeichen lang sein.

Dies ist ein obligatorischer Parameter.

include_data

Gibt an, ob sowohl der Vektorspeicher des Kunden als auch der Vektorindex zusammen mit dem Vektorindexobjekt gelöscht werden.

Mögliche Werte:

  • TRUE
  • FALSE

Der Standardwert ist TRUE.

force

Gibt an, ob Fehler ignoriert werden sollen, die auftreten, wenn der Vektorindex nicht vorhanden ist.

Mögliche Werte:

  • TRUE
  • FALSE

Wenn dieser Parameter auf TRUE gesetzt ist, werden alle Fehler umgangen, die auftreten, wenn der Vektorindex nicht vorhanden ist.

Der Standardwert ist FALSE.

Beispiel

BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
        index_name     => 'MY_INDEX',
        include_data   => FALSE,
        force          => TRUE
     );                                                                 
END;                                                                 
/

Prozedur DISABLE_VECTOR_INDEX

Mit dieser Prozedur wird ein Vektorindexobjekt in der aktuellen Datenbank deaktiviert. Wenn diese Option deaktiviert ist, kann ein AI-Profil den Vektorindex nicht verwenden. Das System lädt keine Daten in den Vektorspeicher, da neue Daten zum Objektspeicher hinzugefügt werden, und führt keine Indexierung, Suche oder Abfrage basierend auf dem Index durch.

Syntax

DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Parameter

Parameter Beschreibung

index_name

Name des Vektorindex. Der Vektorindexname muss den Benennungsregeln der Oracle SQL-ID entsprechen. Der Name des Vektorspeichers darf maximal 125 Zeichen lang sein.

Dies ist ein obligatorischer Parameter.

Beispiel

Sie können einen Vektorindex deaktivieren, indem Sie den Namen des Vektorindex angeben.

BEGIN                                                                
   DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(index_name => 'MY_INDEX');       
END;                                                                 
/

Prozedur ENABLE_VECTOR_INDEX

Mit dieser Prozedur wird ein zuvor deaktiviertes Vektorindexobjekt aktiviert oder aktiviert. Wenn Sie einen Vektorindex erstellen, ist er standardmäßig so aktiviert, dass das AI-Profil ihn für die Indexierung und Suche verwenden kann.

Wenn diese Option aktiviert ist, ermöglicht ein Vektorindex es einem AI-Profil, neue Daten aus einem Objektspeicher mit einer benutzerdefinierten Aktualisierungsrate in einen Vektorspeicher zu laden. Sie können den Parameter refresh_rate über die JSON-Objektliste angeben. Informationen zum Konfigurieren der JSON-Attribute finden Sie in der Dokumentation .

Syntax

DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Parameter

Parameter Beschreibung

index_name

Name des Vektorindex. Der Vektorindexname muss den Benennungsregeln der Oracle SQL-ID entsprechen. Der Name des Vektorspeichers darf maximal 125 Zeichen lang sein.

Dies ist ein obligatorischer Parameter.

Beispiel

Sie können einen Vektorindex aktivieren oder aktivieren, indem Sie den Vektorindexnamen wie folgt angeben:

BEGIN                                                                
   DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(index_name => 'MY_INDEX');       
END;                                                                 
/

Prozedur UPDATE_VECTOR_INDEX

Diese Prozedur aktualisiert einen vorhandenen Vektorspeicherindex mit einem angegebenen Wert des Vektorindexattributs.
Überlastet, um Folgendes zu akzeptieren:
  • Attributwerte verschiedener Typen.
  • Vektorindexattribute als JSON-Dokument und aktualisiert ein oder mehrere Attribute eines vorhandenen Vektorspeicherindexes mit dem angegebenen Attributnamen- und Wertpaar.

Syntax

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
   index_name         IN  VARCHAR2,
   attributes         IN  CLOB
);

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
     index_name         IN  VARCHAR2,
     attribute_name     IN  VARCHAR2,
     attribute_value    IN  VARCHAR2
);

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                                 
     index_name         IN  VARCHAR2,                                         
     attribute_name     IN  VARCHAR2,                                         
     attribute_value    IN  CLOB     DEFAULT NULL                           
  );

Parameter

Parameter Beschreibung

index_name

Name des Vektorindex. Der Vektorindexname muss den Benennungsregeln der Oracle SQL-ID entsprechen. Der Name des Vektorspeichers darf maximal 125 Zeichen lang sein.

Dies ist ein obligatorischer Parameter.

attributes

Gibt Vektorindexattribute im JSON-Format an.

Dies ist ein obligatorischer Parameter.

attribute_name

Name der benutzerdefinierten Attribute, die in der Prozedur CREATE_VECTOR_INDEX als JSON-Parameter angegeben sind.

Sie können die folgenden Attribute nicht ändern:

  • location
  • vector_table_name
  • chunk_size
  • chunk_overlap
  • vector_distance_metric
  • vector_dimension

Dies ist ein obligatorischer Parameter.

attribute_value

Vom Benutzer angegebener Wert für die benutzerdefinierte attribute_name. Der Wert kann den Typ CLOB, NUMBER oder VARCHAR2 aufweisen.

Der Standardwert ist NULL.

Hinweis:

Verwenden Sie entweder den Parameter attributes, um attribute_name- und Wertpaare im JSON-Format oder die Parameter attribute_name und attribute_value gemeinsam anzugeben.

Beispiele

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'object_storage_credential_name',                
      attribute_value  => 'NEW_CRED'                           
   );                                                                 
END;                                                                 
/

Im folgenden Beispiel wird der Typ NUMBER als attribute_value akzeptiert.

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'match_limit',                
      attribute_value  => 10                           
   );                                                                 
END;                                                                 
/

Im folgenden Beispiel wird der Typ VARCHAR2 als attribute_value akzeptiert.

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'profile_name',                
      attribute_value  => 'AI_PROF2'                           
   );                                                                 
END;                                                                 
/

Im folgenden Beispiel wird attributes im JSON-Format akzeptiert.

BEGIN
  DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
    index_name => 'MY_VECTOR_INDEX', 
    attributes => '{"match_limit": 10, 
                    "refresh_rate": 30}'
  );
END;
/

Profilattribute

Attribute eines KI-Profils helfen bei der Verwaltung und Konfiguration des Verhaltens des KI-Profils. Einige Attribute sind optional und haben einen Standardwert.

Attribute

Attributname Beschreibung

azure_deployment_name

Name des bereitgestellten Azure-Servicemodells OpenAI. Der Name darf nur alphanumerische Zeichen, Unterstriche (_) und Bindestriche (-) enthalten. Der Name darf nicht mit einem Unterstrich (_) oder einem Bindestrich (-) enden. Informationen zum Abrufen der azure_deployment_name finden Sie unter Azure-Serviceressource OpenAI erstellen und bereitstellen.

azure_resource_name

Name der Azure-Dienstressource OpenAI. Der Ressourcenname darf nur alphanumerische Zeichen und Bindestriche enthalten und darf nicht mit einem Bindestrich beginnen oder enden. Informationen zum Abrufen der azure_resource_name finden Sie unter Azure-Serviceressource OpenAI erstellen und bereitstellen.

comments

Nehmen Sie Spaltenkommentare in die Metadaten auf, die zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache mit AI verwendet werden. BOOLEAN-Datentyp wird unterstützt. Gültige Werte sind TRUE oder FALSE für eine Zeichenfolge mit dem Datentyp VARCHAR2.

Hinweis:

Boolesche Werte sind bei der Festlegung eines einzelnen Attributs in der Prozedur DBMS_CLOUD_AI.SET_ATTRIBUTE nicht anwendbar, da der Parameter attribute_value den Datentyp CLOB aufweist.

conversation

Ein VARCHAR2-Attribut, das angibt, ob die Unterhaltungshistorie für ein Profil aktiviert ist. Nur OpenAI und Azure OpenAI Service unterstützen die Unterhaltungshistorie. Gültige Werte sind true oder false. Der Standardwert ist false. Bei den Werten wird nicht zwischen Groß- und Kleinschreibung unterschieden.

credential_name

Der Name der Zugangsdaten für den Zugriff auf die AI-Provider-APIs.

Zugangsdaten mit Bearer-Token können erstellt werden, indem der Providername als Benutzername und das Bearer-Token als Kennwort verwendet werden.

Dies ist ein obligatorisches Attribut. Siehe Prozedur CREATE_CREDENTIAL.

embedding_model

Das im AI-Profil definierte Einbettungsmodell. Im Folgenden werden die unterstützten KI-Provider für die Einbettungsmodelle mit ihren Standardwerten aufgeführt:

  • OCI GenAI: cohere.embed-english-v3.0
  • OpenAI: text-embedding-ada-002
  • Azure OpenAI: text-embedding-ada-002
  • Cohere: embed-english-v2.0
  • Google: text-embedding-004

Hinweis:

Der Parameter embedding_model ist für Anthropic und Hugging Face nicht anwendbar.

max_tokens

Gibt die Anzahl der Token an, die pro Generation vorhergesagt werden sollen. Der Standardwert ist 1024. Weitere Informationen finden Sie unter Token und Tokenizer.

model

Der Name des KI-Modells, mit dem Antworten generiert werden.

Unterstützte Modelle für:

  • OpenAI: gpt-4, gpt-4-0613, gpt-4-32k, gpt-4-32k-0613, gpt-3.5-turbo (Standard), gpt-3.5-turbo-0613, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613
  • Cohere: Befehl (Standard), Befehl nachts (experimentell), Befehlslicht und Befehlslicht nachts (experimentell). Kleinere, leichte Modelle sind schneller, während größere Modelle besser funktionieren.Benutzerdefinierte Modelle können auch mit ihrer vollständigen ID bereitgestellt werden.
  • OCI Generative AI: Für OCI Generative AI: cohere.command (Standard). Alle vortrainierten Modelle für OCI Generative AI werden von Select AI unterstützt. Benutzerdefinierte Modelle können auch mit ihren vollständigen OCIDs bereitgestellt werden.

    Weitere Informationen zu unterstützten Modellen in OCI Generative AI finden Sie unter Vortrainierte Grundlagenmodelle in generativer KI.

Hinweis:

Dieser Parameter wird nicht für Azure verwendet, da das Modell beim Erstellen des Deployments im Azure OpenAI Service-Portal bestimmt wird.

object_list

Array von JSON-Objekten, das den Eigentümer und die Objektnamen angibt, die für die Übersetzung natürlicher Sprache in SQL zulässig sind. Um alle Objekte eines bestimmten Benutzers einzuschließen, lassen Sie den "Namen" weg, und geben Sie nur den "Eigentümer"-Schlüssel im JSON-Objekt an.

Um die natürliche Sprache in SQL zu übersetzen, werden der Objektname, der Objekteigentümer, die Objektspalten und Kommentare mit HTTPS-Anforderungen an den AI-Provider gesendet. Vermeiden Sie die Angabe von Objekten mit sensiblen Objektnamen, Spaltennamen oder Kommentaren in der Objektliste.

AI-Provider können die Größe der in Übersetzungsanforderungen zulässigen Metadaten begrenzen. Begrenzen Sie die Liste der Objekte, die für die Eingabeaufforderungen in natürlicher Sprache durch die Anwendungsbenutzer geeignet sind.

Format:
[
  {"owner": "SH", "name": "SALES",
  {"owner": "TEST_USER"}
]

oci_compartment_id

Gibt die OCID des Compartments an, auf das Sie beim Aufrufen des OCI Generative AI-Service zugreifen dürfen. Die Compartment-ID kann alphanumerische Zeichen, Bindestriche und Punkte enthalten.

Der Standardwert ist die Compartment-ID der autonomen KI-Datenbank.

oci_endpoint_id

Diese Attribute geben die Endpunkt-OCID des dedizierten Oracle AI-Hostingclusters an. Die Endpunkt-ID kann alphanumerische Zeichen, Bindestriche und Punkte enthalten. Informationen zum Suchen der Endpunkt-OCID finden Sie unter Details eines Endpunkts in generativer KI abrufen.

Wenn Sie das dedizierte KI-Cluster von Oracle verwenden möchten, müssen Sie die Endpunkt-OCID des Hostingclusters angeben.

Standardmäßig ist die Endpunkt-ID leer, und das Modell ist auf einer gemeinsam verwendeten Infrastruktur On-Demand.

oci_runtimetype

Dieses Attribut gibt den Laufzeittyp des angegebenen Modells an. Dieses Attribut ist erforderlich, wenn das Attribut model angegeben ist und für OCI-Generierungsmodelle anwendbar ist.

Alle zulässigen Werte finden Sie in OCI Generative AI runtimeType. Siehe Referenz zu LlmInferenceRequest.

Folgende Werte werden unterstützt:
  • COHERE
  • LLAMA

provider

KI-Provider für das KI-Profil.

Unterstützte Provider:

  • openai
  • Hohes
  • Azur
  • OCI
  • google
  • anthropisch
  • Umarmungsgesicht

Dies ist ein obligatorisches Attribut.

region

Dieses Attribut gibt den Speicherort des generativen KI-Clusters an, das Sie verwenden möchten. Der Bereich kann alphanumerische Zeichen und Bindestriche enthalten.

Hinweis:

Das Oracle Generative AI-Cluster ist in den Regionen Chicago, Frankfurt und London verfügbar. Siehe Vortrainierte Grundlagenmodelle in generativer KI.
Die Standardregion ist us-chicago-1.

stop_tokens

Der generierte Text wird am Anfang der frühesten Stoppsequenz beendet. Die Reihenfolge wird in den Text übernommen. Der Attributwert muss ein gültiges Array von Zeichenfolgenwerten im JSON-Format sein. stop_tokens verwendet ein JSON-Array als Eingabe. Weitere Informationen zu Stopptoken oder Stoppsequenzen finden Sie in der Dokumentation OpenAI oder Cohere.

temperature

Sampling aus Generate Text-Modellen enthält Zufälligkeit, so dass derselbe Prompt jedes Mal, wenn Sie auf "generieren" klicken, unterschiedliche Ausgaben erzielen kann. Temperatur ist eine nicht negative Gleitkommazahl, die verwendet wird, um den Grad der Zufälligkeit zu optimieren. Niedrigere Temperaturen bedeuten weniger zufällige Generationen. Weitere Informationen finden Sie unter Temperatur. Dieser Parameter gilt für alle unterstützten Service Provider.

Im folgenden Beispiel wird Cohere als Provider verwendet und benutzerdefinierte Profilattribute angezeigt:
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'COHERE',
     attributes =>
      '{"provider": "cohere",
        "credential_name": "COHERE_CRED",
        "object_list": [{"owner": "ADB_USER"}],
        "max_tokens":512,
        "stop_tokens": [";"],
        "model": "command-nightly",
        "temperature": 0.5,
        "comments": true
       }');
END;
/

Das folgende Beispiel zeigt benutzerdefinierte Profilattribute mit OCI Generative AI:

BEGIN                                                                        
  DBMS_CLOUD_AI.CREATE_PROFILE(                                              
      profile_name => 'GENAI',                                                             
      attributes => '{"provider": "oci",                                                                   
        "credential_name": "GENAI_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"}],
        "oci_compartment_id": "ocid1.compartment.oc1...",
	"oci_endpoint_id": "ocid1.generativeaiendpoint.oc1.us-chicago-1....",
	"region": "us-chicago-1",
	"model": "cohere.command-light",
	"oci_runtimetype": "COHERE"            
       }');                                                                  
END;                                                                         
/