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

Prerequisiti

Come sviluppatore, puoi utilizzare le procedure DBMS_CLOUD con i database AI autonomi distribuiti su Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.

A seconda della scelta di distribuzione, è necessario soddisfare i seguenti prerequisiti per utilizzare le procedure DBMS_CLOUD con i provider di servizi Amazon S3, Azure Blob Storage e Google Cloud Storage.

Riepilogo dei sottoprogrammi DBMS_CLOUD_AI

In questa sezione vengono descritti i programmi secondari DBMS_CLOUD_AI forniti con Autonomous AI 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 DROP_PROFILE Questa procedura elimina un profilo AI esistente.
Procedura ENABLE_PROFILE Questa procedura consente di utilizzare un profilo AI nel database corrente.
Procedura DISABLE_PROFILE Questa procedura disabilita un profilo AI nel database 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.
Funzione GENERATE Questa funzione genera un'istruzione SQL utilizzando AI per la conversione.
GENERATE_SYNTH_MONOETIC_DATA Questa funzione genera dati sintetici.
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_CONVERSATION Questa procedura consente di creare una conversazione.
Funzione CREATE_CONVERSATION Questa funzione consente di creare una conversazione e di utilizzare l'ID conversazione in altre procedure.
Attributi CREATE_CONVERSATION Utilizzare gli attributi della conversazione per personalizzare le conversazioni.
Procedura UPDATE_CONVERSATION Questa procedura aggiorna una procedura esistente con parametri specificati dall'utente.
Procedura SET_CONVERSATION_ID Questa procedura imposta il supporto della conversazione nella sessione corrente.
Funzione GET_CONVERSATION_ID Questa procedura consente di ottenere il parametro conversation_id.
Procedura CLEAR_CONVERSATION_ID Questa procedura consente di cancellare qualsiasi conversation_id impostato nella sessione corrente.
Procedura DELETE_CONVERSATION_PROMPT Questa procedura elimina un prompt particolare.
Procedura DROP_CONVERSATION Questa procedura elimina un'intera conversazione e i relativi metadati.
Procedura FEEDBACK Utilizzare questa procedura per migliorare potenzialmente l'accuratezza della generazione delle query fornendo un feedback a Select AI.
Indice vettoriale per FEEDBACK Questo è un indice vettoriale predefinito creato quando si utilizza per la prima volta feedback.

Procedura CREATE_PROFILE

La procedura crea un nuovo profilo AI per la conversione dei prompt in linguaggio naturale in 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
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 profilo in formato JSON. Per ulteriori dettagli, vedere Attributi profilo AI.

Il valore predefinito è NULL.

status

Stato del profilo.

Il valore predefinito è Abilita.

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'),
          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.

Nome attributo Descrizione
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_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.
comments

Includere commenti di colonna nei metadati utilizzati per tradurre i prompt in linguaggio naturale utilizzando l'intelligenza artificiale. Il tipo di dati BOOLEAN è supportato. I valori validi sono TRUE o FALSE per una stringa con tipo di dati VARCHAR2.

Nota: i valori booleani non sono applicabili nella procedura DBMS_CLOUD_AI.SET_ATTRIBUTE quando si imposta un singolo attributo perché il parametro attribute_value è di tipo dati CLOB.

conversation Attributo VARCHAR2 che indica se la cronologia delle conversazioni è abilitata per un profilo. Solo OpenAI e il servizio OpenAI di Azure supportano la cronologia delle conversazioni. 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.

Si tratta di un attributo obbligatorio. Vedere Procedura CREDENTIAL.

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.

  • GenAI OCI: 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.

max_tokens Indica il numero di token da prevedere per ogni generazione. Il valore predefinito è 1024. Per ulteriori dettagli, vedere Tokens and Tokenizers.
model

Nome del modello AI utilizzato per generare le risposte.

Modelli supportati per:

  • OpenAI: gpt-4, gpt-4-0613, gpt-4-32k, gpt-4-32k-0613, gpt-3.5-turbo (predefinito), gpt-3.5-turbo-0613, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613
  • Cohere: comando (predefinito), comando notturno (sperimentale), luce di comando e comando notturno (sperimentale). I modelli più piccoli e "leggeri" sono più veloci, mentre i modelli più grandi funzionano meglio.[Modelli personalizzati](https://docs.cohere.com/docs/creating-custom-models#what-are-custom-models) può anche essere fornito con il loro ID completo.
  • AI generativa OCI: per OCI Generative AI: cohere.command (impostazione predefinita). I modelli pre-addestrati per l'AI generativa OCI sono tutti supportati da Select AI. È possibile fornire i modelli personalizzati anche con gli OCID completi.

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

  • AWS: i modelli di base di Amazon Bedrock richiedono autorizzazioni di accesso tramite la console Amazon Bedrock. Consulta la documentazione AWS per ottenere modelID.

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

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.

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 di 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"} ]

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 di Autonomous AI Database.

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 è obbligatorio quando viene specificato l'attributo model ed è applicabile ai modelli di generazione OCI.

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

I valori supportati sono:

  • COHERE
  • LLAMA

provider

Provider AI per il profilo AI.

Provider supportati:

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

Si tratta di un attributo obbligatorio.

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 nelle aree di Chicago, Francoforte e Londra. Vedere [Modelli di base pre-addestrati nell'AI generativa](https://docs.oracle.com/en-us/iaas/Content/generative-ai/pretrained-models.htm#pretrained-models).

L'area predefinita è `us-chicago-1`.

L'area predefinita per AWS è us-east-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, consulta 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.

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_runtimetype": "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 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;
/

Procedura SET_ATTRIBUTE

Questa procedura consente di impostare gli attributi del profilo AI.

Sintassi

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

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 predefinito è NULL.

Esempio

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

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, viene generata una risposta utilizzando AI. Per utilizzare il prefisso AI, vedere Utilizzare la parola chiave AI per immettere i prompt. Facoltativamente, è possibile sostituire gli attributi del profilo o modificare gli attributi specificandoli in formato JSON. Vedere la procedura SET_ATTRIBUTE per l'impostazione degli attributi.

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 dettagli, vedere CREATE TRIGGER Statement in Oracle Database 19c Database PL/SQL Language Reference o Oracle Database 26ai Database PL/SQL Language Reference.

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

Questa funzione fornisce la traduzione AI quando si utilizza una connessione al database senza conservazione dello stato. Con il profilo AI esistente, è possibile utilizzare questa funzione per eseguire le azioni supportate quali showsql, runsql, explainsql, narrate, summarize 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,
    params            IN  CLOB
) 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 Azioni 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. Di seguito sono riportate le azioni supportate.

  • runsql(predefinito)

  • showsql

  • explainsql

  • narrate

  • summarize

  • translate

  • chat

Le descrizioni delle azioni sono incluse in Usa parole 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.
params

Specificare il parametro di conversazione. Vedere Attributi CREATE_CONVERSATION. È possibile specificare solo il parametro seguente:

conversation_id: il valore predefinito è l'ID conversazione impostato nella sessione corrente. Parametro non obbligatorio.

Esempi

Esempio: utilizzo della funzione GENERATE per selezionare le azioni AI

Gli esempi riportati di seguito illustrano le azioni runsql, showsql, explainsql, narrate, summarize, translate e chat utilizzabili con la funzione DBMS_CLOUD_AI.GENERATE.

Per ulteriori dettagli, vedere anche Usa parole 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;

Di seguito è riportato un esempio di azione summarize.

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

Risultato:

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

In questi esempi viene illustrata l'azione translate:

Gli esempi seguenti mostrano l'uso dell'azione translate nel prompt.

Nota: il profilo AI deve specificare la lingua di destinazione.

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

L'esempio seguente mostra l'azione translate fornita nella funzione DBMS_CLOUD_AI.GENERATE insieme a target_language e source_language. In questo esempio viene utilizzata la traduzione dell'AI generativa. Il testo di input this is a document in inglese (source_language: "en") viene tradotto in francese (target_language: "fr").

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

Utilizzo della funzione GENERATE in una procedura

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

GENERATE_SYNTH_MONOETIC_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. Può essere creata mediante la procedura CREATE_PROFILE.
object_name Specificare un nome di tabella per popolare i dati sintetici.
  • I privilegi SELECT e INSERT per gli 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 chiamata `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 parametri elenco_oggetti.

Parametri facoltativi

Parametro Tipo di dati valore Valore 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 Booleano

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

  • 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 per gli oggetti tabella sono necessari per l'utente che li utilizza. La tabella è vuota o contiene 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 indicato di seguito.

Original_Num_Rows * record_count_percentage

user_prompt Stringa N. Uguale a user_prompt in Parametri funzione GENERATE_SYNTH_MONOETIC_DATA. 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;
/
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;
/

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.

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.

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

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.

È sovraccarico per accettare:

Sintassi

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
   index_name         IN  VARCHAR2,
   attributes         IN  CLOB
);
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
     index_name         IN  VARCHAR2,
     attribute_name     IN  VARCHAR2,
     attribute_value    IN  VARCHAR2
);
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
     index_name         IN  VARCHAR2,
     attribute_name     IN  VARCHAR2,
     attribute_value    IN  CLOB     DEFAULT NULL
  );

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

Specifica gli attributi di indice vettoriale in formato JSON.

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.

Nota: utilizzare il parametro attributes per specificare le coppie attribute_name e valore in formato JSON oppure i parametri attribute_name e attribute_value insieme.

Esempi

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

L'esempio seguente accetta attributes in formato JSON.

BEGIN
  DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
    index_name => 'MY_VECTOR_INDEX',
    attributes => '{"match_limit": 10,
                    "refresh_rate": 30}'
  );
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 Valore Obbligatorio Descrizione
chunk_size 1024 (impostazione predefinita) N.

Dimensione del testo di chunk dei dati di input.

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

chunk_overlap 128 (impostazione predefinita) 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 confini dei chunk.
location ND

Questo parametro specifica l'URI o le directory del file di origine e i file di origine.

I pattern con caratteri jolly sono supportati sia per gli URI dei file di origine che per le directory.

URI file di origine cloud:

È possibile specificare un URI del file di origine per il bucket o la sottocartella. È possibile utilizzare i caratteri jolly per specificare le sottocartelle o i nomi file. Il carattere "*" può essere utilizzato come caratteri jolly per più caratteri, mentre il carattere "?" può essere utilizzato come caratteri jolly per un singolo carattere.

Esempio con caratteri jolly:

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

Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud.

Directory:

È possibile specificare una directory e un nome file. Il formato per specificare una directory è: MY_DIR:filename.ext. Per impostazione predefinita, il nome della directory MY_DIR è un oggetto di database e non fa distinzione tra maiuscole e minuscole. Nel nome del file viene fatta distinzione tra maiuscole e minuscole.

È possibile utilizzare solo caratteri jolly per specificare i nomi dei file in una directory. Il carattere * può essere utilizzato come caratteri jolly per più caratteri, mentre il carattere ? può essere utilizzato come caratteri jolly per un singolo carattere. Ad esempio: MY_DIR:* o MY_DIR:test?.

Usare le virgolette doppie per specificare un nome di directory con distinzione tra maiuscole e minuscole. Ad esempio: "my_dir1":*, "my_dir2":Test?

Per includere una virgoletta, utilizzare due virgolette. Ad esempio: MY_DIR:''filename.ext. Specifica che il nome file inizia con una virgoletta (').

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 (impostazione predefinita) 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 ND Specifica il nome delle credenziali per l'accesso a una memorizzazione 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 ND Nome del profilo AI utilizzato per incorporare i dati di origine e i prompt dell'utente.
refresh_rate 1440 minuti (impostazione predefinita) N. Intervallo di aggiornamento dei dati nella memoria di vettore. L'unità è minuti.
similarity_threshold 0 (impostazione predefinita) 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 ND 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.

Esempio: specificare la posizione dell'URI di storage degli oggetti

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

Esempio: specificare la posizione dell'URI di storage degli oggetti con pattern di caratteri jolly

In questo esempio viene specificato un pattern di caratteri jolly (*) nell'URI dello storage degli oggetti come parametro location. Carica tutti i file CSV dall'URI dello storage degli oggetti.

BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
            index_name    => 'MY_INDEX',
            attributes    => JSON_OBJECT(
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',
                       'profile_name'      value 'OCIGENAI',
                       'location'          value 'https://objectstorage.myregion.oraclecloud.com/n/my$namespace/b/bucketname/o/year=????/month=??/file*.csv)',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Esempio: specificare la posizione dell'oggetto directory con il pattern di caratteri jolly

In questo esempio vengono specificati gli oggetti directory nel parametro location utilizzando un pattern con caratteri jolly. Carica tutti i file CSV nella directory MY_DIR.

BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
            index_name    => 'MY_INDEX',
            attributes    => JSON_OBJECT(
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',
                       'profile_name'      value 'OCIGENAI',
                       'location'          value 'MY_DIR:*.csv',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Esempio: specificare la posizione dell'oggetto directory con distinzione tra maiuscole e minuscole con pattern di caratteri jolly

In questo esempio viene specificato un oggetto directory con distinzione tra maiuscole e minuscole nel parametro location utilizzando un pattern con caratteri jolly. Carica tutti i file CSV nella directory My_Dir.

BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
            index_name    => 'MY_INDEX',
            attributes    => JSON_OBJECT(
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',
                       'profile_name'      value 'OCIGENAI',
                       'location'          value '"My_Dir":*.csv',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Esempio: specificare l'oggetto directory con distinzione tra maiuscole e minuscole con tutti i file come pattern di caratteri jolly

In questo esempio viene specificato un oggetto directory con distinzione tra maiuscole e minuscole nel parametro location utilizzando un pattern con caratteri jolly (*). Carica tutti i file presenti nella directory My_Dir.

BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
            index_name    => 'MY_INDEX',
            attributes    => JSON_OBJECT(
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',
                       'profile_name'      value 'OCIGENAI',
                       'location'          value '"My_Dir":*',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Esempio: specificare una corrispondenza nome file nell'oggetto directory

In questo esempio viene specificato un oggetto directory e viene utilizzato un prefisso del nome file, ad esempio test, nel parametro location. Carica tutti i file della directory MY_DIR i cui nomi iniziano con test.

BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
            index_name    => 'MY_INDEX',
            attributes    => JSON_OBJECT(
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',
                       'profile_name'      value 'OCIGENAI',
                       'location'          value 'MY_DIR:test*',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Procedura CREATE_CONVERSATION

Questa procedura consente di creare una conversazione e di impostare automaticamente conversation_id all'interno della procedura.

Nota: se si utilizza la procedura DBMS_CLOUD_AI.CREATE_CONVERSATION, è possibile saltare l'impostazione di conversation_id poiché la procedura la imposta automaticamente.

Sintassi

DBMS_CLOUD_AI.CREATE_CONVERSATION(
  attributes            IN CLOB DEFAULT NULL
);

Parametri

Parametro Descrizione
attributes

Attributi per la conversazione in formato JSON. Per ulteriori dettagli, vedere Attributi CREATE_CONVERSATION.

Il valore predefinito è NULL.

Esempio

Esempio: creazione conversazione

L'esempio seguente mostra la creazione di una conversazione senza alcuna personalizzazione.

EXEC DBMS_CLOUD_AI.CREATE_CONVERSATION;

Esempio: creazione di una conversazione con attributi personalizzati

L'esempio seguente mostra la creazione di una conversazione con parametri personalizzati quali title, description, retention_days e conversation_length.

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

Funzione CREATE_CONVERSATION

Questa funzione crea una conversazione e restituisce il proprio conversation_id che può essere utilizzato in altre procedure o funzioni come DBMS_CLOUD_AI.SET_CONVERSATION_ID e DBMS_CLOUD_AI.GENERATE.

Oracle consiglia di impostare conversation_id per abilitare la conversazione. In alternativa, è possibile impostare conversation_id nella funzione DBMS_CLOUD_AI.GENERATE.

Nota: se si utilizza la procedura DBMS_CLOUD_AI.CREATE_CONVERSATION, è possibile saltare l'impostazione di conversation_id poiché la procedura la imposta automaticamente.

Sintassi

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

Parametri

Parametro Descrizione
attributes

Attributi per la conversazione in formato JSON. Per ulteriori dettagli, vedere Attributi CREATE_CONVERSATION.

Il valore predefinito è NULL.

Esempio

Esempio: creazione conversazione

L'esempio seguente mostra l'utilizzo della funzione DBMS_CLOUD_AI.CREATE_CONVERSATION per creare una conversazione senza alcuna personalizzazione.

SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION FROM DUAL;

Risultato:

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

Esempio: creazione di una conversazione con attributi personalizzati

L'esempio seguente mostra l'utilizzo della funzione DBMS_CLOUD_AI.CREATE_CONVERSATION per specificare attributi quali title, retention_days e conversation_length.

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

Attributi CREATE_CONVERSATION

Questi attributi gestiscono il contesto della conversazione, incluso il tempo di conservazione, il numero di prompt con risposte da memorizzare o visualizzare e metadati come titolo e descrizione per riferimento. Alcuni attributi sono facoltativi e hanno un valore predefinito.

Attributi

Nome attributo Valore predefinito Descrizione
title Nuova conversazione Il nome assegnato dall'utente per la conversazione. Se non viene fornito, l'opzione Seleziona intelligenza artificiale genererà un LLM quando la conversazione viene utilizzata per la prima volta con un prompt.
description NULL Fornisce una descrizione definita dall'utente che riepiloga lo scopo o il contesto della conversazione. Se non viene fornito, l'LLM ne genera uno quando la conversazione viene utilizzata per la prima volta con un prompt e lo aggiorna nuovamente al 5° utilizzo per includere informazioni più accurate e pertinenti.
retention_days 7 Specificare il numero di giorni per il mantenimento della cronologia delle conversazioni. Questo viene memorizzato nel database dalla data di creazione. Se questo valore viene omesso, il sistema lo imposta come valore predefinito 7. Se si imposta su 0, la conversazione viene mantenuta finché non viene eliminata manualmente utilizzando la procedura DBMS_CLOUD_AI.DROP_CONVERSATION o DBMS_CLOUD.DELETE_ALL_OPERATIONS('CONVERSATION').
conversation_length NULL

Specificare il numero di prompt e risposte recenti da includere con il prompt corrente. Il valore massimo consentito è 999. È possibile eseguire l'override di questo valore specificando il parametro conversation_length nella funzione DBMS_CLOUD_AI.GENERATE oppure impostandolo nel profilo AI utilizzando SELECT AI <ACTION> <PROMPT>. Applicare le seguenti regole di precedenza per conversation_length:

  1. Valore dell'argomento attributi in DBMS_CLOUD_AI.GENERATE
  2. L'insieme di valori nella conversazione ha la priorità successiva
  3. Il valore definito nel profilo AI ha l'ultima priorità

Se nessuno di essi specifica conversation_length, il valore predefinito è 10.

L'esempio seguente mostra come personalizzare gli attributi di conversazione nella procedura DBMS_CLOUD_AI.CREATE_CONVERSATION.

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

Procedura UPDATE_CONVERSATION

Questa procedura aggiorna una conversazione esistente con un valore specificato degli attributi della conversazione.

Sintassi

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

Parametri

Parametro Descrizione
conversation_id

Numero univoco assegnato a una conversazione.

Questo è un parametro obbligatorio.

attributes Attributi per la conversazione in formato JSON. Per ulteriori dettagli, vedere Attributi CREATE_CONVERSATION.

Esempio

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

Procedura SET_CONVERSATION_ID

Questa procedura imposta la conversazione corrente sull'ID specificato. I prompt successivi includono prompt conversazione esistenti basati sugli attributi configurati della conversazione.

Sintassi

DBMS_CLOUD_AI.SET_CONVERSATION_ID(
    conversation_id   IN VARCHAR2
);

Parametri

Parametro Descrizione
conversation_id

Numero univoco assegnato a una conversazione nella sessione corrente.

Questo parametro è obbligatorio.

Esempio

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

Funzione GET_CONVERSATION_ID

Questa funzione restituisce l'ID conversazione attualmente impostato nella sessione utilizzando la procedura DBMS_CLOUD_AI.SET_CONVERSATION_ID o DBMS_CLOUS_AI.CREATE_CONVERSATION. Se non è stata impostata una conversazione, la funzione restituisce NULL. Se si elimina la conversazione, il sistema la cancella anche nella sessione. Vedere la procedura CLEAR_CONVERSATION_ID.

Sintassi

DBMS_CLOUD_AI.GET_CONVERSATION_ID
RETURN VARCHAR2;

Esempio

In questo esempio viene visualizzato l'ID conversazione impostato nella sessione corrente.

SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID;

Risultato:

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

Procedura CLEAR_CONVERSATION_ID

Questa procedura cancella un ID conversazione impostato nella sessione per disabilitare la funzione di conversazione per SELECT AI <ACTION> <PROMPT>. Se non hai impostato una conversazione, il sistema non genera alcun errore.

Sintassi

DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;

Esempio

In questo esempio viene illustrata la visualizzazione dell'ID conversazione corrente nella sessione, la cancellazione dell'ID e la verifica della modifica.

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

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


-- Clear the conversation id
EXEC DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;

PL/SQL procedure successfully completed.


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

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

Procedura DELETE_CONVERSATION_PROMPT

La procedura rimuove un determinato prompt dalla conversazione.

Sintassi

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

Parametri

Parametro Descrizione
conversation_prompt_id

Numero univoco assegnato a un prompt in una conversazione. È possibile trovare l'ID prompt eseguendo una query sulla vista DBA/USER_CLOUD_AI_CONVERSATION_PROMPTS. Vedere Viste DBMS_CLOUD_AI.

Questo è un parametro obbligatorio.

force

Se TRUE, la procedura ignora gli errori se conversation_prompt_id non esiste.

Il valore predefinito di questo parametro è FALSE.

Esempio

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

Procedura DROP_CONVERSATION

La procedura rimuove la conversazione e tutti i prompt associati e le risposte associate. Una volta eliminato, il valore conversation_id diventa non valido. Se una conversazione viene eliminata mentre è impostata nella sessione, viene cancellata automaticamente.

Sintassi

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

Parametri

Parametro Descrizione
conversation_id

Numero univoco assegnato a una conversazione.

Questo è un parametro obbligatorio.

force

Se TRUE, la procedura ignora gli errori se conversation_id non esiste.

Il valore predefinito di questo parametro è FALSE.

Esempio

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

Risultato:

PL/SQL procedure successfully completed.

Procedura FEEDBACK

Questa procedura consente di fornire un feedback a Select AI per migliorare potenzialmente la precisione della generazione delle query. È possibile fornire un feedback positivo o negativo, nonché commenti testuali o query SQL riviste.

Sintassi

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

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

Parametri

Parametro Descrizione
profile_name

Specifica il profilo AI da utilizzare. Se non si specifica un valore profile_name, Select AI utilizza il profilo predefinito impostato nella sessione.

Questo è un parametro obbligatorio.

sql_id

Identifica la query SQL. Un sql_id può avere una sola voce di feedback.

Questo è un parametro obbligatorio.

sql_text

Contiene il testo completo della query SQL.

Questo è un parametro obbligatorio.

feedback_type

Specifica il tipo di feedback. I valori disponibili sono:

  • positive: accettare l'istruzione SQL generata.
  • negative: fornire i miglioramenti delle query SQL necessari identificando gli errori nella query.

Nota: la procedura DBMS_CLOUD_AI.FEEDBACK consente di specificare sql_id o sql_text, pertanto feedback_type è necessario, mentre se si utilizza l'azione feedback, LLM determina o interpreta dinamicamente il tipo di feedback.

Si tratta di un parametro obbligatorio se operation è impostato su add.

response

Rappresenta il risultato della query SQL corretto previsto dall'utente.

Si tratta di un parametro obbligatorio se operation è add e feedback_type è negativo.

feedback_content Acquisisce il feedback del linguaggio naturale dell'utente. È possibile utilizzare questo parametro insieme a response.
operation

Specifica l'operazione da eseguire. I valori accettati sono:

  • add (impostazione predefinita): aggiungere il feedback specificando feedback_type.
  • delete: elimina il tuo feedback fornendo il sql_id

Esempio

Esempio: fornire feedback per l'istruzione SQL generata mediante operazioni di aggiunta o eliminazione

L'esempio seguente illustra l'utilizzo della procedura DBMS_CLOUD_AI.FEEDBACK per accettare o migliorare l'istruzione SQL generata specificando i parametri della procedura.

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

Indice vettoriale per FEEDBACK

Selezionare AI per creare un indice vettoriale predefinito denominato <*nome_profilo*>_FEEDBACK_VECINDEX con attributi predefiniti quando si utilizza la funzione di feedback per la prima volta.

È possibile modificare gli attributi, ad esempio similarity_threshold e match_limit, utilizzando la procedura DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX. Questo indice consente di perfezionare le istruzioni SQL generate in futuro in base al feedback fornito. Questa tabella viene eliminata quando viene eliminato il profilo AI associato. È inoltre possibile eliminare <profile_name>_FEEDBACK_VECINDEX. Quando si esegue questa operazione, Select AI non utilizza più feedback come suggerimenti per le azioni runsql, showsql e explainsql. Tuttavia, se si sottomette un nuovo feedback utilizzando la funzione Seleziona feedback AI, Select AI crea automaticamente un nuovo indice vettoriale di feedback

Nota: il valore predefinito di match_limit per feedback è 3.

Nome tabella vettoriale

La tabella <profile_name>_FEEDBACK_VECINDEX$VECTAB contiene rappresentazioni vettoriali (embedings) del feedback degli utenti insieme ad altri parametri, che Select AI utilizza per migliorare la generazione SQL nel tempo.

Parametri

A colonne Descrizione
attributes Include gli attributi dell'oggetto JSON secondo la procedura FEEDBACK.
content Contiene il prompt utente.
embedding Contiene rappresentazioni vettoriali (embeddings) del prompt utente.

Esempio

L'esempio seguente illustra l'uso della tabella di indice vettoriale generata automaticamente per eseguire query e fornire feedback.

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

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

Funzione SUMMARIZE

Questa funzione riepiloga il contenuto in base alle opzioni di personalizzazione fornite come parametri.

Sintassi

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

Parametri

Parametro Descrizione
content

Specifica il testo che si desidera riepilogare. Specificare content o location_uri.

Parametro non obbligatorio.

credential_name

Identifica l'oggetto credenziale utilizzato per l'autenticazione con l'area di memorizzazione degli oggetti. È necessario creare questa credenziale utilizzando `DBMS_CLOUD.CREATE_CREDENTIAL`.

Nota: utilizzare questo parametro solo quando si specifica `location_uri`.

location_uri

Fornisce l'URI in cui è memorizzato il testo o il percorso di un file locale. Specificare content o location_uri.

Ad esempio:

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

File locale: summary_gobject:test_file.txt

profile_name

Specifica il profilo AI da utilizzare. Se non si specifica un valore profile_name, Select AI utilizza il profilo predefinito impostato nella sessione. Se non è impostato alcun profilo predefinito, viene restituito l'errore ORA-20046: il profilo AI non è abilitato nella sessione.

Il valore predefinito è NULL.

user_prompt

Fornisce un prompt in linguaggio naturale per guidare o personalizzare il riepilogo. È possibile includere istruzioni aggiuntive oltre ai parametri di riepilogo.

Ad esempio, il riepilogo deve iniziare con ''Il riepilogo dell'articolo è: '''

Questo parametro non è obbligatorio.

params Definisce i parametri di riepilogo. Vedere Parametri SUMMARIZE.

Esempio

Vedere Esempio: selezione del sintetico AI da esplorare.

Parametri SUMMARIZE

Questi attributi gestiscono la generazione del riepilogo con parametri personalizzati. Alcuni attributi sono facoltativi e hanno un valore predefinito.

Attributi

Nome attributo Valore predefinito Descrizione
min_words 0

Specifica il numero minimo approssimativo di parole che il riepilogo generato dovrebbe contenere.

Nota: questo parametro funge da linea guida anziché da limite rigoroso: la lunghezza effettiva del sintetico può variare a seconda del contenuto fornito e dell'interpretazione del modello.

max_words 200

Specifica il numero massimo approssimativo di parole che il riepilogo generato dovrebbe contenere.

Nota: questo parametro funge da linea guida anziché da limite rigoroso, la lunghezza effettiva del sintetico può variare a seconda del contenuto fornito e dell'interpretazione del modello.

summary_style Paragrafo

Specifica lo stile di formato per il riepilogo. Di seguito sono riportate le opzioni disponibili per il formato di riepilogo.

  • paragraph: la sintesi è presentata in uno o più paragrafi.
  • list: il riepilogo è un elenco di punti chiave del testo.

chunk_processing_method map_reduce

Quando il testo supera il limite di token che l'LLM può elaborare, deve essere suddiviso in blocchi gestibili. Questo parametro consente di scegliere il metodo di elaborazione di questi chunk. Sono disponibili le opzioni riportate di seguito.

  • iterative_refinement
  • map_reduce

Per ulteriori dettagli, vedere Seleziona terminologia AI.

extractiveness_level low Determina la frequenza con cui il riepilogo segue la formulazione originale dell'input. Controlla il grado in cui il modello estrae rispetto alla riformulazione. Le opzioni disponibili sono le seguenti:
  • High: il sommario rimane vicino al fraseggio originale, riutilizzando frasi ed espressioni ove possibile.
  • Medium: un mix equilibrato di estrazione e parafrasi.
  • Low: consente maggiore libertà di riformulare, ristrutturare o semplificare l'input, concentrandosi sul significato piuttosto che sul fraseggio esatto.

Nota: questa impostazione funge da guida per il funzionamento del sintetico del modello e non applica una regola rigorosa. Lo stile e la formulazione effettivi del sommario possono variare in base al contenuto di input e alle decisioni del modello.

Funzione TRANSLATE

Questa funzione consente di tradurre il testo in target_language specificato.

È possibile fornire i parametri source_language e target_language nella funzione oppure possono essere presi dal profilo AI dell'utente. Se il profilo AI non include un attributo source_language, il provider di intelligenza artificiale generativa rileva automaticamente la lingua di input. Se l'attributo target_language non è presente, Select AI restituisce un errore.

Sintassi

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

Parametri

Parametro Descrizione
profile_name

Specifica il profilo AI da utilizzare.

Parametro non obbligatorio.

text

Specifica il testo che si desidera tradurre.

Questo è un parametro obbligatorio.

source_language Lingua del testo dell'input
target_language Lingua in cui il testo è tradotto.

Esempio

Vedere Esempio: selezione della traduzione AI da esplorare.

Contenuto correlato

Usa intelligenza artificiale di selezione per generare istruzioni SQL dai prompt del linguaggio naturale