Condividi tramite


Guida introduttiva: Vettorializzare testo e immagini tramite il portale di Azure

Questo argomento di avvio rapido illustra come iniziare a usare la vettorizzazione integrata tramite la procedura guidata di importazione e vettorizzazione dei dati nel portale di Azure. La procedura guidata suddivide il contenuto e chiama un modello di incorporamento per vettorizzare il contenuto durante l'indicizzazione e per le query.

Prerequisiti

Origini dati supportate

La procedura guidata Importa e vettorizza dati supporta un'ampia gamma di origini dati di Azure, ma questa guida introduttiva illustra solo le origini dati che funzionano con interi file:

  • Archiviazione BLOB di Azure per BLOB e tabelle. L’archivio di Azure deve essere un account con prestazioni standard (utilizzo generico v2). I livelli di accesso possono essere ad accesso frequente, sporadico e sporadico.

  • Azure Data Lake Storage (ADLS) Gen2 (un account Archiviazione di Azure con uno spazio dei nomi gerarchico abilitato). È possibile verificare se si dispone di Data Lake Storage selezionando la scheda Proprietà nella pagina Panoramica.

    Screenshot della pagina delle proprietà dell'account di archiviazione che mostra Data Lake Storage.

  • OneLake lakehouse (anteprima).

Modelli di incorporamento supportati

Usare un modello di incorporamento in una piattaforma di intelligenza artificiale di Azure nella stessa area di Ricerca di intelligenza artificiale di Azure. Le Istruzioni di distribuzione sono disponibili in questo articolo.

Provider Modelli supportati
Servizio OpenAI di Azure text-embedding-ada-002
text-embedding-3-large
text-embedding-3-small
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-Image-Embeddings-ViT-Giant
Account multiservizio di Servizi di intelligenza artificiale di Azure Visione artificiale di Azure per immagini e vettorizzazione del testo, disponibili nelle aree selezionate. A seconda del modo in cui si collega la risorsa multiservizio, potrebbe essere necessario che l'account multiservizio si trovi nella stessa area di Ricerca di intelligenza artificiale di Azure.

Se si usa il servizio Azure OpenAI, l'endpoint deve avere un sottodominio personalizzato associato. Un sottodominio personalizzato è un endpoint che include un nome univoco, ad esempio https://hereismyuniquename.cognitiveservices.azure.com. Se il servizio è stato creato tramite il portale di Azure, questo sottodominio viene generato automaticamente come parte della configurazione del servizio. Assicurarsi che il servizio includa un sottodominio personalizzato prima di usarlo con l'integrazione di Ricerca di intelligenza artificiale di Azure.

Le risorse del servizio OpenAI di Azure (con accesso ai modelli di incorporamento) create nel portale di Azure AI Foundry non sono supportate. Solo le risorse del servizio OpenAI di Azure create nel portale di Azure sono compatibili con l'integrazione delle competenze di incorporamento di Azure OpenAI.

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. Di seguito è riportato un esempio di codice Python per la vettorizzazione integrata. Nello stesso repository GitHub sono disponibili esempi in altri linguaggi di programmazione.

Autorizzazioni

È possibile usare l'autenticazione della chiave e l'accesso completo stringa di connessione o l'ID Di Microsoft Entra con assegnazioni di ruolo. È consigliabile assegnare ruoli per le connessioni del servizio di ricerca ad altre risorse.

  1. In Azure AI Search, abilitare i ruoli.

  2. Configurare il servizio di ricerca per usare un'identità gestita.

  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. Preparare i dati di esempio fornisce istruzioni per la configurazione dei ruoli per ogni origine dati supportata.

Un servizio di ricerca gratuito supporta connessioni basate su ruoli a Ricerca intelligenza artificiale di Azure, ma non supporta le identità gestite nelle connessioni in uscita a Archiviazione di Azure o Visione artificiale di Azure. Questo livello di supporto significa che è necessario usare l'autenticazione basata su chiave per le connessioni tra un servizio di ricerca gratuito ad altri servizi di Azure.

Per connessioni più sicure:

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 in realtà 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. Assicurarsi di avere spazio per gli elementi aggiuntivi prima di iniziare, Questo avvio rapido crea uno di ogni oggetto.

Preparare i dati di esempio

Questa sezione illustra il contenuto che funziona per questa guida introduttiva.

  1. Accedere al portale di Azure con l'account Azure e passare all'account di archiviazione di Azure.

  2. Nel riquadro sinistro selezionare Archiviazione dati e quindi Contenitori.

  3. Creare un nuovo contenitore e caricare i documenti PDF del piano di integrità usati per questo avvio rapido.

  4. Nel riquadro sinistro, in Controllo di accesso, assegnare il ruolo di lettore di dati BLOB di archiviazione all'identità del servizio di ricerca. In alternativa, ottenere una stringa di connessione all'account di archiviazione dalla pagina Chiavi di accesso.

  5. Facoltativamente, sincronizzare le eliminazioni nel contenitore con eliminazioni nell'indice di ricerca. I prossimi passaggi consentono di configurare l'indicizzatore per il rilevamento dell'eliminazione:

    1. Abilitare l'eliminazione temporanea nell'account di archiviazione.

    2. Se si usa l'eliminazione temporanea nativa, non sono necessari altri passaggi in Archiviazione di Azure.

    3. In caso contrario, aggiungere metadati personalizzati che un indicizzatore possa analizzare per determinare quali BLOB sono contrassegnati per l'eliminazione. Assegnare alla proprietà personalizzata un nome descrittivo. Ad esempio, è possibile denominare la proprietà "IsDeleted" impostata su false. Eseguire questa operazione per ogni BLOB nel contenitore. In seguito, quando si vorrà eliminare il BLOB, impostare la proprietà su true. Per altre informazioni, vedere Rilevamento delle modifiche e dell'eliminazione durante l'indicizzazione da Archiviazione di Azure

Configurare i modelli 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.

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 con l'account Azure e passare alla risorsa Azure OpenAI.

  2. Impostare le autorizzazioni:

    1. Nel menu a sinistra selezionare Controllo di accesso.

    2. Selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.

    3. In Ruoli della funzione processi selezionare Utente OpenAI di Servizi cognitivi e quindi selezionare Avanti.

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

    5. Filtrare in base alla sottoscrizione e al tipo di risorsa (servizi di ricerca) e quindi selezionare l'identità gestita del servizio di ricerca.

    6. Seleziona Rivedi + assegna.

  3. Nella pagina Panoramica selezionare Fare clic qui per visualizzare gli endpoint o Fare clic qui per gestire le chiavi se è necessario copiare un endpoint o una chiave API. È possibile incollare questi valori nella procedura guidata se si usa una risorsa OpenAI di Azure con l'autenticazione basata su chiave.

  4. In Gestione risorse e distribuzioni di modelli selezionare Gestisci distribuzioni per aprire Azure AI Foundry.

  5. Copiare il nome della distribuzione di text-embedding-ada-002 o di un altro modello di incorporamento supportato. Se non si ha un modello di incorporamento, distribuirne uno ora.

Avviare la procedura guidata

  1. Accedere al portale di Azure con l'account Azure e andare al servizio Azure AI Search.

  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.

Connettersi ai dati

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

  1. In Connetti ai dati selezionare Archiviazione BLOB di Azure.

  2. Specificare la sottoscrizione di Azure.

  3. Scegliere l'account di archiviazione e il contenitore che forniscono i dati.

  4. Specificare se si desidera il supporto di rilevamento dell'eliminazione. Nelle esecuzioni successive dell'indicizzazione, l'indice di ricerca viene aggiornato per rimuovere tutti i documenti di ricerca basati su BLOB eliminati temporaneamente in Archiviazione di Azure.

    • I BLOB supportano l'eliminazione temporanea di BLOB nativi o l'eliminazione temporanea usando dati personalizzati.
    • È necessario aver precedentemente abilitato l'eliminazione temporanea in Archiviazione di Azure e, facoltativamente, aver aggiunto metadati personalizzati che l'indicizzazione possa riconoscere come flag di eliminazione. Per altre informazioni su questi passaggi, vedere Preparare dati di esempio.
    • Se i BLOB sono stati configurati per l'eliminazione temporanea usando dati personalizzati, specificare la coppia nome-valore della proprietà dei metadati in questo passaggio. È consigliabile usare "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.

  5. Specificare se si vuole che il servizio di ricerca connettersi ad Archiviazione di Azure usando l'identità gestita.

    • Viene richiesto di scegliere un'identità gestita dal sistema o gestita dall'utente.
    • 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 ad Archiviazione di Azure.
  6. Selezionare Avanti.

Vettorizzare il testo

In questo passaggio specificare il modello di incorporamento da usare per vettorializzare 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 Vettorializza il testo, scegliere l'origine del modello di incorporamento:

    • OpenAI di Azure
    • Catalogo dei modelli di Azure AI Foundry
    • Una risorsa di Visione di Azure AI esistente nella stessa area di Azure AI Search. Se non è disponibile un account multiservizio di Servizi di Azure AI nella stessa area, questa opzione non è disponibile.
  2. Scegliere la sottoscrizione di Azure.

  3. Effettuare le selezioni in base alla risorsa:

    • Per Azure OpenAI scegliere una distribuzione esistente di text-embedding-ada-002, text-embedding-3-large o text-embedding-3-small.

    • Per il catalogo di Azure AI Foundry, scegliere una distribuzione esistente di un modello di incorporamento di Azure o Cohere.

    • Per gli incorporamenti multimodali di Visione AI, selezionare l'account.

    Per altre informazioni, vedere Configurare i modelli di incorporamento nelle sezioni precedenti di questo articolo.

  4. Specificare se si vuole che il servizio di ricerca esegua l'autenticazione usando una chiave API o un'identità gestita.

    • L'identità deve avere un ruolo utente OpenAI di Servizi cognitivi nell'account multiservizi di Azure per intelligenza artificiale.
  5. Selezionare la casella di controllo che riconosce gli effetti di fatturazione dell'uso di queste risorse.

    Screenshot della pagina di testo vettoriali nella procedura guidata.

  6. Selezionare Avanti.

Vettorizzare e arricchire le immagini

I PDF del piano di integrità includono un logo aziendale, ma in caso contrario 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 scegliere l'API di incorporamento delle immagini incorporato di Visione artificiale 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.

Ricerca di intelligenza artificiale di Azure e la risorsa di Intelligenza artificiale di Azure devono trovarsi nella stessa area o configurata per le 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 Visione artificiale di Azure.

  2. Specificare la sottoscrizione.

  3. Per il catalogo dei modelli di Azure AI Foundry, specificare il progetto e la distribuzione. Per altre informazioni, vedere Configurare i modelli di incorporamento nelle sezioni precedenti di questo articolo.

  4. Facoltativamente, è possibile crackare immagini binarie (ad esempio, file di documenti analizzati) e usare 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 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.

Eseguire il mapping di nuovi campi

Punti chiave su questo passaggio:

  • Lo schema dell'indice fornisce campi vettoriali e non di operatore per i dati 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 seguenti con questi attributi:

Campo Si applica a Descrizione
chunk_id Vettori di testo e immagine Campo stringa generato. Ricercabile, recuperabile, ordinabile. Questa è la chiave del documento per l'indice.
text_parent_id Vettori di testo Campo stringa generato. Recuperabile, filtrabile. Identifica il documento padre da cui ha origine il blocco.
blocco Vettori di testo e immagine Campo stringa. Versione leggibile del blocco di dati. Ricercabile e recuperabile, ma non filtrabile, facetable o ordinabile.
title 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.
text_vector 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. Seleziona Aggiungi nuovo.

  2. Scegliere un campo di origine dall'elenco dei campi disponibili, specificare un nome di campo per l'indice e accettare il tipo di dati predefinito o eseguire l'override in base alle esigenze.

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

  3. Selezionare Reimposta se si vuole ripristinare lo schema nella versione originale.

Pianificare l'indicizzazione

Nella pagina Impostazioni avanzate è possibile specificare facoltativamente una pianificazione di esecuzione per l'indicizzatore.

  1. Al termine, selezionare Avanti con la pagina Impostazioni avanzate .

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 all'origine dati.

  • Indice con campi vettoriali, vettorizzatori, profili di vettori, 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 Dividi 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 competenze include anche la configurazione delle proiezioni di indici che consente di eseguire il mapping dei dati da 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).

Controllare i risultati

Esplora ricerche accetta stringhe di testo come input e quindi vettorializza il testo per l'esecuzione di query vettoriali.

  1. Nel portale di Azure passare a Gestione ricerca>Indici e quindi selezionare l'indice creato.

  2. Selezionare Opzioni query e nascondere i valori vettoriali nei risultati della ricerca. Questo passaggio semplifica la lettura dei risultati della ricerca.

    Screenshot del pulsante di selezione delle opzioni per le query.

  3. Nel menu Visualizza selezionare Visualizzazione JSON in modo che sia possibile immettere testo per la query vettoriale nel parametro della query del vettore text.

    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 la classificazione semantica. 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 di integrità, 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. Selezionare Cerca per eseguire la query.

    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 è abbastanza 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 questo 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

Questa guida introduttiva illustra la procedura guidata di importazione e vettorizzazione dei dati che crea tutti gli oggetti necessari per la vettorizzazione integrata. Per esplorare in dettaglio ogni passaggio, provare un esempio di vettorizzazione integrata.