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 auch das Abrufen erweiterter Generationen und natürlicher sprachbasierter Interaktionen, einschließlich des Chats mit LLMs.

DBMS_CLOUD_AI Überblick

Beschreibt die Verwendung des Packages DBMS_CLOUD_AI.

Verwenden Sie das Package DBMS_CLOUD_AI, um AI-Profile zu erstellen und für den Zugriff auf ein Large Language Model (LLM) zu konfigurieren. Legen Sie das AI-Profil in der aktuellen Datenbankbenutzersession fest, um Aufgaben wie das Generieren, Ausführen und Erklären von SQL auszuführen. Aktivieren Sie außerdem Retrieval augmented Generation und Natural Language-basierte Interaktionen, einschließlich des Chats mit LLMs.

Weitere Informationen zu unterstützten Plattformen und LLMs finden Sie unter Informationen zur Auswahl von AI.

Zusammenfassung der DBMS_CLOUD_AI-Unterprogramme

In diesem Abschnitt werden die DBMS_CLOUD_AI-Unterprogramme beschrieben, die mit Autonomous 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.

Profilattribute

Stellt AI-Profilattribute bereit, die Sie konfigurieren können.

Prozedur DISABLE_PROFILE

Mit dieser Prozedur wird ein AI-Profil in der aktuellen Datenbank deaktiviert.

Prozedur DROP_PROFILE

Dieses Verfahren löscht ein vorhandenes AI-Profil.

Prozedur ENABLE_PROFILE

Mit dieser Prozedur kann ein AI-Profil in der aktuellen Datenbank verwendet werden.

Generierungsfunktion

Mit dieser Funktion können Sie Select AI zustandslos mit Ihrem vorhandenen Profil verwenden.

Funktion GENERATE_SYNTHETIC_DATA

Diese Funktion erzeugt synthetische Daten.

Funktion GET_PROFILE

Diese Funktion gibt den Profilnamen zurück, der in der aktuellen Session verwendet wird.

Prozedur GET_PROFILE

Diese Prozedur gibt den Profilnamen und den Eigentümer des Profils in der aktuellen Session zurück.

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 ENABLE_DATA_ACCESS

Unter diesem Thema wird beschrieben, wie Sie das Senden von Daten an Ihr LLM aktivieren.

Prozedur DISABLE_DATA_ACCESS

Unter diesem Thema wird beschrieben, wie Sie das Senden von Daten an Ihr LLM deaktivieren.

Prozedur CREATE_VECTOR_INDEX

Diese Prozedur erstellt einen Vektorindex in der angegebenen Vektordatenbank und füllt ihn mit Daten aus einem Objektspeicher mit einem asynchronen Scheduler-Job auf.

Prozedur DROP_VECTOR_INDEX

Diese Prozedur entfernt einen Vektorspeicherindex. Normalerweise wird das Indexobjekt des Vektorspeichers entfernt und die Vektordatenbank gelöscht.

Prozedur DISABLE_VECTOR_INDEX

Diese Prozedur deaktiviert ein Vektorindexobjekt in der aktuellen Datenbank. Wenn diese Option deaktiviert ist, kann ein AI-Profil den Vektorindex nicht verwenden, und das System lädt keine Daten in den Vektorspeicher.

Prozedur ENABLE_VECTOR_INDEX

Diese Prozedur aktiviert oder aktiviert ein zuvor deaktiviertes Vektorindexobjekt.

Prozedur UPDATE_VECTOR_INDEX

Diese Prozedur aktualisiert einen vorhandenen Vektorspeicherindex mit einem angegebenen Wert des Vektorindexattributs.

Vektorindexattribute

Stellt Attribute für Vektorindexprofile bereit, die Sie konfigurieren können.

Prozedur CREATE_PROFILE

Die Prozedur erstellt ein neues AI-Profil für die Übersetzung 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 AI Profilattribute.

Der Standardwert ist NULL.

status

Status des Profils.

Der Standardwert ist aktiviert.

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'),
		status     => 'enabled',							 
          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 das AI-Profil nicht vorhanden ist.

Der Standardwert für diesen Parameter ist FALSE.

Beispiel

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

Hinweise zur Verwendung

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 zum Aktivieren des AI-Profils

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

Prozedur DISABLE_PROFILE

Mit dieser Prozedur 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;
/

Funktion GET_PROFILE

Diese Funktion gibt den in der aktuellen Session festgelegten AI-Profilnamen zurück.

Syntax

DBMS_CLOUD_AI.GET_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

Dieses Beispiel zeigt, wie Sie den Namen des Profils in der aktuellen Session anzeigen können.


   SELECT DBMS_CLOUD_AI.GET_PROFILE
   from DUAL;

Prozedur GET_PROFILE

Diese Prozedur gibt den AI-Profilnamen und den in der aktuellen Session festgelegten Eigentümer zurück.

Syntax

DBMS_CLOUD_AI.GET_PROFILE(                                                      
      profile_name  OUT  VARCHAR2,                                          
      profile_owner OUT  VARCHAR2                                           
);

Parameter

Parameter Beschreibung

profile_name

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

Dieser Parameter ist erforderlich.

profile_owner Gibt den Eigentümer des AI-Profils in der aktuellen Session an.

Beispiel

Dieses Beispiel zeigt, wie Sie den Namen und Eigentümer des Profils in der aktuellen Session anzeigen können.

DECLARE                                                              
       l_profile_name  DBMS_ID;                                           
       l_profile_owner DBMS_ID;                                           
     BEGIN                                                                
       DBMS_CLOUD_AI.GET_PROFILE(profile_name => l_profile_name,          
                                 profile_owner => l_profile_owner);       
     END;

Prozedur SET_ATTRIBUTE

Mit diesem Verfahren können Sie AI-Profilattribute festlegen. Es ist überladen, um Attributwerte verschiedener Typen zu akzeptieren.

Syntax

DBMS_CLOUD_AI.SET_ATTRIBUTE(
      profile_name         IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   {BOOLEAN|VARCHAR2}
);

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

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 Wert kann den Typ BOOLEAN, CLOB, NUMBER oder VARCHAR2 aufweisen.

Der Standardwert ist NULL.

Beispiele

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

Im folgenden Beispiel wird der Typ NUMBER als attribute_value akzeptiert.

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OCI_PROFILE',
   attribute_name  => 'temperature',
   attribute_value => 0.5
 );
END;
/

Im folgenden Beispiel wird der Typ BOOLEAN als attribute_value akzeptiert.

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OCI_PROFILE',
   attribute_name  => 'comments',
   attribute_value => 'true'
 );
END;
/

Im folgenden Beispiel wird der Typ VARCHAR2 als attribute_value akzeptiert.

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OCI_PROFILE',
   attribute_name  => 'model',
   attribute_value => 'meta.llama-3.3-70b-instruct'
 );
END;
/

Prozedur SET_PROFILE

Mit dieser Prozedur wird das AI-Profil für die aktuelle Session festgelegt.

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 Aktion, die Sie mit dem Präfix AI angeben, wird eine Antwort mit AI generiert. Informationen zur Verwendung des Präfixes AI finden Sie unter Beispiele für die Verwendung von Select AI und 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 TRIGGER-Anweisung CREATE.

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;
   /

Funktion GENERIEREN

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, runsql, explainsql, narrate und chat auszuführen. Die Standardaktion ist showsql.

Mit dieser Funktion können Sie auch einige oder alle Profilattribute überschreiben.

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

Prompt für die Übersetzung in natürlicher Sprache mit KI.

Die Eingabeaufforderung kann SELECT AI <action> als Präfix enthalten. Die Aktion kann auch separat als "Action"-Parameter bereitgestellt werden. Die in der Eingabeaufforderung angegebene action überschreibt den Parameter "action". 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       => 'runsql')
FROM dual;
-----------------------------------------------

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       => 'explainsql')
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 runsql (Standard), showsql, explainsql, narrate und chat. Beschreibungen von Aktionen sind unter Benutzerkennwort zur Eingabe von Prompts verwenden enthalten.

attributes Überschreiben Sie bestimmte AI-Profilattribute, indem Sie Attribute im JSON-Format angeben. Weitere Informationen finden Sie unter Profilattribute.

Beispiele

Die folgenden Beispiele veranschaulichen die Aktionen runsql, showsql, explainsql, narrate und chat, die mit der Funktion DBMS_CLOUD_AI.GENERATE verwendet werden können. Weitere Informationen finden Sie unter AI-Schlüsselwort zur Eingabe von Prompts verwenden.

Ein Beispiel mit der Aktion runsql lautet wie folgt:

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

Ein Beispiel mit der Aktion showsql:

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

Ein Beispiel mit der Aktion explainsql lautet wie folgt:

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

Ein Beispiel mit der Aktion narrate:

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

Ein Beispiel mit der Aktion chat:

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

Sie können DBMS_CLOUD_AI.GENERATE in einer Prozedur verwenden und die Funktion ausführen. Im folgenden Beispiel werden ai_prompt, profile_name und action als Eingabeparameter verwendet und DBMS_CLOUD_AI.GENERATE aufgerufen.

create or replace FUNCTION call_select_ai (ai_prompt  IN VARCHAR2, 
                                           ai_profile IN VARCHAR2,
                                           ai_action  IN VARCHAR2) -- valid for 'chat', 'narrate', 'showsql'
                                           RETURN CLOB AS sai_resp clob;
BEGIN
  sai_resp := DBMS_CLOUD_AI.GENERATE(prompt       => ai_prompt,
                                     profile_name => ai_profile,
                                     action       => ai_action);  
  return(sai_resp);
END call_select_ai;

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.

Die folgende Syntax generiert synthetische Daten für eine einzelne Tabelle.

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
);

Die folgende Syntax generiert synthetische Daten für mehrere Tabellen.

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 Erforderlich 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 Nein

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 Nein

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

user_prompt

Nein 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 wie folgt lauten:

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

params

Nein

Optionale Attribute, die im Format der JSON-Objektzeichenfolge 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 Tabellenobjektinformationen zusammen mit seinen Argumenten auf und enthält dieselben Argumente, die in der einzelnen Tabelle angegeben sind. Siehe object_list Parameter.

Optionale Parameter

Parameter Wert-Datentyp Value Beschreibung

sample_rows

Zahl

0 <= sample_rows <= 100

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

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

table_statistics

Boolean

  • True
  • False

Aktivieren oder deaktivieren Sie die Verwendung von Tabellenstatistikinformationen.

Der Standardwert ist False.

priority

String

Gültige Werte:

  • HIGH
  • MEDIUM
  • LOW

Weisen Sie einen Prioritätswert zu, der die Anzahl der parallelen Anforderungen definiert, die zur Generierung synthetischer Daten an das LLM gesendet werden. Aufgaben mit einer höheren 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 (oder der OCPU-Anzahl, wenn die Datenbank OCPUs verwendet) an.

  • MEDIUM: Legt die Anzahl der Hintergrundprozesse entsprechend dem Nebenläufigkeitslimit für den Medium-Service fest. Der Standardwert ist 4.

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

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

comments

Boolean
  • 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 Erforderlich Beschreibung

owner

String

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

Nein

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 die Tabelle it.The verwendet, ist entweder leer oder enthält Datensätze.

record_count

Zahl

Nein

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

Geben Sie record_count oder record_count_percentage an.

record_count_percentage

Zahl

Nein

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

Bei einer Metadatenklondatenbank, bei 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.

Bei Verwendung des Parameters record_count_percentage wird die endgültige Datensatzanzahl in der Tabelle wie folgt berechnet:
Original_Num_Rows *
      record_count_percentage

user_prompt

String Nein Entspricht user_prompt in Parametern. 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 unter Beispiel: Synthetische Daten generieren.

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.

Profilattribute

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

Attribute

Attributname Beschreibung

annotations

Bietet zusätzliche Metadaten zu Datenbanktabellen und -spalten mit dem 23ai-Annotationsfeature.

Die gültigen Werte sind TRUE oder FALSE. Der Standardwert ist FALSE. Bei den Werten ist die Groß-/Kleinschreibung nicht zu beachten.

TRUE: Erweitert die Benutzereingabeaufforderung um Anmerkungen auf Tabellen- und Spaltenebene sowie um weitere Metadaten zum LLM.

FALSE: Enthält keine Annotationen als Teil der erweiterten Prompt-Metadaten.

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_embedding_deployment_name

Name des bereitgestellten Einbettungsmodells in Azure OpenAI.

Der Name darf nur alphanumerische Zeichen, Unterstriche und Bindestriche enthalten. Der Name darf nicht mit einem Bindestrich oder Unterstrich beginnen oder enden.

azure_resource_name

Name der Azure-Serviceressource 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.

case_sensitive_values

Gibt an, ob Select AI das LLM anweisen soll, SQL ohne Beachtung der Groß-/Kleinschreibung für Spalten zu generieren, die Zeichenfolgen- oder Textwerte enthalten.

Folgende Werte werden unterstützt:

  • true: Gibt an, dass das LLM SQL-Abfragen mit Zeichenfolgenwerten generiert, bei denen die Groß-/Kleinschreibung beachtet wird.

  • false: Gibt das LLM an, um SQL-Abfragen zu generieren, bei denen die Groß-/Kleinschreibung für Zeichenfolgenwerte ignoriert wird.

Der Standardwert ist false.

comments

Enthält Kommentare auf Tabellenebene und Spaltenkommentare in den Metadaten, die zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache mit KI verwendet werden. BOOLEAN-Datentyp wird unterstützt. Die gültigen Werte sind TRUE oder FALSE für eine Zeichenfolge mit dem Datentyp VARCHAR2. Bei den Werten ist die Groß-/Kleinschreibung nicht zu beachten.

Hinweis

Geben Sie bei der Prozedur DBMS_CLOUD_AI.SET_ATTRIBUTE beim Festlegen eines einzelnen Attributs den Parameter attribute_value als Zeichenfolge ("true" oder "false") an, da der Parameter attribute_value den Datentyp CLOB aufweist.

constraints

Verwaltet, ob referenzielle Integritäts-Constraints wie Primär- und Fremdschlüssel in die an das LLM gesendeten Metadaten aufgenommen werden sollen.

Die gültigen Werte sind TRUE oder FALSE. Der Standardwert ist FALSE. Bei den Werten ist die Groß-/Kleinschreibung nicht zu beachten.

TRUE: Enthält referenzielle Constraints in die erweiterten Prompt-Metadaten, die an das LLM gesendet werden.

FALSE: Enthält keine referenziellen Integritäts-Constraints.

conversation

Ein VARCHAR2-Attribut, das angibt, ob die Unterhaltungshistorie für ein Profil aktiviert ist. 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, die Inhaber-Token verwenden, können erstellt werden, indem der Providername als Benutzername und Bearer-Token als Kennwort verwendet wird.

Vault Secret-Zugangsdaten werden ebenfalls unterstützt.

Die Hauptauthentifizierung, z. B. der Azure-Service-Principal, wird ebenfalls unterstützt. Weitere Informationen zur Konfiguration finden Sie unter Azure Service Principal für den Zugriff auf Azure-Ressourcen verwenden.

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
  • Anschrift: embed-english-v2.0
  • Google: text-embedding-004
Hinweis

  • Der Parameter embedding_model gilt nicht für anthropisches und umarmendes Gesicht.

  • Geben Sie bei datenbankinternen Modellen den in Ihre Datenbank importierten Modellnamen an, wenn Sie Select AI mit datenbankinternem Transformer-Modell verwenden möchten. Sie können den Modellnamen abrufen, indem Sie USER_MINING_MODELS abfragen.

    Syntax:

    Die folgende Syntax dient zur Verwendung des datenbankinternen Transformer-Modells für embedding_model:

    "embedding_model": "[<model_schema>.]<model_name>"

enforce_object_list

Gibt an, ob das LLM auf die Generierung von SQL beschränkt werden soll, das nur Tabellen verwendet, die von der Objektliste abgedeckt werden.

Folgende Werte werden unterstützt:

  • true: Erzwingt die Verwendung nur der Tabellen, die in der Objektliste angegeben sind.

  • false: Ermöglicht dem LLM die Verwendung von Tabellen, auf die der Benutzer zugreifen kann.

Bei den Werten ist die Groß-/Kleinschreibung nicht zu beachten. Der Standardwert ist false.

max_tokens

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

model

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

Siehe AI-Provider und LLMs auswählen, und geben Sie den Modellnamen an.

Hinweis

  • Cohere: 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: Die Chatmodelle werden für alle Select AI-Aktionen unterstützt, wie runsql, showsql, explainsql, narrate und chat.

    Select AI unterstützt vortrainierte Modelle für OCI Generative AI. Benutzerdefinierte Modelle können auch mit ihren vollständigen OCIDs bereitgestellt werden. Wenn Sie OCID oder oci_endpoint_id angeben, müssen Sie je nach OCI-Chatmodell entweder oci_runtimetype oder oci_apiformat angeben.

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

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

object_list

Array von JSON-Objekten, das den Eigentümer und die Objektnamen angibt, die für die Übersetzung in 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.

Die folgenden Objekttypen können verwendet werden:

  • Tabellen
  • Views
  • Materialized Views
  • Globale temporäre Tabellen
  • Externe Tabellen
  • Synonyme für die obigen Objekttypen

Für die Übersetzung natürlicher Sprache in SQL werden Objektname, Objekteigentümer, Objektspalten und Kommentare mit HTTPS-Anforderungen an den AI-Provider gesendet. Vermeiden Sie die Angabe von Objekten mit einem sensiblen Objektnamen, Spaltennamen oder Kommentaren in der Objektliste.

KI-Provider können die Größe der in Übersetzungsanforderungen zulässigen Metadaten begrenzen. Sie sollten die Liste der Objekte einschränken, die für die Eingabeaufforderungen in natürlicher Sprache von den Anwendungsbenutzern geeignet sind.

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

Externe Tabellen, die mit der Synchronisierung von OCI Data Catalog oder AWS Glue erstellt wurden, können auch die Objektliste verwenden. Dies hilft bei der Verwaltung von Metadaten in zentralen Datenkatalogen und der direkten Verwendung der Metadaten für die Übersetzung von Eingabeaufforderungen in natürlicher Sprache mithilfe von KI.

object_list_mode

Gibt an, ob Metadaten für die relevantesten Tabellen oder alle Tabellen an das LLM gesendet werden.

Unterstützte Werte sind:

  • automated: Sendet Metadaten nur für die spezifischen Tabellen, die für die Abfrage am relevantesten sind.

  • all: Sendet Metadaten für alle Tabellen, auf die der Benutzer zugreifen kann.

Wenn object_list_mode auf automated gesetzt ist, erstellt Select AI automatisch einen Vektorindex namens <profile_name>_OBJECT_LIST_VECINDEX mit Standardattributen. Siehe

oci_apiformat

Gibt das Format an, in dem die API erwartet, dass Daten gesendet und empfangen werden. Mit diesem Attribut können Sie Textantworten generieren. Dieses Attribut gilt für OCI Generative AI-Chatmodelle in einem dedizierten KI-Cluster. Geben Sie dieses Attribut an, wenn Sie eine Modell-OCID im Attribut model angeben oder einen Endpunkt im Attribut oci_endpoint_id angeben.

Unterstützte Werte sind:
  • COHERE
  • GENERIC
Hinweis

Verwenden Sie dieses Attribut für OCI Generative AI-Chatmodelle

oci_compartment_id

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

Der Standardwert ist die Compartment-ID der PDB.

oci_endpoint_id

Dieses Attribut gibt 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 Endpunktdetails 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 On-Demand auf einer gemeinsam verwendeten Infrastruktur.

oci_runtimetype

Dieses Attribut gibt den Laufzeittyp des angegebenen Modells an. Dieses Attribut gilt für OCI Generate Text-Modelle in einem dedizierten KI-Cluster. Geben Sie dieses Attribut an, wenn Sie eine Modell-OCID im Attribut model angeben oder einen Endpunkt im Attribut oci_endpoint_id angeben.

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

Folgende Werte werden unterstützt:
  • COHERE
  • LLAMA
Hinweis

Dieses Attribut ist veraltet. Verwenden Sie oci_apiformat.

provider

KI-Provider für das KI-Profil.

Unterstützte Provider:

  • openai
  • Cohere
  • Azur
  • Datenbank
  • OCI
  • google
  • anthropisch
  • Umarmungsgesicht

Dies ist ein obligatorisches Attribut.

region

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

Das generative KI-Cluster von Oracle 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 Details finden Sie unter Temperatur. Dieser Parameter gilt für alle unterstützten Serviceprovider.

vector_index_name

Name des Vektorindex. Der Name des Vektorindex muss den Benennungsregeln der Oracle SQL-ID entsprechen. Die maximale Länge des Vektorspeichernamens beträgt 125 Zeichen.

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_apiformat": "COHERE"            
       }');                                                                  
END;                                                                         
/ 

Prozedur ENABLE_DATA_ACCESS

Mit diesem Verfahren können Daten für anwendbare Select AI-Features an LLM gesendet werden. Dies ist das Standardverhalten. Dieses Verfahren kann nur von einem Administrator ausgeführt werden.

Dieses Verfahren steuert 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. Dieses Verfahren kann nur von einem Administrator ausgeführt werden.

Dieses Verfahren schränkt die folgenden Select AI-Funktionen ein:

  • 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

Diese Prozedur erstellt einen Vektorindex in der angegebenen Vektordatenbank und füllt ihn mit Daten aus einem Objektspeicher mit einem asynchronen Scheduler-Job auf.

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 Name des Vektorindex muss den Benennungsregeln der Oracle SQL-ID entsprechen. Die maximale Länge des Vektorspeichernamens beträgt 125 Zeichen.

Dies ist ein obligatorischer Parameter.

attributes

Benutzerdefinierte Attribute für den Vektorindex in JSON. Eine Liste der konfigurierbaren Parameter finden Sie unter Vector-Indexattribute.

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

Das folgende Beispiel zeigt, 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

Diese Prozedur entfernt einen Vektorspeicherindex. Normalerweise wird das Indexobjekt des Vektorspeichers entfernt und der Vektorspeicher gelöscht. Wenn dieser Wert auf FALSE gesetzt ist, stellt das Argument include_data sicher, dass die Prozedur das Indexobjekt des Vektorspeichers 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 Name des Vektorindex muss den Benennungsregeln der Oracle SQL-ID entsprechen. Die maximale Länge des Vektorspeichernamens beträgt 125 Zeichen.

Dies ist ein obligatorischer Parameter.

include_data

Gibt an, ob der Vektorspeicher und der Vektorindex des Kunden zusammen mit dem Vektorindexobjekt gelöscht werden sollen.

Mögliche Werte sind:

  • 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 sind:

  • TRUE
  • FALSE

Wenn dieser Parameter auf TRUE gesetzt ist, umgeht er alle Fehler, 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

Diese Prozedur deaktiviert ein Vektorindexobjekt in der aktuellen Datenbank. Wenn diese Option deaktiviert ist, kann ein AI-Profil den Vektorindex nicht verwenden, und das System lädt keine Daten in den Vektorspeicher, da dem Objektspeicher neue Daten hinzugefügt werden, und führt keine Indizierung, 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 Name des Vektorindex muss den Benennungsregeln der Oracle SQL-ID entsprechen. Die maximale Länge des Vektorspeichernamens beträgt 125 Zeichen.

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

Diese Prozedur aktiviert oder aktiviert ein zuvor deaktiviertes Vektorindexobjekt. Wenn Sie einen Vektorindex erstellen, ist er standardmäßig so aktiviert, dass das AI-Profil ihn zur Indizierung und Suche verwenden kann.

Wenn diese Option aktiviert ist, kann ein KI-Profil sie zum Laden neuer Daten aus einem Objektspeicher in einen Vektorspeicher mit einer benutzerdefinierten Aktualisierungsrate verwenden. Sie können den Parameter refresh_rate über die JSON-Objektliste angeben. Informationen zum Konfigurieren der JSON-Attribute finden Sie unter Vector-Indexattribute.

Syntax

DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Parameter

Parameter Beschreibung

index_name

Name des Vektorindex. Der Name des Vektorindex muss den Benennungsregeln der Oracle SQL-ID entsprechen. Die maximale Länge des Vektorspeichernamens beträgt 125 Zeichen.

Dies ist ein obligatorischer Parameter.

Beispiel

Sie können einen Vektorindex aktivieren oder aktivieren, indem Sie den Namen des Vektorindex 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. Es ist überladen, um Attributwerte verschiedener Typen zu akzeptieren.

Syntax

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 Name des Vektorindex muss den Benennungsregeln der Oracle SQL-ID entsprechen. Die maximale Länge des Vektorspeichernamens beträgt 125 Zeichen.

Dies ist ein obligatorischer Parameter.

attribute_name

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

Die folgenden Attribute können nicht geändert werden:

  • 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 den benutzerdefinierten attribute_name. Der Wert kann den Typ CLOB, NUMBER oder VARCHAR2 aufweisen.

Der Standardwert ist NULL.

Beispiel

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;                                                                 
/

Vektorindexattribute

Attribute eines Vektorindex helfen dabei, das Verhalten des Vektorindexes zu verwalten und zu konfigurieren. Sie können bei Bedarf benutzerdefinierte Indexattribute hinzufügen. Einige Attribute sind optional und haben einen Standardwert.

Attribute

Attributname Value Erforderlich Beschreibung
chunk_size 1024 (Standardwert) Nein

Textgröße für das Chunking der Eingabedaten.

Bei Textdaten bedeutet dies die Anzahl der Zeichen.

chunk_overlap 128 (Standardwert) Nein

Gibt die Anzahl der sich überschneidenden Zeichen zwischen benachbarten Textblöcken an. Dieses Attribut ist nützlich, um die kontextbezogene Kontinuität und Genauigkeit bei der Textverarbeitung sicherzustellen, indem Überschneidungen zwischen Segmenten zulässig sind. Dies verhindert den Verlust kontextbezogener Informationen an Chunk-Grenzen.

location

Nicht anwendbar Ja

Speicherort des Objektspeichers. Bei den Dateien an diesem Speicherort kann es sich um Dokumente in Formaten wie PDF, DOC, JSON, XML oder HTML handeln. Siehe Unterstützte Dokumentformate.

match_limit

5 (Standardwert) Nein

Gibt die maximale Anzahl von Ergebnissen an, die in einer Vektorsuchabfrage zurückgegeben werden sollen, um die Ausgabegröße zu steuern und die Effizienz von Datenabrufvorgängen zu verbessern.

object_storage_credential_name

Nicht anwendbar Ja

Gibt den Namen der Zugangsdaten für den Zugriff auf einen Objektspeicher an.

pipeline_name

<vector_index_name>$VECPIPELINE Nein

Gibt den Namen der Pipeline zum Laden von Vektorindexdaten an. Dieses Attribut wird automatisch für den Vektorindex festgelegt. Sie können es nicht angeben oder ändern. Mit dem Pipelinenamen können Sie das Laden von Vektorindexdaten mit Pipelines überwachen und Fehler beheben überwachen.

profile_name

Nicht anwendbar Ja

Name des AI-Profils, das zum Einbetten von Quelldaten und Benutzer-Prompts verwendet wird.

refresh_rate

1440 Minuten (Standard) Nein

Intervall für die Aktualisierung von Daten im Vektorspeicher. Die Einheit ist Minuten.

similarity_threshold

0 (Standard) Nein

Definiert die minimale Ähnlichkeitsebene, die erforderlich ist, damit zwei Elemente als Übereinstimmung betrachtet werden. Dies ist nützlich, um Ergebnisse in übereinstimmenden Algorithmen zu filtern, um die Relevanz sicherzustellen.

vector_distance_metric

Eine Zeichenfolge, die einem der in der Beschreibung angegebenen Werte entspricht.

Nein

Gibt den Typ der Entfernungsberechnung an, die zum Vergleichen von Vektoren in einer Datenbank verwendet wird und bestimmt, wie die Ähnlichkeit zwischen Elementen quantifiziert wird.

Gültige Werte für Oracle 23ai:

  • EUCLIDEAN
  • L2_SQUARED (EUCLIDEAN_SQUARED)
  • COSINE (Standard)
  • DOT
  • MANHATTAN
  • HAMMING

vector_db_provider

oracle

Ja

Gibt den Namen des Providers an, der den Vektorspeicher verwaltet und als dieser dient.

vector_dimension

Nicht anwendbar Nein

Gibt die Anzahl der Elemente in jedem Vektor innerhalb des Vektorspeichers an und definiert die Größe und Struktur der Datendarstellung.

vector_table_name

<vector_index_name>$VECTAB (Standard)

Nr.

Gibt den Namen der Tabelle oder Sammlung an, in der Vektoreinbettungen und Blockdaten gespeichert werden.

Das folgende Beispiel zeigt, wie Sie einen Vektorindex mit dem OCI Generative AI-Vektorspeicher erstellen.
BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
         index_name  => 'MY_INDEX',
         attributes  => '{"vector_db_provider": "oracle",
                          "location": "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder",
                          "object_storage_credential_name": "OCI_CRED",
                          "profile_name": "OPENAI_ORACLE",
                          "vector_dimension": 1024,
                          "vector_distance_metric": "cosine",
                          "chunk_overlap":128,
                          "chunk_size":1024
      }');
END;
/                                                                 
/