Condividi tramite


Archivio conoscenze in Azure AI Search

L'archivio conoscenze è una risorsa di archiviazione secondaria per contenuti arricchiti con intelligenza artificiale creati da un set di competenze in Azure AI Search. In Azure AI Search, un processo di indicizzazione invia sempre l'output a un indice di ricerca, ma se si collega un set di competenze a un indicizzatore, è possibile inviare anche un output arricchito dall'intelligenza artificiale a un contenitore o a una tabella in Archiviazione di Azure. Un archivio conoscenze può essere usato per l'analisi indipendente o l'elaborazione downstream in scenari non di ricerca come il knowledge mining.

I due output dell'indicizzazione, un indice di ricerca e un archivio conoscenze, sono prodotti della stessa pipeline che si escludono a vicenda. Derivano dagli stessi input e contengono gli stessi dati, ma il contenuto è strutturato, archiviato e usato in applicazioni diverse.

Pipeline con set di competenze

Fisicamente, un archivio conoscenze è una risorsa di archiviazione di Azure, ad esempio una risorsa di archiviazione tabelle di Azure, di archiviazione BLOB di Azure o entrambe. Qualsiasi strumento o processo in grado di connettersi ad archiviazione di Azure può usare il contenuto di un archivio conoscenze. Non è disponibile alcun supporto per le query in Azure AI Search per il recupero di contenuti da un archivio conoscenze.

Quando viene visualizzato tramite il portale di Azure, un archivio conoscenze ha l’aspetto di qualsiasi altra raccolta di tabelle, oggetti o file. Lo screenshot seguente mostra un archivio conoscenze composto da tre tabelle. È possibile adottare una convenzione di denominazione, ad esempio un prefisso kstore, per mantenere insieme il contenuto.

Competenze di lettura e scrittura dall'albero di arricchimento

Vantaggi del knowledge store

I principali vantaggi di un archivio conoscenze sono l'accesso flessibile al contenuto e la possibilità di modellare i dati.

A differenza di un indice di ricerca accessibile solo tramite query in Azure AI Search, un archivio conoscenze è accessibile a qualsiasi strumento, app o processo che supporta le connessioni ad Archiviazione di Azure. Questa flessibilità apre nuovi scenari per l'utilizzo del contenuto analizzato e arricchito prodotto da una pipeline di arricchimento.

Lo stesso set di competenze che arricchisce i dati può essere usato anche per modellare i dati. Alcuni strumenti come Power BI funzionano meglio con le tabelle, mentre un carico di lavoro di data science potrebbe richiedere una struttura di dati complessa in formato BLOB. L'aggiunta di una competenza Shaper a un set di competenze consente di controllare la forma dei dati. È quindi possibile passare queste forme alle proiezioni, ovvero tabelle o BLOB, per creare strutture di dati fisici allineate all'uso previsto dei dati.

Il video seguente illustra entrambi questi vantaggi e altro ancora.

Definizione di archivio conoscenze

Un archivio conoscenze viene definito all'interno della definizione di un set di competenze e ha due componenti:

  • Una stringa di connessione ad Archiviazione di Azure

  • Proiezioni che determinano se l'archivio conoscenze è costituito da tabelle, oggetti o file. L'elemento proiezioni è una matrice. È possibile creare più set di combinazioni file oggetto tabella all'interno di un archivio conoscenze.

    "knowledgeStore": {
        "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
        "projections":[
           {
              "tables":[ ],
              "objects":[ ],
              "files":[ ]
           }
        ]
    }
    

Il tipo di proiezione specificato in questa struttura determina il tipo di archiviazione usato dall'archivio conoscenze, ma non la struttura. I campi di tabelle, oggetti e file sono determinati dall'output della competenza Shaper se si sta creando l'archivio conoscenze a livello di programmazione o tramite l’importazione guidata dati se si usa il portale.

  • tables proietta contenuto arricchito in Archiviazione tabelle. Definire una proiezione di tabella se si necessita di strutture di report tabulari per gli input negli strumenti analitici o per l'esportazione come frame di dati in altri archivi dati. È possibile specificare più tables all'interno dello stesso gruppo di proiezioni per ottenere un subset o una sezione trasversale dei documenti arricchiti. All'interno dello stesso gruppo di proiezione, le relazioni tra tabelle vengono conservate in modo che sia possibile utilizzarle tutte.

    Il contenuto proiettato non è aggregato o normalizzato. Lo screenshot seguente mostra una tabella, ordinata in base alla frase chiave, con il documento padre indicato nella colonna adiacente. A differenza dell'inserimento dati durante l'indicizzazione, non esiste alcuna analisi linguistica o aggregazione del contenuto. Le forme plurali e le differenze tra maiuscole e minuscole sono considerate istanze univoche.

    Screenshot di frasi chiave e documenti in una tabella

  • objects proietta il documento JSON nell'archivio BLOB. La rappresentazione fisica di un object è una struttura JSON gerarchica che rappresenta un documento arricchito.

  • files proietta i file di immagine nell'archivio BLOB. Un file è un'immagine estratta da un documento, trasferita intatta nell'archiviazione BLOB. Anche se è denominato "file", viene visualizzato in Archiviazione BLOB, non nell'archiviazione file.

Creare un knowledge store

Per creare un archivio conoscenze, usare il portale o un'API.

Sono necessari Archiviazione di Azure, un set di competenze e un indicizzatore. Poiché gli indicizzatori richiedono un indice di ricerca, è necessario fornire anche una definizione di indice.

Scegliere l’uso del portale per arrivare più velocemente a un archivio conoscenze completato. In alternativa, scegliere l'API REST per una comprensione più approfondita del modo in cui gli oggetti vengono definiti e correlati.

Creare il primo archivio conoscenze in quattro passaggi usando l’importazione guidata dati.

  1. Definire un'origine dati contenente i dati da arricchire.

  2. Definire un set di competenze. Il set di competenze specifica i passaggi di arricchimento e l'archivio conoscenze.

  3. Definire uno schema di indice. Potrebbe non essere necessario, ma gli indicizzatori lo richiedono. La procedura guidata può dedurre un indice.

  4. Completare la procedura guidata. L'estrazione, l'arricchimento dati e la creazione dell'archivio conoscenze avvengono in questo ultimo passaggio.

La procedura guidata automatizza diverse attività. In particolare, vengono create automaticamente sia la modellazione che le proiezioni (definizioni di strutture di dati fisici in Archiviazione di Azure).

Connettersi con le app

Una volta che i contenuti arricchiti sono presenti nell'archiviazione, è possibile usare qualsiasi strumento o tecnologia che si connette ad Archiviazione di Azure per esplorare, analizzare o utilizzare i contenuti. È possibile iniziare con l'elenco seguente:

  • Storage Explorer o browser archiviazione nel portale di Azure per visualizzare la struttura e i contenuti dei documenti arricchiti. Considerare questo strumento come lo strumento di base per visualizzare i contenuti del knowledge store.

  • Power BI per la creazione di report e l'analisi.

  • Azure Data Factory per ulteriori elaborazioni.

Ciclo di vita del contenuto

Ogni volta che si eseguono l'indicizzatore e il set di competenze, l’archivio conoscenze viene aggiornato se il set di competenze o i dati di origine sono stati modificati. Tutte le modifiche rilevate dall'indicizzatore vengono propagate tramite il processo di arricchimento alle proiezioni nell'archivio conoscenze, assicurandosi che i dati proiettati siano una rappresentazione attuale del contenuto nell'origine dati di origine.

Nota

Anche se è possibile modificare i dati nelle proiezioni, qualsiasi modifica verrà sovrascritta nella chiamata alla pipeline successiva, presupponendo che il documento nei dati di origine sia aggiornato.

Modifiche apportate ai dati di origine

Per le origini dati che supportano il rilevamento delle modifiche, un indicizzatore elabora documenti nuovi e modificati e ignora i documenti esistenti già elaborati. Le informazioni sul timestamp variano in base all'origine dati, ma in un contenitore BLOB l'indicizzatore esamina la data lastmodified per determinare quali BLOB devono essere inseriti.

Modifiche a un set di competenze

Se si apportano modifiche a un set di competenze, è consigliabile abilitare la memorizzazione nella cache di documenti arricchiti per riutilizzare gli arricchimenti esistenti, se possibile.

Senza memorizzazione nella cache incrementale, l'indicizzatore elabora sempre i documenti in nell’ordine del punto più elevato, senza andare indietro. Per i BLOB, l'indicizzatore elabora i BLOB ordinati in base a lastModified, indipendentemente dalle modifiche apportate alle impostazioni dell'indicizzatore o al set di competenze. Se si modifica un set di competenze, i documenti elaborati in precedenza non vengono aggiornati per riflettere il nuovo set di competenze. I documenti elaborati dopo la modifica del set di competenze useranno il nuovo set di competenze, con conseguente combinazione di set di competenze vecchi e nuovi a comporre i documenti dell’indice.

Con la memorizzazione nella cache incrementale e dopo l’aggiornamento del set di competenze, l'indicizzatore riutilizza tutti gli arricchimenti che non sono interessati dalla modifica del set di competenze. Gli arricchimenti upstream vengono estratti dalla cache, come tutti gli arricchimenti indipendenti e isolati dalla competenza modificata.

Deletions

Anche se un indicizzatore crea e aggiorna strutture e contenuti in Archiviazione di Azure, non li elimina. Le proiezioni continuano a esistere anche quando l'indicizzatore o il set di competenze viene eliminato. Come proprietario dell'account di archiviazione, è necessario eliminare una proiezione se non è più necessaria.

Passaggi successivi

L'Archivio conoscenze offre la persistenza dei documenti arricchiti, utile durante la progettazione di un set di competenze o la creazione di nuove strutture e contenuto per l'utilizzo da parte di qualsiasi applicazione client in grado di accedere a un account di archiviazione di Azure.

L'approccio più semplice alla creazione di documenti arricchiti consiste nell’uso del portale, ma un client REST e le API REST possono fornire maggiori informazioni sul modo in cui gli oggetti vengono creati e in cui vi si fa riferimento a livello di programmazione.