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

Als Entwickler können Sie DBMS_CLOUD-Prozeduren mit autonomen KI-Datenbanken verwenden, die in Oracle Public Cloud, Multicloud oder Exadata Cloud@Customer bereitgestellt sind.

Abhängig von der Bereitstellungsoption müssen die folgenden Voraussetzungen erfüllt sein, um die DBMS_CLOUD-Prozeduren mit Amazon S3-, Azure Blob Storage- und Google Cloud Storage-Serviceprovidern zu verwenden.

Übersicht über DBMS_CLOUD_AI-Unterprogramme

In diesem Abschnitt werden die DBMS_CLOUD_AI-Unterprogramme behandelt, die mit der autonomen KI-Datenbank bereitgestellt werden.

Unterprogramm Beschreibung
Prozedur CREATE_PROFILE Mit dieser Prozedur wird ein neues AI-Profil zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache in SQL-Anweisungen erstellt.
Profilattribute Stellt AI-Profilattribute bereit, die Sie konfigurieren können.
Prozedur DROP_PROFILE Bei diesem Verfahren wird ein vorhandenes AI-Profil gelöscht.
ENABLE_PROFILE-Prozedur Mit dieser Prozedur kann ein AI-Profil in der aktuellen Datenbank verwendet werden.
Prozedur DISABLE_PROFILE Bei diesem Verfahren wird ein AI-Profil in der aktuellen Datenbank deaktiviert.
Prozedur SET_ATTRIBUTE Diese Prozedur legt AI-Profilattribute fest.
Prozedur SET_PROFILE Diese Prozedur legt das AI-Profil für die aktuelle Datenbank fest.
Funktion GENERATE Diese Funktion generiert eine SQL-Anweisung, die KI zum Übersetzen verwendet.
GENERATE_SYNTHETIC_DATA-Funktion Diese Funktion erzeugt synthetische Daten.
ENABLE_DATA_ACCESS-Prozedur Verwenden Sie dieses Verfahren, um das Senden von Daten an Ihr LLM zu ermöglichen.
Prozedur DISABLE_DATA_ACCESS Verwenden Sie dieses Verfahren, um das Senden von Daten an Ihr LLM zu deaktivieren.
Prozedur CREATE_VECTOR_INDEX Mit dieser Prozedur wird ein Vektorindex in der angegebenen Vektordatenbank erstellt und mit Daten aus einem Objektspeicher mit einem asynchronen Scheduler-Job aufgefüllt.
Prozedur DROP_VECTOR_INDEX Mit diesem Verfahren wird ein Vektorspeicherindex entfernt. Es entfernt normalerweise das Vektorspeicher-Indexobjekt und löscht die Vektordatenbank.
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, und das System lädt keine Daten in den Vektorspeicher.
ENABLE_VECTOR_INDEX-Prozedur Mit dieser Prozedur wird ein zuvor deaktiviertes Vektorindexobjekt aktiviert oder aktiviert.
Prozedur UPDATE_VECTOR_INDEX Diese Prozedur aktualisiert einen vorhandenen Vektorspeicherindex mit einem angegebenen Wert des Vektorindexattributs.
Vektorindexattribute Stellt Vektorindexprofilattribute bereit, die Sie konfigurieren können.
CREATE_CONVERSATION-Prozedur Mit diesem Verfahren können Sie eine Konversation erstellen.
CREATE_CONVERSATION-Funktion Mit dieser Funktion können Sie eine Konversation erstellen und die Konversationskennung in anderen Verfahren verwenden.
CREATE_CONVERSATION-Attribute Verwenden Sie die Unterhaltungsattribute, um Ihre Unterhaltungen anzupassen.
Prozedur UPDATE_CONVERSATION Diese Prozedur aktualisiert eine vorhandene Prozedur mit benutzerdefinierten Parametern.
Prozedur SET_CONVERSATION_ID Diese Prozedur legt die Konversationsunterstützung in der aktuellen Sitzung fest.
Funktion GET_CONVERSATION_ID Mit dieser Prozedur können Sie den Parameter conversation_id abrufen.
Prozedur CLEAR_CONVERSATION_ID Mit diesem Verfahren können Sie alle in der aktuellen Session festgelegten conversation_id-Werte löschen.
Prozedur DELETE_CONVERSATION_PROMPT Diese Prozedur löscht eine bestimmte Eingabeaufforderung.
DROP_CONVERSATION-Prozedur Bei diesem Verfahren werden eine gesamte Unterhaltung und ihre Metadaten gelöscht.
FEEDBACK-Verfahren Unter diesem Thema wird beschrieben, wie Sie die Genauigkeit der Abfragegenerierung verbessern können, indem Sie ein Feedback an Select AI geben.
Vektor-Index für FEEDBACK Dies ist ein Standardvektorindex, der erstellt wird, wenn Sie feedback zum ersten Mal verwenden.

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 für KI.

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

Profilattribute

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

Attributname Beschreibung
azure_deployment_name Name des bereitgestellten Azure OpenAI Service-Modells. 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 OpenAI Service-Ressource erstellen und bereitstellen.
azure_resource_name Name der Azure OpenAI Service-Ressource. 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 OpenAI-Serviceressource erstellen und bereitstellen.
comments

Fügen Sie Spaltenkommentare in die Metadaten ein, 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.

Hinweis: Boolesche Werte sind in der Prozedur DBMS_CLOUD_AI.SET_ATTRIBUTE nicht anwendbar, wenn ein einzelnes Attribut festgelegt wird, da der Parameter attribute_value den Datentyp CLOB aufweist.

conversation Ein Attribut VARCHAR2, 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 ist die Groß-/Kleinschreibung nicht zu beachten.
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 gilt nicht für Anthropic und Hugging Face.

max_tokens Gibt die Anzahl der Token an, die pro Generierung vorhergesagt werden sollen. Der Standardwert ist 1024. Weitere Informationen finden Sie unter 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-Nacht (experimentell), Befehlslicht und Befehl-Licht-Nacht (experimentell). Kleinere, "leichte" Modelle sind schneller, während größere Modelle besser funktionieren.[Benutzerdefinierte Modelle](https://docs.cohere.com/docs/creating-custom-models#what-are-custom-models) kann auch mit ihrer vollständigen ID geliefert werden.
  • OCI Generative AI: Für OCI Generative AI: cohere.command (Standard). Vorgeschulte Modelle für OCI Generative AI werden alle von Select AI unterstützt. Benutzerdefinierte Modelle können auch mit ihren vollständigen OCIDs geliefert werden.

    Weitere Informationen zu unterstützten Modellen in OCI Generative AI finden Sie unter Pretrained Foundational Models in Generative AI.

  • AWS: Amazon Bedrock-Grundlagenmodelle erfordern Zugriffsberechtigungen über die Amazon Bedrock-Konsole. Lesen Sie die AWS-Dokumentation, um die modelID abzurufen.

Hinweis: Dieser Parameter wird nicht für Azure verwendet, da das Modell bestimmt wird, wenn Sie Ihr Deployment im Azure OpenAI Service-Portal erstellen.

object_list

Array von JSON-Objekten, das Eigentümer- und 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.

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

KI-Provider haben möglicherweise ein Limit für die Größe der Metadaten, die in Übersetzungsanforderungen zulässig sind. Beschränken 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 KI-Hostingclusters von Oracle 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 gemeinsamen 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 auf OCI-Generierungsmodelle anwendbar ist.

Alle zulässigen Werte finden Sie im RuntimeType "OCI Generative AI". Siehe Referenz zu LlmInferenceRequest.

Folgende Werte werden unterstützt:

  • COHERE
  • LLAMA

provider

KI-Provider für das KI-Profil.

Unterstützte Provider

  • openai
  • Kohärenz
  • Azurblaue
  • OCI
  • google
  • anthrop
  • huggingface
  • Aws

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 [Pretrained Foundational Models in Generative AI](https://docs.oracle.com/en-us/iaas/Content/generative-ai/pretrained-models.htm#pretrained-models).

Die Standardregion ist "us-chicago-1".

Die Standardregion für AWS ist us-east-1.

stop_tokens Der generierte Text wird am Anfang der frühesten Stoppsequenz beendet. Die Sequenz wird in den Text integriert. Der Attributwert muss ein gültiges Array von Zeichenfolgenwerten im JSON-Format sein. stop_tokens nimmt ein JSON-Array als Eingabe an. Weitere Informationen zu Stopptokens oder Stoppsequenzen finden Sie in der Dokumentation zu OpenAI oder Cohere.
temperature Das Sampling von Generate Text-Modellen beinhaltet Zufälligkeit, so dass der gleiche Prompt bei jedem "Generate" verschiedene Ausgaben ergeben 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 Dienstleister.

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

Prozedur DROP_PROFILE

Das Verfahren 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, ignoriert die Prozedur Fehler, wenn kein AI-Profil vorhanden ist.

Der Standardwert für diesen Parameter ist 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.

ENABLE_PROFILE-Prozedur

Diese Prozedur aktiviert das AI-Profil, das der Benutzer angibt. 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 für das zu aktivierende AI-Profil

Dieser Parameter ist obligatorisch.

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. Der Status des AI-Profils wird durch diese Prozedur 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 obligatorisch.

Beispiel

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

Prozedur SET_ATTRIBUTE

Mit dieser Prozedur 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 obligatorisch.

attribute_name

Name des AI-Profilattributs

Dieser Parameter ist obligatorisch.

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 Prompt 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 Eingabeaufforderungen mit AI-Schlüsselwort eingeben. Optional können Sie die Profilattribute überschreiben oder Attribute ändern, indem Sie sie im JSON-Format angeben. Informationen zum Festlegen der Attribute finden Sie in der 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 jeweiligen 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 obligatorisch.

Beispiel

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

Funktion GENERATE

Diese Funktion stellt eine AI-Übersetzung bereit, wenn eine zustandslose Datenbankverbindung verwendet wird. Mit Ihrem vorhandenen AI-Profil können Sie diese Funktion verwenden, um die unterstützten Aktionen auszuführen, wie showsql, runsql, explainsql, narrate, summarize und chat. 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,
    params            IN  CLOB
) RETURN CLOB;

Parameter

Parameter Beschreibung
prompt

Eingabeaufforderung in natürlicher Sprache zum Übersetzen mit KI.

Die Eingabeaufforderung kann SELECT AI <ACTION> als Präfix enthalten. Die Aktion kann auch separat als Parameter "action" bereitgestellt werden. Die im Prompt angegebene Aktion setzt den Parameter action außer Kraft. Die Standardaktion ist showsql.

Dieser Parameter ist obligatorisch.

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

  • summarize

  • translate

  • chat

Beschreibungen von Aktionen sind in Eingabeaufforderungen mit KI-Schlüsselwörtern eingeben enthalten.

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

Geben Sie den Konversationsparameter an. Siehe CREATE_CONVERSATION-Attribute. Sie können nur den folgenden Parameter angeben:

conversation_id: Der Standardwert ist die in der aktuellen Session festgelegte Unterhaltungs-ID. Dies ist kein erforderlicher Parameter.

Beispiele

Beispiel: Funktion GENERATE für die Auswahl von KI-Aktionen verwenden

Die folgenden Beispiele veranschaulichen die Aktionen runsql, showsql, explainsql, narrate, summarize, translate und chat, die mit der Funktion DBMS_CLOUD_AI.GENERATE verwendet werden können.

Weitere Informationen finden Sie auch unter Eingabeaufforderungen mit KI-Schlüsselwörtern eingeben.

Beispiel für die Aktion runsql:

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

Beispiel für die Aktion showsql:

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

Beispiel für die Aktion explainsql:

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

Beispiel für die Aktion narrate:

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

Beispiel für die Aktion chat:

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

Beispiel für die Aktion summarize:

SELECT DBMS_CLOUD_AI.GENERATE(
                prompt => TO_CLOB(
                            DBMS_CLOUD.GET_OBJECT(
                             credential_name => 'STORE_CRED',
                             object_uri => 'https://objectstorage.ca-toronto-1.oraclecloud.com' ||
                                '/n/namespace-string/b/bucketname/o/data_folder/' ||
                                'summary/test_4000_words.txt')),
                profile_name => 'GENAI_LLAMA',
                action => 'SUMMARIZE')
from DUAL;

Ergebnis:

The music streaming industry, led by Spotify, has revolutionized the way people consume music, with streaming accounting for 80% of the American recording industry's revenue. However, this shift has also complicated the lives of artists trying to survive in an on-demand, hyper-abundant present.
Spotify's business model, which pays royalties based on an artist's
popularity, has led to concerns about the fairness of the system, with some artists earning little to no royalties. The company's dominance has also changed the way people listen to music, with a focus on convenience and personalized playlists. Liz Pelly's book, "Mood Machine: The Rise of Spotify and the Costs of the Perfect Playlist," explores the impact of Spotify's rise on the music industry and listeners, arguing that the platform's emphasis on
affect and mood has led to a homogenization of music and a loss of autonomy for listeners. As the music industry continues to evolve, questions remain about the future of music creation and consumption, and whether artists will be able to thrive in a system that prioritizes convenience and profit over artistic expression.

Die folgenden Beispiele zeigen die Aktion translate:

Die folgenden Beispiele zeigen die Verwendung der Aktion translate im Prompt.

Hinweis: Ihr KI-Profil muss die Zielsprache angeben.

SELECT DBMS_CLOUD_AI.GENERATE('select ai translate text to be translated')
          FROM dual;

Das folgende Beispiel zeigt die in der Funktion DBMS_CLOUD_AI.GENERATE bereitgestellte Aktion translate zusammen mit target_language und source_language. In diesem Beispiel wird generative KI-Übersetzung verwendet. Der Eingabetext this is a document in Englisch (source_language: "en") wird ins Französische (target_language: "fr") übersetzt.

DECLARE
         l_attributes  clob := '{"target_language": "fr", "source_language": "en"}';
         output clob;
      BEGIN
         output := DBMS_CLOUD_AI.GENERATE(
                        prompt            => 'this is a document',
                        profile_name      => 'oci_translate',
                        action            => 'translate',
                        attributes        => l_attributes
                     );

Funktion GENERATE in einer Prozedur verwenden

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;

GENERATE_SYNTHETIC_DATA-Funktion

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 der Spalte "release_date" zu generieren, kann "user_prompt" wie folgt lauten:

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

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 entsprechend 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 sie verwendet. Die Tabelle ist entweder leer oder enthält Datensätze.
record_count Nummer Nr.

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

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. Stellen Sie eine Zahl größer als 0 bereit.

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. Identisch mit user_prompt in Funktionsparameter GENERATE_SYNTHETIC_DATA. 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;
/
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;
/

ENABLE_DATA_ACCESS-Prozedur

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:

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. Nur ein Administrator kann diese Prozedur ausführen.

Diese Prozedur begrenzt die folgenden Select AI-Funktionen:

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

Mit 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 unter Vektorindexattribute.

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

ENABLE_VECTOR_INDEX-Prozedur

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 unter Vektorindexattribute.

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:

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 anzugeben, oder die Parameter attribute_name und attribute_value zusammen.

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

Vektorindexattribute

Mit den Attributen eines Vektorindex können Sie das Verhalten des Vektorindex verwalten und konfigurieren. Sie können nach Bedarf benutzerdefinierte Indexattribute hinzufügen. Einige Attribute sind optional und haben einen Standardwert.

Attribute

Attributname Datum Obligatorisch Beschreibung
chunk_size 1024 (Standard) Nr.

Textgröße des Chunks der Eingabedaten.

Bei Textdaten bedeutet dies die Anzahl der Zeichen.

chunk_overlap 128 (Standard) Nr. Gibt die Anzahl sich überschneidender Zeichen zwischen angrenzenden Textblöcken an. Dieses Attribut ist nützlich, um kontextbezogene Kontinuität und Genauigkeit bei der Textverarbeitung sicherzustellen, indem Überschneidungen zwischen Segmenten zugelassen werden. Dadurch wird der Verlust kontextbezogener Informationen an Chunk-Grenzen verhindert.
location - Ja

Dieser Parameter gibt die URI der Quelldatei oder Verzeichnisse und Quelldateien an.

Platzhaltermuster werden sowohl für Quelldatei-URIs als auch für Verzeichnisse unterstützt.

URIs der Cloud-Quelldatei:

Sie können eine Quelldatei-URI für Bucket oder Unterordner angeben. Sie können Platzhalter verwenden, um Unterordner oder Dateinamen anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen verwendet werden, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden.

Beispiel mit Platzhaltern:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv

Das Format der URIs ist vom benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Verzeichnis:

Sie können ein Verzeichnis und einen Dateinamen angeben. Das Format für die Angabe eines Verzeichnisses lautet: MY_DIR:filename.ext. Standardmäßig ist der Verzeichnisname MY_DIR ein Datenbankobjekt, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beim Dateinamen muss die Groß-/Kleinschreibung beachtet werden.

Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen * kann als Platzhalter für mehrere Zeichen verwendet werden, und das Zeichen ? kann als Platzhalter für ein einzelnes Zeichen verwendet werden. Beispiel: MY_DIR:* oder MY_DIR:test?.

Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: "my_dir1":*, "my_dir2":Test?

Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: MY_DIR:''filename.ext. Gibt an, dass der Dateiname mit einem Anführungszeichen (') beginnt.

Die Dateien an diesem Speicherort können Dokumente in Formaten wie PDF, DOC, JSON, XML oder HTML sein. Siehe Unterstützte Dokumentformate.

match_limit 5 (Standard) Nr. Gibt die maximale Anzahl von Ergebnissen an, die in einer Vektorsuchabfrage zurückgegeben werden sollen. Dadurch wird die Ausgabegröße gesteuert und die Effizienz von Datenabrufvorgängen verbessert.
object_storage_credential_name - Ja Gibt den Namen der Zugangsdaten für den Zugriff auf einen Objektspeicher an.
pipeline_name <vector_index_name>$VECPIPELINE Nr. Gibt den Namen der Dataload-Pipeline für Vektorindizes 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 Dataload des Vektorindex mit Pipelines überwachen und Fehler beheben überwachen.
profile_name - Ja Name des KI-Profils, das zum Einbetten von Quelldaten und Benutzer-Prompts verwendet wird.
refresh_rate 1440 Minuten (Standard) Nr. Intervall für die Aktualisierung von Daten im Vektorspeicher. Die Einheit ist Minuten.
similarity_threshold 0 (Standard) Nr. Definiert die minimale Ähnlichkeitsebene, die erforderlich ist, damit zwei Elemente als Übereinstimmung betrachtet werden. Das ist nützlich zum Filtern der Ergebnisse in Übereinstimmungsalgorithmen, um die Relevanz sicherzustellen.
vector_distance_metric Eine Zeichenfolge, die einem der in der Beschreibung angegebenen Werte entspricht. Nr.

Gibt den Typ der Abstandsberechnung 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 Providernamen an, der als Vektorspeicher verwaltet und dient.
vector_dimension - Nr. 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.

Beispiel: Objektspeicher-URI-Speicherort angeben

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

Beispiel: Geben Sie den Speicherort der Object Storage-URI mit einem Platzhaltermuster an

In diesem Beispiel wird ein Platzhaltermuster (*) in der Object Storage-URI als Parameter location angegeben. Es lädt alle CSV-Dateien aus der Object Storage-URI.

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.myregion.oraclecloud.com/n/my$namespace/b/bucketname/o/year=????/month=??/file*.csv)',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Beispiel: Verzeichnisobjektspeicherort mit Platzhaltermuster angeben

In diesem Beispiel werden Verzeichnisobjekte im Parameter location mit einem Platzhaltermuster angegeben. Es lädt alle CSV-Dateien im Verzeichnis MY_DIR.

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 'MY_DIR:*.csv',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Beispiel: Geben Sie den Speicherort des Directory-Objekts mit Platzhaltermuster an

In diesem Beispiel werden Verzeichnisobjekte im Parameter location mit einem Platzhaltermuster angegeben, bei denen die Groß-/Kleinschreibung beachtet wird. Es lädt alle CSV-Dateien im Verzeichnis My_Dir.

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 '"My_Dir":*.csv',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Beispiel: Geben Sie das Directory-Objekt mit Groß-/Kleinschreibung und allen Dateien als Platzhaltermuster an

In diesem Beispiel wird im Parameter location ein Verzeichnisobjekt angegeben, bei dem die Groß-/Kleinschreibung beachtet wird. Verwenden Sie dazu ein Platzhaltermuster (*). Es lädt alle Dateien im Verzeichnis My_Dir.

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 '"My_Dir":*',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Beispiel: Dateinamenübereinstimmung im Directory-Objekt angeben

In diesem Beispiel wird ein Verzeichnisobjekt angegeben und ein Dateinamenpräfix wie test im Parameter location verwendet. Es lädt alle Dateien im Verzeichnis MY_DIR, deren Namen mit test beginnen.

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 'MY_DIR:test*',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

CREATE_CONVERSATION-Prozedur

Mit diesem Verfahren können Sie eine Unterhaltung erstellen und automatisch die conversation_id innerhalb der Prozedur festlegen.

Hinweis: Wenn Sie die Prozedur DBMS_CLOUD_AI.CREATE_CONVERSATION verwenden, können Sie die Einstellung conversation_id überspringen, da sie von der Prozedur automatisch festgelegt wird.

Syntax

DBMS_CLOUD_AI.CREATE_CONVERSATION(
  attributes            IN CLOB DEFAULT NULL
);

Parameter

Parameter Beschreibung
attributes

Attribute für Unterhaltung im JSON-Format. Weitere Informationen finden Sie unter CREATE_CONVERSATION-Attribute.

Der Standardwert ist NULL.

Beispiel

Beispiel: Unterhaltung erstellen

Das folgende Beispiel zeigt das Erstellen einer Unterhaltung ohne Anpassung.

EXEC DBMS_CLOUD_AI.CREATE_CONVERSATION;

Beispiel: Unterhaltung mit benutzerdefinierten Attributen erstellen

Das folgende Beispiel zeigt das Erstellen einer Unterhaltung mit benutzerdefinierten Parametern, wie title, description, retention_days und conversation_length.

-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
               attributes => '{"title":"Conversation 1",
                               "description":"this is a description",
                               "retention_days":5,
                               "conversation_length":5}')
     AS conversation_id FROM dual;

CREATE_CONVERSATION-Funktion

Diese Funktion erstellt eine Unterhaltung und gibt die zugehörige conversation_id zurück, die in anderen Prozeduren oder Funktionen wie DBMS_CLOUD_AI.SET_CONVERSATION_ID und DBMS_CLOUD_AI.GENERATE verwendet werden kann.

Oracle empfiehlt, conversation_id festzulegen, um die Unterhaltung zu aktivieren. Alternativ können Sie conversation_id in der Funktion DBMS_CLOUD_AI.GENERATE festlegen.

Hinweis: Wenn Sie die Prozedur DBMS_CLOUD_AI.CREATE_CONVERSATION verwenden, können Sie die Einstellung conversation_id überspringen, da sie von der Prozedur automatisch festgelegt wird.

Syntax

DBMS_CLOUD_AI.CREATE_CONVERSATION(
  attributes            IN CLOB DEFAULT NULL
) RETURN VARCHAR2;

Parameter

Parameter Beschreibung
attributes

Attribute für Unterhaltung im JSON-Format. Weitere Informationen finden Sie unter CREATE_CONVERSATION-Attribute.

Der Standardwert ist NULL.

Beispiel

Beispiel: Unterhaltung erstellen

Das folgende Beispiel zeigt, wie Sie mit der Funktion DBMS_CLOUD_AI.CREATE_CONVERSATION eine Unterhaltung ohne Anpassung erstellen.

SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION FROM DUAL;

Ergebnis:

CREATE_CONVERSATION
------------------------------------
30C9DB6E-EA4D-AFBA-E063-9C6D46644B92

Beispiel: Unterhaltung mit benutzerdefinierten Attributen erstellen

Das folgende Beispiel zeigt, wie Sie mit der Funktion DBMS_CLOUD_AI.CREATE_CONVERSATION Attribute wie title, retention_days und conversation_length angeben.

SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
				attributes => '{"title":"This is a test conversation",
                               "retention_days":7,
                               "conversation_length":20}')
FROM DUAL;

CREATE_CONVERSATION-Attribute

Diese Attribute verwalten den Konversationskontext, einschließlich der Aufbewahrungsdauer, der Anzahl der Prompts mit Antworten zum Speichern oder Anzeigen sowie Metadaten wie Titel und Beschreibung zur Referenz. Einige Attribute sind optional und haben einen Standardwert.

Attribute

Attributname Standardwert Beschreibung
title Neue Unterhaltung Der vom Benutzer zugewiesene Name für die Unterhaltung. Wenn diese Option nicht angegeben ist, generiert das LLM ein LLM, wenn die Unterhaltung zum ersten Mal mit einer Eingabeaufforderung verwendet wird.
description NULL Stellt eine benutzerdefinierte Beschreibung bereit, die den Zweck oder den Kontext der Unterhaltung zusammenfasst. Wenn es nicht bereitgestellt wird, generiert das LLM eines, wenn die Unterhaltung zum ersten Mal mit einer Eingabeaufforderung verwendet wird, und aktualisiert es beim 5. Einsatz erneut, um genauere und relevantere Informationen aufzunehmen.
retention_days 7 Geben Sie an, wie viele Tage die Unterhaltungshistorie beibehalten werden soll. Dieser wird ab dem Erstellungsdatum in der Datenbank gespeichert. Wenn Sie den Wert weglassen, setzt das System ihn auf den Standardwert 7. Wenn Sie die Konversation auf 0 setzen, wird sie beibehalten, bis Sie sie mit der Prozedur DBMS_CLOUD_AI.DROP_CONVERSATION oder DBMS_CLOUD.DELETE_ALL_OPERATIONS('CONVERSATION') manuell löschen.
conversation_length NULL

Geben Sie die Anzahl der letzten Prompts und Antworten an, die in die aktuelle Eingabeaufforderung aufgenommen werden sollen. Der maximal zulässige Wert beträgt 999. Sie können diesen Wert außer Kraft setzen, indem Sie den Parameter conversation_length in der Funktion DBMS_CLOUD_AI.GENERATE angeben oder ihn im AI-Profil mit SELECT AI <ACTION> <PROMPT> festlegen. Wenden Sie die folgenden Prioritätsregeln für conversation_length an:

  1. Wert aus dem Attributargument in DBMS_CLOUD_AI.GENERATE
  2. Der in der Unterhaltung festgelegte Wert hat die nächste Priorität
  3. Der im KI-Profil definierte Wert hat die letzte Priorität

Wenn keiner von ihnen die conversation_length angibt, ist der Standardwert 10.

Das folgende Beispiel zeigt, wie Sie Unterhaltungsattribute in der Prozedur DBMS_CLOUD_AI.CREATE_CONVERSATION anpassen können.

-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
               attributes => '{"title":"Conversation 1",
                               "description":"this is a description",
                               "retention_days":5,
                               "conversation_length":5}')
     AS conversation_id FROM dual;

Prozedur UPDATE_CONVERSATION

Diese Prozedur aktualisiert eine vorhandene Konversation mit einem angegebenen Wert der Konversationsattribute.

Syntax

DBMS_CLOUD_AI.UPDATE_CONVERSATION(
    conversation_id    IN VARCHAR2,
    attributes         IN CLOB
);

Parameter

Parameter Beschreibung
conversation_id

Eindeutige Nummer, die einer Unterhaltung zugewiesen ist.

Dies ist ein obligatorischer Parameter.

attributes Attribute für Unterhaltung im JSON-Format. Weitere Informationen finden Sie unter CREATE_CONVERSATION-Attribute.

Beispiel

EXEC DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id => '30C9DB6E-EA4E-AFBA-E063-9C6D46644B92',
attributes => '{"retention_days":20,
		"description":"This a sample description",
		"title":"Sample title",
		"conversation_length":20}');

Prozedur SET_CONVERSATION_ID

Diese Prozedur setzt die aktuelle Konversation auf die angegebene Kennung. Nachfolgende Prompts enthalten vorhandene Unterhaltungs-Prompts basierend auf den konfigurierten Attributen der Unterhaltung.

Syntax

DBMS_CLOUD_AI.SET_CONVERSATION_ID(
    conversation_id   IN VARCHAR2
);

Parameter

Parameter Beschreibung
conversation_id

Eindeutige Nummer, die einer Unterhaltung in der aktuellen Sitzung zugewiesen ist.

Dieser Parameter ist obligatorisch.

Beispiel

EXEC DBMS_CLOUD_AI.SET_CONVERSATION_ID('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');

Funktion GET_CONVERSATION_ID

Diese Funktion gibt die derzeit in der Session festgelegte Unterhaltungs-ID zurück, die entweder die Prozedur DBMS_CLOUD_AI.SET_CONVERSATION_ID oder DBMS_CLOUS_AI.CREATE_CONVERSATION verwendet. Wenn Sie keine Unterhaltung festgelegt haben, gibt die Funktion NULL zurück. Wenn Sie die Konversation löschen, wird sie auch in der Session gelöscht. Siehe Prozedur CLEAR_CONVERSATION_ID.

Syntax

DBMS_CLOUD_AI.GET_CONVERSATION_ID
RETURN VARCHAR2;

Beispiel

In diesem Beispiel wird die Konversationskennung angezeigt, die in der aktuellen Sitzung festgelegt wurde.

SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID;

Ergebnis:

--------------------------------------------------------------------------------
30C9DB6E-EA4F-AFBA-E063-9C6D46644B92

Prozedur CLEAR_CONVERSATION_ID

Bei dieser Prozedur wird eine in der Session festgelegte Unterhaltungs-ID gelöscht, um die Unterhaltungsfunktion für SELECT AI <ACTION> <PROMPT> zu deaktivieren. Wenn Sie keine Konversation festgelegt haben, löst das System keinen Fehler aus.

Syntax

DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;

Beispiel

In diesem Beispiel wird die aktuelle Konversations-ID in der Session angezeigt, die ID gelöscht und die Änderung überprüft.

-- A conversation id is set in the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;

GET_CONVERSATION_ID
--------------------------------------------------------------------------------
3A88BFF0-1D7E-B3B8-E063-9C6D46640ECD


-- Clear the conversation id
EXEC DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;

PL/SQL procedure successfully completed.


-- The conversation id is removed from the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;

GET_CONVERSATION_ID
--------------------------------------------------------------------------------

Prozedur DELETE_CONVERSATION_PROMPT

Die Prozedur entfernt eine bestimmte Eingabeaufforderung aus der Konversation.

Syntax

DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT(
    conversation_prompt_id  IN VARCHAR2,
    force                   IN BOOLEAN DEFAULT FALSE
);

Parameter

Parameter Beschreibung
conversation_prompt_id

Eindeutige Nummer, die einer Eingabeaufforderung in einer Konversation zugewiesen ist. Sie können die Prompt-ID suchen, indem Sie die View DBA/USER_CLOUD_AI_CONVERSATION_PROMPTS abfragen. Siehe DBMS_CLOUD_AI-Ansichten.

Dies ist ein obligatorischer Parameter.

force

Wenn TRUE, ignoriert die Prozedur Fehler, wenn conversation_prompt_id nicht vorhanden ist.

Der Standardwert für diesen Parameter ist FALSE.

Beispiel

EXEC DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT('30C9DB6E-EA61-AFBA-E063-9C6D46644B92');

DROP_CONVERSATION-Prozedur

Die Prozedur entfernt die Konversation und alle zugehörigen Prompts und die zugehörigen Antworten. Nach dem Löschen wird conversation_id ungültig. Wenn eine Unterhaltung gelöscht wird, während sie in der Sitzung festgelegt wird, wird sie automatisch gelöscht.

Syntax

DBMS_CLOUD_AI.DROP_CONVERSATION(
    conversation_id  IN VARCHAR2,
    force            IN BOOLEAN  DEFAULT FALSE
);

Parameter

Parameter Beschreibung
conversation_id

Eindeutige Nummer, die einer Unterhaltung zugewiesen ist.

Dies ist ein obligatorischer Parameter.

force

Wenn TRUE, ignoriert die Prozedur Fehler, wenn conversation_id nicht vorhanden ist.

Der Standardwert für diesen Parameter ist FALSE.

Beispiel

EXEC DBMS_CLOUD_AI.DROP_CONVERSATION('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');

Ergebnis:

PL/SQL procedure successfully completed.

FEEDBACK-Verfahren

Mit diesem Verfahren können Sie Select AI Feedback geben, um die Genauigkeit der Abfragegenerierung zu verbessern. Sie können sowohl positives als auch negatives Feedback sowie Textkommentare und geänderte SQL-Abfragen abgeben.

Syntax

DBMS_CLOUD_AI.FEEDBACK(
      profile_name      IN  VARCHAR2,
      sql_id            IN  DBMS_ID,
      feedback_type     IN  VARCHAR2 DEFAULT NULL,
      response          IN  CLOB DEFAULT NULL,
      feedback_content  IN  CLOB DEFAULT NULL,
      operation         IN  VARCHAR2 DEFAULT 'ADD'
  );

DBMS_CLOUD_AI.FEEDBACK(
      profile_name      IN  VARCHAR2,
      sql_text          IN  CLOB,
      feedback_type     IN  VARCHAR2 DEFAULT NULL,
      response          IN  CLOB DEFAULT NULL,
      feedback_content  IN  CLOB DEFAULT NULL,
      operation         IN  VARCHAR2 DEFAULT 'ADD'
  );

Parameter

Parameter Beschreibung
profile_name

Gibt das zu verwendende AI-Profil an. Wenn Sie keine profile_name angeben, verwendet Select AI das in der Session festgelegte Standardprofil.

Dies ist ein obligatorischer Parameter.

sql_id

Gibt die SQL-Abfrage an. Eine sql_id kann nur einen Feedbackeintrag enthalten.

Dies ist ein obligatorischer Parameter.

sql_text

Enthält den vollständigen Text der SQL-Abfrage.

Dies ist ein obligatorischer Parameter.

feedback_type

Gibt den Feedbacktyp an. Die verfügbaren Werte sind:

  • positive: Akzeptieren Sie die generierte SQL.
  • negative: Geben Sie die erforderlichen SQL-Abfrageverbesserungen an, indem Sie Fehler in der Abfrage identifizieren.

Hinweis: Mit der Prozedur DBMS_CLOUD_AI.FEEDBACK können Sie sql_id oder sql_text angeben. Daher ist feedback_type erforderlich. Wenn Sie die Aktion feedback verwenden, bestimmt oder interpretiert das LLM den Feedbacktyp dynamisch.

Dies ist ein obligatorischer Parameter, wenn operation add ist.

response

Stellt das korrekte SQL-Abfrageergebnis dar, das der Benutzer erwartet.

Dies ist ein obligatorischer Parameter, wenn operation add lautet und feedback_type negativ ist.

feedback_content Erfasst das Feedback des Benutzers in natürlicher Sprache. Sie können diesen Parameter zusammen mit response verwenden.
operation

Gibt die auszuführende Operation an. Folgende Werte werden akzeptiert:

  • add (Standard): Fügen Sie Ihr Feedback hinzu, indem Sie feedback_type angeben.
  • delete: Löschen Sie Ihr Feedback, indem Sie sql_id angeben

Beispiel

Beispiel: Feedback für die generierte SQL mit Hinzufüge- oder Löschvorgängen geben

Das folgende Beispiel zeigt, wie Sie mit der Prozedur DBMS_CLOUD_AI.FEEDBACK die generierte SQL akzeptieren oder verbessern, indem Sie die Parameter aus der Prozedur angeben.

EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
                                   sql_id=> '852w8u83gktc1',
                                   feedback_type=>'positive',
                                   operation=>'add');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
                                   sql_text=> 'select ai showsql how many movies',
                                   feedback_type=> 'negative',
                                   response=>'SELECT SUM(1) FROM "ADB_USER"."MOVIES"',
                                   feedback_content=>'Use SUM instead of COUNT');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
                                   sql_id=> '852w8u83gktc1',
                                   operation=>'delete');

Vektor-Index für FEEDBACK

Wählen Sie "KI" aus, um einen Standardvektorindex namens <*profile_name*>_FEEDBACK_VECINDEX mit Standardattributen zu erstellen, wenn Sie das Feedbackfeature zum ersten Mal verwenden.

Sie können die zugehörigen Attribute wie similarity_threshold und match_limit mit der Prozedur DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX ändern. Mit diesem Index können Sie zukünftig generierte SQL basierend auf dem Feedback verfeinern. Diese Tabelle wird gelöscht, wenn das zugehörige AI-Profil gelöscht wird. Sie können auch <profile_name>_FEEDBACK_VECINDEX löschen. Wenn Sie dies tun, verwendet Select AI kein Feedback mehr als Hinweise für die Aktionen runsql, showsql und explainsql. Wenn Sie jedoch neues Feedback mit der Funktion "KI-Feedback auswählen" übermitteln, erstellt Select AI automatisch einen neuen Feedbackvektorindex

Hinweis: Der Standardwert match_limit für feedback ist 3.

Vektortabellenname

Die Tabelle <profile_name>_FEEDBACK_VECINDEX$VECTAB enthält Vektordarstellungen (Einbettungen) von Benutzerfeedback zusammen mit anderen Parametern, die Select AI verwendet, um die SQL-Generierung im Laufe der Zeit zu verbessern.

Parameter

Spalte Beschreibung
attributes Umfasst JSON-Objektattribute gemäß der FEEDBACK-Prozedur.
content Enthält die Benutzereingabeaufforderung.
embedding Enthält Vektordarstellungen (Einbettungen) der Benutzereingabeaufforderung.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der automatisch generierten Vektorindextabelle zur Abfrage und Rückmeldung.

SQL> select content, attributes from OCI_FEEDBACK1_FEEDBACK_VECINDEX$VECTAB where JSON_VALUE(attributes, '$.sql_text') = 'select ai showsql how many movies';
CONTENT
----------------------------------------------------------------------------------------------------
how many movies
ATTRIBUTES
----------------------------------------------------------------------------------------------------

{"response":"SELECT SUM(1) FROM "ADB_USER"."MOVIES"","feedback_type":"negative","sql_id":null,"sql_text":"select ai showsql how many movies","feedback_content":null}
DBMS_CLOUD_AI.feedback Procedure(Positive Feedback)

Funktion SUMMARIZIEREN

Diese Funktion fasst Ihren Inhalt basierend auf den Anpassungsoptionen zusammen, die Sie als Parameter angeben.

Syntax

DBMS_CLOUD_AI.SUMMARIZE(
  content         IN  CLOB     DEFAULT NULL,
  credential_name IN  VARCHAR2 DEFAULT NULL,
  location_uri    IN  VARCHAR2 DEFAULT NULL,
  profile_name    IN  VARCHAR2 DEFAULT NULL,
  user_prompt     IN  CLOB     DEFAULT NULL,
  params          IN  CLOB     DEFAULT NULL
) RETURN CLOB;

Parameter

Parameter Beschreibung
content

Gibt den Text an, den Sie zusammenfassen möchten. Entweder content oder location_uri muss angegeben werden.

Dies ist kein erforderlicher Parameter.

credential_name

Identifiziert das Zugangsdatenobjekt, das zur Authentifizierung mit dem Objektspeicher verwendet wird. Sie müssen diese Zugangsdaten mit `DBMS_CLOUD.CREATE_CREDENTIAL` erstellen.

Hinweis: Verwenden Sie diesen Parameter nur, wenn Sie "location_uri" angeben.

location_uri

Liefert die URI, in der der Text gespeichert ist, oder den Pfad zu einer lokalen Datei. Entweder content oder location_uri muss angegeben werden.

Beispiel:

Objektspeicher: https://objectstorage.ca-toronto-1.oraclecloud.com/n/namespace-string/b/bucketname/o/data_folder/summary/test_file.txt

Lokale Datei: summary_gobject:test_file.txt

profile_name

Gibt das zu verwendende AI-Profil an. Wenn Sie keine profile_name angeben, verwendet Select AI das in der Session festgelegte Standardprofil. Wenn kein Standardprofil festgelegt ist, wird der Fehler zurückgegeben: ORA-20046: AI-Profil ist in der Session nicht aktiviert.

Der Standardwert ist NULL.

user_prompt

Stellt eine Eingabeaufforderung in natürlicher Sprache bereit, um die Zusammenfassung zu leiten oder anzupassen. Sie können zusätzliche Anweisungen über Übersichtsparameter hinaus aufnehmen.

Beispiel: Die Zusammenfassung sollte mit "Die Zusammenfassung des Artikels lautet: "" beginnen

Dieser Parameter ist nicht obligatorisch.

params Definiert Zusammenfassungsparameter. Siehe Parameter SUMMARIZE.

Beispiel

Weitere Informationen finden Sie unter Beispiel: AI Summarize auswählen.

SUMMARIZIERUNGsparameter

Diese Attribute verwalten die Generierung einer Übersicht mit benutzerdefinierten Parametern. Einige Attribute sind optional und haben einen Standardwert.

Attribute

Attributname Standardwert Beschreibung
min_words 0

Gibt die ungefähre Mindestanzahl von Wörtern an, die von der generierten Übersicht erwartet werden.

Hinweis: Dieser Parameter fungiert als Richtlinie und nicht als strenger Grenzwert: Die tatsächliche Länge der Übersicht kann je nach bereitgestelltem Inhalt und Interpretation des Modells variieren.

max_words 200

Gibt die ungefähre maximale Anzahl von Wörtern an, die von der generierten Übersicht erwartet werden.

Hinweis: Dieser Parameter fungiert als Richtlinie und nicht als strenger Grenzwert. Die tatsächliche Länge der Übersicht kann je nach bereitgestelltem Inhalt und Interpretation des Modells variieren.

summary_style Absatz

Gibt den Formatstil für die Zusammenfassung an. Folgende Übersichtsformatoptionen sind verfügbar:

  • paragraph: Die Zusammenfassung wird in einem oder mehreren Absätzen dargestellt.
  • list: Die Zusammenfassung ist eine Liste der Schlüsselpunkte aus dem Text.

chunk_processing_method map_reduce

Wenn der Text das Tokenlimit überschreitet, das das LLM verarbeiten kann, muss er in verwaltbare Chunks aufgeteilt werden. Mit diesem Parameter können Sie die Methode für die Verarbeitung dieser Blöcke auswählen. Folgende Optionen werden bereitgestellt:

  • iterative_refinement
  • map_reduce

Weitere Informationen finden Sie unter KI-Terminologie auswählen.

extractiveness_level low Bestimmt, wie eng die Zusammenfassung dem ursprünglichen Wortlaut der Eingabe folgt. Es steuert, inwieweit das Modell es extrahiert oder umformuliert. Im Folgenden werden die Optionen aufgeführt:
  • High: Die Zusammenfassung bleibt in der Nähe der ursprünglichen Formulierung und verwendet nach Möglichkeit Sätze und Ausdrücke wieder.
  • Medium: Eine ausgewogene Mischung aus Extraktion und Paraphrasierung.
  • Low: Ermöglicht mehr Freiheit, die Eingabe neu zu formulieren, neu zu strukturieren oder zu vereinfachen, wobei der Schwerpunkt auf der Bedeutung und nicht auf der genauen Formulierung liegt.

Hinweis: Diese Einstellung dient als Richtlinie für das Zusammenfassungsverhalten des Modells. Sie erzwingt keine strikte Regel. Der tatsächliche Stil und der Wortlaut der Zusammenfassung können je nach Eingabeinhalt und Modellentscheidungen variieren.

TRANSLATE-Funktion

Mit dieser Funktion können Sie Ihren Text in die angegebene target_language übersetzen.

Sie können die Parameter source_language und target_language in der Funktion angeben oder sie aus dem AI-Profil des Benutzers übernehmen. Wenn Ihr KI-Profil kein source_language-Attribut enthält, erkennt der generative KI-Provider automatisch die Eingabesprache. Wenn das Attribut target_language fehlt, gibt Select AI einen Fehler zurück.

Syntax

DBMS_CLOUD_AI.TRANSLATE(
   profile_name      IN VARCHAR2,
   text              IN CLOB,
   source_language   IN VARCHAR2 DEFAULT NULL,
   target_language   IN VARCHAR2 DEFAULT NULL
) RETURN CLOB;

Parameter

Parameter Beschreibung
profile_name

Gibt das zu verwendende AI-Profil an.

Dies ist kein erforderlicher Parameter.

text

Gibt den Text an, den Sie übersetzen möchten.

Dies ist ein obligatorischer Parameter.

source_language Sprache des Eingabetextes
target_language Sprache, in die der Text übersetzt wird.

Beispiel

Weitere Informationen finden Sie unter Beispiel: AI Translate auswählen.

Verwandte Inhalte

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