Condividi tramite


Competenza di incorporamenti multi-modello di Visione di Azure AI

Importante

Questa competenza è disponibile in anteprima pubblica in Condizioni supplementari per l'utilizzo. L'API REST 2024-05-01-Preview e le API di anteprima più recenti supportano questa funzionalità.

La competenza di incorporamenti multi-modello di Visione di Azure AI usa l'API di incorporamento Incorporamenti multi-modello di Azure AI Vision per generare incorporamenti per l'immagine o l'input di testo.

Questa competenza deve essere collegata a una risorsa multiservizio azure per intelligenza artificiale di Azure fatturabile per le transazioni che superano 20 documenti per indicizzatore al giorno. L'esecuzione di competenze predefinite viene addebitata al prezzo Standard dei servizi di intelligenza artificiale di Azure esistente.

Inoltre, l'estrazione di immagini è fatturabile da Azure AI Search.

La posizione delle risorse è una considerazione importante. Poiché si usa una versione dell'API di anteprima per creare un set di competenze che contiene competenze di anteprima, è possibile usare una connessione senza chiave, che riduce il requisito dell'area. Tuttavia, se ci si connette con una chiave API, Ricerca di intelligenza artificiale di Azure e Azure AI multiservizio devono trovarsi nella stessa area.

La risorsa multiservizio di Azure per intelligenza artificiale viene usata solo a scopo di fatturazione. L'elaborazione del contenuto avviene in risorse separate gestite e gestite da Ricerca di intelligenza artificiale di Azure all'interno della stessa area geografica. I dati vengono elaborati nell'area geografica in cui viene distribuita la risorsa.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Limiti dei dati

I limiti di input per la competenza sono disponibili nella documentazione di Visione artificiale di Azure rispettivamente per immagini e testo. È consigliabile usare la competenza Suddivisione testo se è necessario suddividere i dati per gli input di testo.

Gli input applicabili includono:

  • Le dimensioni del file di input dell'immagine devono essere inferiori a 20 megabyte (MB). Le dimensioni dell'immagine devono essere maggiori di 10 x 10 pixel e minori di 16.000 x 16.000 pixel.
  • La stringa di input di testo deve essere compresa tra una parola e 70 parole.

Parametri della competenza

I parametri fanno distinzione tra maiuscole e minuscole.

Input Descrizione
modelVersion (Obbligatorio) La versione del modello (2023-04-15) da passare all'API di incorporamento migrato di Visione artificiale di Azure per la generazione di incorporamenti. Gli incorporamenti vettoriali possono essere confrontati e confrontati solo se provengono dallo stesso tipo di modello. Le immagini vettorializzate da un modello non saranno disponibili per la ricerca tramite un modello diverso. L'API Analisi immagini più recente offre due modelli, versione 2023-04-15 che supporta la ricerca di testo in molte lingue e il modello legacy 2022-04-11 che supporta solo l'inglese. Ricerca di intelligenza artificiale di Azure usa la versione più recente.

Input competenze

Gli input di definizione delle competenze includono nome, origine e input. La tabella seguente fornisce valori validi per il nome dell'input. È anche possibile specificare input ricorsivi. Per altre informazioni, vedere le informazioni di riferimento sull'API REST e Creare un set di competenze.

Inserimento Descrizione
text Testo di input da vettorizzare. Se si usa la suddivisione in blocchi di dati, l'origine potrebbe essere /document/pages/*.
image Tipo complesso. Attualmente funziona solo con il campo "/document/normalized_images", prodotto dall'indicizzatore di BLOB di Azure quando imageAction è impostato su un valore diverso da none.
url URL per scaricare l'immagine da vettorizzare.
queryString Stringa di query dell'URL per scaricare l'immagine da vettorizzare. Utile se si archivia l'URL e il token di firma di accesso condiviso in percorsi separati.

È possibile configurare solo uno di text, image o url/queryString per una singola istanza della competenza. Se si desidera vettorizzare sia immagini che testo all'interno dello stesso set di competenze, includere due istanze di questa competenza nella definizione del set di competenze, una per ogni tipo di input che si desidera usare.

Output competenze

Risultato Descrizione
vector Array di incorporamento dell'output di float per il testo o l'immagine di input.

Definizione di esempio

Per l'input di testo, prendere in considerazione un BLOB con il contenuto seguente:

{
    "content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square  kilometers of South America."
}

Per gli input di testo, la definizione della competenza potrebbe essere simile alla seguente:

{ 
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
    "context": "/document", 
    "modelVersion": "2023-04-15", 
    "inputs": [ 
        { 
            "name": "text", 
            "source": "/document/content" 
        } 
    ], 
    "outputs": [ 
        { 
            "name": "vector",
            "targetName": "text_vector"
        } 
    ] 
} 

Per l'input dell'immagine, una seconda definizione di competenza nello stesso set di competenze potrebbe essere simile alla seguente:

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document/normalized_images/*",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "image",
            "source": "/document/normalized_images/*"
        }
    ],
    "outputs": [
        {
            "name": "vector",
            "targetName": "image_vector"
        }
    ]
}

Se si vogliono vettorizzare le immagini direttamente dall'origine dati dell'archiviazione BLOB anziché estrarre immagini durante l'indicizzazione, la definizione della competenza deve specificare un URL e, ad esempio, un token di firma di accesso condiviso a seconda della sicurezza dell'archiviazione. Per questo scenario, la definizione della competenza potrebbe essere simile alla seguente:

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "url",
            "source": "/document/metadata_storage_path"
        },
        {
            "name": "queryString",
            "source": "/document/metadata_storage_sas_token"
        }
    ],
    "outputs": [
        {
            "name": "vector",
            "targetName": "image_vector"
        }
    ]
}

Output di esempio

Per l'input specificato, viene generato un output di incorporamento vettorializzato. L'output è di 1.024 dimensioni, ovvero il numero di dimensioni supportate dall'API multi-visione artificiale di Azure.

{
  "text_vector": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

L'output si trova in memoria. Per inviare questo output a un campo nell'indice di ricerca, è necessario definire un outputFieldMapping che esegue il mapping dell'output di incorporamento vettorializzato (che è un array) a un campo vettoriale. Supponendo che l'output della competenza risieda nel nodo vettore del documento e content_vector sia il campo nell'indice di ricerca, outputFieldMapping nell'indicizzatore dovrebbe essere simile al seguente:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/vector/*",
      "targetFieldName": "content_vector"
    }
  ]

Per eseguire il mapping degli incorporamenti di immagini all'indice, usare le proiezioni di indice. Il payload per indexProjections potrebbe essere simile all'esempio seguente. image_content_vector è un campo nell'indice e viene popolato con il contenuto trovato nel vettore della matrice normalized_images .

"indexProjections": {
    "selectors": [
        {
            "targetIndexName": "myTargetIndex",
            "parentKeyFieldName": "ParentKey",
            "sourceContext": "/document/normalized_images/*",
            "mappings": [
                {
                    "name": "image_content_vector",
                    "source": "/document/normalized_images/*/vector"
                }
            ]
        }
    ]
}

Vedi anche