Pacchetto DBMS_CLOUD_AI

Il pacchetto 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 la retrieval augmented generation e le interazioni basate sul linguaggio naturale, inclusa la chat con i LLM.

Panoramica di DBMS_CLOUD_AI

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 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 retrieval augmented generation e le interazioni basate sul linguaggio naturale, inclusa la chat con i LLM.

Per ulteriori informazioni sulle piattaforme e gli LLM supportati, vedere Informazioni su Select AI.

Riepilogo dei sottoprogrammi DBMS_CLOUD_AI

In questa sezione vengono descritti i programmi secondari DBMS_CLOUD_AI forniti con Autonomous Database.

Sottoprogramma Descrizione

Procedura CREATE_PROFILE

Questa procedura crea un nuovo profilo AI per la traduzione dei prompt in linguaggio naturale in istruzioni SQL.

Attributi di profilo

Fornisce gli attributi del profilo AI che è possibile configurare.

Procedura CLEAR_PROFILE

Questa procedura cancella un profilo AI attivo nella sessione corrente.

Procedura DISABLE_PROFILE

Questa procedura disabilita un profilo AI nel database corrente.

Procedura DROP_PROFILE

Questa procedura elimina un profilo AI esistente.

Procedura ENABLE_PROFILE

Questa procedura consente di utilizzare un profilo AI nel database corrente.

Funzione GENERATE

Questa funzione consente di utilizzare Select AI in modo senza conservazione dello stato con il profilo esistente.

Funzione GENERATE_SYNTHETIC_DATA

Questa funzione genera dati sintetici.

Funzione GET_PROFILE

Questa funzione restituisce il nome del profilo utilizzato nella sessione corrente.

Procedura SET_ATTRIBUTE

Questa procedura imposta gli attributi del profilo AI.

Procedura SET_PROFILE

Questa procedura imposta il profilo AI per il database corrente.

Procedura ENABLE_DATA_ACCESS

Utilizzare questa procedura per abilitare l'invio dei dati al LLM in uso.

Procedura DISABLE_DATA_ACCESS

Utilizzare questa procedura per disabilitare l'invio di dati al LLM.

Procedura CREATE_VECTOR_INDEX

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.

Procedura DROP_VECTOR_INDEX

Questa procedura rimuove un indice della memoria di vettore. In genere rimuove l'oggetto indice della memoria di vettore ed elimina il database vettoriale.

Procedura DISABLE_VECTOR_INDEX

Questa procedura disabilita un oggetto indice vettoriale nel database corrente. Quando è disabilitato, un profilo AI non può utilizzare l'indice vettoriale e il sistema non carica i dati nella memoria di vettore.

Procedura ENABLE_VECTOR_INDEX

Questa procedura abilita o attiva un oggetto indice vettoriale disabilitato in precedenza.

Procedura UPDATE_VECTOR_INDEX

Questa procedura aggiorna un indice di memoria di vettore esistente con un valore specificato dell'attributo indice di vettore.

Attributi indice vettore

Fornisce gli attributi del profilo di indice vettoriale che è possibile configurare.

Procedura CREATE_PROFILE

La procedura crea un nuovo profilo AI per la traduzione dei prompt in linguaggio naturale in istruzioni 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

profile_name

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 è di 125 caratteri.

Questo è un parametro obbligatorio.

attributes

Attributi di profilo in formato JSON. Per ulteriori dettagli, vedere Attributi profilo AI.

Il valore predefinito è NULL.

status

Stato del profilo.

Il valore predefinito è abilitato.

description

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

Attributi di 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.

Attributi

Nome attributo Descrizione

annotations

Fornisce metadati aggiuntivi sulle tabelle e le colonne del database utilizzando la funzione Annotazioni 23ai.

I valori corretti sono TRUE o FALSE. Il valore predefinito è FALSE. I valori non distinguono tra maiuscole e minuscole.

TRUE: consente di aumentare il prompt utente con annotazioni a livello di tabella e di colonna oltre ad altri metadati del LLM.

FALSE: non include le annotazioni come parte dei metadati del prompt aumentato.

azure_deployment_name

Nome del modello distribuito del servizio OpenAI di Azure. Il nome può includere solo caratteri alfanumerici, caratteri di sottolineatura (_) e un trattino (-). Il nome non può terminare con un carattere di sottolineatura (_) o un trattino (-). Per informazioni su come ottenere azure_deployment_name, vedere Creare e distribuire una risorsa di Azure OpenAI Service.

azure_embedding_deployment_name

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.

azure_resource_name

Nome della risorsa del servizio OpenAI 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 azure_resource_name, vedere Creare e distribuire una risorsa di Azure OpenAI Service.

case_sensitive_values

Specifica se selezionare AI deve indicare all'LLM di generare istruzioni SQL senza distinzione tra maiuscole e minuscole per le colonne contenenti valori stringa o testo.

I valori supportati sono:

  • true: indica l'LLM per generare query SQL con valori stringa con distinzione tra maiuscole e minuscole.

  • false: indica l'LLM per generare query SQL che ignorano le maiuscole e minuscole per i valori stringa.

Il valore predefinito è false.

comments

Include i commenti di tabella e colonna nei metadati utilizzati per la traduzione dei prompt in linguaggio naturale mediante AI. Il tipo di dati BOOLEAN è supportato. I valori validi sono TRUE o FALSE per una stringa con tipo di dati VARCHAR2. I valori non distinguono tra maiuscole e minuscole.

constraints

Gestisce se includere vincoli di integrità referenziale come chiavi primarie ed esterne nei metadati inviati all'LLM.

I valori corretti sono TRUE o FALSE. Il valore predefinito è FALSE. I valori non distinguono tra maiuscole e minuscole.

TRUE: include i vincoli referenziali nei metadati dei prompt aumentati inviati all'LLM.

FALSE: non include i vincoli di integrità referenziale.

conversation

Attributo VARCHAR2 che indica se la cronologia delle conversazioni è abilitata per un profilo. I valori validi sono true o false. Il valore predefinito è false. I valori non distinguono tra maiuscole e minuscole.

credential_name

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 Azure. Per ulteriori informazioni su come configurarlo, vedere Utilizzare il principal del servizio Azure per accedere alle risorse di Azure.

Si tratta di un attributo obbligatorio. Vedere CREATE_CREDENTIAL Procedura.

embedding_model

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.

  • 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
Nota

  • Il parametro embedding_model non è applicabile per Anthropic e Hugging Face.

  • Per i modelli nel database, specificare il nome del modello importato nel database se si desidera utilizzare Seleziona intelligenza artificiale con il modello di trasformatore nel database. È possibile ottenere il nome del modello eseguendo una query su USER_MINING_MODELS.

    Sintassi:

    Di seguito è riportata la sintassi per l'utilizzo del modello di trasformatore nel database per embedding_model.

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

enforce_object_list

Specifica se limitare l'LLM alla generazione di istruzioni SQL che utilizzano solo tabelle coperte dalla lista di oggetti.

I valori supportati sono:

  • true: consente di utilizzare solo le tabelle specificate nell'elenco degli oggetti.

  • false: consente all'LLM di utilizzare tabelle accessibili all'utente.

I valori non distinguono tra maiuscole e minuscole. Il valore predefinito è false.

max_tokens

Indica il numero di token da prevedere per generazione. L'impostazione predefinita è 1024. Per ulteriori dettagli, vedere Tokens and Tokenizers.

model

Nome del modello AI utilizzato per generare le risposte.

Vedere Selezionare il provider AI e gli LLM e specificare il nome del modello.

Nota

  • Cohere: i modelli più piccoli e "leggeri" sono più veloci, mentre i modelli più grandi funzionano meglio.È possibile fornire anche i modelli personalizzati con il relativo ID completo.
  • AI generativa OCI: i modelli di chat sono supportati per tutte le azioni Select AI quali runsql, showsql, explainsql, narrate e chat.

    Select AI supporta modelli pre-addestrati per OCI Generative AI. È possibile fornire i modelli personalizzati anche con gli OCID completi. Se si fornisce OCID o oci_endpoint_id, assicurarsi di fornire oci_runtimetype o oci_apiformat a seconda dei modelli di chat OCI.

    Per ulteriori informazioni sui modelli supportati nell'AI generativa OCI, vedere Modelli di base pre-addestrati nell'AI generativa.

  • Questo parametro non viene utilizzato per Azure poiché il modello viene determinato quando si crea la distribuzione nel portale del servizio OpenAI di Azure.

  • AWS: i modelli di base di Amazon Bedrock richiedono le autorizzazioni di accesso tramite la console Amazon Bedrock. Consulta la documentazione AWS per ottenere il modelID.
  • Compatibile con OpenAI: consultare la documentazione del provider AI per i nomi dei modelli supportati.

object_list

Array di oggetti JSON che specificano i nomi del proprietario e degli oggetti idonei per la traduzione del 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:

  • tabelle
  • viste
  • viste materializzate
  • tabelle temporanee globali
  • tabelle esterne
  • sinonimi sui tipi di oggetto sopra indicati

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 potrebbero avere un limite alla dimensione dei metadati consentiti nelle richieste di traduzione. Valutare la possibilità di limitare l'elenco di oggetti adatti ai prompt in linguaggio naturale da parte degli utenti dell'applicazione.

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

Anche le tabelle esterne create utilizzando la sincronizzazione di OCI Data Catalog o AWS Glue possono essere utilizzate nell'elenco degli oggetti. Ciò consente di gestire i metadati nei Data Catalog centrali e di utilizzare i metadati direttamente per tradurre i prompt in linguaggio naturale utilizzando l'intelligenza artificiale.

object_list_mode

Specifica se inviare i metadati per le tabelle più pertinenti o tutte le tabelle all'LLM.

I valori supportate sono:

  • automated: invia i metadati solo per le tabelle specifiche identificate come più rilevanti per la query.

  • all: invia i metadati per tutte le tabelle accessibili all'utente.

Quando object_list_mode è impostato su automated, Select AI crea automaticamente un indice vettoriale, denominato <profile_name>_OBJECT_LIST_VECINDEX con attributi predefiniti. Vedere

oci_apiformat

Specifica il formato in cui l'API prevede l'invio e la ricezione di 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 model o si fornisce un endpoint nell'attributo oci_endpoint_id.

I valori supportate sono:
  • COHERE
  • GENERIC
Nota

Utilizzare questo attributo per i modelli di chat AI generativa OCI

oci_compartment_id

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.

oci_endpoint_id

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 endpoint, vedere Ottenere i dettagli di un endpoint nell'intelligenza artificiale 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.

oci_runtimetype

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 model o si fornisce un endpoint nell'attributo oci_endpoint_id.

Tutti i valori consentiti sono disponibili in OCI Generative AI runtimeType. Vedere LlmInferenceRequest Riferimento.

I valori supportati sono:
  • COHERE
  • LLAMA
Nota

Questo attributo non è più valido. Usare oci_apiformat.

provider

Provider AI per il profilo AI.

Provider supportati:

  • openai
  • cohere
  • azzurro
  • database
  • oci
  • google
  • antropico
  • abbraccio
  • aws

Si tratta di un attributo obbligatorio.

provider_endpoint

Specifica l'endpoint API per i provider compatibili con OpenAI. Questo attributo è specifico solo per i provider compatibili con OpenAI. Specificare provider_endpoint come attributo nella procedura DBMS_CLOUD_AI.CREATE_PROFILE anziché nell'attributo provider. Per informazioni su come ottenere il parametro, vedere Usa provider compatibili con OpenAI.

Esempio: api.fireworks.ai/inference

region

Questo attributo indica la posizione del cluster AI generativa che si desidera utilizzare. L'area può contenere caratteri alfanumerici e trattini.
Nota

Il cluster Oracle Generative AI è disponibile a Chicago, Francoforte, Londra e in altre aree selezionate. Per ulteriori informazioni, consulta Aree con intelligenza artificiale generativa.

L'area predefinita per AWS è us-east-1.

L'area predefinita è us-chicago-1.

stop_tokens

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. stop_tokens accetta un array JSON come input. Per ulteriori informazioni sui token di arresto o sulle sequenze di arresto, consultare la documentazione OpenAI o Cohere.

temperature

Il campionamento dai modelli Genera testo incorpora la casualità, in modo che lo stesso prompt possa produrre output diversi ogni volta che premi "generare". La temperatura è un numero float non negativo utilizzato per regolare il grado di casualità. Le temperature più basse significano meno generazioni casuali. Per ulteriori informazioni, vedere Temperatura. Questo parametro è applicabile a tutti i provider di servizi supportati.

vector_index_name

Nome dell'indice vettoriale. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome della memoria di vettore è di 125 caratteri.

Nell'esempio seguente viene utilizzato Cohere come provider e vengono visualizzati gli attributi del profilo personalizzato.
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 OCI Generative AI.

BEGIN                                                                        
  DBMS_CLOUD_AI.CREATE_PROFILE(                                              
      profile_name => 'GENAI',                                                             
      attributes => '{"provider": "oci",                                                                   
        "credential_name": "GENAI_CRED",                                     
        "object_list": [{"owner": "SH", "name": "customers"},                
                        {"owner": "SH", "name": "countries"},                
                        {"owner": "SH", "name": "supplementary_demographics"},
                        {"owner": "SH", "name": "profits"},                  
                        {"owner": "SH", "name": "promotions"},               
                        {"owner": "SH", "name": "products"}],
        "oci_compartment_id": "ocid1.compartment.oc1...",
	"oci_endpoint_id": "ocid1.generativeaiendpoint.oc1.us-chicago-1....",
	"region": "us-chicago-1",
	"model": "cohere.command-light",
	"oci_apiformat": "COHERE"            
       }');                                                                  
END;                                                                         
/ 

Procedura DROP_PROFILE

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

profile_name

Nome del profilo AI

force

Se TRUE, la procedura ignora gli errori se il profilo AI non esiste.

Il valore predefinito di questo parametro è FALSE.

Esempio

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

Note sull'uso

Utilizzare force per eliminare un profilo e ignorare gli errori se il profilo AI non esiste.

Procedura ENABLE_PROFILE

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

profile_name

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

Procedura CLEAR_PROFILE

Questa procedura cancella qualsiasi profilo AI attivo impostato nella sessione corrente. Dopo aver cancellato un profilo attivo, non sarà più possibile utilizzare SELECT AI nella riga di comando SQL o impostare il profilo AI quando si chiama DBMS_CLOUD_AI.GENERATE. Questa procedura non elimina il profilo.

Sintassi

DBMS_CLOUD_AI.CLEAR_PROFILE;

Esempio


   BEGIN
        DBMS_CLOUD_AI.CLEAR_PROFILE;
   END;
   /

Procedura DISABLE_PROFILE

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

profile_name

Nome del profilo AI.

Questo parametro è obbligatorio.

Esempio

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

Funzione GET_PROFILE

Questa funzione restituisce il nome del profilo AI impostato nella sessione corrente.

Sintassi

DBMS_CLOUD_AI.GET_PROFILE
;

Esempio

In questo esempio viene illustrato come visualizzare il nome del profilo nella sessione corrente.


   SELECT DBMS_CLOUD_AI.GET_PROFILE
   from DUAL;

Procedura SET_ATTRIBUTE

Questa procedura consente di impostare gli attributi del profilo AI. È sovraccaricato per accettare valori di attributi 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

profile_name

Nome del profilo AI per il quale si desidera impostare gli attributi.

Questo parametro è obbligatorio.

attribute_name

Nome dell'attributo profilo AI

Questo parametro è obbligatorio.

attribute_value

Valore dell'attributo del profilo. Il valore può essere di tipo BOOLEAN, CLOB, NUMBER o VARCHAR2.

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

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 quali showsql, runsql, explainsql, narrate e chat. L'azione predefinita è showsql.

La sostituzione di alcuni o di tutti gli attributi del profilo è possibile anche mediante questa funzione.

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

Prompt del linguaggio naturale per tradurre utilizzando l'intelligenza artificiale.

Il prompt può includere SELECT AI <action> come prefisso. L'azione può anche essere fornita separatamente come parametro di "azione". Il valore action fornito nel prompt sostituisce il parametro "action". L'azione predefinita è showsql.

Questo parametro è obbligatorio.

profile_name

Nome del profilo AI. Questo parametro è facoltativo se un profilo AI è già impostato nella sessione utilizzando DBMS_CLOUD_AI.SET_PROFILE.

Il valore predefinito è NULL.

Vengono applicate le condizioni riportate di seguito.
  • Se un profilo è impostato nella sessione corrente, l'utente può omettere l'argomento profile_name nella funzione DBMS_CLOUD_AI.GENERATE.
  • Se l'argomento profile_name viene fornito nella funzione DBMS_CLOUD_AI.GENERATE, esegue l'override di qualsiasi valore impostato nella sessione utilizzando la procedura DBMS_CLOUD_AI.SET_PROFILE.
  • Se nella sessione non è impostato alcun profilo utilizzando la procedura DBMS_CLOUD_AI.SET_PROFILE, l'argomento profile_name deve essere fornito nella funzione DBMS_CLOUD_AI.GENERATE.
Nota

Per le azioni del database è 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.
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;
Per ulteriori informazioni, vedere Esecuzione di istruzioni SQL nell'editor di codice.
action

Azione per tradurre prompt naturali utilizzando l'intelligenza artificiale. Le azioni supportate includono runsql (impostazione predefinita), showsql, explainsql, narrate e chat. Le descrizioni delle azioni sono incluse in Usa parola chiave AI per immettere i prompt.

attributes Esegue l'override di attributi di profilo AI specifici fornendo attributi in formato JSON. Per ulteriori dettagli, vedere Attributi profilo.

Esempi

Gli esempi seguenti 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 i parametri di input ai_prompt, profile_name e action 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;

Procedura SET_PROFILE

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 in linguaggio naturale. A seconda dell'azione specificata con il prefisso AI, una risposta viene generata utilizzando 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 del profilo o modificare gli attributi specificandoli in formato JSON. Per informazioni sull'impostazione degli attributi, vedere SET_ATTRIBUTE Procedure.

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, prendere in considerazione l'utilizzo di un trigger evento di database per l'evento AFTER LOGON nell'utente specifico o nell'intero database. Per ulteriori informazioni, vedere Dichiarazione CREATE TRIGGER.

Sintassi

DBMS_CLOUD_AI.SET_PROFILE(
    profile_name      IN  VARCHAR2,
);

Parametri

Parametro Descrizione

profile_name

Nome del profilo AI nella sessione corrente.

Questo parametro è obbligatorio.

Esempio


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

Funzione GENERATE_SYNTHETIC_DATA

Utilizzare questa procedura per generare dati sintetici per una singola tabella, più tabelle o uno schema completo.

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 vettoriale 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

profile_name

Profilo AI contenente le informazioni necessarie sul servizio LLM. Questa operazione può essere creata dalla CREATE_PROFILEprocedura.

object_name

Specificare un nome di tabella per popolare i dati sintetici.
  • I privilegi SELECT e INSERT sugli oggetti tabella sono necessari per l'utente che li utilizza.
  • La tabella è vuota o contiene record.
owner_name N

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 lo esegue.

record_count N

Il numero di record da generare sinteticamente.

user_prompt

N 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, user_prompt può essere:

La data di uscita dei film dovrebbe essere nel 2019

params

N

Attributi facoltativi forniti nel formato stringa dell'oggetto JSON per modificare il funzionamento di un'API. Vedere Parametri facoltativi.

object_list

Utilizzare questo parametro per generare dati sintetici su più tabelle. Questo parametro contiene le informazioni sull'oggetto tabella insieme ai relativi argomenti e contiene gli stessi argomenti forniti nella singola tabella. Vedere object_list Parametri.

Parametri facoltativi

Parametro Tipo di dati valore Value Descrizione

sample_rows

Numero

0 <= sample_rows <= 100

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 verrà utilizzata alcuna riga di esempio. Il valore predefinito è 0.

table_statistics

Boolean

  • True
  • False

Abilita o disabilita l'uso delle informazioni sulle statistiche delle tabelle.

Il valore predefinito è False.

priority

Stringa

Valori validi:

  • HIGH
  • MEDIUM
  • LOW

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ù alta consumeranno più risorse del database e completeranno più velocemente.

Il valore predefinito è HIGH

  • HIGH: specifica il numero di richieste LLM parallele in base al conteggio di ECPU del database (o al conteggio di OCPU se il database utilizza OCPU).

  • MEDIUM: imposta il numero di processi concorrenti in base al limite di concorrenza per il servizio Medium. Il valore predefinito è 4.

  • LOW: esegue il job di pipeline in un ordine seriale, senza elaborazione parallela.

Il numero massimo di processi paralleli concorrenti utilizzati per la generazione di dati sintetici è limitato a 64.

comments

Boolean
  • True
  • False

Abilita o disabilita l'invio di commenti all'LLM per guidare la generazione dei dati.

Il valore predefinito è False.

Parametri object_list

Parametro Tipo di dati valore Obbligatorio Descrizione

owner

Stringa

Specifica l'utente del database proprietario dell'oggetto a cui si fa riferimento. Se non viene fornito alcun proprietario specifico, per impostazione predefinita la procedura utilizzerà lo schema dell'utente che lo esegue.

name

Stringa

N

Specificare un nome di tabella per popolare i dati sintetici. I privilegi SELECT e INSERT negli oggetti tabella sono necessari per l'utente che utilizza la tabella it.The e sono vuoti o contengono record.

record_count

Numero

N

Il numero di record da generare in modo sintetico. Specificare un numero maggiore di 0.

Fornire record_count o record_count_percentage.

record_count_percentage

Numero

N

Percentuale del numero di record da generare sinteticamente. Specificare un numero maggiore di 0.

Per un database di duplicazione dei metadati, in cui vengono conservati i metadati della tabella, incluse le statistiche, il parametro record_count_percentage è supportato.

Fornire record_count o record_count_percentage.

Quando si utilizza il parametro record_count_percentage, il conteggio finale dei record nella tabella viene calcolato come segue.
Original_Num_Rows *
      record_count_percentage

user_prompt

Stringa N Uguale a user_prompt in Parametri. user_prompt è associato a un oggetto tabella specifico.

Esempi

Gli esempi riportati di seguito mostrano la funzione DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA per la generazione di 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.

Procedura ENABLE_DATA_ACCESS

Questa procedura consente di inviare dati a LLM per le funzioni Select AI applicabili, ovvero il comportamento predefinito. Solo un amministratore può eseguire questa procedura.

Questa procedura controlla l'accesso AI dati per le funzionalità Select AI riportate di seguito.

  • azione narrate
  • Retrieval-augmented generation (RAG)
  • Generazione dati sintetici

Sintassi

DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();

Parametri

Per questa procedura non sono necessari parametri.

Esempio per abilitare l'accesso ai dati

BEGIN
  DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();
END;
/

Procedura DISABLE_DATA_ACCESS

Questa procedura disabilita l'invio di dati a LLM per le funzioni Select AI applicabili. Solo un amministratore può eseguire questa procedura.

Questa procedura limita le funzionalità Select AI riportate di seguito.

  • azione narrate
  • Retrieval-augmented generation (RAG)
  • Generazione dati sintetici

Sintassi

DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();

Parametri

Per questa procedura non sono necessari parametri.

Esempio di disabilitazione dell'accesso ai dati

BEGIN
  DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();
END;
/

Procedura CREATE_VECTOR_INDEX

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

index_name

Nome dell'indice vettoriale. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome della memoria di vettore è di 125 caratteri.

Questo è un parametro obbligatorio.

attributes

Attributi personalizzati per l'indice vettoriale in JSON. Per visualizzare un elenco di parametri configurabili, vedere Attributi indice vettoriale.

Il valore predefinito è NULL.

status
Stato dell'indice vettoriale. I possibili valori sono riportati di seguito.
  • Enabled
  • Disabled

Il valore predefinito è Disabilitato.

description

Descrizione dell'indice vettoriale.

Il valore predefinito è NULL.

Esempio

L'esempio seguente mostra 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;                                                                 
/

Procedura DROP_VECTOR_INDEX

Questa procedura rimuove un indice della memoria di vettore. In genere rimuove l'oggetto indice della memoria di vettore ed elimina la memoria di vettore. Se impostato su FALSE, l'argomento include_data garantisce che la procedura rimuova solo l'oggetto indice della memoria di vettore conservando la memoria di vettore.

Sintassi

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

Parametri

Parametro Descrizione

index_name

Nome dell'indice vettoriale. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome della memoria di vettore è di 125 caratteri.

Questo è un parametro obbligatorio.

include_data

Indica se eliminare sia la memoria di vettore del cliente che l'indice vettoriale insieme all'oggetto indice vettoriale.

Valori possibili:

  • TRUE
  • FALSE

Il valore predefinito è TRUE.

force

Indica se ignorare gli errori che si verificano se l'indice vettoriale non esiste.

Valori possibili:

  • TRUE
  • FALSE

Se impostato su TRUE, questo parametro ignora gli errori che si verificano se l'indice vettoriale non esiste.

Il valore predefinito è FALSE.

Esempio

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

Procedura DISABLE_VECTOR_INDEX

Questa procedura disabilita un oggetto indice vettoriale nel database corrente. Quando è disabilitato, un profilo AI non può utilizzare l'indice vettoriale e il sistema non carica i dati nella memoria di vettore poiché vengono aggiunti nuovi dati 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

index_name

Nome dell'indice vettoriale. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome della memoria di vettore è di 125 caratteri.

Questo è un parametro obbligatorio.

Esempio

È possibile disabilitare un indice vettoriale fornendo il nome dell'indice vettoriale.

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

Procedura ENABLE_VECTOR_INDEX

Questa procedura abilita o attiva un oggetto indice vettoriale disabilitato in precedenza. In genere, quando si crea un indice vettoriale, per impostazione predefinita è 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 una memoria di vettore a una frequenza di aggiornamento specificata dall'utente. È possibile specificare il parametro refresh_rate mediante 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

index_name

Nome dell'indice vettoriale. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome della memoria di vettore è 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;                                                                 
/

Procedura UPDATE_VECTOR_INDEX

Questa procedura aggiorna un indice di memoria di vettore esistente con un valore specificato dell'attributo indice di vettore. È sovraccaricato per accettare valori di attributi 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

index_name

Nome dell'indice vettoriale. Il nome dell'indice vettoriale deve seguire le regole di denominazione dell'identificativo Oracle SQL. La lunghezza massima del nome della memoria di vettore è di 125 caratteri.

Questo è un parametro obbligatorio.

attribute_name

Nome degli attributi personalizzati specificati come parametri JSON nella procedura CREATE_VECTOR_INDEX.

Impossibile modificare gli attributi seguenti:

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

Questo è un parametro obbligatorio.

attribute_value

Valore specificato dall'utente per attribute_name personalizzato. Il valore può essere di tipo CLOB, NUMBER o VARCHAR2.

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

Attributi indice vettore

Gli attributi di un indice vettoriale consentono di gestire e configurare il funzionamento dell'indice vettoriale. Se necessario, è possibile aggiungere attributi di indice personalizzati. Alcuni attributi sono facoltativi e hanno un valore predefinito.

Attributi

Nome attributo Value Obbligatorio Descrizione
chunk_size 1024 (predefinito) N

Dimensione del testo di chunk dei dati di input.

Per i dati di testo, si intende il numero di caratteri.

chunk_overlap 128 (predefinito) N

Specifica la quantità di caratteri sovrapposti tra chunk di testo adiacenti. Questo attributo è utile per garantire la continuità e la precisione contestuali nell'elaborazione del testo consentendo sovrapposizioni tra segmenti, il che aiuta a prevenire la perdita di informazioni contestuali ai limiti del chunk.

location

N/D

Posizione dell'area di memorizzazione degli oggetti. I file in questa posizione possono essere documenti in formati quali PDF, DOC, JSON, XML o HTML. Vedere Formati di documento supportati.

match_limit

5 (predefinito) N

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 dei dati.

object_storage_credential_name

N/D

Specifica il nome delle credenziali per l'accesso a uno storage degli oggetti.

pipeline_name

<vector_index_name>$VECPIPELINE N

Specifica il nome della pipeline di caricamento dei dati dell'indice vettore. 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.

profile_name

N/D

Nome del profilo AI utilizzato per incorporare i dati di origine e i prompt utente.

refresh_rate

1440 minuti (impostazione predefinita) N

Intervallo di aggiornamento dei dati nella memoria di vettore. L'unità è minuti.

similarity_threshold

0 (predefinito) N

Definisce il livello minimo di somiglianza richiesto per due elementi da considerare una corrispondenza, utile per filtrare i risultati negli algoritmi di corrispondenza per garantire la pertinenza.

vector_distance_metric

Stringa corrispondente a uno dei valori specificati nella descrizione.

N

Specifica il tipo di calcolo della distanza utilizzato per confrontare i vettori in un database, determinando la modalità di quantificazione della somiglianza tra gli elementi.

Valori validi per Oracle 23ai:

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

vector_db_provider

oracle

Specifica il nome del provider che gestisce e funge da memoria di vettore.

vector_dimension

N/D N

Specifica il numero di elementi in ciascun vettore all'interno della memoria di vettore, definendo le dimensioni e la struttura della rappresentazione dei dati.

vector_table_name

<vector_index_name>$VECTAB (predefinito)

N

Specifica il nome della tabella o della raccolta in cui memorizzare le integrazioni vettoriali e i dati chunked.

L'esempio riportato di seguito mostra la creazione di un indice vettoriale con la memoria di vettore AI generativa OCI.
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;
/                                                                 
/