Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Important
Questa abilità è in anteprima sotto i Termini Supplementari di Utilizzo. L'API REST 2024-05-01-Preview e le API di anteprima più recenti supportano 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.
Supported regions
Le regioni supportate variano in base alla modalità e a come la competenza si collega all'API di embeddings multimodali di Azure Vision.
| Approach | Requirement |
|---|---|
| Assistente per importazione dati |
|
| Programmatic, utilizzando una connessione basata su chiavi per la fatturazione |
|
| 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
Data limits
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.
Skill parameters
I parametri sono distinti dalla mazzela e minuscola.
| Inputs | 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:
|
Skill inputs
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.
| Input | Description |
|---|---|
text |
Il testo di input da vettorizzare. Se usi il chunking dei dati, la fonte potrebbe essere /document/pages/*. |
image |
Complex Type. 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.
Skill outputs
| Output | Description |
|---|---|
vector |
Array di incorporamento in uscita di float per il testo o l'immagine in ingresso. |
Sample definition
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"
}
]
}
Sample output
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"
}
]
}
]
}