Usa Seleziona AI per generare SQL dai prompt del linguaggio naturale
La funzione Select AI consente a Autonomous AI Database di utilizzare l'intelligenza artificiale generativa con LLM (Large Language Models) per convertire il testo di input dell'utente in Oracle SQL. Select AI elabora il prompt del linguaggio naturale, integra il prompt con i metadati e quindi genera ed esegue una query SQL.
Argomenti correlati
Piattaforme supportate
Select AI è supportata su Autonomous AI Database serverless e Autonomous AI Database su infrastruttura Exadata dedicata e cloud at Customers.
- Database AI autonomo Serverless
- Database AI autonomo su un'infrastruttura Exadata dedicata
- Database AI autonomo su un'infrastruttura Exadata dedicata
- Database AI autonomo Cloud@Customer
Informazioni sulla generazione SQL
L'utilizzo del linguaggio naturale per interagire con i dati del database è ora possibile con i LLM. Ciò significa che è possibile utilizzare il linguaggio naturale, ad esempio l'inglese normale, per eseguire una query sul database.
Quando utilizzi Select AI, Autonomous AI Database gestisce il processo di conversione del linguaggio naturale in SQL. Ciò significa che è possibile fornire un prompt in linguaggio naturale anziché un codice SQL per interagire con i dati. Select AI funge da strumento di produttività per utenti e sviluppatori SQL e consente agli utenti SQL non esperti di ricavare insight utili dai propri dati, senza dover comprendere strutture di dati o linguaggi tecnici.
DBMS_CLOUD_AI in Autonomous AI Database consente l'integrazione con un LLM specificato dall'utente per generare codice SQL utilizzando prompt in linguaggio naturale. Il pacchetto aiuta a fornire all'LLM la conoscenza dello schema di database e a istruirlo a scrivere una query SQL coerente con tale schema. Il pacchetto DBMS_CLOUD_AI funziona con provider AI come OpenAI, Cohere, Azure OpenAI Service e Oracle Cloud Infrastructure Generative AI.
Nota
Gli utenti devono avere un account con il provider AI e fornire le proprie credenziali tramite gli oggettiDBMS_CLOUD_AI utilizzati dal database AI autonomo.
Terminologia
È importante comprendere i vari termini utilizzati con Select AI prima di utilizzarlo.
Di seguito sono riportati i termini correlati alla funzione Seleziona AI.
| Termine | Definizione |
|---|---|
|
Credenziale database |
Le credenziali del database sono credenziali di autenticazione utilizzate per accedere e interagire con i database. In genere sono costituiti da un nome utente e una password, a volte integrati da fattori di autenticazione aggiuntivi come i token di sicurezza. Queste credenziali vengono utilizzate per stabilire una connessione sicura tra un'applicazione o un utente e un database, in modo da garantire che solo gli utenti o i sistemi autorizzati possano accedere e manipolare i dati memorizzati nel database. |
|
Allucinazione in LLM |
L'allucinazione nel contesto dei modelli di linguaggio di grandi dimensioni si riferisce a un fenomeno in cui il modello genera testo non corretto, non sensato o non correlato al prompt di input. Pur essendo il risultato del tentativo del modello di generare testo coerente, queste istanze possono contenere informazioni fabbricate, fuorvianti o puramente fantasiose. L'allucinazione può verificarsi a causa di distorsioni nei dati di addestramento, mancanza di una corretta comprensione del contesto o limitazioni nel processo di addestramento del modello. |
| IAM | Oracle Cloud Infrastructure Identity and Access Management (IAM) ti consente di controllare chi può accedere alle tue risorse cloud. È possibile controllare il tipo di accesso di un gruppo di utenti e le risorse specifiche. Per ulteriori informazioni, vedere Panoramica di Identity and Access Management. |
|
Prompt linguaggio naturale |
I prompt del linguaggio naturale sono istruzioni o richieste leggibili dall'utente fornite per guidare i modelli di intelligenza artificiale generativa, ad esempio i modelli di linguaggio di grandi dimensioni. Invece di utilizzare linguaggi o comandi di programmazione specifici, gli utenti possono interagire con questi modelli inserendo prompt in una forma di linguaggio più conversazionale o naturale. I modelli generano quindi l'output in base al prompt fornito. |
|
Lista di controllo dell'accesso di rete (ACL) |
Una lista di controllo dell'accesso di rete è un set di regole o autorizzazioni che definiscono il traffico di rete che può passare attraverso un dispositivo di rete, ad esempio un router, un firewall o un gateway. Le ACL vengono utilizzate per controllare e filtrare il traffico in entrata e in uscita in base a vari criteri, ad esempio indirizzi IP, numeri di porta e protocolli. Svolgono un ruolo cruciale nella sicurezza della rete consentendo agli amministratori di gestire e limitare il traffico di rete per prevenire accessi non autorizzati, potenziali attacchi e violazioni dei dati. |
|
Ricerca somiglianza |
La ricerca di somiglianza identifica e recupera i datapoint che corrispondono strettamente a una determinata query confrontando i vettori di funzioni in una memoria di vettore. |
|
Distanze vettoriali |
Le distanze vettoriali misurano la somiglianza o la dissimilanza tra vettori di feature calcolando la distanza tra loro in uno spazio multidimensionale. |
|
Indice vettore |
Un indice vettoriale organizza e memorizza i vettori di funzioni per consentire una ricerca efficiente della somiglianza e il recupero dei dati correlati. |
|
Area di memorizzazione vettore |
Una memoria di vettore include sistemi che memorizzano, gestiscono e abilitano la ricerca di somiglianza semantica che coinvolge incorporamenti di vettori. Ciò include database vettoriali standalone e Oracle Database 23ai AI Vector Search. |
Linee guida sull'uso
Fornisce istruzioni d'uso che garantiscono l'uso efficace e corretto dei prompt del linguaggio naturale per la generazione SQL per garantire un'esperienza utente migliorata.
Destinazione d'uso
Questa funzione è destinata alla generazione e all'esecuzione di query SQL derivanti da prompt di linguaggio naturale forniti dall'utente. Automatizza ciò che un utente potrebbe fare manualmente in base ai metadati dello schema in combinazione con un modello di linguaggio di grandi dimensioni (LLM) di sua scelta.
Sebbene sia possibile fornire qualsiasi prompt, inclusi quelli che non si riferiscono alla produzione dei risultati delle query SQL, Select AI si concentra sulla generazione delle query SQL. Select AI abilita l'invio di richieste generali con l'azione chat.
Dati incremento prompt
Il database aumenta il prompt specificato dall'utente con i metadati del database per mitigare le allucinazioni dell'LLM. Il prompt aumentato viene quindi inviato all'LLM specificato dall'utente per produrre la query.
Il database aumenta il prompt solo con i metadati dello schema. Questi metadati possono includere definizioni di schema, commenti di tabella e colonna e contenuto disponibile dal dizionario dati e dal catalogo. Ai fini della generazione SQL, il database non fornisce il contenuto della tabella o della vista (valori effettivi di riga o colonna) quando si aumenta il prompt.
L'azione narrate, tuttavia, fornisce il risultato della query, che può contenere dati del database, all'LLM specificato dall'utente da cui generare testo in linguaggio naturale che descriva i risultati della query.
AVVERTENZA
I modelli LLM (Large Language Model) sono stati formati su un ampio set di documenti e contenuti di testo, in genere da Internet. Di conseguenza, i LLM possono avere modelli incorporati da contenuti non validi o dannosi, inclusa l'iniezione SQL. Pertanto, mentre i LLM sono abili a generare contenuti utili e pertinenti, possono anche generare informazioni errate e false, incluse query SQL che producono risultati imprecisi e / o compromettono la sicurezza dei tuoi dati.
Le query generate per conto dell'utente dal provider LLM specificato dall'utente verranno eseguite nel database. L'utilizzo di questa funzione è a proprio rischio e, nonostante tutti gli altri termini e condizioni relativi ai servizi forniti da Oracle, costituisce accettazione di tale rischio ed espressa esclusione della responsabilità di Oracle per eventuali danni derivanti da tale utilizzo.
Seleziona provider AI e LLM
Scegli un provider AI e un LLM che soddisfi i tuoi standard di sicurezza e si allinei alle tue esigenze specifiche, come la generazione di testo o codice.
Diversi LLM eccellono in varie attività in base ai dati di formazione e allo scopo previsto. Alcuni modelli sono eccellenti per la generazione di testo, ma potrebbero non funzionare bene nella generazione del codice, mentre altri sono specificamente ottimizzati per le attività di codifica. Scegli un LLM che meglio si adatta alle tue esigenze.
| Provider AI | LLM | Modello di incorporamento per RAG | Scopo |
|---|---|---|---|
|
AI generativa OCI |
Fare riferimento a quanto riportato di seguito.
|
Vedere Informazioni sull'incorporamento dei modelli nell'AI generativa. |
I modelli di chat AI generativa OCI sono supportati per tutte le azioni I modelli di testo di generazione OCI sono supportati solo per l'azione |
|
Servizio OpenAI di Azure |
|
inserimento testo-ada-002 |
Ideale per generare istruzioni SQL dai prompt in linguaggio naturale, dall'azione |
|
OpenAI |
|
inserimento testo-ada-002 |
Ideale per generare istruzioni SQL dai prompt in linguaggio naturale, dall'azione |
|
OpenAI-Compatibile |
Modelli di provider compatibili con OpenAI, ad esempio:
|
Incorporamento di modelli da provider compatibili con OpenAI. Ad esempio, vedere Modelli di incorporamento AI Fireworks. |
Supporta una vasta gamma di casi d'uso. |
|
Cohere |
|
embed-english-v2.0 |
Ideale per l'azione |
|
|
|
text-embedding-004 (predefinito) |
Ideale per generare istruzioni SQL dai prompt in linguaggio naturale, dall'azione |
|
Antropico |
|
ND |
Ideale per generare istruzioni SQL dai prompt in linguaggio naturale, dall'azione |
|
Hugging Face |
|
ND |
Ideale per generare istruzioni SQL dai prompt in linguaggio naturale, dall'azione |
|
AWS |
|
Supporta una vasta gamma di casi d'uso. |
Nota
-
Specificare il provider compatibile con OpenAI tramite
provider_endpointanziché il parametroprovider. Vedere . -
Per i modelli che accettano immagini, utilizzare
meta.llama-3.2-90b-vision-instruct. Questo modello è specificamente addestrato per la visione e le immagini. Sebbene possa essere utilizzato per la generazione di testo e SQL, il modello è più adatto per le immagini. Per ulteriori informazioni, vedere Chat in OCI Generative AI.Il modello
meta.llama-3.2-11b-vision-instructoffre solide funzionalità multimodali. -
I modelli di incorporamento sono noti anche come modelli di trasformatori.
Informazioni sulla generazione SQL
L'uso del linguaggio naturale per interagire con i dati del database è ora possibile con i LLM. Ciò significa che è possibile utilizzare il linguaggio naturale, ad esempio l'inglese semplice, per eseguire query sul database.
Quando utilizzi Select AI, Autonomous AI Database gestisce il processo di conversione del linguaggio naturale in SQL. Ciò significa che è possibile fornire un prompt in linguaggio naturale anziché un codice SQL per interagire con i dati. Select AI funge da strumento di produttività per utenti e sviluppatori SQL e consente agli utenti SQL non esperti di ricavare insight utili dai propri dati, senza dover comprendere strutture di dati o linguaggi tecnici.
DBMS_CLOUD_AI in Autonomous AI Database consente l'integrazione con un LLM specificato dall'utente per generare codice SQL utilizzando prompt in linguaggio naturale. Il pacchetto aiuta a fornire all'LLM la conoscenza dello schema di database e a istruirlo a scrivere una query SQL coerente con tale schema. Il pacchetto DBMS_CLOUD_AI funziona con provider AI come OpenAI, Cohere, Azure OpenAI Service e Oracle Cloud Infrastructure Generative AI.
Nota
Gli utenti devono avere un account con il provider AI e fornire le proprie credenziali tramite gli oggettiDBMS_CLOUD_AI utilizzati dal database AI autonomo.
Utilizzare DBMS_CLOUD_AI per configurare i profili AI
Autonomous AI Database utilizza i profili AI per facilitare e configurare l'accesso a un LLM e per l'impostazione per la generazione di istruzioni SQL dai prompt del linguaggio naturale.
I profili AI includono oggetti di database che sono la destinazione per le query in linguaggio naturale. I metadati utilizzati da queste destinazioni possono includere nomi di tabelle di database, nomi di colonne, tipi di dati di colonna e commenti. Per creare e configurare i profili AI, utilizzare le procedure DBMS_CLOUD_AI.CREATE_PROFILE e DBMS_CLOUD_AI.SET_PROFILE.
Requisiti per configurare il pacchetto DBMS_CLOUD_AI
Per eseguire DBMS_CLOUD_AI è necessario effettuare le operazioni riportate di seguito.
- Accesso a un account cloud Oracle Cloud Infrastructure e a un'istanza di Autonomous AI Database.
- Un account API a pagamento per un provider AI supportato, uno dei seguenti:
-
OpenAI: per consentire a OpenAI di generare istruzioni SQL dai prompt di linguaggio naturale, ottenere le chiavi API dall'account a pagamento OpenAI.
La chiave API segreta è disponibile nelle impostazioni utente.
-
Cohere: per consentire a Cohere di generare le istruzioni SQL dai prompt del linguaggio naturale, ottenere le chiavi API dall'account a pagamento Cohere.
Fare clic su Dashboard e fare clic su Chiavi API nella navigazione a sinistra. Copiare la chiave API predefinita o crearne un'altra. Per ulteriori informazioni, vedere API-Keys.
-
Servizio OpenAI di Azure: per abilitare Servizio OpenAI di Azure a generare SQL dai prompt del linguaggio naturale, configurare e fornire l'accesso al provider AI.
Per utilizzare Servizio OpenAI di Azure, effettuare le operazioni riportate di seguito.
- Ottenere le chiavi API segrete. È possibile trovare le chiavi API nella sezione Resource Management del portale Azure. Nella pagina Risorsa Servizio OpenAI di Azure fare clic su Chiavi ed endpoint. È possibile copiare KEY1 o KEY2.
- Creare una risorsa di Azure OpenAI Service e distribuire un modello: Creare e distribuire una risorsa di Azure OpenAI Service.
Suggerimento
- Prendere nota del nome della risorsa e del nome della distribuzione poiché tali parametri vengono utilizzati per fornire l'autorizzazione di accesso alla rete e creare il profilo Servizio OpenAI di Azure utilizzando la procedura
DBMS_CLOUD_AI.CREATE_PROFILE. - Per ulteriori informazioni sui limiti di frequenza per il token al minuto in un modello, vedere Quota e limiti del servizio OpenAI di Azure.
- Prendere nota del nome della risorsa e del nome della distribuzione poiché tali parametri vengono utilizzati per fornire l'autorizzazione di accesso alla rete e creare il profilo Servizio OpenAI di Azure utilizzando la procedura
- Consentire l'accesso al servizio OpenAI di Azure:
- AI generativa OCI: vedere How to Generate the API Signing Key.
- Google: per consentire a Google AI Studio di generare risposte SQL e di testo AI prompt del linguaggio naturale, ottenere le chiavi API dall'account a pagamento Google AI Studio.
- Vai a Google AI Studio.
- Fare clic su Accedi a Google AI Studio.
- Fare clic su Ottieni chiave API nella schermata del prompt.
- Selezionare tutte le opzioni applicabili nella pagina successiva.
- Fare clic su Crea chiave API.
-
Fare clic su Crea chiave API nel nuovo progetto.
La schermata visualizza lo stato di avanzamento e genera una chiave API. Copiare la chiave e salvarla.
- Antropico: per consentire ad Anthropic Developer Console di generare risposte SQL e di testo ai prompt del linguaggio naturale, ottenere le chiavi API dall'account a pagamento Anthropic Developer Console.
- Andare a Anthropic Developer Console.
- Registra un account se non ne hai già uno.
- Una volta eseguito il login, passare alla sezione API o al dashboard.
- Cercare un'opzione per generare o visualizzare le chiavi API.
- Fare clic per creare una nuova API Key.
-
Copiare la chiave API generata e salvarla.
L'API Claude è un servizio a pagamento. Prima di poter utilizzare la chiave API, dovrai aggiungere crediti al tuo account.
- Hugging Face: per abilitare Hugging Face come provider AI per generare risposte SQL e di testo AI prompt del linguaggio naturale, ottenere le chiavi API dall'account a pagamento Hugging Face.
- Passare a Hugging Face.
- Registra un account se non ne hai già uno.
- Accedere alle impostazioni dell'account.
- Nel menu di navigazione individuare i token di accesso.
- Fare clic per creare una nuova API Key.
- Copiare la chiave API generata e salvarla.
-
AWS: per abilitare AWS, ottieni la tua chiave API e l'ID modello.
Ottenere la chiave API e utilizzarla per creare le credenziali tramite
DBMS_CLOUD.CREATE_CREDENTIAL.Seguire questo processo per ottenere la chiave API e il nome del modello:
- Registrati per un account AWS se non ne hai già uno.
- Creare le chiavi di accesso e le chiavi segrete da AWS Bedrock Console.
- Copiare le chiavi generate e salvarle.
- Richiedi l'accesso ai loro modelli di base. Vedere Accedi ai modelli di base di Amazon Bedrock.
- Ottenere l'ID modello. È necessario disporre dell'ID modello nella procedura
DBMS_CLOUD_AI.CREATE_PROFILE. L'ID modello dipende dalle risorse utilizzate. Se si utilizza:- un modello di base, specificare l'ID del modello o il relativo ARN (Amazon Resource Names). Per un elenco degli ID dei modelli per i modelli di base, vedere ID dei modelli di base Amazon Bedrock
- un profilo di inferenza, specificare l'ID del profilo di inferenza o il relativo ARN. Per un elenco degli ID profilo inferenza, vedere Aree e modelli supportati per l'inferenza tra più aree.
- un modello con provisioning eseguito, specificare l'ARN del throughput con provisioning eseguito. Per ulteriori informazioni, vedere Eseguire l'inferenza utilizzando un throughput con provisioning eseguito.
- un modello personalizzato, acquistare il throughput con provisioning eseguito. Quindi, specificare l'ARN del modello di provisioning risultante. Per ulteriori informazioni, vedere Utilizzare un modello personalizzato in Amazon Bedrock.
- un modello Amazon Bedrock Marketplace, specificare l'ID o l'ARN dell'endpoint del marketplace creato, vedere Amazon Bedrock Marketplace.
Nota
Il modello importato non è supportato con l'API Bedrock Converse.
Per utilizzare AWS come provider, vedere Esempio: selezionare AI con AWS.
-
- Privilegi ACL di rete per accedere al provider AI esterno.
Nota
L'ACL di rete non è applicabile per l'AI generativa OCI. - Credenziale che fornisce l'accesso al provider AI.
Configura package DBMS_CLOUD_AI
Prima di utilizzare Seleziona AI, procedere come segue per abilitare DBMS_CLOUD_AI.
DBMS_CLOUD_AI:
-
Concedere il privilegio
EXECUTEsul packageDBMS_CLOUD_AIall'utente che desidera utilizzare Select AI.Per impostazione predefinita, il privilegio
EXECUTEviene concesso solo all'utente ADMIN. L'utente ADMIN può concedere il privilegioEXECUTEad altri utenti. -
Concedere l'accesso ACL di rete all'utente che desidera utilizzare Select AI e per l'endpoint del provider AI.
L'utente ADMIN può concedere l'accesso all'ACL di rete. Per ulteriori informazioni, vedere APPEND_HOST_ACE Procedure in Oracle Database 19c PL/SQL Packages and Types Reference oppure Oracle Database 26ai PL/SQL Packages and Types Reference.
- Creare una credenziale per abilitare l'accesso al provider AI.
Per ulteriori informazioni, vedere CREATE_CREDENTIAL Procedura.
EXECUTE a ADB_USER:grant execute on DBMS_CLOUD_AI to ADB_USER;L'esempio seguente concede a ADB_USER il privilegio di utilizzare l'endpoint api.openai.com.
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'api.openai.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'ADB_USER',
principal_type => xs_acl.ptype_db)
);
END;
/
APPEND_HOST_ACE Parametri funzione
| Parametro | Descrizione |
|---|---|
|
|
L'host, che può essere il nome o l'indirizzo IP dell'host. È possibile utilizzare un carattere jolly per specificare un dominio o una subnet IP. Il nome dell'host o del dominio non distingue tra maiuscole e minuscole. Per OpenAI, utilizzare api.openai.com. Per Cohere, utilizzare api.cohere.ai. Per Servizio OpenAI di Azure, utilizzare <azure_resource_name>.openai.azure.com. Per ulteriori informazioni su Per Google, utilizzare generativelanguage.googleapis.com. Per Anthropic, utilizzare api.anthropic.com. Per Hugging Face, utilizzare api-inference.huggingface.co. |
|
|
Voci di controllo dell'accesso (ACE, Access Control Entries). Il tipo |
Di seguito è riportato un esempio di come creare una credenziale per abilitare l'accesso a OpenAI.
EXEC DBMS_CLOUD.CREATE_CREDENTIAL('OPENAI_CRED', 'OPENAI', 'your_api_token');Parametri di DBMS_CLOUD.CREATE_CREDENTIAL
| Parametro | Descrizione |
|---|---|
|
|
Il nome della credenziale da memorizzare. Il parametro |
|
|
Gli argomenti
|
|
|
Gli argomenti
|
Creare e impostare un profilo AI
Descrive i passi per creare e abilitare un profilo AI.
Utilizzare DBMS_CLOUD_AI.CREATE_PROFILE per creare un profilo AI. Iniziare quindi DBMS_CLOUD_AI.SET_PROFILE per abilitare il profilo AI in modo da poter utilizzare SELECT AI con un prompt in linguaggio naturale.
Nota
Prima di utilizzare SELECT AI, è necessario eseguire DBMS_CLOUD_AI.SET_PROFILE in ogni nuova sessione del database (connessione).
L'esempio seguente con il provider OpenAI crea un profilo AI denominato OPENAI e imposta il profilo OPENAI per la sessione utente corrente.
-- Create AI profile
--
SQL> BEGIN
DBMS_CLOUD_AI.create_profile(
'OPENAI',
'{"provider": "openai",
"credential_name": "OPENAI_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "sales"},
{"owner": "SH", "name": "products"},
{"owner": "SH", "name": "countries"}]
}');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
SQL> EXEC DBMS_CLOUD_AI.set_profile('OPENAI');
PL/SQL procedure successfully completed.
Utilizzare la parola chiave AI per immettere i prompt
Utilizzare AI come parola chiave in un'istruzione SELECT per interagire con il database utilizzando i prompt in linguaggio naturale.
La parola chiave AI in un'istruzione SELECT indica al motore di esecuzione SQL di utilizzare l'LLM identificato nel profilo AI attivo per elaborare il linguaggio naturale e generare SQL.
È possibile utilizzare la parola chiave AI in una query con i client Oracle, ad esempio SQL Developer, OML Notebooks e strumenti di terze parti, per interagire con il database in linguaggio naturale.
Nota
Non è possibile eseguire istruzioni PL/SQL, DDL o DML utilizzando la parola chiaveAI.
Sintassi
SELECT AI action natural_language_promptParametri
| Parametro | Descrizione |
|---|---|
|
|
Eseguire il comando SQL fornito utilizzando un prompt del linguaggio naturale. Questa è l'azione predefinita ed è facoltativa specificare questo parametro. |
|
|
Visualizza l'istruzione SQL per un prompt in linguaggio naturale. |
|
|
L'output del prompt viene spiegato in linguaggio naturale. Questa opzione invia il risultato SQL al provider AI per produrre un riepilogo del linguaggio naturale. |
|
|
Genera una risposta direttamente dall'LLM in base al prompt. Se |
|
|
L'istruzione SQL generata dal prompt viene spiegata in linguaggio naturale. Questa opzione invia l'istruzione SQL generata al provider AI per produrre una spiegazione del linguaggio naturale. |
Note sull'uso
-
La selezione di
AInon è supportata in Database Actions o nel servizio APEX. È possibile utilizzare solo la funzioneDBMS_CLOUD_AI.GENERATE. -
La parola chiave
AIè supportata solo in un'istruzioneSELECT. -
Non è possibile eseguire istruzioni PL/SQL, DDL o DML utilizzando la parola chiave
AI. -
La sequenza è
SELECTseguita daAI. Per queste parole chiave non viene applicata la distinzione tra casi. Dopo aver configurato unDBMS_CLOUD_AI.SET_PROFILE, il testo dopoSELECT AIè un prompt in linguaggio naturale. Se un profilo AI non è impostato,SELECTAIsegnala il seguente errore:ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" -
Si applicano regole speciali per l'uso dei caratteri in base alle linee guida Oracle. Ad esempio, utilizzare le virgolette singole due volte se si utilizza un apostrofo in una frase.
select ai how many customers in SF don''t own their own home -
I LLM sono soggetti a allucinazioni e i risultati non sono sempre corretti:
-
È possibile che
SELECT AInon sia in grado di eseguire l'istruzione SQL generata per un prompt specifico del linguaggio naturale. -
È possibile che
SELECT AInon sia in grado di generare SQL per un prompt specifico del linguaggio naturale.
In questo scenario,
SELECT AIrisponde con le informazioni necessarie per generare un'istruzione SQL valida. -
-
Utilizzare l'azione
chat, conSELECT AI chat, per ulteriori informazioni sui costrutti SQL. Per ottenere risultati migliori con l'azionechat, utilizzare le viste di database o le tabelle con nomi di colonna contestuali oppure aggiungere commenti di colonna per spiegare i valori memorizzati nelle colonne. -
Per accedere alle viste DBA o USER, vedere DBMS_CLOUD_AI Viste.
Seleziona AI con Retrieval Augmented Generation (RAG)
Selezionare AI con RAG per aumentare il prompt del linguaggio naturale recuperando il contenuto dalla memoria di vettore specificata utilizzando la ricerca di somiglianza semantica. Ciò riduce le allucinazioni utilizzando contenuti specifici e aggiornati e fornisce risposte al linguaggio naturale più pertinenti ai prompt.
Select AI automatizza il processo di Retrieval Augmented Generation (RAG). Questa tecnica recupera i dati dalle origini aziendali utilizzando la ricerca vettoriale AI e aumenta i prompt utente per il modello linguistico di grandi dimensioni (LLM, large language model) specificato. Sfruttando le informazioni provenienti dai data store aziendali, la RAG riduce le allucinazioni e genera risposte di base.
RAG utilizza la ricerca vettoriale AI su un indice vettoriale per trovare dati semanticamente simili per la domanda specificata. La memoria di vettore elabora incorporamenti vettoriali, che sono rappresentazioni matematiche di vari datapoint come testo, immagini e audio. Queste integrazioni acquisiscono il significato dei dati, consentendo un'elaborazione e un'analisi efficienti. Per ulteriori dettagli sulle integrazioni vettoriali e sulla ricerca vettoriale AI, vedere Panoramica di AI Vector Search.
Select AI si integra con la ricerca vettoriale AI disponibile in Oracle Autonomous AI Database 26ai per la ricerca di somiglianza utilizzando integrazioni vettoriali.
Argomenti
Vantaggi di Select AI RAG
Semplifica l'esecuzione delle query, migliora l'accuratezza delle risposte con i dati attuali e ottieni trasparenza esaminando le fonti utilizzate dal LLM.
-
Semplifica l'esecuzione di query sui dati e aumenta l'accuratezza delle risposte: consenti agli utenti di eseguire query sui dati aziendali utilizzando il linguaggio naturale e fornisci ai LLM un contesto dettagliato dai dati aziendali per generare risposte più accurate e pertinenti, riducendo le istanze di allucinazioni LLM.
-
Informazioni aggiornate: fornisci agli LLM l'accesso alle informazioni aziendali attuali utilizzando le memorie di vettore, eliminando la necessità di un'ottimizzazione costosa e dispendiosa in termini di tempo degli LLM addestrati su set di dati statici.
-
Integrazione perfetta: integra con Oracle AI Vector Search per una gestione semplificata dei dati e prestazioni migliorate.
-
Orchestrazione automatizzata dei dati: automatizza i passi di orchestrazione con una pipeline Vector Index completamente gestita, garantendo un'elaborazione efficiente dei nuovi dati.
-
Risultati contestuali comprensibili: ha accesso e recupera le fonti utilizzate dall'LLM dalle memoria di vettore, garantendo trasparenza e fiducia nei risultati. Visualizza ed estrae i dati in testo in linguaggio naturale o in formato JSON per semplificare l'integrazione e lo sviluppo delle applicazioni.
Crea il tuo Vector Store
Select AI elabora automaticamente i documenti in chunk, genera incorporamenti, li memorizza nella memoria di vettore specificata e aggiorna l'indice vettoriale all'arrivo di nuovi dati.
- Input: i dati vengono inizialmente memorizzati in uno storage degli oggetti.
- Oracle Autonomous Database recupera i dati di input o il documento, li raggruppa e invia i chunk a un modello di incorporamento.
- Il modello di incorporamento elabora i dati di chunk e restituisce incorporamenti vettoriali.
- Le integrazioni vettoriali vengono quindi archiviate in una memoria di vettore per l'uso con RAG. Quando il contenuto viene aggiunto, l'indice vettoriale viene aggiornato automaticamente.
RAG recupera le informazioni pertinenti dal database aziendale per rispondere alla domanda di un utente. Queste informazioni vengono fornite al modello linguistico di grandi dimensioni specificato insieme al prompt utente. Select AI utilizza queste informazioni aziendali aggiuntive per migliorare il prompt, migliorando la risposta dell'LLM. RAG può migliorare la qualità delle risposte con informazioni aziendali aggiornate dalla memoria di vettore.
-
Input: l'utente pone una domanda (specifica un prompt) utilizzando l'azione Seleziona AI
narrate. -
La selezione AI genera incorporamenti vettoriali del prompt utilizzando il modello di incorporamento specificato nel profilo AI.
-
L'indice di ricerca vettoriale utilizza l'incorporamento vettoriale della domanda per trovare il contenuto corrispondente dai dati aziendali del cliente (ricerca della memoria di vettore) che è stato indicizzato.
- La ricerca vettoriale restituisce i primi testi K simili all'input per l'istanza del database AI autonomo.
- Autonomous AI Database invia quindi questi risultati di query K principali con la domanda dell'utente all'LLM.
- LLM restituisce la propria risposta all'istanza di Autonomous AI Database.
- Database AI autonomo Selezionare AI per fornire la risposta all'utente.
Utilizzare DBMS_CLOUD_AI per creare e gestire indici vettoriali
Utilizzare il package DBMS_CLOUD_AI per creare e gestire gli indici vettoriali e configurare i parametri JSON del database vettoriale.
Nota
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 per la RAG.
È possibile configurare i profili AI per i provider elencati in Seleziona provider AI e LLM tramite il package DBMS_CLOUD_AI.
Usa modelli trasformatore nel database
Select AI RAG consente di utilizzare modelli di trasformatori ONNX pre-addestrati importati nel database nell'istanza di Oracle Database 23ai per generare vettori di incorporamento da blocchi di documenti e prompt utente.
Nota
È necessario importare un modello di trasformatore pre-addestrato in formato ONNX nell'istanza di Oracle Database 23ai per utilizzare Select AI RAG con il modello di trasformatore in database importato. Puoi anche utilizzare altri modelli di trasformatori dei provider AI supportati.Per esplorare la funzione, vedere Esempio: selezione dell'intelligenza artificiale con modelli di trasformatore nel database.
Generazione dati sintetici
Genera dati sintetici utilizzando generatori casuali, algoritmi, modelli statistici e LLM (Large Language Models) per simulare dati reali per sviluppare e testare soluzioni in modo efficace.
Nota
Il supporto per Synthetic Data Generation è disponibile in Oracle Database 19c a partire dalla versione 19.29 e in Oracle Database 26ai a partire dalla versione 23.26.I dati sintetici possono essere uno strumento potente quando si sviluppano e si testano soluzioni, soprattutto quando i dati effettivi non esistono ancora o non possono essere utilizzati. I dati sintetici, o generati artificialmente, possono avere molte delle caratteristiche dei dati reali. I dati sintetici vengono in genere creati utilizzando generatori casuali, algoritmi o modelli statistici per simulare le caratteristiche e le distribuzioni di dati reali. Tuttavia, questo può essere complesso per produrre o fare affidamento su strumenti con caratteristiche di varia sofisticazione. Con la disponibilità di modelli linguistici di grandi dimensioni (LLM), possono essere generati dati più pertinenti e specifici dello schema che considerano le caratteristiche espresse in linguaggio naturale.
Argomenti
Vantaggi della generazione di dati sintetici
La generazione di dati sintetici consente di popolare le copie dei metadati del database, supportando progetti di sviluppo, test e machine learning senza utilizzare dati sensibili dalle tabelle originali.
-
Popolamento delle copie dei metadati con dati sintetici: una copia dei metadati replica la struttura di un database o di uno schema senza includere i dati effettivi. Select AI consente alla generazione di dati sintetici di popolare queste copie, proteggendo i dati sensibili abilitando allo stesso tempo lo sviluppo, il test e la creazione di modelli. Questo approccio supporta il test delle prestazioni e della scalabilità.
-
Avvio di nuovi progetti: quando si avvia un nuovo progetto, i dati effettivi potrebbero non essere disponibili. I dati sintetici forniscono campioni realistici per aiutare a dimostrare concetti e ottenere supporto per le proposte di progetto.
-
Convalida dell'esperienza utente: i dati sintetici aiutano a testare le interfacce utente fornendo set di dati diversi per scoprire difetti di progettazione, prestazioni e problemi di scalabilità.
-
Supporto di progetti di intelligenza artificiale e machine learning: i dati sintetici sono utili per addestrare i modelli di intelligenza artificiale e machine learning quando i dati reali non sono disponibili o sono limitati. Gli LLM possono generare dati con pattern specifici per facilitare l'addestramento e il punteggio dei modelli.
Genera dati sintetici
Utilizzare la funzione DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA per generare dati sintetici ed eseguire query sui dati utilizzando le azioni Seleziona AI.
Per ulteriori informazioni, vedere GENERATE_SYNTHETIC_DATA Funzione ed Esempio: generazione di dati sintetici.
Monitoraggio e risoluzione dei problemi della generazione di dati sintetici
Quando si generano grandi quantità di dati in molte tabelle, Select AI suddivide i task di generazione dei dati sintetici in chunk più piccoli ed esegue i task in parallelo. Lo stato di ogni chunk viene tracciato nella tabella SYNTHETIC_DATA$<operation_id>_STATUS.
Le operazioni di generazione dei dati sintetici vengono registrate nelle tabelle DBA_LOAD_OPERATIONS e USER_LOAD_OPERATIONS. Utilizzare queste tabelle per monitorare l'operazione DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA. Per ulteriori dettagli, vedere Traccia operazioni di caricamento DBMS_CLOUD.
USER_LOAD_OPERATION utilizzando quanto riportato di seguito.SELECT max(id) FROM user_load_operations;
Per visualizzare le operazioni dei dati sintetici in esecuzione in una sessione diversa, utilizzare la vista DBA_LOAD_OPERATIONS.
Visualizza stato generazione dati sintetici
La tabella di stato dell'operazione di generazione dei dati sintetici mostra l'avanzamento di ogni tabella e il relativo chunk corrispondente. La colonna STATUS_TABLE in USER_LOAD_OPERATIONS o DBA_LOAD_OPERATIONS mostra il nome della tabella di stato. Il nome della tabella è SYNTHETIC_DATA$<operation_id>_STATUS e contiene le colonne seguenti:
| Nome | Tipo di dati | Descrizione |
|---|---|---|
|
|
|
Identificativo univoco del record. |
|
|
|
Nome qualificato della tabella, ad esempio "ADB_USER"."EMPLOYEES" |
|
|
|
Numero di record desiderato per questo task di generazione dati |
|
|
|
Numero effettivo di record generati. |
|
|
|
Valore iniziale per la chiave primaria durante questo task di generazione dati. |
|
|
|
Indicatore orario che indica l'ultima modifica del record. |
|
|
|
Stato del task di generazione dati. I valori validi sono:
|
|
|
|
Codice di errore, se il task di generazione dati non riesce. |
|
|
|
Messaggio di errore fornito se il task non riesce. |
|
|
|
Indicatore orario che contrassegna la fine del task di generazione dati. |
Per controllare il numero di record generati per ogni tabella, effettuare le operazioni riportate di seguito.
SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;Eseguire una query ROWS_LOADED per confermare il numero di righe caricate per ogni chunk e SUM(ROWS_LOADED) per le righe per ogni tabella.
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_list => '[{"owner": "ADB_USER", "name": "DIRECTOR","record_count":150},
{"owner": "ADB_USER", "name": "MOVIE_ACTOR","record_count":300},
{"owner": "ADB_USER", "name": "CLASSES", "user_prompt":"all in fall semester","record_count":5},
{"owner": "ADB_USER", "name": "ACTOR","record_count":220},
{"owner": "ADB_USER", "name": "MOVIE","record_count":50}]'
);
END;
/
-- Check loaded rows for each chunk
SQL> SELECT name, rows_loaded FROM synthetic_data$141_status order by name;
NAME ROWS_LOADED
------------------------------------------
"ADB_USER"."ACTOR" 188
"ADB_USER"."ACTOR" 32
"ADB_USER"."CLASSES" 5
"ADB_USER"."DIRECTOR" 150
"ADB_USER"."MOVIE" 50
"ADB_USER"."MOVIE_ACTOR" 38
"ADB_USER"."MOVIE_ACTOR" 114
"ADB_USER"."MOVIE_ACTOR" 148
-- Check loaded rows for each table
SQL> SELECT name, SUM(rows_loaded) FROM synthetic_data$141_status group by name;
NAME SUM(ROWS_LOADED)
------------------------------------------
"ADB_USER"."DIRECTOR" 150
"ADB_USER"."MOVIE_ACTOR" 300
"ADB_USER"."CLASSES" 5
"ADB_USER"."ACTOR" 220
"ADB_USER"."MOVIE" 50

