Pianificazione della distribuzione
È possibile utilizzare gli agenti di Oracle Cloud Infrastructure Generative AI per creare un sistema di ricerca intelligente che fornisca risposte pertinenti al contesto cercando nella knowledge base aziendale.
In questa sezione vengono descritte le implementazioni riportate di seguito.
- Trasferisci i dati aziendali in una knowledge base gestita dal servizio che gli agenti di intelligenza artificiale generativa possono includere.
- Indicizza i tuoi dati in una knowledge base gestita dal cliente.
- Crea e distribuisci codice per l'inclusione dei dati e genera incorporamenti vettoriali.
Agenti AI generativi con Knowledge Base gestita dal servizio
La distribuzione riportata di seguito utilizza gli agenti dell'AI generativa OCI per creare un sistema di ricerca intelligente che utilizza una knowledge base gestita dal servizio e Oracle Cloud Infrastructure Object Storage.
Questa distribuzione carica i file TXT e PDF nel bucket Oracle Cloud Infrastructure Object Storage in cui gli agenti di intelligenza artificiale generativa inseriscono automaticamente i dati per creare vettori memorizzati in un'area di memorizzazione vettoriale integrata.
I vantaggi di questa implementazione sono che è adatta ai clienti che hanno bisogno di una soluzione gestita per i dati non strutturati, fornisce un'inclusione dei dati rapida e semplice e ha requisiti minimi di codifica e manutenzione. Il modello di incorporamento gestito dal servizio Cohere, tuttavia, consente solo fino a 1000 file di testo e PDF per knowledge base.
genai-knowledge-base-oracle.zip
Utilizzare i passi di alto livello riportati di seguito per creare questa distribuzione.
- Eseguire il provisioning di un bucket di storage degli oggetti e caricare i file nel bucket.
I tipi di file supportati sono PDF e TXT e ogni file non deve superare i 100 MB. I file PDF possono includere immagini, grafici e tabelle di riferimento, ma ciascuno di questi oggetti non deve superare gli 8 MB. OCI Object Storage supporta il caricamento in batch dei file utilizzando la console, l'API Rest o il kit SDK (Software Development Kit).
- Creare una knowledge base e un job di inclusione.
Creare una knowledge base negli agenti OCI Generative AI e specificare il bucket di storage degli oggetti di cui è stato eseguito il provisioning come origine dati. Selezionare l'opzione Avvia automaticamente job di inclusione in modo che il servizio Agenti AI generativa OCI generi un indice vettoriale utilizzando il modello di incorporamento gestito dal servizio.
- Creare l'agente e l'endpoint.
Creare un agente negli agenti dell'AI generativa OCI e collegarlo alla knowledge base di cui è stato eseguito il provisioning nel passo precedente. Creare un endpoint per l'agente che verrà utilizzato in seguito per avviare una chat con l'agente. L'endpoint viene utilizzato per abilitare la comunicazione e lo scambio di dati tra un agente e sistemi esterni. L'endpoint è un parametro di input necessario se si desidera abilitare la funzionalità di chat utilizzando gli agenti AI mediante l'API o l'SDK.
- Facoltativamente, creare un'integrazione front-end.
Il servizio Agenti AI generativa OCI fornisce un'interfaccia utente di chat che consente agli utenti di porre domande relative AI dati a cui l'agente ha accesso. Puoi integrare l'agente con la tua applicazione utilizzando l'API Rest o l'SDK del servizio e quindi personalizzando l'interfaccia del bot di chat. Oracle offre strumenti di sviluppo di applicazioni low-code e senza codice come Oracle APEX Application Development e Oracle Digital Assistant.
Agenti AI generativa con OCI OpenSearch
La distribuzione seguente utilizza la ricerca di Oracle Cloud Infrastructure con i dati OpenSearch come knowledge base gestita dal cliente da utilizzare per gli agenti di intelligenza artificiale generativa.
Oracle Cloud Infrastructure Search with OpenSearch è un servizio gestito in grado di cercare e analizzare i dati ospitati in data store di grandi volumi. In questa distribuzione, OpenSearch è il database vettoriale utilizzato per memorizzare i documenti aziendali, creare indici e cercare e recuperare i dati utilizzando la ricerca ibrida. I risultati della ricerca vengono quindi classificati dagli agenti OCI Generative AI utilizzando un modello di reranking gestito e quindi inviati al modello LLM (Large Language Model) Cohere per generare una risposta contestuale.
I vantaggi di questa distribuzione sono che supporta una gamma più ampia di tipi di file, come JSON, XML e Blog, è compatibile con una vasta gamma di modelli di incorporamento open source e può utilizzare il truncation automatico per risultati di ricerca più specifici. Questa distribuzione richiede la creazione e la gestione delle pipeline di inclusione e indicizzazione dei dati e richiede che i file vengano suddivisi in chunk su meno di 512 token ciascuno e inclusi e indicizzati in OpenSearch.
Utilizzare i passi di alto livello riportati di seguito per creare questa distribuzione.
- Esegui il provisioning dello stack di ricerca di Oracle Cloud Infrastructure e acquisisci i dati.
Esegui il provisioning delle reti cloud virtuali (VCN), di un cluster di ricerca Oracle Cloud Infrastructure e di un'istanza di virtual machine (VM).
Per un collegamento a un'esercitazione che illustra come creare lo stack, vedere la sezione Esplora altri.
- Creare un segreto di OCI Vault.
Gli agenti dell'AI generativa OCI richiedono di creare un segreto in modo che Oracle Cloud Infrastructure Search possa memorizzare i nomi utente e le password in OCI Vault.
- Configurare la knowledge base e l'agente di OCI Generative AI Agents.
Creare una knowledge base scegliendo il cluster di ricerca di Oracle Cloud Infrastructure come origine dati e specificando gli indici da utilizzare. Creare un agente RAG OCI Generative AI utilizzando questa knowledge base.
Agenti OCI Generative AI con Oracle Database 23ai
Questa distribuzione utilizza Oracle Autonomous Database 23ai con Vector Search per gestire dati sia strutturati che non strutturati.
Quando gli utenti eseguono query sui dati aziendali, la ricerca con vettori AI esegue ricerche simili per trovare i fact più rilevanti da passare agli agenti dell'AI generativa OCI. Questi agenti eseguono quindi una nuova classificazione dei modelli e utilizzano il modello LLM (Large Language Model) Cohere per generare risposte contestuali.
I vantaggi di questa distribuzione sono che supporta dati sia strutturati che non strutturati, inclusi dati multimediali, immagini e video e che è compatibile con modelli di incorporamento di terze parti per fornire risultati di ricerca mirati. Questa distribuzione richiede la creazione e la distribuzione di codice per l'inclusione dei dati, la generazione di incorporamenti vettoriali e la creazione di indici vettoriali.
genai-vector-search-oracle.zip
Utilizzare i passi di alto livello riportati di seguito per creare questa distribuzione.
- Crea un'istanza di Oracle Database 23ai:
- Nel menu di navigazione della console del servizio OCI, fare clic su Oracle Database, quindi selezionare Autonomous Data Warehouse.
- Fare clic su Crea Autonomous Database.
- Assegnare un nome al database e selezionare 23ai come versione del database. Fornire altri parametri o accettare i valori predefiniti e fare clic su Crea Autonomous Database.
- Creare un vault per memorizzare le credenziali del database, quindi creare una chiave:
- Nel menu di navigazione della console del servizio OCI, fare clic su Identità e sicurezza, quindi selezionare Vault.
- Fare clic su Crea vault.
- Assegnare un nome al vault. Fornire altri parametri o accettare i valori predefiniti e fare clic su Crea vault.
- Nel vault appena creato, fare clic su Crea chiave.
- Assegnare un nome alla chiave. Fornire altri parametri o accettare i valori predefiniti e fare clic su Crea chiave.
- Creare una connessione agli strumenti di database:
- Nel menu di navigazione della console del servizio OCI, fare clic su Servizi sviluppatore, quindi selezionare Connessioni.
- Fare clic su Crea connessione.
- Assegnare un nome alla connessione, selezionare Oracle Autonomous Database come servizio cloud di database, selezionare il compartimento e specificare un nome utente. Fornire altri parametri o accettare i valori predefiniti e fare clic su Crea segreto password.
- Assegnare un nome al segreto password, selezionare il compartimento, il compartimento vault, il compartimento chiave di cifratura e specificare una password. Fare clic su Crea.
- Selezionare il wallet SSO come formato del wallet, quindi fare clic su Crea segreto contenuto wallet, assegnare un nome al segreto contenuto del wallet, selezionare i compartimenti vault e chiave di cifratura e assicurarsi che sia selezionato Recupera wallet regionale da Autonomous Database. Fare clic su Crea.
- Fare clic su Crea nella finestra Crea connessione. La connessione appena creata viene elencata nella scheda Connessione della pagina dei dettagli per il database associato.
- Crea vettori utilizzando modelli di incorporamento utilizzando PL/SQL:
- Impostare le credenziali per consentire l'accesso alle risorse OCI, ad esempio il servizio OCI Gen AI e le credenziali per DBMS_CLOUD. Avrai bisogno di OCI un file di configurazione con api_keys privato e pubblico, un fingerprint, un utente, una tenancy e un ocid del compartimento.
begin DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => '<credential_name>', user_ocid => '<user_ocid>', tenancy_ocid => '<tenancy_ocid>', private_key => '<private_key>', fingerprint => '<fingerprint>' ); end; /
- Utilizza la funzionalità di database integrata con file pdf memorizzati 23ai per eseguire il chunk dei file ed eseguire l'estrazione del testo.
CREATE TABLE ai_extracted_data AS SELECT j.chunk_id, j.chunk_offset, j.chunk_length, j.chunk_data FROM -- divide a blob into chunks (utl_to_chunks): (select * from dbms_vector_chain.utl_to_chunks( dbms_vector_chain.utl_to_text( to_blob( DBMS_CLOUD.GET_OBJECT('OCI_CRED_BUCKET', '<path-to-object-pdf>') ) ), json('{"max":"75", "normalize":"all", "overlap":"15"}') )), JSON_TABLE(column_value, '$' COLUMNS ( chunk_id NUMBER PATH '$.chunk_id', chunk_offset NUMBER PATH '$.chunk_offset', chunk_length NUMBER PATH '$.chunk_length', chunk_data CLOB PATH '$.chunk_data' ) ) j;
- Crea incorporamenti vettoriali utilizzando un'ampia gamma di opzioni di incorporamento, ad esempio il modello cohere.embed-multilingual-v3.0 tramite l'AI generativa OCI.
create table ai_extracted_data_vector as ( select chunk_id as docid, to_char(chunk_data) as body, dbms_vector.utl_to_embedding( chunk_data, json('{ "provider": "OCIGenAI", "credential_name": "<credential_name>", "url": "https://example.com/<path>", "model": "cohere.embed-multilingual-v3.0" }') ) as text_vec from ai_extracted_data where chuck_id <= 400 );
- Creare una funzione per eseguire query sulle tabelle vettoriali ed eseguire le operazioni di ricerca AI in runtime.
create or replace FUNCTION retrieval_func_ai ( p_query IN VARCHAR2, top_k IN NUMBER ) RETURN SYS_REFCURSOR IS v_results SYS_REFCURSOR; query_vec VECTOR; BEGIN query_vec := dbms_vector.utl_to_embedding( p_query, json('{ "provider": "OCIGenAI", "credential_name": "<credential_name>", "url": "https://example.com/<path>", "model": "cohere.embed-multilingual-v3.0" }') ); OPEN v_results FOR SELECT DOCID, BODY, VECTOR_DISTANCE(text_vec, query_vec) as SCORE FROM ai_extracted_data_vector ORDER BY SCORE FETCH FIRST top_k ROWS ONLY; RETURN v_results; END;
- Impostare le credenziali per consentire l'accesso alle risorse OCI, ad esempio il servizio OCI Gen AI e le credenziali per DBMS_CLOUD. Avrai bisogno di OCI un file di configurazione con api_keys privato e pubblico, un fingerprint, un utente, una tenancy e un ocid del compartimento.
- Creare la knowledge base utilizzando Oracle Database 23ai:
- Nel menu di navigazione della console del servizio OCI, fare clic su Analytics e AI, quindi selezionare Agenti AI generativi.
- Fare clic su Knowledge base e fare clic su Crea knowledge base.
- Assegnare un nome alla knowledge base, selezionare Oracle AI Vector Search come tipo di data store e specificare la connessione allo strumento di database e la funzione di ricerca, quindi fare clic su Crea Knowledge Base.
- Creare un agente AI generativo con la Knowledge Base di Oracle Database 23 AI:
- Nel menu di navigazione della console del servizio OCI, fare clic su Analytics e AI, quindi selezionare Agenti.
- Fare clic su Crea agente.
- Assegnare un nome all'agente, selezionare la knowledge base creata, quindi fare clic su Crea agente.
Dopo aver creato l'agente, è necessario che l'agente sia attivo e pronto per la chat.