Partager via


Compétence Incorporations multimodales d’Azure AI Vision

Important

Cette compétence est disponible en préversion publique sous conditions d’utilisation supplémentaires. L’API REST 2024-05-01-Preview et les API de préversion plus récentes prennent en charge cette fonctionnalité.

La compétence Incorporations multimodales d’Azure AI Vision utilise l’API Incorporations multimodales d’Azure AI Vision afin de générer des incorporations pour l’entrée d’image ou de texte.

Cette compétence doit être attachée à une ressource multiservices Azure AI facturable pour les transactions qui dépassent 20 documents par indexeur par jour. L’exécution des compétences intégrées est facturée au prix standard des services Azure AI existants.

En outre, l’extraction d’images est facturée par Azure AI Search.

L’emplacement des ressources est un facteur important à prendre en compte. Étant donné que vous utilisez une version d’API en préversion pour créer un ensemble de compétences qui contient des compétences en préversion, vous avez la possibilité d’une connexion sans clé, ce qui assouplit les exigences de région. Toutefois, si vous vous connectez à une clé API, Azure AI Search et Azure AI multiservices doivent se trouver dans la même région.

La ressource multiservices Azure AI est utilisée uniquement à des fins de facturation. Le traitement du contenu se produit sur des ressources distinctes gérées et gérées par Recherche IA Azure dans la même zone géographique. Vos données sont traitées dans la zone géographique où votre ressource est déployée.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Limites de données

Les limites d’entrée de la compétence sont disponibles dans la documentation Azure AI Vision pour les images et le texte respectivement. Envisagez d’utiliser la compétence Fractionnement de texte si vous avez besoin d’une segmentation des données pour les entrées de texte.

Les entrées applicables sont les suivantes :

  • La taille du fichier d’entrée d’image doit être inférieure à 20 mégaoctets (Mo). La taille de l’image doit être supérieure à 10 x 10 pixels et inférieure à 16 000 x 16 000 pixels.
  • La chaîne d’entrée de texte doit être comprise entre (inclus) un mot et 70 mots.

Paramètres de la compétence

Les paramètres respectent la casse.

Entrées Descriptif
modelVersion (Obligatoire) Version du modèle (2023-04-15) à transmettre à l’API d’incorporations modales Azure AI Vision pour générer des incorporations. Les incorporations vectorielles ne peuvent être comparées et mises en correspondance que si elles proviennent du même type de modèle. Les images vectorisées par un modèle ne peuvent pas faire l’objet d’une recherche par le biais d’un autre modèle. La dernière API Analyse des images offre deux modèles, version 2023-04-15 qui prend en charge la recherche de texte dans de nombreuses langues et le modèle hérité 2022-04-11 qui prend uniquement en charge l’anglais. Azure AI Search utilise la version la plus récente.

Entrées de la compétence

Les entrées de définition de compétence incluent le nom, la source et les entrées. Le tableau suivant fournit des valeurs valides pour le nom de l’entrée. Vous pouvez également spécifier des entrées récursives. Pour plus d’informations, consultez la référence de l’API REST et créez un ensemble de compétences.

Entrée Descriptif
text Le texte d’entrée à vectoriser. Si vous utilisez la segmentation des données, la source peut être /document/pages/*.
image Type complexe. Actuellement, fonctionne seulement avec le champ « /documents/normalized_images », produit par l’indexeur de blobs Azure quand imageAction est défini sur une valeur supérieure à none.
url L’URL pour télécharger l’image à vectoriser.
queryString La chaîne de requête de l’URL pour télécharger l’image à vectoriser. Utile si vous stockez l’URL et le jeton SAP dans des chemins d’accès distincts.

Pour une même instance de la compétence, vous ne pouvez configurer qu’un seul des éléments parmi les suivants : text, image ou url/queryString. Si vous voulez vectoriser à la fois des images et du texte dans le même ensemble de compétences, incluez deux instances de cette compétence dans la définition de l’ensemble de compétences : une pour chaque type d’entrée que vous voulez utiliser.

Sorties de la compétence

Sortie Descriptif
vector Tableau d’incorporation de sortie de flottants pour le texte ou l’image en entrée.

Exemple de définition

Pour l’entrée de texte, tenez compte d’un objet blob qui a le contenu suivant :

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

Pour les entrées de texte, votre définition de compétence peut ressembler à ceci :

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

Pour l’entrée d’image, une deuxième définition de compétence dans le même ensemble de compétences peut ressembler à ceci :

{
    "@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"
        }
    ]
}

Si vous souhaitez vectoriser des images directement à partir de votre source de données de stockage d’objets blob plutôt que d’extraire des images pendant l’indexation, votre définition de compétence doit spécifier une URL et peut-être un jeton SAP en fonction de la sécurité du stockage. Pour ce scénario, votre définition de compétence peut ressembler à ceci :

{
    "@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"
        }
    ]
}

Exemple de sortie

Pour l’entrée donnée, une sortie d’incorporation vectorisée est produite. La sortie est de 1 024 dimensions, qui correspond au nombre de dimensions prises en charge par l’API modale Azure AI Vision.

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

La sortie réside dans la mémoire. Pour envoyer cette sortie à un champ dans l’index de recherche, vous devez définir un outputFieldMapping qui mappe la sortie d’incorporation vectorisée (qui est un tableau) à un champ vectoriel. En supposant que la sortie de compétence réside dans le nœud vectoriel du document et que content_vector est le champ de l’index de recherche, le outputFieldMapping dans l’indexeur doit ressembler à ceci :

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

Pour le mappage d’incorporations d’images à l’index, vous utilisez des projections d’index. La charge utile peut indexProjections ressembler à l’exemple suivant. image_content_vector est un champ dans l’index, et il est rempli avec le contenu trouvé dans le vecteur du tableau normalized_images .

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

Voir aussi