Azure Vision multimodale insluitingsvaardigheden (preview)

Note

Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.

Belangrijk

Functies, mogelijkheden of eigenschappen die zijn gemarkeerd (preview) vallen niet onder een service level agreement, worden niet aanbevolen voor productieworkloads en kunnen worden gewijzigd of beperkt voordat ze algemeen beschikbaar worden. De Azure AI Zoeken preview-voorwaarden zijn van toepassing op alle preview-functionaliteit, ongeacht of deze zelfstandig is of deel uitmaakt van een algemeen beschikbare functie.

De Azure Vision multimodale insluitingsvaardigheden (preview) maakt gebruik van de multimodale insluitings-API van Azure Vision in Foundry Tools om insluitingen te genereren voor tekst- of afbeeldingsinvoer.

Voor transacties die meer dan 20 documenten per indexeerder per dag bevatten, vereist deze vaardigheid dat je een declarabele Microsoft Foundry-resource toevoegt aan je vaardighedenset. De uitvoering van ingebouwde vaardigheden wordt gerekend tegen de bestaande Foundry Tools Standard-prijs. Beeldextractie is ook declarabel door Azure AI Zoeken.

De Microsoft Foundry-bron wordt uitsluitend gebruikt voor facturatiedoeleinden. Contentverwerking vindt plaats op aparte bronnen die worden beheerd en onderhouden door Azure AI Zoeken. Je data wordt verwerkt in de Geo waar je resource wordt ingezet.

Ondersteunde regio’s

Ondersteunde regio's verschillen per modaliteit en hoe de vaardigheid verbonden is met de Azure Vision multimodale embeddings API.

Methode Requirement
Importgegevenswizard
  1. Vind een regio die multimodale embeddings ondersteunt in Azure Vision.
  2. Controleer of de regio AI-verrijking ondersteunt in Azure AI Zoeken.
  3. Maak een Azure AI Zoeken dienst aan en Azure AI multi-service account in dezelfde regio.
Programmatisch, met een sleutelverbinding voor facturering
  1. Vind een regio die multimodale embeddings ondersteunt in Azure Vision.
  2. Controleer of de regio AI-verrijking ondersteunt in Azure AI Zoeken.
  3. Maak een Azure AI Zoeken-service en een Microsoft Foundry-bron aan in dezelfde regio.
Programmatisch, met een keyless verbinding voor facturering Geen vereiste voor dezelfde regio. Maak een Azure AI Zoeken service en Microsoft Foundry-bron in elke regio waar elke service beschikbaar is.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Gegevenslimieten

De invoerlimieten voor de vaardigheid zijn te vinden in de Azure Vision-documentatie voor afbeeldingen en tekst. Overweeg de Text Split-vaardigheid te gebruiken als je data-chunking nodig hebt voor tekstinvoer.

Toepasselijke inputs zijn onder andere:

  • De invoergrootte van het afbeeldingsbestand moet minder dan 20 megabyte (MB) zijn. De beeldgrootte moet groter zijn dan 10 x 10 pixels en minder dan 16.000 x 16.000 pixels.
  • De tekstinvoerstring moet tussen (inclusief) één woord en 70 woorden zijn.

Vaardigheidsparameters

Parameters zijn hoofdlettergevoelig.

Invoer Description
modelVersion (Vereist) De modelversie (2023-04-15) die wordt doorgegeven aan de Azure Vision multimodale embeddings API voor het genereren van embeddings. Vector-embeddings kunnen alleen worden vergeleken en gematcht als ze van hetzelfde modeltype zijn. Afbeeldingen die door één model worden gevectoriseerd, zijn niet doorzoekbaar via een ander model. De nieuwste Image Analysis API biedt twee modellen:
  • De 2023-04-15 versie, die tekstzoekopdrachten in veel talen ondersteunt. Azure AI Zoeken gebruikt deze versie.
  • Het legacy-model 2022-04-11 , dat alleen Engels ondersteunt.

Invoer van vaardigheden

Invoer voor vaardigheidsdefinitie omvat naam, bron en invoer. De volgende tabel geeft geldige waarden voor de naam van de invoer. Je kunt ook recursieve invoer specificeren. Voor meer informatie, zie de REST API-referentie en Maak een skillset aan.

Invoer Description
text De invoertekst moet worden gevectoriseerd. Als je data-chunking gebruikt, kan de bron ./document/pages/*
image Complexe Type Werkt momenteel alleen met het veld "/document/normalized_images", geproduceerd door de Azure blob-indexer wanneer imageAction is ingesteld op een andere waarde dan none.
url De URL om de afbeelding te downloaden die gevectoriseerd moet worden.
queryString De querystring van de URL om de te vectoriseren afbeelding te downloaden. Handig als je de URL en het SAS-token in aparte paden opslaat.

Slechts één van text, image of url/queryString kan worden geconfigureerd voor één enkele instantie van de vaardigheid. Als je zowel afbeeldingen als tekst binnen dezelfde vaardigheidsset wilt vectoriseren, neem dan twee voorbeelden van deze vaardigheid op in de definitie van de vaardigheidsset, één voor elk invoertype dat je wilt gebruiken.

Uitvoer van vaardigheden

Uitvoer Description
vector Voer een embedding van floats uit voor de invoertekst of afbeelding.

Voorbeelddefinitie

Voor tekstinvoer beschouw een blob met de volgende inhoud:

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

Voor tekstinvoer kan je vaardigheidsdefinitie er als volgt uitzien:

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

Voor beeldinvoer kan een tweede vaardigheidsdefinitie in dezelfde vaardigheid er als volgt uitzien:

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

Als je afbeeldingen direct vanuit je blob-opslag wilt vectoriseren in plaats van afbeeldingen te extraheren tijdens indexering, moet je vaardigheidsdefinitie een URL specificeren, en mogelijk een SAS-token afhankelijk van de opslagbeveiliging. In dit scenario zou je vaardigheidsdefinitie er als volgt uit kunnen zien:

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

Voorbeelduitvoer

Voor de gegeven invoer wordt een vectoriseerde embedding-output geproduceerd. De output is 1.024 dimensies, wat het aantal dimensies is dat door de multimodale API van Azure Vision wordt ondersteund.

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

De output bevindt zich in het geheugen. Om deze output naar een veld in de zoekindex te sturen, moet je een outputFieldMapping definiëren die de vectoriseerde embedding-uitvoer (een array) mappt naar een vectorveld. Aangenomen dat de vaardigheidsoutput zich in de vectornode van het document bevindt en content_vector het veld in de zoekindex is, zou outputFieldMapping in de indexer er als volgt uit moeten zien:

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

Om afbeeldingsembeddings aan de index toe te voegen, gebruik je indexprojecties. De payload voor indexProjections kan er ongeveer uitzien als het volgende voorbeeld. image_content_vector is een veld in de index en wordt gevuld met de inhoud die in de vector van de normalized_images array wordt gevonden.

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

Zie ook