Kunskaper om multimodala inbäddningar i Azure AI Vision

Viktigt!

Den här färdigheten finns i offentlig förhandsversion under kompletterande användningsvillkor. REST API för förhandsversion 2024-05-01 stöder den här funktionen.

Kunskaper om multimodala inbäddningar i Azure AI Vision använder Azure AI Visions API för multimodala inbäddningar för att generera inbäddningar för bild- eller textinmatning.

Kunskapen stöds endast i söktjänster som finns i en region som stöder API:et för Inbäddningar i Azure AI Vision Multimodal. Granska regionens tillgänglighet för multimodala inbäddningar. Dina data bearbetas i geo-området där din modell distribueras.

Kommentar

Den här kompetensen är bunden till Azure AI-tjänster och kräver en fakturerbar resurs för transaktioner som överstiger 20 dokument per indexerare och dag. Körning av inbyggda kunskaper debiteras enligt det befintliga priset för Betala per användning för Azure AI-tjänster.

Dessutom kan bildextrahering faktureras av Azure AI Search.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Databegränsningar

Indatagränserna för kunskapen finns i Azure AI Vision-dokumentationen för bilder respektive text. Överväg att använda färdigheten Textdelning om du behöver datasegmentering för textindata.

Kompetensparametrar

Parametrar är skiftlägeskänsliga.

Indata beskrivning
modelVersion (Krävs) Modellversionen som ska skickas till API:et för multimodala inbäddningar i Azure AI Vision för att generera inbäddningar. Det är viktigt att alla inbäddningar som lagras i ett visst indexfält genereras med samma modelVersion. Information om versionsstöd för den här modellen finns i multimodala inbäddningar.

Kunskapsindata

Indata beskrivning
text Den indatatext som ska vektoriseras. Om du använder datasegmentering kan källan vara /document/pages/*.
image Komplex typ. För närvarande fungerar endast med fältet "/document/normalized_images", som skapas av Azure Blob Indexer när imageAction är inställt på ett annat värde än none.
url URL:en för att ladda ned bilden som ska vektoriseras.
queryString Frågesträngen för URL:en för att ladda ned bilden som ska vektoriseras. Användbart om du lagrar URL:en och SAS-token i separata sökvägar.

Endast en av text, image eller url/queryString kan konfigureras för en enda instans av kunskapen. Om du vill vektorisera både bilder och text inom samma kompetensuppsättning ska du inkludera två instanser av den här färdigheten i kompetensuppsättningsdefinitionen, en för varje indatatyp som du vill använda.

Kunskapsutdata

Output beskrivning
vector Utdatainbäddningsmatris med flyttal för indatatexten eller bilden.

Exempeldefinition

För textinmatning bör du överväga en post som har följande fält:

{
    "content": "Microsoft released Windows 10."
}

Då kan din kompetensdefinition se ut så här:

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

För bildindata kan din kompetensdefinition se ut så här:

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

Om du vill vektorisera bilder direkt från bloblagringsdatakällan kan din kompetensdefinition se ut så här:

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

Exempelutdata

För den angivna indatatexten skapas en vektoriserad inbäddningsutdata.

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

Utdata finns i minnet. Om du vill skicka utdata till ett fält i sökindexet måste du definiera en outputFieldMapping som mappar de vektoriserade inbäddningsutdata (som är en matris) till ett vektorfält. Förutsatt att kunskapsutdata finns i dokumentets vektornod och content_vector är fältet i sökindexet bör outputFieldMapping i indexeraren se ut så här:

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

För att mappa inbäddningar av bilder till indexet måste du använda funktionen Indexprojektioner . Nyttolasten för indexProjections kan se ut ungefär så här:

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

Se även