Cercare ed eseguire query su una knowledge base aziendale usando Azure OpenAI o Ricerca di intelligenza artificiale di Azure

Archiviazione BLOB di Azure
Cache di Azure per Redis
Ricerca di intelligenza artificiale di Azure
Servizi di intelligenza artificiale di Azure
Informazioni sui documenti di Azure AI

Questo articolo descrive come usare il servizio Azure OpenAI o Ricerca di intelligenza artificiale di Azure (in precedenza Ricerca cognitiva di Azure) per cercare i documenti nei dati aziendali e recuperare i risultati per offrire un'esperienza di domande e risposte in stile ChatGPT. Questa soluzione descrive due approcci:

  • Approccio agli incorporamenti: usare il modello di incorporamento OpenAI di Azure per creare dati vettorializzati. La ricerca vettoriale è una funzionalità che aumenta significativamente la rilevanza semantica dei risultati della ricerca.

  • Approccio di Ricerca intelligenza artificiale di Azure: usare Ricerca di intelligenza artificiale di Azure per cercare e recuperare i dati di testo pertinenti in base a una query utente. Questo servizio supporta la ricerca full-text, la ricerca semantica, la ricerca vettoriale e la ricerca ibrida.

Nota

In Ricerca di intelligenza artificiale di Azure le funzionalità di ricerca semantica e ricerca vettoriale sono attualmente in anteprima pubblica.

Architettura: approccio di incorporamento

Diagram that shows the embeddings approach.Scaricare un file di Visio di questa architettura.

Flusso di dati

I documenti da inserire possono provenire da varie origini, ad esempio file in un server FTP, allegati di posta elettronica o allegati di applicazioni Web. Questi documenti possono essere inseriti in Archiviazione BLOB di Azure tramite servizi come App per la logica di Azure, Funzioni di Azure o Azure Data Factory. Data Factory è ottimale per il trasferimento di dati in blocco.

Creazione dell'incorporamento:

  1. Il documento viene inserito nella Archiviazione BLOB e viene attivata una funzione di Azure per estrarre testo dai documenti.

  2. Se i documenti si trovano in una lingua non inglese e la traduzione sono necessari, una funzione di Azure può chiamare Azure Traduttore per eseguire la traduzione.

  3. Se i documenti sono PDF o immagini, una funzione di Azure può chiamare Azure AI Document Intelligence per estrarre il testo. Se il documento è un file excel, CSV, Word o di testo, è possibile usare il codice Python per estrarre il testo.

  4. Il testo estratto viene quindi suddiviso in blocchi in modo appropriato e viene usato un modello di incorporamento Di Azure OpenAI per convertire ogni blocco in incorporamenti.

  5. Questi incorporamenti vengono mantenuti nel database vettoriale. Questa soluzione usa il livello Enterprise di cache di Azure per Redis, ma è possibile usare qualsiasi database vettoriale.

Eseguire query e recuperare:

  1. L'utente invia una query tramite un'applicazione utente.

  2. Il modello di incorporamento OpenAI di Azure viene usato per convertire la query in incorporamenti vettoriali.

  3. Una ricerca di somiglianza vettoriale che usa questo vettore di query nel database vettoriale restituisce il contenuto corrispondente k superiore. Il contenuto corrispondente da recuperare può essere impostato in base a una soglia definita da una misura di somiglianza, ad esempio la somiglianza del coseno.

  4. Il contenuto recuperato nella parte superiore k e il prompt di sistema vengono inviati al modello linguistico OpenAI di Azure, ad esempio GPT-3.5 Turbo o GPT-4.

  5. I risultati della ricerca vengono presentati come risposta alla query di ricerca avviata dall'utente oppure i risultati della ricerca possono essere usati come dati di base per uno scenario di conversazione a più turni.

Architettura: approccio pull di Ricerca intelligenza artificiale di Azure

Diagram that shows the pull approach.Scaricare un file di Visio di questa architettura.

Creazione dell'indice:

  1. Ricerca di intelligenza artificiale di Azure viene usato per creare un indice di ricerca dei documenti in Blob Archiviazione. Ricerca di intelligenza artificiale di Azure supporta l'Archiviazione BLOB, quindi il modello di pull viene usato per eseguire la ricerca per indicizzazione del contenuto e la funzionalità viene implementata tramite indicizzatori.

    Nota

    Ricerca di intelligenza artificiale di Azure supporta altre origini dati per l'indicizzazione quando si usa il modello pull. I documenti possono anche essere indicizzati da più origini dati e consolidati in un singolo indice.

  2. Se alcuni scenari richiedono la traduzione di documenti, è possibile usare Azure Traduttore, che è una funzionalità inclusa nella competenza predefinita.

  3. Se i documenti non sono ricercabili, ad esempio pdf o immagini digitalizzati, l'intelligenza artificiale può essere applicata usando competenze predefinite o personalizzate come set di competenze in Ricerca di intelligenza artificiale di Azure. L'applicazione dell'intelligenza artificiale al contenuto che non è ricercabile full-text è detta arricchimento tramite intelligenza artificiale. A seconda dei requisiti, l'intelligenza dei documenti di Intelligenza artificiale di Azure può essere usata come competenza personalizzata per estrarre testo da PDF o immagini tramite modelli di analisi dei documenti, modelli predefiniti o modelli di estrazione personalizzati.

    Se l'arricchimento tramite intelligenza artificiale è un requisito, è necessario usare il modello pull (indicizzatori) per caricare un indice.

    Se i campi vettoriali vengono aggiunti allo schema dell'indice, che carica i dati vettoriali per l'indicizzazione, la ricerca vettoriale può essere abilitata tramite l'indicizzazione dei dati vettoriali. I dati vettoriali possono essere generati tramite incorporamenti OpenAI di Azure.

Eseguire query e recuperare:

  1. Un utente invia una query tramite un'applicazione utente.

  2. La query viene passata a Ricerca di intelligenza artificiale di Azure tramite l'API REST dei documenti di ricerca. Il tipo di query può essere semplice, ottimale per la ricerca full-text o full, ovvero per costrutti di query avanzati come espressioni regolari, ricerca fuzzy e caratteri jolly e ricerca di prossimità. Se il tipo di query è impostato su semantica, viene eseguita una ricerca semantica sui documenti e viene recuperato il contenuto pertinente. Ricerca di intelligenza artificiale di Azure supporta anche la ricerca vettoriale e la ricerca ibrida, che richiede che la query utente venga convertita in incorporamenti vettoriali.

  3. Il contenuto recuperato e il prompt di sistema vengono inviati al modello linguistico OpenAI di Azure, ad esempio GPT-3.5 Turbo o GPT-4.

  4. I risultati della ricerca vengono presentati come risposta alla query di ricerca avviata dall'utente oppure i risultati della ricerca possono essere usati come dati di base per uno scenario di conversazione a più turni.

Architettura: approccio push di Ricerca intelligenza artificiale di Azure

Se l'origine dati non è supportata, è possibile usare il modello push per caricare i dati in Ricerca di intelligenza artificiale di Azure.

Diagram that shows the push approach.Scaricare un file di Visio di questa architettura.

Creazione dell'indice:

  1. Se il documento da inserire deve essere tradotto, è possibile usare Azure Traduttore.
  2. Se il documento è in un formato non ricercabile, ad esempio un PDF o un'immagine, è possibile usare Intelligence per i documenti di Azure per intelligenza artificiale per estrarre testo.
  3. Il testo estratto può essere vettorializzato tramite la ricerca vettoriale di incorporamenti OpenAI di Azure e i dati possono essere inseriti in un indice di Ricerca di intelligenza artificiale di Azure tramite un'API Rest o un Azure SDK.

Eseguire query e recuperare:

La query e il recupero in questo approccio sono gli stessi dell'approccio pull descritto in precedenza in questo articolo.

Componenti

  • Azure OpenAI fornisce all'API REST l'accesso ai modelli linguistici di Azure OpenAI , tra cui GPT-3, Codex e la serie di modelli di incorporamento per la generazione di contenuti, il riepilogo, la ricerca semantica e la traduzione da linguaggio naturale a codice. Accedere al servizio usando un'API REST, Python SDK o l'interfaccia basata sul Web in Azure OpenAI Studio.

  • Intelligence sui documenti di Intelligenza artificiale di Azure è un servizio di intelligenza artificiale di Azure. Offre funzionalità di analisi dei documenti per estrarre testo stampato e scritto a mano, tabelle e coppie chiave-valore. Azure AI Document Intelligence offre modelli predefiniti che possono estrarre dati da fatture, documenti, ricevute, schede ID e biglietti da visita. È anche possibile usarlo per eseguire il training e la distribuzione di modelli personalizzati usando un modello di modulo modello personalizzato o un modello di documento neurale personalizzato.

  • Document Intelligence Studio offre un'interfaccia utente per l'esplorazione delle funzionalità e dei modelli di Document Intelligence per intelligenza artificiale di Azure e per la creazione, l'assegnazione di tag, il training e la distribuzione di modelli personalizzati.

  • Ricerca di intelligenza artificiale di Azure è un servizio cloud che fornisce infrastruttura, API e strumenti per la ricerca. Usare Ricerca intelligenza artificiale di Azure per creare esperienze di ricerca su contenuti diversi privati nelle applicazioni Web, per dispositivi mobili e aziendali.

  • L'Archiviazione BLOB è la soluzione di archiviazione oggetti per i file non elaborati in questo scenario. Blob Archiviazione supporta librerie per diversi linguaggi, ad esempio .NET, Node.js e Python. Le applicazioni possono accedere ai file nel BLOB Archiviazione tramite HTTP o HTTPS. I Archiviazione BLOB hanno livelli di accesso ad accesso frequente, sporadico e archivio per supportare l'ottimizzazione dei costi per l'archiviazione di grandi quantità di dati.

  • Il livello Enterprise di cache di Azure per Redis fornisce moduli Redis Enterprise gestiti, ad esempio RediSearch, RedisBloom, RedisTimeSeries e RedisJSON. I campi vettoriali consentono la ricerca di somiglianza vettoriale, che supporta l'indicizzazione dei vettori in tempo reale (algoritmo di forza bruta (FLAT) e l'algoritmo di navigazione gerarchica di piccole dimensioni (HNSW), gli aggiornamenti dei vettori in tempo reale e la ricerca dei vicini più vicini. cache di Azure per Redis offre una soluzione critica di archiviazione dei dati a bassa latenza e velocità effettiva elevata alle applicazioni moderne.

Alternative

A seconda dello scenario, è possibile aggiungere i flussi di lavoro seguenti.

  • Usare le funzionalità del linguaggio di intelligenza artificiale di Azure, la risposta alle domande e la comprensione del linguaggio conversazionale, per creare un livello di conversazione naturale sui dati. Queste funzionalità trovano risposte appropriate per l'input della knowledge base personalizzata delle informazioni.

  • Per creare dati vettorializzati, è possibile usare qualsiasi modello di incorporamento. È anche possibile usare l'API di recupero immagini di Visione artificiale di Servizi di intelligenza artificiale di Azure per vettorizzare le immagini. Questo strumento è disponibile in anteprima privata.

  • Usare l'estensioneDurable Functions per Funzioni di Azure come strumento di integrazione code-first per eseguire passaggi di elaborazione del testo, ad esempio la lettura della grafia, il testo e le tabelle e il linguaggio di elaborazione per estrarre le entità sui dati in base alle dimensioni e alla scala del carico di lavoro.

  • È possibile usare qualsiasi database per l'archiviazione permanente degli incorporamenti estratti, tra cui:

Dettagli dello scenario

L'elaborazione manuale richiede sempre più tempo, soggetta a errori e richiede risorse a causa del volume di documenti. Le organizzazioni che gestiscono grandi volumi di documenti, in gran parte dati non strutturati di formati diversi come PDF, Excel, CSV, Word, PowerPoint e formati di immagine, affrontano una sfida significativa nell'elaborazione di documenti e moduli scritti a mano dai clienti.

Questi documenti e moduli contengono informazioni critiche, ad esempio dettagli personali, cronologia medica e rapporti di valutazione dei danni, che devono essere estratti e elaborati in modo accurato.

Le organizzazioni spesso hanno già una propria knowledge base di informazioni, che può essere usata per rispondere alle domande con la risposta più appropriata. È possibile usare i servizi e le pipeline descritti in queste soluzioni per creare un'origine per i meccanismi di ricerca dei documenti.

Potenziali casi d'uso

Questa soluzione offre valore alle organizzazioni in settori come aziende farmaceutiche e servizi finanziari. Si applica a qualsiasi azienda con un numero elevato di documenti con informazioni incorporate. Questa soluzione di ricerca end-to-end basata su intelligenza artificiale può essere usata per estrarre informazioni significative dai documenti in base alla query dell'utente per offrire un'esperienza di domande e risposte in stile ChatGPT.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autori principali:

  • Dixit Arora | Senior Customer Engineer, ISV DN CoE
  • Jyotsna Ravi | Principal Customer Engineer, ISV DN CoE

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi