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
- Erstellen Sie ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN), in dem sich Ihre Autonomous Database-Ressourcen befinden, indem Sie die Anweisungen unter NAT-Gateway erstellen in der Oracle Cloud Infrastructure-Dokumentation befolgen.
- Nachdem Sie das NAT-Gateway erstellt haben, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich Autonomous Database-Ressourcen befinden. So können diese Ressourcen mit dem Gateway einen Public Key aus Ihrer Azure AD-Instanz abrufen:
- Gehen Sie zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzes, um die Seite Routentabellendetails anzuzeigen.
- Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zielort: 0.0.0.0/0
- Zieltyp: NAT-Gateway
- Ziel: Der Name des NAT-Gateway, das Sie gerade im VCN erstellt haben
Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.
- Zurück zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
- Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
- Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zieltyp: CIDR
- Zielort: 0.0.0.0/0
- IP-Protokoll: TCP
- Quellportbereich: 443
- Ziel-Portbereich: Alle
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.
Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.
Hinweis:
Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.
Verwandte Themen
Zusammenfassung der DBMS_CLOUD_AI-Unterprogramme
In diesem Abschnitt werden die DBMS_CLOUD_AI
-Unterprogramme beschrieben, die mit Autonomous Database bereitgestellt werden.
Unterprogramm | Beschreibung |
---|---|
Diese Prozedur erstellt ein neues AI-Profil zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache in SQL-Anweisungen. |
|
Mit diesem Verfahren wird ein AI-Profil in der aktuellen Datenbank deaktiviert. |
|
Diese Prozedur löscht ein vorhandenes AI-Profil. |
|
Mit diesem Verfahren kann ein AI-Profil in der aktuellen Datenbank verwendet werden. |
|
Diese Funktion generiert eine SQL-Anweisung, die AI zum Übersetzen verwendet. | |
Diese Prozedur legt AI-Profilattribute fest. |
|
Diese Prozedur legt das AI-Profil für die aktuelle Datenbank fest. |
Prozedur CREATE_PROFILE
Die Prozedur erstellt ein neues AI-Profil zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache in SQL-Anweisungen.
Syntax
DBMS_CLOUD_AI.CREATE_PROFILE
profile_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Parameter
Parameter | Beschreibung |
---|---|
|
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. |
|
Profilattribute im JSON-Format. Weitere Informationen finden Sie unter Profilattribute von AI. Der Standardwert ist NULL. |
status |
Status des Profils. Der Standardwert ist Aktivieren. |
|
Beschreibung für das AI-Profil. Der Standardwert ist NULL. |
Beispiel
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'OpenAI,
attributes => JSON_OBJECT('provider' value 'openai',
'credential_name' value 'openai_cred'),
description => 'AI profile to use OpenAI for SQL translation'
);
END;
/
Prozedur DROP_PROFILE
Die Prozedur löscht ein vorhandenes AI-Profil. Wenn das Profil nicht vorhanden ist, löst die Prozedur einen Fehler aus.
Syntax
DBMS_CLOUD_AI.DROP_PROFILE
(
profile_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
Parameter
Parameter | Beschreibung |
---|---|
|
Name des AI-Profils |
|
Wenn Der Standardwert für diesen Parameter lautet |
Beispiel
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
Verwendungshinweise
Verwenden Sie force
, um ein Profil zu löschen und Fehler zu ignorieren, wenn kein AI-Profil vorhanden ist.
Prozedur ENABLE_PROFILE
Diese Prozedur aktiviert das vom Benutzer angegebene AI-Profil. Die Prozedur ändert den Status des AI-Profils in ENABLED
.
Syntax
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parameter
Parameter | Beschreibung |
---|---|
|
Name des zu aktivierenden AI-Profils Dieser Parameter ist erforderlich. |
Beispiel für die Aktivierung eines KI-Profils
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Prozedur DISABLE_PROFILE
Mit diesem Verfahren wird das AI-Profil in der aktuellen Datenbank deaktiviert. Mit dieser Prozedur wird der Status des AI-Profils in DISABLED
geändert.
Syntax
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parameter
Parameter | Beschreibung |
---|---|
|
Name für das AI-Profil. Dieser Parameter ist erforderlich. |
Beispiel
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Prozedur SET_ATTRIBUTE
Mit diesem Verfahren können Sie AI-Profilattribute festlegen.
Syntax
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB
);
Parameter
Nur der Eigentümer kann die Attribute des AI-Profils festlegen oder ändern. Eine Liste der unterstützten Attribute finden Sie unter Profilattribute.
Parameter | Beschreibung |
---|---|
|
Name des AI-Profils, für das Sie die Attribute festlegen möchten. Dieser Parameter ist erforderlich. |
|
Name des AI-Profilattributs Dieser Parameter ist erforderlich. |
|
Wert des Profilattributs. Der Standardwert ist NULL. |
Beispiel
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
Prozedur SET_PROFILE
Diese Prozedur legt das AI-Profil für die aktuelle Session fest.
Nachdem Sie ein AI-Profil für die Datenbanksession festgelegt haben, wird jede SQL-Anweisung mit dem Präfix SELECT AI
als Eingabeaufforderung in natürlicher Sprache betrachtet. Je nach der mit dem Präfix AI
angegebenen Aktion wird eine Antwort mit AI generiert. Informationen zur Verwendung des Präfixes AI
finden Sie unter AI-Schlüsselwort zur Eingabe von Prompts verwenden. Optional können Sie die Profilattribute überschreiben oder Attribute ändern, indem Sie sie im JSON-Format angeben. Informationen zum Festlegen der Attribute finden Sie unter Prozedur SET_ATTRIBUTE.
Das AI-Profil kann nur für die aktuelle Session festgelegt werden, wenn der Eigentümer des AI-Profils der Sessionbenutzer ist.
Um ein AI-Profil für alle Sessions eines bestimmten Datenbankbenutzers oder für alle Benutzersessions in der Datenbank festzulegen, sollten Sie einen Datenbankereignistrigger für das Ereignis AFTER LOGON
für den jeweiligen Benutzer oder die gesamte Datenbank verwenden. Weitere Informationen finden Sie unter CREATE TRIGGER-Anweisung in der Oracle Database 19c Database PL/SQL Language Reference oder in der Oracle Database 23ai Database PL/SQL Language Reference.
Syntax
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name IN VARCHAR2,
);
Parameter
Parameter | Beschreibung |
---|---|
|
Ein Name für das AI-Profil in der aktuellen Session. Dieser Parameter ist erforderlich. |
Beispiel
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Generierungsfunktion
showsql
, narrate
oder chat
auszuführen. Die Standardaktion ist showsql
.
Mit dieser Funktion können auch einige oder alle Profilattribute überschrieben werden.
Syntax
DBMS_CLOUD_AI.GENERATE
(
prompt IN CLOB,
profile_name IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
attributes IN CLOB DEFAULT NULL
) RETURN CLOB;
Parameter
Parameter | Beschreibung |
---|---|
|
Eingabeaufforderung in natürlicher Sprache zur Übersetzung mit KI. Die Eingabeaufforderung kann Dieser Parameter ist erforderlich. |
|
Name des AI-Profils. Dieser Parameter ist optional, wenn in der Session bereits ein AI-Profil mit Der Standardwert ist NULL. Folgende Bedingungen gelten:
Hinweis: Bei Database Actions können Sie entweder das Argumentprofile_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 .
|
action |
Aktion zum Übersetzen natürlicher Eingabeaufforderungen mit KI. Die unterstützten Aktionen umfassen Hinweis: Diese Funktion unterstützt die Aktionrunsql nicht. Wenn Sie die Aktion runsql angeben, wird der folgende Fehler zurückgegeben:
|
attributes |
Überschreiben Sie bestimmte AI-Profilattribute, indem Sie Attribute im JSON-Format angeben. Weitere Informationen finden Sie unter Profilattribute. |
Beispiele
Die folgenden Beispiele zeigen die Aktionen showsql
, narrate
und chat
, die mit der Funktion DBMS_CLOUD_AI.GENERATE
verwendet werden können.
Ein Beispiel für die Aktion showsql
:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
Ein Beispiel für die Aktion narrate
:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
Ein Beispiel für die Aktion chat
:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
Profilattribute
Attribute
Attributname | Beschreibung |
---|---|
|
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 |
|
Name der Azure-Dienstressource OpenAI. Der Ressourcenname darf nur alphanumerische Zeichen und Bindestriche enthalten und darf nicht mit einem Bindestrich beginnen oder enden. Informationen zum Abrufen der |
|
Nehmen Sie Spaltenkommentare in die Metadaten auf, die zum Übersetzen von Eingabeaufforderungen in natürlicher Sprache mit AI verwendet werden. Hinweis: Boolesche Werte sind bei der Festlegung eines einzelnen Attributs in der ProzedurDBMS_CLOUD_AI.SET_ATTRIBUTE nicht anwendbar, da der Parameter attribute_value den Datentyp CLOB aufweist.
|
|
Ein |
|
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. |
|
Gibt die Anzahl der Token an, die pro Generation vorhergesagt werden sollen. Der Standardwert ist 1024. Weitere Informationen finden Sie unter Token und Tokenizer. |
|
Der Name des KI-Modells, mit dem Antworten generiert werden. Unterstützte Modelle für:
Hinweis: Dieser Parameter wird nicht für Azure verwendet, da das Modell beim Erstellen des Deployments im Azure OpenAI Service-Portal bestimmt wird. |
|
Array von JSON-Objekten, das den Eigentümer und die Objektnamen angibt, die für die Übersetzung natürlicher Sprache in SQL zulässig sind. Um alle Objekte eines bestimmten Benutzers einzuschließen, lassen Sie den "Namen" weg, und geben Sie nur den "Eigentümer"-Schlüssel im JSON-Objekt an. Um die natürliche Sprache in SQL zu übersetzen, werden der Objektname, der Objekteigentümer, die Objektspalten und Kommentare mit HTTPS-Anforderungen an den AI-Provider gesendet. Vermeiden Sie die Angabe von Objekten mit sensiblen Objektnamen, Spaltennamen oder Kommentaren in der Objektliste. AI-Provider können die Größe der in Übersetzungsanforderungen zulässigen Metadaten begrenzen. Begrenzen Sie die Liste der Objekte, die für die Eingabeaufforderungen in natürlicher Sprache durch die Anwendungsbenutzer geeignet sind. Format:
|
|
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 von Autonomous Database. |
|
Diese Attribute geben die Endpunkt-OCID des dedizierten Oracle AI-Hostingclusters an. Die Endpunkt-ID kann alphanumerische Zeichen, Bindestriche und Punkte enthalten. Informationen zum Suchen der Endpunkt-OCID finden Sie unter Details eines Endpunkts in generativer KI abrufen. Wenn Sie das dedizierte KI-Cluster von Oracle verwenden möchten, müssen Sie die Endpunkt-OCID des Hostingclusters angeben. Standardmäßig ist die Endpunkt-ID leer, und das Modell ist auf einer gemeinsam verwendeten Infrastruktur On-Demand. |
|
Dieses Attribut gibt den Laufzeittyp des angegebenen Modells an. Dieses Attribut ist erforderlich, wenn das Attribut Alle zulässigen Werte finden Sie in OCI Generative AI runtimeType. Siehe Referenz zu LlmInferenceRequest. Folgende Werte werden unterstützt:
|
|
KI-Provider für das KI-Profil. Unterstützte Provider:
Dies ist ein obligatorisches Attribut. |
|
Dieses Attribut gibt den Speicherort des generativen KI-Clusters an, das Sie verwenden möchten. Der Bereich kann alphanumerische Zeichen und Bindestriche enthalten.
Hinweis: Das Oracle Generative AI-Cluster ist in den Regionen Chicago, Frankfurt und London verfügbar. Siehe Vortrainierte Grundlagenmodelle in generativer KI.us-chicago-1 .
|
|
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. |
|
Sampling aus Generate Text-Modellen enthält Zufälligkeit, so dass derselbe Prompt jedes Mal, wenn Sie auf "generieren" klicken, unterschiedliche Ausgaben erzielen kann. Temperatur ist eine nicht negative Gleitkommazahl, die verwendet wird, um den Grad der Zufälligkeit zu optimieren. Niedrigere Temperaturen bedeuten weniger zufällige Generationen. Weitere Informationen finden Sie unter Temperatur. Dieser Parameter gilt für alle unterstützten Service Provider. |
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;
/