Pacchetto DBMS_CLOUD_AI
Il package DBMS_CLOUD_AI
, con Select AI, facilita e configura la traduzione dei prompt in linguaggio naturale per generare, eseguire e spiegare le istruzioni SQL. Inoltre, consente il recupero della generazione aumentata e delle interazioni basate sul linguaggio naturale, inclusa la chat con LLM.
- DBMS_CLOUD_AI Panoramica
Verrà descritto l'uso del pacchettoDBMS_CLOUD_AI
. - Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
In questa sezione vengono descritti i sottoprogrammiDBMS_CLOUD_AI
forniti con Autonomous Database.
Argomento padre: riferimento al package fornito da Autonomous Database
DBMS_CLOUD_AI Panoramica
Descrive l'uso del pacchetto DBMS_CLOUD_AI
.
Utilizzare il pacchetto DBMS_CLOUD_AI
per creare profili AI e configurarli per l'accesso a un modello LLM (Large Language Model). Impostare il profilo AI nella sessione utente del database corrente per eseguire task quali la generazione, l'esecuzione e la spiegazione di SQL. Inoltre, abilita la generazione aumentata di recupero e le interazioni basate sul linguaggio naturale, inclusa la chat con LLM.
Per ulteriori informazioni sulle piattaforme e sugli LLM supportati, vedere Informazioni su Select AI.
Argomento padre: DBMS_CLOUD_AI Package
Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
In questa sezione vengono descritti i sottoprogrammi DBMS_CLOUD_AI
forniti con Autonomous Database.
Programma secondario | descrizione; |
---|---|
Questa procedura crea un nuovo profilo AI per tradurre i prompt del linguaggio naturale nelle istruzioni SQL. |
|
Fornisce gli attributi del profilo AI che è possibile configurare. |
|
Questa procedura disabilita un profilo AI nel database corrente. |
|
Questa procedura elimina un profilo AI esistente. |
|
Questa procedura consente l'uso di un profilo AI nel database corrente. |
|
Questa funzione consente di utilizzare Select AI in modo senza conservazione dello stato con il profilo esistente. | |
Questa funzione genera dati sintetici. |
|
Questa funzione restituisce il nome del profilo utilizzato nella sessione corrente. |
|
Questa procedura restituisce il nome del profilo e il proprietario del profilo nella sessione corrente. |
|
Questa procedura imposta gli attributi del profilo AI. |
|
Questa procedura imposta il profilo AI per il database corrente. |
|
Utilizzare questa procedura per abilitare l'invio di dati all'LLM. |
|
Utilizzare questa procedura per disabilitare l'invio di dati all'LLM. |
|
Questa procedura crea un indice vettoriale nel database vettoriale specificato e lo popola con i dati di un'area di memorizzazione degli oggetti utilizzando un job scheduler asincrono. |
|
Questa procedura rimuove un indice dell'area di memorizzazione vettoriale. Normalmente rimuove l'oggetto indice dell'area di memorizzazione vettoriale ed elimina il database vettoriale. |
|
Questa procedura disabilita un oggetto indice vettoriale nel database corrente. Quando l'opzione è disabilitata, un profilo AI non può utilizzare l'indice vettoriale e il sistema non carica i dati nell'area di memorizzazione dei vettori. |
|
Questa procedura abilita o attiva un oggetto indice vettoriale disabilitato in precedenza. |
|
Questa procedura aggiorna un indice dell'area di memorizzazione vettoriale esistente con un valore specificato dell'attributo dell'indice vettoriale. |
|
Fornisce gli attributi del profilo di indice vettoriale che è possibile configurare. |
- CREATE_PROFILE Procedura
La procedura crea un nuovo profilo AI per la traduzione dei prompt in linguaggio naturale nell'istruzione SQL. - DROP_PROFILE Procedura
La procedura elimina un profilo AI esistente. Se il profilo non esiste, la procedura genera un errore. - ENABLE_PROFILE Procedura
Questa procedura abilita il profilo AI specificato dall'utente. La procedura modifica lo stato del profilo AI inENABLED
. - DISABLE_PROFILE Procedura
Questa procedura disabilita il profilo AI nel database corrente. Lo stato del profilo AI viene modificato inDISABLED
mediante questa procedura. - GET_PROFILE Funzione
Questa funzione restituisce il nome del profilo AI impostato nella sessione corrente. - GET_PROFILE Procedura
Questa procedura restituisce il nome del profilo AI e il proprietario impostati nella sessione corrente. - SET_ATTRIBUTE Procedura
Questa procedura consente di impostare gli attributi del profilo AI. È sovraccarico per accettare valori di attributo di vari tipi. - SET_PROFILE Procedura
Questa procedura imposta il profilo AI per la sessione corrente. - Funzione GENERATE
Questa funzione fornisce la traduzione AI in modo senza conservazione dello stato. Con il profilo AI esistente, è possibile utilizzare questa funzione per eseguire le azioni supportate qualishowsql
,runsql
,explainsql
,narrate
echat
. L'azione predefinita èshowsql
. - Funzione GENERATE_SYNTHETIC_DATA
Utilizzare questa procedura per generare dati sintetici per una singola tabella, più tabelle o uno schema completo. - Attributi profilo
Gli attributi di un profilo AI consentono di gestire e configurare il funzionamento del profilo AI. Alcuni attributi sono facoltativi e hanno un valore predefinito. - ENABLE_DATA_ACCESS Procedura
Questa procedura consente di inviare dati a LLM per le funzioni Select AI applicabili, che è il comportamento predefinito. Solo l'amministratore può eseguire questa procedura. - DISABLE_DATA_ACCESS Procedura
Questa procedura disabilita l'invio di dati a LLM per le funzioni Select AI applicabili. Solo l'amministratore può eseguire questa procedura. - CREATE_VECTOR_INDEX Procedura
Questa procedura crea un indice vettoriale nel database vettoriale specificato e lo popola con i dati di un'area di memorizzazione degli oggetti utilizzando un job scheduler asincrono. - DROP_VECTOR_INDEX Procedura
Questa procedura rimuove un indice dell'area di memorizzazione vettoriale. Normalmente rimuove l'oggetto indice dell'archivio vettoriale ed elimina l'archivio vettoriale. Se impostato suFALSE
, l'argomentoinclude_data
garantisce che la procedura rimuova solo l'oggetto indice dell'area di memorizzazione vettoriale pur conservando l'area di memorizzazione vettoriale. - DISABLE_VECTOR_INDEX Procedura
Questa procedura disabilita un oggetto indice vettoriale nel database corrente. Se disabilitato, un profilo AI non può utilizzare l'indice vettoriale e il sistema non carica i dati nell'area di memorizzazione vettoriale poiché nuovi dati vengono aggiunti all'area di memorizzazione degli oggetti e non esegue l'indicizzazione, la ricerca o l'esecuzione di query in base all'indice. - ENABLE_VECTOR_INDEX Procedura
Questa procedura abilita o attiva un oggetto indice vettoriale disabilitato in precedenza. In genere, quando si crea un indice vettoriale, per impostazione predefinita viene abilitato in modo che il profilo AI possa utilizzarlo per eseguire l'indicizzazione e la ricerca. - UPDATE_VECTOR_INDEX Procedura
Questa procedura aggiorna un indice dell'area di memorizzazione vettoriale esistente con un valore specificato dell'attributo dell'indice vettoriale. È sovraccarico per accettare valori di attributo di vari tipi. - Attributi dell'indice del vettore
Gli attributi di un indice del vettore consentono di gestire e configurare il funzionamento dell'indice del vettore. Se necessario, è possibile aggiungere attributi di indice personalizzati. Alcuni attributi sono facoltativi e hanno un valore predefinito.
Argomento padre: DBMS_CLOUD_AI Package
CREATE_PROFILE Procedura
La procedura crea un nuovo profilo AI per tradurre i prompt del linguaggio naturale nell'istruzione SQL.
Sintassi
DBMS_CLOUD_AI.CREATE_PROFILE
profile_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI. Il nome del profilo deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome del profilo è 125 caratteri. Questo è un parametro obbligatorio. |
|
Attributi del profilo in formato JSON. Per ulteriori dettagli, vedere Attributi profilo AI. Il valore predefinito è NULL. |
status |
Stato del profilo. Il valore predefinito è abilitato. |
|
Descrizione del profilo AI. Il valore predefinito è NULL. |
Esempio
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;
/
DROP_PROFILE Procedura
La procedura elimina un profilo AI esistente. Se il profilo non esiste, la procedura genera un errore.
Sintassi
DBMS_CLOUD_AI.DROP_PROFILE
(
profile_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI |
|
Se Il valore predefinito di questo parametro è |
Esempio
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
Note per uso
Utilizzare force
per eliminare un profilo e ignorare gli errori se il profilo AI non esiste.
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
ENABLE_PROFILE Procedura
Questa procedura abilita il profilo AI specificato dall'utente. La procedura modifica lo stato del profilo AI in ENABLED
.
Sintassi
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI da abilitare Questo parametro è obbligatorio. |
Esempio per abilitare il profilo AI
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
DISABLE_PROFILE Procedura
Questa procedura disabilita il profilo AI nel database corrente. Lo stato del profilo AI viene modificato in DISABLED
mediante questa procedura.
Sintassi
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI. Questo parametro è obbligatorio. |
Esempio
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
Funzione GET_PROFILE
Questa funzione restituisce il nome del profilo AI impostato nella sessione corrente.
Sintassi
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name IN VARCHAR2
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI nella sessione corrente. Questo parametro è obbligatorio. |
Esempio
In questo esempio viene illustrato come visualizzare il nome del profilo nella sessione corrente.
SELECT DBMS_CLOUD_AI.GET_PROFILE
from DUAL;
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
GET_PROFILE Procedura
Questa procedura restituisce il nome del profilo AI e il proprietario impostati nella sessione corrente.
Sintassi
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name OUT VARCHAR2,
profile_owner OUT VARCHAR2
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI nella sessione corrente. Questo parametro è obbligatorio. |
profile_owner |
Identifica il proprietario del profilo AI nella sessione corrente. |
Esempio
In questo esempio viene illustrato come visualizzare il nome e il proprietario del profilo nella sessione corrente.
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;
SET_ATTRIBUTE Procedura
Questa procedura consente di impostare gli attributi del profilo AI. È sovraccarico per accettare valori di attributo di vari tipi.
Sintassi
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
);
Parametri
Solo il proprietario può impostare o modificare gli attributi del profilo AI. Per un elenco degli attributi supportati, vedere Attributi profilo.
Parametro | descrizione; |
---|---|
|
Nome del profilo AI per il quale si desidera impostare gli attributi. Questo parametro è obbligatorio. |
|
Nome dell'attributo del profilo AI Questo parametro è obbligatorio. |
|
Valore dell'attributo del profilo. Il valore può essere di tipo Il valore predefinito è NULL. |
Esempi
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
L'esempio seguente accetta il tipo NUMBER
come attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE(
profile_name => 'OCI_PROFILE',
attribute_name => 'temperature',
attribute_value => 0.5
);
END;
/
L'esempio seguente accetta il tipo BOOLEAN
come attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'comments',
attribute_value => 'true'
);
END;
/
L'esempio seguente accetta il tipo VARCHAR2
come attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'model',
attribute_value => 'meta.llama-3.3-70b-instruct'
);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
SET_PROFILE Procedura
Questa procedura imposta il profilo AI per la sessione corrente.
Dopo aver impostato un profilo AI per la sessione del database, qualsiasi istruzione SQL con il prefisso SELECT AI
viene considerata un prompt del linguaggio naturale. A seconda dell'azione specificata con il prefisso AI
, una risposta viene generata mediante AI. Per utilizzare il prefisso AI
, vedere Esempi di utilizzo di Select AI e Usa parola chiave AI per immettere i prompt. Facoltativamente, è possibile sostituire gli attributi di profilo o modificarli specificandoli in formato JSON. Per l'impostazione degli attributi, vedere SET_ATTRIBUTE Procedura.
Il profilo AI può essere impostato per la sessione corrente solo se il proprietario del profilo AI è l'utente della sessione.
Per impostare un profilo AI per tutte le sessioni di un utente di database specifico o per tutte le sessioni utente nel database, valutare la possibilità di utilizzare un trigger di evento di database per l'evento AFTER LOGON
sull'utente specifico o sull'intero database. Per ulteriori dettagli, vedere Dichiarazione CREATE TRIGGER.
Sintassi
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name IN VARCHAR2,
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome del profilo AI nella sessione corrente. Questo parametro è obbligatorio. |
Esempio
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
Funzione GENERATE
showsql
, runsql
, explainsql
, narrate
e chat
. L'azione predefinita è showsql
.
Questa funzione consente anche di eseguire l'override di alcuni o di tutti gli attributi del profilo.
Sintassi
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;
Parametri
Parametro | descrizione; |
---|---|
|
Prompt del linguaggio naturale per la traduzione mediante l'intelligenza artificiale. Il prompt può includere Questo parametro è obbligatorio. |
|
Nome del profilo AI. Questo parametro è facoltativo se nella sessione è già impostato un profilo AI che utilizza Il valore predefinito è NULL. Vengono applicate le condizioni riportate di seguito.
Nota
Per Database Actions, è possibile specificare l'argomento profile_name in DBMS_CLOUD_AI.GENERATE oppure eseguire due passi come script PL/SQL: DBMS_CLOUD_AI.SET_PROFILE e DBMS_CLOUD_AI.GENERATE .
|
action |
Azione per tradurre il prompt naturale utilizzando l'intelligenza artificiale. Le azioni supportate sono |
attributes |
Sostituisci attributi profilo AI specifici fornendo attributi in formato JSON. Per ulteriori dettagli, vedere Attributi profilo. |
Esempi
Gli esempi riportati di seguito illustrano le azioni runsql
, showsql
, explainsql
, narrate
e chat
che possono essere utilizzate con la funzione DBMS_CLOUD_AI.GENERATE
. Per ulteriori dettagli, vedere anche Usa parola chiave AI per immettere i prompt.
Di seguito è riportato un esempio di azione runsql
.
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'runsql)
FROM dual;
Di seguito è riportato un esempio di azione showsql
.
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
Di seguito è riportato un esempio di azione explainsql
.
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'explainsql)
FROM dual;
Di seguito è riportato un esempio di azione narrate
.
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
Di seguito è riportato un esempio di azione chat
.
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
È possibile utilizzare DBMS_CLOUD_AI.GENERATE
in una procedura ed eseguire la funzione. L'esempio seguente utilizza ai_prompt
, profile_name
e action
come parametri di input e chiama DBMS_CLOUD_AI.GENERATE
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;
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
Funzione GENERATE_SYNTHETIC_DATA
Di seguito è riportata la sintassi per generare dati sintetici per una singola tabella.
Sintassi
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
);
Di seguito è riportata la sintassi per generare dati sintetici per più tabelle.
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name IN VARCHAR2,
object_list IN CLOB,
params IN CLOB DEFAULT NULL
);
Se non si desidera che i dati di tabella o i documenti di ricerca vettoriali vengano inviati a un LLM, un utente con privilegi di amministratore può disabilitare tale accesso per tutti gli utenti del database specificato. Questa operazione disabilita l'azione narrate
.
Parametri
Parametro | obbligatorio | descrizione; |
---|---|---|
|
Sì |
Profilo AI contenente le informazioni necessarie sul servizio LLM. Questa operazione può essere creata dalla procedura CREATE_PROFILE. |
|
Sì | Specificare un nome di tabella per popolare i dati sintetici.
|
owner_name |
No |
Specificare l'utente del database proprietario dell'oggetto di riferimento. Se non viene fornito alcun proprietario specifico, per impostazione predefinita la procedura utilizza lo schema dell'utente che la esegue. |
record_count |
No |
Numero di record da generare sinteticamente. |
|
No | Informazioni aggiuntive che un utente può menzionare per generare dati sintetici. Ad esempio, per generare un record per una tabella denominata MOVIE con una colonna release_date , il valore user_prompt può essere:
la data di uscita dei film dovrebbe essere nel 2019 |
|
No |
Attributi facoltativi forniti nel formato stringa oggetto JSON per modificare il funzionamento di un'interfaccia API. Vedere Parametri facoltativi. |
|
Sì | Utilizzare questo parametro per generare dati sintetici su più tabelle. Questo parametro accetta le informazioni sull'oggetto tabella insieme ai relativi argomenti e contiene gli stessi argomenti forniti nella tabella singola. Vedere object_list Parametri. |
Parametri facoltativi
Parametro | Tipo di dati valore | Value | descrizione; |
---|---|---|---|
|
Numerico |
|
Specificare il numero di righe della tabella da utilizzare come esempio per guidare l'LLM nella generazione dei dati. Il valore 0 indica che non verranno utilizzate righe campione. Il valore predefinito è |
|
Boolean |
|
Abilita o disabilita l'uso delle informazioni statistiche tabella. Il valore predefinito è |
|
Stringa |
Valori validi:
|
Assegnare un valore di priorità che definisce il numero di richieste parallele inviate all'LLM per la generazione di dati sintetici. Le attività con una priorità più elevata consumeranno più risorse del database e si completeranno più velocemente. Il valore predefinito è
Il numero massimo di processi paralleli simultanei utilizzati per la generazione di dati sintetici è limitato a 64. |
|
Boolean |
|
Abilitare o disabilitare l'invio di commenti all'LLM per guidare la generazione dei dati. Il valore predefinito è |
Parametri object_list
Parametro | Tipo di dati valore | obbligatorio | descrizione; |
---|---|---|---|
|
Stringa |
Sì |
Specifica l'utente del database proprietario dell'oggetto a cui viene fatto riferimento. Se non viene fornito alcun proprietario specifico, la procedura utilizzerà per impostazione predefinita lo schema dell'utente che la esegue. |
|
Stringa |
No |
Specificare un nome di tabella per popolare i dati sintetici. I privilegi SELECT e INSERT sugli oggetti tabella sono necessari per l'utente che utilizza la tabella it.The è vuota o contiene record.
|
|
Numerico |
No |
Numero di record da generare sinteticamente. Fornire un numero maggiore di 0. Fornire |
|
Numerico |
No |
Percentuale di numero di record da generare sinteticamente. Fornire un numero maggiore di 0. Per un database con copia di metadati, in cui vengono conservati i metadati della tabella, incluse le statistiche, è supportato il parametro Fornire Quando si utilizza il parametro
record_count_percentage , il conteggio finale dei record nella tabella viene calcolato come segue:
|
|
Stringa | No | Uguale a user_prompt in Parametri. Il valore user_prompt è associato a un oggetto tabella specifico.
|
Esempi
Gli esempi riportati di seguito mostrano la funzione DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
per generare dati sintetici per una singola tabella e più tabelle. Per un esempio completo e per visualizzare altri esempi, vedere Esempio: generazione di dati sintetici.
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.
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
Attributi di profilo
Attributi
Nome attributo | descrizione; |
---|---|
|
Fornisce metadati aggiuntivi sulle tabelle e le colonne del database utilizzando la funzione Annotazioni 23ai. I valori corretti sono
|
|
Nome del modello distribuito di Azure OpenAI Service. Il nome può includere solo caratteri alfanumerici, il carattere di sottolineatura (_) e un trattino (-). Il nome non può terminare con un carattere di sottolineatura (_) o un trattino (-). Per informazioni su come ottenere |
|
Nome del modello di incorporamento distribuito di Azure OpenAI. Il nome può includere solo caratteri alfanumerici, caratteri di sottolineatura e trattini. Il nome non può iniziare o terminare con un trattino o un carattere di sottolineatura. |
|
Nome della risorsa OpenAI Service di Azure. Il nome della risorsa può includere solo caratteri alfanumerici e trattini e non può iniziare o terminare con un trattino. Per informazioni su come ottenere |
|
Specifica se selezionare AI deve indicare all'LLM di generare un'istruzione SQL senza distinzione tra maiuscole e minuscole per le colonne contenenti valori stringa o testo. I valori supportati sono i seguenti:
Il valore predefinito è |
|
Include commenti a livello di tabella e commenti di colonna nei metadati utilizzati per tradurre i prompt in linguaggio naturale utilizzando l'intelligenza artificiale. Il tipo di dati Nota
Per la procedura DBMS_CLOUD_AI.SET_ATTRIBUTE , quando si imposta un singolo attributo, fornire il parametro attribute_value come stringa ('true' o 'false') perché il parametro attribute_value è di tipo dati CLOB .
|
|
Gestisce se includere vincoli di integrità referenziale come chiavi primarie ed esterne nei metadati inviati all'LLM. I valori ammessi sono
|
|
Attributo |
|
Nome della credenziale per accedere alle API del provider AI. La credenziale che utilizza i token bearer può essere creata utilizzando il nome del provider come nome utente e il token bearer come password. Sono supportate anche le credenziali del segreto vault. È supportata anche l'autenticazione principale, ad esempio il principal del servizio di Azure. Per ulteriori informazioni su come configurarlo, vedere Usa Azure Service Principal per accedere alle risorse di Azure. Si tratta di un attributo obbligatorio. Vedere CREATE_CREDENTIAL Procedura. |
|
Modello di incorporamento definito nel profilo AI. Di seguito sono riportati i provider AI supportati per l'incorporamento dei modelli con i relativi valori predefiniti.
Nota
|
|
Specifica se limitare l'LLM alla generazione di istruzioni SQL che utilizzano solo tabelle coperte dalla lista di oggetti. I valori supportati sono:
I valori non distinguono tra maiuscole e minuscole. Il valore predefinito è |
|
Indica il numero di token da prevedere per generazione. Valore predefinito: 1024. Vedere Tokens and Tokenizer per ulteriori dettagli. |
|
Nome del modello AI utilizzato per generare le risposte. Vedere Selezionare il provider AI e i LLM e specificare il nome del modello. Nota
|
|
Array di oggetti JSON che specifica i nomi di proprietario e oggetto idonei per la traduzione in linguaggio naturale in SQL. Per includere tutti gli oggetti di un determinato utente, omettere il "nome" e specificare solo la chiave "proprietario" nell'oggetto JSON. È possibile utilizzare i seguenti tipi di oggetti:
Per la traduzione del linguaggio naturale in SQL, il nome dell'oggetto, il proprietario dell'oggetto, le colonne dell'oggetto e i commenti vengono inviati al provider AI utilizzando le richieste HTTPS. Evitare di specificare oggetti con nome oggetto riservato, nomi di colonna o commenti nell'elenco oggetti. I provider AI possono avere un limite alla dimensione dei metadati consentiti nelle richieste di traduzione. Si consideri la possibilità di limitare la lista di oggetti adatti ai prompt di linguaggio naturale da parte degli utenti dell'applicazione. Formato:
Anche le tabelle esterne create mediante la sincronizzazione di OCI Data Catalog o AWS Glue possono essere utilizzate nella lista di oggetti. Ciò consente di gestire i metadati nei Data Catalog centrali e di utilizzare i metadati direttamente per tradurre i prompt del linguaggio naturale mediante l'intelligenza artificiale. |
|
Specifica se inviare i metadati per le tabelle più rilevanti o tutte le tabelle all'LLM. I valori supportati sono:
Quando |
|
Specifica il formato in cui l'API prevede l'invio e la ricezione dei dati. Utilizzare questo attributo per generare risposte di testo. Questo attributo si applica AI modelli di chat AI generativa OCI in un cluster AI dedicato. Specificare questo attributo quando si specifica un OCID modello nell'attributo I valori supportati sono:
|
|
Specifica l'OCID del compartimento a cui è consentito accedere quando si chiama il servizio AI generativa OCI. L'ID compartimento può contenere caratteri alfanumerici, trattini e punti. L'impostazione predefinita è l'ID compartimento del PDB. |
|
Questo attributo indica l'OCID endpoint del cluster di hosting AI dedicato Oracle. L'ID endpoint può contenere caratteri alfanumerici, trattini e punti. Per trovare l'OCID dell'endpoint, vedere Recupero dei dettagli di un endpoint nell'AI generativa. Quando si desidera utilizzare il cluster AI dedicato Oracle, è necessario fornire l'OCID endpoint del cluster di hosting. Per impostazione predefinita, l'ID endpoint è vuoto e il modello è su richiesta in un'infrastruttura condivisa. |
|
Questo attributo indica il tipo di runtime del modello fornito. Questo attributo è applicabile AI modelli Genera testo OCI in un cluster AI dedicato. Specificare questo attributo quando si specifica un OCID modello nell'attributo Tutti i valori consentiti sono disponibili nell'AI generativa OCI runtimeType. Vedere LlmInferenceRequest Riferimento. I valori supportati sono:
Nota
Questo attributo non è più valido. Utilizzare oci_apiformat .
|
|
Provider AI per il profilo AI. Provider supportati:
Si tratta di un attributo obbligatorio. |
|
Questo attributo indica la posizione del cluster AI generativa che si desidera utilizzare. L'area può contenere caratteri alfanumerici e trattini.
Nota
L'area predefinita è Il cluster Oracle Generative AI è disponibile nelle aree di Chicago, Francoforte e Londra. Vedere Modelli di base pre-addestrati nell'AI generativa. us-chicago-1 .
|
|
Il testo generato verrà terminato all'inizio della prima sequenza di arresto. La sequenza verrà incorporata nel testo. Il valore dell'attributo deve essere un array valido di valori stringa in formato JSON. |
|
Il campionamento dai modelli Genera testo incorpora la casualità, in modo che lo stesso prompt possa produrre output diversi ogni volta che si preme "generare". La temperatura è un numero float non negativo utilizzato per sintonizzare il grado di casualità. Temperature più basse significano generazioni meno casuali. Vedere Temperatura per ulteriori dettagli. Questo parametro è applicabile a tutti i provider di servizi supportati. |
|
Nome dell'indice del vettore. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo SQL Oracle. La lunghezza massima del nome dell'area di memorizzazione vettoriale è di 125 caratteri. |
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;
/
L'esempio riportato di seguito mostra gli attributi del profilo personalizzato che utilizzano l'AI generativa OCI.
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;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
ENABLE_DATA_ACCESS Procedura
Questa procedura consente di inviare i dati a LLM per le funzioni Select AI applicabili, che è il comportamento predefinito. Solo l'amministratore può eseguire questa procedura.
Questa procedura controlla l'accesso AI dati per le funzionalità Seleziona AI riportate di seguito.
- azione
narrate
- Retrieval Augmented Generation (RAG)
- Generazione dati sintetici
Sintassi
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS
();
Parametri
Questa procedura non richiede parametri.
Esempio per abilitare l'accesso ai dati
BEGIN
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS
();
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
DISABLE_DATA_ACCESS Procedura
Questa procedura disabilita l'invio dei dati a LLM per le funzioni Select AI applicabili. Solo l'amministratore può eseguire questa procedura.
Questa procedura limita le seguenti funzionalità di selezione AI:
- azione
narrate
- Retrieval Augmented Generation (RAG)
- Generazione dati sintetici
Sintassi
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS
();
Parametri
Questa procedura non richiede parametri.
Esempio di disabilitazione dell'accesso ai dati
BEGIN
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS
();
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
CREATE_VECTOR_INDEX Procedura
Questa procedura crea un indice vettoriale nel database vettoriale specificato e lo popola con i dati di un'area di memorizzazione degli oggetti utilizzando un job scheduler asincrono.
Sintassi
PROCEDURE CREATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome dell'indice del vettore. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo SQL Oracle. La lunghezza massima del nome dell'area di memorizzazione vettoriale è di 125 caratteri. Questo è un parametro obbligatorio. |
|
Attributi personalizzati per l'indice vettoriale in JSON. Per visualizzare un elenco di parametri configurabili, vedere Attributi indice vettore. Il valore predefinito è NULL. |
status |
Stato dell'indice del vettore. I possibili valori sono riportati di seguito.
Il valore predefinito è Disabilitato. |
|
Descrizione dell'indice del vettore. Il valore predefinito è NULL. |
Esempio
L'esempio seguente illustra come creare un indice vettoriale e configurare gli attributi come parametri JSON.
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;
/
DROP_VECTOR_INDEX Procedura
Questa procedura rimuove un indice dell'area di memorizzazione vettoriale. Normalmente rimuove l'oggetto indice dell'archivio vettoriale ed elimina l'archivio vettoriale. Se impostato su FALSE
, l'argomento include_data
garantisce che la procedura rimuova solo l'oggetto indice dell'area di memorizzazione vettoriale pur conservando l'area di memorizzazione vettoriale.
Sintassi
PROCEDURE DROP_VECTOR_INDEX(
index_name IN VARCHAR2,
include_data IN BOOLEAN DEFAULT TRUE,
force IN BOOLEAN DEFAULT FALSE
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome dell'indice del vettore. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo SQL Oracle. La lunghezza massima del nome dell'area di memorizzazione vettoriale è di 125 caratteri. Questo è un parametro obbligatorio. |
|
Indica se eliminare sia l'area di memorizzazione vettoriale del cliente che l'indice vettoriale insieme all'oggetto indice vettoriale. Valori possibili:
Il valore predefinito è |
force |
Indica se ignorare gli errori che si verificano se l'indice vettoriale non esiste. Valori possibili:
Se impostato su Il valore predefinito è |
Esempio
BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
index_name => 'MY_INDEX',
include_data => FALSE,
force => TRUE
);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
DISABLE_VECTOR_INDEX Procedura
Questa procedura disabilita un oggetto indice vettoriale nel database corrente. Se disabilitato, un profilo AI non può utilizzare l'indice vettoriale e il sistema non carica i dati nell'area di memorizzazione vettoriale poiché nuovi dati vengono aggiunti all'area di memorizzazione degli oggetti e non esegue l'indicizzazione, la ricerca o l'esecuzione di query in base all'indice.
Sintassi
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome dell'indice del vettore. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo SQL Oracle. La lunghezza massima del nome dell'area di memorizzazione vettoriale è di 125 caratteri. Questo è un parametro obbligatorio. |
Esempio
È possibile disabilitare un indice vettore fornendo il nome dell'indice vettore.
BEGIN
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
ENABLE_VECTOR_INDEX Procedura
Questa procedura abilita o attiva un oggetto indice vettoriale disabilitato in precedenza. In genere, quando si crea un indice vettoriale, per impostazione predefinita viene abilitato in modo che il profilo AI possa utilizzarlo per eseguire l'indicizzazione e la ricerca.
Se abilitato, un indice vettoriale consente a un profilo AI di utilizzarlo per caricare nuovi dati da un'area di memorizzazione degli oggetti in un'area di memorizzazione vettoriale a una frequenza di aggiornamento specificata dall'utente. È possibile specificare il parametro refresh_rate
tramite la lista di oggetti JSON. Per configurare gli attributi JSON, vedere Attributi indice vettoriale.
Sintassi
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome dell'indice del vettore. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo SQL Oracle. La lunghezza massima del nome dell'area di memorizzazione vettoriale è di 125 caratteri. Questo è un parametro obbligatorio. |
Esempio
È possibile abilitare o attivare un indice vettoriale specificando il nome dell'indice vettoriale come indicato di seguito.
BEGIN
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
UPDATE_VECTOR_INDEX Procedura
Questa procedura aggiorna un indice dell'area di memorizzazione vettoriale esistente con un valore specificato dell'attributo dell'indice vettoriale. È sovraccarico per accettare valori di attributo di vari tipi.
Sintassi
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
);
Parametri
Parametro | descrizione; |
---|---|
|
Nome dell'indice del vettore. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo SQL Oracle. La lunghezza massima del nome dell'area di memorizzazione vettoriale è di 125 caratteri. Questo è un parametro obbligatorio. |
|
Nome degli attributi personalizzati specificati come parametri JSON nella procedura Non è possibile modificare i seguenti attributi:
Questo è un parametro obbligatorio. |
attribute_value |
Valore specificato dall'utente per il valore Il valore predefinito è NULL. |
Esempio
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'object_storage_credential_name',
attribute_value => 'NEW_CRED'
);
END;
/
L'esempio seguente accetta il tipo NUMBER
come attribute_value
.
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'match_limit',
attribute_value => 10
);
END;
/
L'esempio seguente accetta il tipo VARCHAR2
come attribute_value
.
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'profile_name',
attribute_value => 'AI_PROF2'
);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI
Attributi indice vettore
Attributi
Nome attributo | Value | obbligatorio | descrizione; |
---|---|---|---|
chunk_size |
1024 (impostazione predefinita)
|
No |
Dimensione del testo di creazione chunk dei dati di input. Per i dati di testo, significa il numero di caratteri. |
chunk_overlap |
128 (impostazione predefinita)
|
No |
Specifica la quantità di caratteri sovrapposti tra blocchi di testo adiacenti. Questo attributo è utile per garantire la continuità e l'accuratezza contestuale nell'elaborazione del testo consentendo sovrapposizioni tra segmenti, il che aiuta a prevenire la perdita di informazioni contestuali ai confini dei chunk. |
|
NA | Sì |
Posizione dell'Object Store. I file in questa posizione possono essere documenti in formati quali PDF, DOC, JSON, XML o HTML. Vedere Formati documento supportati. |
|
5 (impostazione predefinita)
|
No |
Specifica il numero massimo di risultati da restituire in una query di ricerca vettoriale, controllando la dimensione dell'output e migliorando l'efficienza delle operazioni di recupero dati. |
|
NA | Sì |
Specifica il nome delle credenziali per l'accesso a uno storage degli oggetti. |
|
<vector_index_name>$VECPIPELINE |
No |
Specifica il nome della pipeline di caricamento dati dell'indice vettoriale. Questo attributo viene impostato automaticamente per l'indice vettoriale. Impossibile specificare o modificare. Il nome della pipeline può essere utilizzato per monitorare il caricamento dei dati dell'indice vettoriale utilizzando Monitoraggio e risoluzione dei problemi delle pipeline. |
|
NA | Sì |
Nome del profilo AI utilizzato per incorporare i dati di origine e i prompt utente. |
|
1440 minuti (impostazione predefinita)
|
No |
Intervallo di aggiornamento dei dati nell'area di memorizzazione vettori. L'unità è minuti. |
|
0 (impostazione predefinita)
|
No |
Definisce il livello minimo di somiglianza richiesto per considerare due elementi una corrispondenza, utile per filtrare i risultati in algoritmi di corrispondenza per garantire la pertinenza. |
|
Stringa corrispondente a uno dei valori specificati nella descrizione. |
No |
Specifica il tipo di calcolo della distanza utilizzato per confrontare i vettori in un database, determinando la quantificazione della somiglianza tra gli elementi. Valori validi per Oracle 23ai:
|
|
|
Sì |
Specifica il nome del provider che gestisce e funge da area di memorizzazione vettoriale. |
|
NA | No |
Specifica il numero di elementi in ciascun vettore all'interno dell'area di memorizzazione dei vettori, definendo la dimensione e la struttura della rappresentazione dei dati. |
|
|
N |
Specifica il nome della tabella o della raccolta in cui memorizzare le incorporazioni vettoriali e i dati in chunk. |
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;
/
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_CLOUD_AI