Condividi tramite


Guida introduttiva: Vettorizzare il testo nel portale di Azure

In questa guida introduttiva si userà la procedura guidata Importa dati (nuovo) nel portale di Azure per iniziare a usare la vettorializzazione integrata. La procedura guidata suddivide in blocchi il contenuto e chiama un modello di incorporamento per vettorizzare i blocchi in fase di indicizzazione ed esecuzione delle query.

Questa guida rapida utilizza PDF testuali provenienti dal repository azure-search-sample-data. Anche se è possibile usare le immagini per completare questa guida introduttiva, è consigliabile la guida introduttiva: Ricerca multimodale nel portale di Azure per l'elaborazione avanzata delle immagini.

Prerequisiti

Origini dati supportate

La procedura guidata supporta un'ampia gamma di origini dati di Azure. Tuttavia, questa guida introduttiva illustra solo le origini dati che funzionano con interi file, descritti nella tabella seguente.

Fonte dati supportata Descrizione
Archiviazione BLOB di Azure Questa origine dati funziona con BLOB e tabelle. È necessario usare un account con prestazioni standard (utilizzo generico v2). I livelli di accesso possono essere: accesso frequente, sporadico o saltuario.
Azure Data Lake Storage (ADLS) Gen2 Si tratta di un account di archiviazione di Azure con uno spazio dei nomi gerarchico abilitato. Per verificare di avere Data Lake Storage, controllare la scheda Proprietà nella pagina Panoramica .

Screenshot di un account di Azure Data Lake Storage nel portale di Azure.
Microsoft OneLake Questa origine dati si connette ai file e ai collegamenti di OneLake.

Modelli di incorporamento supportati

Il portale supporta i modelli di incorporamento seguenti per la vettorializzazione integrata. Le istruzioni di distribuzione vengono fornite in una sezione successiva.

Fornitore Modelli supportati
Risorsa Microsoft Foundry1 Per testo e immagini: Azure Vision multimodale2
Progetto basato su hub di Microsoft Foundry Per il testo:
text-embedding-ada-002
text-embedding-3-small
text-embedding-3-large

Per testo e immagini:
Cohere-embed-v3-english 3
Cohere-embed-v3-multilingual 3
Progetto Microsoft Foundry Per il testo:
text-embedding-ada-002
text-embedding-3-small
text-embedding-3-large
Risorsa OpenAI di Azure4, 5 Per il testo:
text-embedding-ada-002
text-embedding-3-small
text-embedding-3-large

1 Ai fini della fatturazione, è necessario collegare la risorsa Foundry al set di competenze nel servizio Ricerca intelligenza artificiale di Azure. A meno che non si usi una connessione senza chiave (anteprima) per creare il set di competenze, entrambe le risorse devono trovarsi nella stessa area.

2 Le API Vision multimodali di Azure sono accessibili nelle regioni selezionate.

3 Per usare questo modello nella procedura guidata, è necessario predisporlo come una distribuzione API serverless. È possibile usare un modello ARM/Bicep per questa attività.

4 L'endpoint della risorsa OpenAI di Azure deve avere un sottodominio personalizzato, ad esempio https://my-unique-name.openai.azure.com. Se la risorsa è stata creata nel portale di Azure, questo sottodominio viene generato automaticamente durante l'installazione delle risorse.

Le 5 risorse OpenAI di Azure (con accesso ai modelli di embedding) create nel portale Foundry non sono supportate. È necessario creare una risorsa OpenAI di Azure nel portale di Azure.

Requisiti dell'endpoint pubblico

Per questa guida introduttiva, tutte le risorse precedenti devono avere l'accesso pubblico abilitato in modo che i nodi del portale di Azure possano accedervi. In caso contrario, la procedura guidata ha esito negativo. Dopo l'esecuzione della procedura guidata, è possibile abilitare i firewall e gli endpoint privati nei componenti di integrazione per la sicurezza. Per altre informazioni, vedere Proteggere le connessioni nelle procedure guidate di importazione.

Se gli endpoint privati sono già presenti e non possono essere disabilitati,è possibile eseguire in alternativa il rispettivo flusso end-to-end da uno script o programma in una macchina virtuale. La macchina virtuale deve appartenere alla stessa rete virtuale dell’endpoint privato. Ecco un esempio di codice Python per la vettorializzazione integrata. Nello stesso repository GitHub sono disponibili esempi in altri linguaggi di programmazione.

Accessi in base al ruolo

È possibile usare Microsoft Entra ID con assegnazioni di ruolo o l'autenticazione basata su chiave con stringhe di connessione con accesso completo. Per le connessioni di Ricerca intelligenza artificiale di Azure ad altre risorse, è consigliabile assegnare ruoli. Questa guida introduttiva presuppone ruoli.

I servizi di ricerca gratuiti supportano connessioni basate sui ruoli per Azure Cognitive Search. Tuttavia, non supportano le identità gestite nelle connessioni in uscita verso Azure Storage o Azure Vision. Questa mancanza di supporto richiede l'autenticazione basata su chiave sulle connessioni tra i servizi di ricerca gratuiti e altre risorse di Azure. Per connessioni più sicure, usare il livello Basic o superiore e quindi abilitare i ruoli e configurare un'identità gestita.

Per configurare l'accesso basato sui ruoli consigliato:

  1. Nel servizio di ricerca abilitare i ruoli e configurare un'identità gestita assegnata dal sistema.

  2. Assegnare i ruoli seguenti a sé stessi.

    • Collaboratore servizi di ricerca

    • Collaboratore ai dati dell'indice di ricerca

    • Lettore di dati dell'indice di ricerca

  3. Nell'origine dati e nel provider di modelli di incorporamento, creare assegnazioni di ruolo che consentono al servizio di ricerca di accedere a dati e modelli. Vedere Preparare i dati di esempio e Preparare i modelli di incorporamento.

Nota

Se non è possibile proseguire con la procedura guidata perché le opzioni non sono disponibili (ad esempio, non è possibile selezionare un'origine dati o un modello di incorporamento), rivedere le assegnazioni di ruolo. I messaggi di errore indicano che i modelli o le distribuzioni non esistono, quando la causa reale è che il servizio di ricerca non dispone dell'autorizzazione per accedervi.

Verificare lo spazio

Se si inizia con il servizio gratuito, sono limitati a tre indici, origini dati, set di competenze e indicizzatori. I limiti di base sono 15. In questa guida introduttiva viene creato uno di ogni oggetto, quindi è necessario assicurarsi di disporre di spazio per gli elementi aggiuntivi prima di iniziare.

Preparare i dati di esempio

In questa sezione viene usata un'origine dati supportata per preparare i dati di esempio. Prima di procedere, assicurarsi di aver completato i prerequisiti per l'accesso in base al ruolo.

  1. Accedere al portale di Azure e selezionare l'account di archiviazione di Azure.

  2. Nel riquadro sinistro selezionareContenitori>.

  3. Creare un contenitore e quindi caricare i documenti PDF del piano sanitario usati per questa guida rapida.

  4. Per assegnare ruoli:

    1. Nel riquadro sinistro selezionare Controllo di accesso (IAM).

    2. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    3. In Ruoli della funzione processo selezionare Lettore dati BLOB di archiviazione e quindi selezionare Avanti.

    4. In Membri selezionare Identità gestita e quindi selezionare Seleziona membri.

    5. Selezionare la sottoscrizione e l'identità gestita del servizio di ricerca.

  5. (Facoltativo) Sincronizzare le eliminazioni nel contenitore con le eliminazioni nell'indice di ricerca. Per configurare l'indicizzatore per il rilevamento dell'eliminazione:

    1. Abilitare l'eliminazione temporanea nell'account di archiviazione. Se si usa l'eliminazione temporanea nativa, il passaggio successivo non è obbligatorio.

    2. Aggiungere metadati personalizzati che un indicizzatore può analizzare per determinare quali BLOB sono contrassegnati per l'eliminazione. Assegnare alla proprietà personalizzata un nome descrittivo. Ad esempio, è possibile denominare la proprietà "IsDeleted" e impostarla su false. Ripeti questo passaggio per ogni blob nel contenitore. Quando si vuole eliminare il BLOB, modificare la proprietà su true. Per altre informazioni, vedere Rilevamento delle modifiche e dell'eliminazione durante l'indicizzazione da Archiviazione di Azure.

Preparare il modello di incorporamento

In questa sezione viene distribuito un modello di incorporamento supportato per un uso successivo in questa guida introduttiva. Prima di procedere, assicurarsi di aver completato i prerequisiti per l'accesso in base al ruolo.

La procedura guidata supporta diversi modelli di incorporamento. Internamente, la procedura guidata chiama la competenza Incorporamento di Azure OpenAI per connettersi a Azure OpenAI.

  1. Per assegnare ruoli:

    1. Accedere al portale di Azure e selezionare la risorsa OpenAI di Azure.

    2. Nel riquadro sinistro selezionare Controllo di accesso (IAM).

    3. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    4. In Ruoli della funzione lavorativa, selezionare Utente OpenAI di Servizi cognitivi e quindi selezionare Avanti.

    5. In Membri selezionare Identità gestita e quindi selezionare Seleziona membri.

    6. Selezionare la sottoscrizione e l'identità gestita del servizio di ricerca.

  2. Per distribuire un modello di incorporamento:

    1. Accedere al portale di Foundry e selezionare la risorsa OpenAI di Azure.

    2. Distribuire un modello di incorporamento supportato.

Avviare la procedura guidata

Per avviare la procedura guidata per la ricerca vettoriale:

  1. Accedere al portale di Azure e selezionare il servizio Ricerca intelligenza artificiale di Azure.

  2. Nella pagina Panoramica selezionare Importa dati (nuovo).

    Screenshot che mostra il comando per aprire la procedura guidata per l'importazione e la vettorizzazione dei dati.

  3. Selezionare l'origine dati: Archiviazione BLOB di Azure, ADLS Gen2 o OneLake.

  4. Selezionare RAG.

    Screenshot che mostra il riquadro RAG nella procedura guidata.

Connettersi ai dati

In questo passaggio, si collega Azure AI Search all'origine dati scelta per l'indicizzazione e l'inserimento dei contenuti.

  1. Nella pagina Connetti ai dati selezionare la sottoscrizione di Azure.

  2. Selezionare l'account di archiviazione e il contenitore che forniscono i dati di esempio.

  3. Se hai abilitato l'eliminazione temporanea e aggiunto metadati personalizzati in Preparazione dei dati di esempio, seleziona la casella di controllo Abilita il rilevamento delle eliminazioni.

    • Nelle esecuzioni successive dell'indicizzazione, l'indice di ricerca viene aggiornato per rimuovere tutti i documenti di ricerca basati su blob eliminati logicamente su Azure Storage.

    • I BLOB supportano l'eliminazione temporanea di BLOB nativi o l'eliminazione temporanea usando metadati personalizzati.

    • Se i BLOB sono stati configurati per l'eliminazione temporanea, specificare la coppia nome-valore della proprietà dei metadati. Ti consigliamo IsDeleted. Se IsDeleted è impostato su true in un BLOB, l'indicizzatore elimina il documento di ricerca corrispondente nella successiva esecuzione dell'indicizzatore.

    • La procedura guidata non verifica la validità delle impostazioni di Archiviazione di Azure né genera un errore se i requisiti non sono soddisfatti. Al contrario, il rilevamento dell'eliminazione non funziona e l'indice di ricerca probabilmente raccoglierà documenti orfani nel corso del tempo.

  4. Selezionare la casella di controllo Autentica con identità gestita . Lasciare il tipo di identità assegnato dal sistema.

    Screenshot della pagina dell'origine dati con le opzioni di rilevamento dell'eliminazione.

  5. Selezionare Avanti.

Vettorizzare il testo

Durante questo passaggio, la procedura guidata usa il modello di incorporamento scelto per vettorizzare i dati in blocchi. La suddivisione in blocchi è incorporata e non configurabile. Le impostazioni valide sono:

"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"maximumPagesToTake": 0, #unlimited
"unit": "characters"
  1. Nella pagina Vettorizza il testo selezionare Azure OpenAI per il tipo.

  2. Seleziona la tua sottoscrizione di Azure.

  3. Selezionare la risorsa Azure OpenAI, quindi selezionare il modello distribuito in Preparare il modello di incorporamento.

  4. Per il tipo di autenticazione selezionare Identità assegnata dal sistema.

  5. Selezionare la casella di controllo che riconosce gli effetti di fatturazione dell'uso di queste risorse.

    Screenshot della pagina Vettorizza il testo con Azure OpenAI nella procedura guidata.

  6. Selezionare Avanti.

Vettorizzare e arricchire le immagini

I PDF del piano sanitario includono un logo aziendale, ma per il resto, non sono presenti immagini. È possibile ignorare questo passaggio se si usano i documenti di esempio.

Tuttavia, se il contenuto include immagini utili, è possibile applicare l'intelligenza artificiale in uno o entrambi i modi seguenti:

  • Usare un modello di incorporamento di immagini supportato dal catalogo dei modelli Foundry o dall'API di incorporamento multimodale di Azure Vision (tramite una risorsa Foundry) per vettorizzare le immagini.

  • Usare il riconoscimento ottico dei caratteri (OCR) per estrarre testo dalle immagini. Questa opzione richiama la competenza OCR.

  1. Nella pagina Vettorizza e arricchisci le immagini selezionare la casella di controllo Vettorizza immagini.

  2. Per il tipo, selezionare il provider di modelli: Azure AI Foundry o vettorizzazione con visione artificiale.

    Se Azure Vision non è disponibile, assicurarsi che il servizio di ricerca e la risorsa Foundry si trovino entrambi in un'area che supporta le API multimodali di Azure Vision.

  3. Selezionare l'abbonamento Azure, la risorsa e il modello di embedding per la distribuzione (se applicabile).

  4. Per il tipo di autenticazione, selezionare Identità assegnata dal sistema se non si usa un progetto basato su hub. In caso contrario, lasciarlo come chiave API.

  5. Selezionare la casella di controllo che riconosce gli effetti di fatturazione dell'uso di queste risorse.

    Screenshot della pagina Vettorizza e arricchisci le immagini nella procedura guidata.

  6. Selezionare Avanti.

Aggiungi classificazione semantica

Nella pagina Impostazioni avanzate è possibile aggiungere facoltativamente la classificazione semantica per riclassificare i risultati alla fine dell'esecuzione della query. La riclassificazione propone per prime le corrispondenze più rilevanti dal punto di vista semantico.

Mappare nuovi campi

Punti chiave su questo passaggio:

  • Lo schema dell'indice fornisce campi vettoriali e non vettoriali per i dati suddivisi in blocchi.

  • È possibile aggiungere campi, ma non è possibile eliminare o modificare i campi generati.

  • La modalità di analisi dei documenti crea blocchi (un documento di ricerca per blocco).

Nella pagina Impostazioni avanzate è possibile aggiungere facoltativamente nuovi campi, presupponendo che l'origine dati fornisca metadati o campi che non vengono prelevati al primo passaggio. Per impostazione predefinita, la procedura guidata genera i campi descritti nella tabella seguente.

Campo Si applica a Descrizione
chunk_id Vettori di testo e immagine Campo stringa generato. Ricercabile, recuperabile e ordinabile. Questa è la chiave del documento per l'indice.
parent_id Vettori di testo Campo stringa generato. Recuperabile e filtrabile. Identifica il documento padre da cui ha origine il blocco.
blocco Vettori di testo e immagine Campo stringa. Versione leggibile per gli esseri umani del blocco di dati. Ricercabile e recuperabile, ma non filtrabile, facetable o ordinabile.
titolo Vettori di testo e immagine Campo stringa. Titolo o numero di pagina leggibile del documento o della pagina. Ricercabile e recuperabile, ma non filtrabile, facetable o ordinabile.
vettore di testo Vettori di testo Collection(Edm.single). Rappresentazione vettoriale del blocco. Ricercabile e recuperabile, ma non filtrabile, facetable o ordinabile.

Non è possibile modificare i campi generati o i relativi attributi, ma è possibile aggiungere nuovi campi se l'origine dati li fornisce. Ad esempio, Archiviazione BLOB di Azure fornisce una raccolta di campi di metadati.

  1. Selezionare Aggiungi campo.

  2. Selezionare un campo di origine nei campi disponibili, immettere un nome di campo per l'indice e accettare (o eseguire l'override) del tipo di dati predefinito.

    Nota

    I campi dei metadati sono ricercabili, ma non recuperabili, filtrabili, visualizzabili o ordinabili.

  3. Se si vuole ripristinare lo schema nella versione originale, selezionare Reimposta.

Pianificare l'indicizzazione

Nella pagina Impostazioni avanzate è anche possibile specificare una pianificazione di esecuzione facoltativa per l'indicizzatore. Dopo aver scelto un intervallo dall'elenco a discesa, selezionare Avanti.

Completare la procedura guidata

  1. Nella pagina Verifica la configurazione specificare un prefisso per gli oggetti creati dalla procedura guidata. Un prefisso comune consente di rimanere organizzati.

  2. Seleziona Crea.

Al termine della configurazione, la procedura guidata crea gli oggetti seguenti:

Suggerimento

Gli oggetti creati dalla procedura guidata hanno definizioni JSON configurabili. Per visualizzare o modificare queste definizioni, selezionare Gestione ricerche nel riquadro sinistro, in cui è possibile visualizzare gli indici, gli indicizzatori, le origini dati e i set di competenze.

Controllare i risultati

Explorer di ricerca accetta stringhe di testo come input e successivamente vettorializza il testo per l'esecuzione di query vettoriali.

  1. Nel portale di Azure, passare a Gestione ricerca>Indici, e quindi selezionare il tuo indice.

  2. Selezionare Opzioni query e quindi selezionare Nascondi valori vettoriali nei risultati della ricerca. Questo passaggio rende i risultati più leggibili.

    Screenshot del pulsante di selezione delle opzioni per le query.

  3. Dal menu Visualizza selezionare Visualizzazione JSON in modo da poter immettere testo per la query vettoriale nel parametro di text query vettoriale.

    Screenshot del comando di menu che apre la visualizzazione JSON.

    La query predefinita è una ricerca vuota ("*"), ma include parametri per la restituzione delle corrispondenze di numero. Si tratta di una query ibrida che esegue query di testo e vettoriali in parallelo. Include anche la classificazione semantica e specifica i campi da restituire nei risultati tramite l'istruzione select .

     {
       "search": "*",
       "count": true,
       "vectorQueries": [
         {
           "kind": "text",
           "text": "*",
           "fields": "text_vector,image_vector"
         }
       ],
       "queryType": "semantic",
       "semanticConfiguration": "my-demo-semantic-configuration",
       "captions": "extractive",
       "answers": "extractive|count-3",
       "queryLanguage": "en-us",
       "select": "chunk_id,text_parent_id,chunk,title,image_parent_id"
     }
    
  4. Sostituire entrambi i segnaposto asterisco (*) con una domanda correlata ai piani sanitari, ad esempio Which plan has the lowest deductible?.

     {
       "search": "Which plan has the lowest deductible?",
       "count": true,
       "vectorQueries": [
         {
           "kind": "text",
           "text": "Which plan has the lowest deductible?",
           "fields": "text_vector,image_vector"
         }
       ],
       "queryType": "semantic",
       "semanticConfiguration": "my-demo-semantic-configuration",
       "captions": "extractive",
       "answers": "extractive|count-3",
       "queryLanguage": "en-us",
       "select": "chunk_id,text_parent_id,chunk,title"
     }
    
  5. Per eseguire la query, selezionare Cerca.

    Screenshot dei risultati della ricerca.

    Ogni documento è un blocco del PDF originale. Il campo title mostra il file PDF da cui proviene il blocco. Ognuno chunk è lungo. È possibile copiare e incollarne uno in un editor di testo per leggere l'intero valore.

  6. Per visualizzare tutti i blocchi di un documento specifico, aggiungere un filtro per il title_parent_id campo per un PDF specifico. È possibile controllare la scheda Campi dell'indice per verificare che il campo sia filtrabile.

    {
       "select": "chunk_id,text_parent_id,chunk,title",
       "filter": "text_parent_id eq 'aHR0cHM6Ly9oZWlkaXN0c3RvcmFnZWRlbW9lYXN0dXMuYmxvYi5jb3JlLndpbmRvd3MubmV0L2hlYWx0aC1wbGFuLXBkZnMvTm9ydGh3aW5kX1N0YW5kYXJkX0JlbmVmaXRzX0RldGFpbHMucGRm0'",
       "count": true,
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "text_vector"
           }
        ]
    }
    

Pulire le risorse

Questa guida di avvio rapido utilizza risorse Azure fatturabili. Se le risorse non sono più necessarie, eliminarle dalla sottoscrizione per evitare addebiti.

Passaggio successivo

In questa guida di avvio rapido è stata presentata la procedura guidata Importa dati (nuovo), che crea tutti gli oggetti necessari per la vettorializzazione integrata. Per esplorare in dettaglio ogni passaggio, vedere Configurare la vettorizzazione integrata in Ricerca di intelligenza artificiale di Azure.