Anpassad webb-API-vektoriserare

Med den anpassade webb-API-vektoriseraren kan du konfigurera dina sökfrågor så att de anropar en webb-API-slutpunkt för att generera inbäddningar vid frågetillfället. Strukturen för den JSON-nyttolast som krävs för att implementeras i den angivna slutpunkten beskrivs längre ned i det här dokumentet. Dina data bearbetas i geo-området där din modell distribueras.

Vectorizers används vid frågetillfället, men anges i indexdefinitioner och refereras till i vektorfält via en vektorprofil. Den anpassade webb-API-vektoriseraren anropas WebApiVectorizer i API:et.

Vectorizer-parametrar

Parametrar är skiftlägeskänsliga.

Parameternamn beskrivning
uri URI:n för webb-API:et som JSON-nyttolasten skickas till. Endast https-URI-schemat tillåts.
httpMethod Den metod som ska användas när nyttolasten skickas. Tillåtna metoder är PUT eller POST
httpHeaders En samling nyckel/värde-par där nycklarna representerar rubriknamn och värden representerar huvudvärden som skickas till webb-API:et tillsammans med nyttolasten. Följande rubriker får inte vara i den här samlingen: , , , , , Content-Type, Cookie, Host, TE, , Upgrade, . ViaContent-LengthAccept-EncodingAccept-CharsetAccept
authResourceId (Valfritt) En sträng som om den anges anger att den här vektoriseraren ska använda en hanterad identitet på anslutningen till funktionen eller appen som är värd för koden. Den här egenskapen tar ett program-ID (klient)-ID eller appens registrering i Microsoft Entra-ID i något av följande format: api://<appId>, <appId>/.default, api://<appId>/.default. Det här värdet används för att begränsa den autentiseringstoken som hämtas av indexeraren och skickas tillsammans med den anpassade webb-API-begäran till funktionen eller appen. Om du anger den här egenskapen måste din söktjänst konfigureras för hanterad identitet och att azure-funktionsappen har konfigurerats för en Microsoft Entra-inloggning.
authIdentity (Valfritt) En användarhanterad identitet som används av söktjänsten för att ansluta till funktionen eller appen som är värd för koden. Du kan använda antingen en system- eller användarhanterad identitet. Lämna tom om du vill använda en systemhanterad identitet authIdentity .
timeout (Valfritt) När det anges anger du tidsgränsen för http-klienten som gör API-anropet. Det måste formateras som ett XSD-värde "dayTimeDuration" (en begränsad delmängd av ett ISO 8601-varaktighetsvärde ). Till exempel PT60S i 60 sekunder. Om det inte anges väljs ett standardvärde på 30 sekunder. Tidsgränsen kan anges till högst 230 sekunder och minst 1 sekund.

Frågetyper för vektorer som stöds

Custom Web API-vektoriseraren stöder text, imageUrloch imageBinary vektorfrågor.

Exempeldefinition

"vectorizers": [
    {
        "name": "my-custom-web-api-vectorizer",
        "kind": "customWebApi",
        "customWebApiParameters": {
            "uri": "https://contoso.embeddings.com",
            "httpMethod": "POST",
            "httpHeaders": {
                "api-key": "0000000000000000000000000000000000000"
            },
            "timeout": "PT60S",
            "authResourceId": null,
            "authIdentity": null
        },
    }
]

JSON-nyttolaststruktur

Den nödvändiga JSON-nyttolaststrukturen som förväntas för en slutpunkt när du använder den med den anpassade webb-API-vektoriseraren är densamma som för den anpassade webb-API-färdigheten, vilket beskrivs mer detaljerat i dokumentationen för färdigheten.

Det finns följande andra saker att tänka på när du implementerar en webb-API-slutpunkt som ska användas med den anpassade webb-API-vektoriseraren.

  • Vektoriseraren skickar bara en post i taget i matrisen values när en begäran skickas till slutpunkten.

  • Vektoriseraren skickar data som ska vektoriseras i en specifik nyckel i data JSON-objektet i nyttolasten för begäran. Nyckeln är text, imageUrl, eller imageBinary, beroende på vilken typ av vektorfråga som begärdes.

  • Vektoriseraren förväntar sig att den resulterande inbäddningen ska vara under vector nyckeln i data JSON-objektet i svarsnyttolasten.

  • Eventuella fel eller varningar som returneras av slutpunkten ignoreras av vektoriseraren och kan inte hämtas i felsökningssyfte vid frågetillfället.

  • Om en imageBinary vektorfråga begärdes är nyttolasten för begäran som skickas till slutpunkten följande:

    {
        "values": [
            {
                "recordId": "0",
                "data":
                {
                    "imageBinary": {
                        "data": "<base 64 encoded image binary data>"
                    }
                }
            }
        ]
    }
    

Se även