Azure competenza incorporamenti di visione artificiale

Note

Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.

Importante

Questa abilità è in anteprima sotto i Termini Supplementari di Utilizzo. La versione di anteprima più recente dei set di competenze - Creare o aggiornare (API REST) supporta questa funzionalità.

La competenza Azure Vision multimodal embeddings utilizza l'API multimodal embeddings di Azure Vision in Foundry Tools per generare embeddings per l'input di testo o immagini.

Per transazioni che superano i 20 documenti per indicizzatore al giorno, questa abilità richiede di allegare una risorsa fatturabile Microsoft Foundry al tuo set di competenze. L'esecuzione delle competenze integrate è addebitata al prezzo Standard esistente di Foundry Tools. L'estrazione dell'immagine è anche fatturabile per Azure AI Search.

La risorsa Microsoft Foundry è utilizzata solo a scopo di fatturazione. L'elaborazione dei contenuti avviene su risorse separate gestite e mantenute da Azure AI Search. I tuoi dati vengono elaborati nel Geo dove la tua risorsa è distribuita.

Regioni supportate

Le regioni supportate variano in base alla modalità e a come la competenza si collega all'API di embeddings multimodali di Azure Vision.

Avvicinarsi Requisito
Assistente per importazione dati
  1. Trova una regione che supporti embedded multimodali in Azure Vision.
  2. Verifica che la regione supporti l'arricchimento AI in Azure AI Search.
  3. Crea un servizio Azure AI Search e Azure account multi-servizio AI nella stessa regione.
Programmatic, utilizzando una connessione basata su chiavi per la fatturazione
  1. Trova una regione che supporti embedded multimodali in Azure Vision.
  2. Verifica che la regione supporti l'arricchimento AI in Azure AI Search.
  3. Crea un servizio Azure AI Search e una risorsa Microsoft Foundry nella stessa regione.
Programmatic, utilizzando una connessione senza chiave per la fatturazione Nessun requisito di coire la stessa regione. Crea un servizio Azure AI Search e Microsoft risorsa Foundry in qualsiasi regione in cui è disponibile ogni servizio.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Limiti dei dati

I limiti di input per l'abilità si trovano nella documentazione Azure Vision per immagini e testo. Considera di usare la competenza Text Split se hai bisogno di sbloccare dati per input di testo.

Gli input applicabili includono:

  • La dimensione del file di input immagine deve essere inferiore a 20 megabyte (MB). La dimensione dell'immagine deve essere superiore a 10 x 10 pixel e inferiore a 16.000 x 16.000 pixel.
  • La stringa di input di testo deve essere compresa tra una parola (inclusiva) e 70 parole.

Parametri della competenza

I parametri sono distinti dalla mazzela e minuscola.

Ingressi Description
modelVersion (Richiesto) La versione del modello (2023-04-15) da passare all'API di embeddings multimodali Azure Vision per generare embedding. Gli embedding vettoriali possono essere confrontati e abbinati solo se provengono dallo stesso tipo di modello. Le immagini vettorializzate da un modello non saranno ricercabili tramite un modello diverso. L'ultima API di Analisi delle Immagini offre due modelli:
  • La 2023-04-15 versione, che supporta la ricerca testuale in molte lingue. Azure AI Search utilizza questa versione.
  • Il modello legacy 2022-04-11 , che supporta solo l'inglese.

Input delle competenze

Gli input per la definizione delle competenze includono nome, fonte e input. La tabella seguente fornisce valori validi per il nome dell'input. Puoi anche specificare input ricorsive. Per maggiori informazioni, consulta il riferimento REST API e Crea un set di competenze.

Inserimento Description
text Il testo di input da vettorizzare. Se usi il chunking dei dati, la fonte potrebbe essere /document/pages/*.
image Tipo complesso. Attualmente funziona solo con il campo "/document/normalized_images", prodotto dal blob indexer Azure quando imageAction è impostato a un valore diverso da none.
url L'URL per scaricare l'immagine sarà vettorizzato.
queryString La stringa di query dell'URL per scaricare l'immagine da vettoriare. Utile se memorizzi URL e token SAS in percorsi separati.

Solo uno di text, image oppure url/queryString può essere configurato per un'unica istanza dell'abilità. Se vuoi vettorializzare sia immagini che testo all'interno dello stesso set di abilità, includi due istanze di questa abilità nella definizione del set di competenze, una per ogni tipo di input che vorresti usare.

Output delle competenze

Risultato Description
vector Array di incorporamento in uscita di float per il testo o l'immagine in ingresso.

Definizione di esempio

Per l'input di testo, consideriamo un blob che contiene il seguente contenuto:

{
    "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 tua definizione di abilità potrebbe essere questa:

{ 
    "@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 abilità nello stesso set di competenze potrebbe essere questa:

{
    "@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 vuoi vettorializzare le immagini direttamente dalla tua sorgente di memoria blob invece di estrarle durante l'indicizzazione, la definizione della tua abilità dovrebbe specificare un URL, e forse un token SAS a seconda della sicurezza dello storage. In questo scenario, la tua definizione di abilità potrebbe essere questa:

{
    "@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 dato, viene prodotto un ingresso incorporato vettorializzato. L'output è di 1.024 dimensioni, che corrisponde al numero di dimensioni supportate dall'API multimodale di Azure Vision.

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

L'output risiede nella memoria. Per inviare questo output a un campo nell'indice di ricerca, devi definire un outputFieldMapping che mappa l'output di embedding vettorizato (che è un array) a un campo vettoriale. Assumendo che l'output delle skill risieda nel nodo vettoriale del documento, e content_vector sia il campo nell'indice di ricerca, il outputFieldMapping nell'indicizzatore dovrebbe apparire così:

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

Per mappare gli embeddings delle immagini nell'indice, si usano proiezioni indicizzate. Il payload per indexProjections potrebbe assomigliare al seguente esempio. image_content_vector è un campo nell'indice, e viene popolato con il contenuto presente nel vettoredell'array di normalized_images .

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

Vedere anche