Condividi tramite


Guida introduttiva: Vettorizzare il testo nel portale di Azure

In questa guida introduttiva si userà la procedura guidata Importare e vettorializzare i dati nel portale di Azure per iniziare a usare la vettorizzazione integrata. La procedura guidata suddivide il contenuto e chiama un modello di incorporamento per vettorizzare i blocchi al momento dell'indicizzazione e della query.

Questa guida rapida utilizza PDF testuali provenienti dal repository azure-search-sample-data. Tuttavia, è possibile usare le immagini e completare questa guida introduttiva.

Prerequisiti

Origini dati supportate

La procedura guidata Importa e vettorizza datisupporta un'ampia gamma di origini dati di Azure. Tuttavia, questa guida introduttiva illustra solo le origini dati che lavorano con file completi, descritte nella tabella seguente.

Fonte dati supportata Descrizione
Archiviazione BLOB di Azure Questa origine dati funziona con BLOB e tabelle. È necessario usare un account standard per le prestazioni (utilizzo generico v2). I livelli di accesso possono essere frequenti, rari o freddi.
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.
OneLake Questa fonte di dati è attualmente in anteprima. Per informazioni sulle limitazioni e sulle scorciatoie supportate, vedere Indicizzazione di OneLake.

Modelli di incorporamento supportati

Per la vettorizzazione integrata, è necessario usare uno dei modelli di incorporamento seguenti in una piattaforma di intelligenza artificiale di Azure. Le istruzioni di distribuzione vengono fornite in una sezione successiva.

Fornitore Modelli supportati
Azure OpenAI in Azure AI Foundry Models1, 2 text-embedding-ada-002
text-embedding-3-small
text-embedding-3-large
Risorsa multiservizio di Azure AI3 Per testo e immagini: Visione multimodale AI di Azure4
Catalogo dei modelli di Azure AI Foundry Per il testo:
Cohere-embed-v3-english
Cohere-embed-v3-multilingual

Per le immagini:
Facebook-DinoV2-Image-Embeddings-ViT-Base
Facebook-DinoV2-incorporazioni-di-immagini-ViT-Giant

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

2 Le risorse OpenAI di Azure (con accesso ai modelli di incorporamento) create nel portale di Azure AI Foundry non sono supportate. Solo le risorse OpenAI di Azure create nel portale di Azure sono compatibili con la competenza incorporamento OpenAI di Azure.

3 Ai fini della fatturazione, è necessario collegare la risorsa multiservizio di Intelligenza artificiale di Azure 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.

4 Il modello di incorporamento multimodale Vision AI di Azure è disponibile in regioni selezionate.

Requisiti dell'endpoint pubblico

Ai fini di questa guida introduttiva, tutte le risorse precedenti devono avere l'accesso pubblico abilitato in modo che i nodi 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.

Accesso 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 ad Archiviazione di Azure o a Visione artificiale di Azure. 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 se stessi:

    • Collaboratore servizi di ricerca

    • Collaboratore ai dati dell'indice di ricerca

    • Lettore di dati dell'indice di ricerca

  3. Nella piattaforma di 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. Questa guida introduttiva crea uno di ogni oggetto, quindi assicurarsi di disporre di spazio per gli elementi aggiuntivi prima di iniziare.

Preparare i dati di esempio

Questa sezione ti indirizza al contenuto che funziona per questa guida introduttiva. 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 i ruoli:

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

    2. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    3. In Ruoli di funzione lavorativa 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

La procedura guidata può usare i modelli di incorporamento distribuiti da Azure OpenAI, Azure AI Vision o dal catalogo dei modelli nel portale di Azure AI Foundry. Prima di procedere, assicurarsi di aver completato i prerequisiti per l'accesso in base al ruolo.

La procedura guidata supporta text-embedding-ada-002, text-embedding-3-large e text-embedding-3-small. Internamente, la procedura guidata chiama la competenza AzureOpenAIEmbedding per connettersi ad Azure OpenAI.

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

  2. Per assegnare i ruoli:

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

    2. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    3. In Ruoli della funzione lavorativa, selezionare Utente OpenAI di Servizi cognitivi 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.

  3. Per distribuire un modello di embedding:

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

    2. Nel riquadro sinistro selezionare Catalogo modelli.

    3. 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 e vettorizza dati.

    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 del riquadro RAG nella procedura guidata.

Connettersi ai dati

Il passaggio successivo consiste nel connettersi a un'origine dati da usare per l'indice di ricerca.

  1. Nella pagina Connetti ai dati specificare 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 hai eventualmente aggiunto metadati personalizzati in Preparare i dati di esempio, seleziona la casella di controllo Abilita il tracciamento 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 hai configurato i tuoi BLOB per l'eliminazione temporanea, specifica 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.

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

  4. Selezionare la casella di controllo Autentica con identità gestita .

    • Per il tipo di identità gestita, selezionare Assegnata dal sistema.

    • L'identità deve avere un ruolo di lettore di dati BLOB di archiviazione in Archiviazione di Azure.

    • Non ignorare questo passaggio, Si verifica un errore di connessione durante l'indicizzazione se la procedura guidata non riesce a connettersi a Azure Storage.

  5. Selezionare Avanti.

Vettorizzare il testo

In questo passaggio si specifica un modello di incorporamento 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 Vectorize your text (Vettorializza il testo ) selezionare l'origine del modello di incorporamento:

  2. Specificare la sottoscrizione di Azure.

  3. A seconda della risorsa, effettuare la selezione seguente:

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

    • L'identità deve avere un ruolo Utente dei Servizi Cognitivi nella risorsa multi-servizio di Azure AI.
  5. Selezionare la casella di controllo che riconosce gli effetti di fatturazione dell'uso di queste risorse.

    Screenshot della pagina Vettorizza il tuo testo 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 si usa contenuto che include immagini utili, è possibile applicare l'intelligenza artificiale in due modi:

  • Usare un modello di incorporamento di immagini supportato dal catalogo o dall'API di embedding multimodale di Visione AI di Azure per vettorizzare le immagini.

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

Azure AI Search e le risorse di Intelligenza Artificiale di Azure devono trovarsi nella stessa area o essere configurate per connessioni di fatturazione senza chiave.

  1. Nella pagina Vettorializza le immagini specificare il tipo di connessione che deve essere stabilita dalla procedura guidata. Per la vettorizzazione delle immagini, la procedura guidata può connettersi ai modelli di incorporamento nel portale di Azure AI Foundry o in Azure AI Vision.

  2. Specificare la sottoscrizione.

  3. Per il catalogo dei modelli di Azure AI Foundry, specificare il progetto e la distribuzione. Per altre informazioni, vedere Preparare i modelli di incorporamento.

  4. (Facoltativo) Crackare immagini binarie, come file di documenti scansionati, e usa OCR per riconoscere il testo.

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

    Screenshot della pagina Vettorializza 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 Collezione(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:

  • Connessione a una fonte di dati.

  • Indice con campi vettoriali, vettorizzatori, profili vettoriali e algoritmi vettoriali. Non è possibile progettare o modificare l'indice predefinito durante il flusso di lavoro della procedura guidata. Gli indici sono conformi all'API REST 2024-05-01-preview.

  • Set di competenze con la competenza Divisione testo per la suddivisione in blocchi e una competenza di incorporamento per la vettorializzazione. La competenza di incorporamento è la competenza AzureOpenAIEmbeddingModel per Azure OpenAI o la competenza AML per il catalogo dei modelli di Azure AI Foundry. Il set di abilità include anche la configurazione delle proiezioni di indice che mappa i dati di un documento nell'origine dati ai blocchi corrispondenti in un indice "figlio".

  • Indicizzatore con mapping dei campi e mapping dei campi di output (se applicabile).

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

Eseguire la pulizia

Azure AI Search è una risorsa fatturabile. Se non è più necessario, eliminarlo dalla sottoscrizione per evitare addebiti.

Passaggio successivo

In questa guida introduttiva è stata presentata la procedura guidata Importa e vettorizza dati, 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.