Udostępnij za pośrednictwem


Niestandardowy wektory interfejsu API sieci Web

Niestandardowy wektoryfikator internetowego interfejsu API umożliwia skonfigurowanie zapytań wyszukiwania w celu wywołania punktu końcowego internetowego interfejsu API w celu wygenerowania osadzania w czasie zapytania. Struktura ładunku JSON wymaganego do zaimplementowania w podanym punkcie końcowym została opisana w dalszej części tego dokumentu. Dane są przetwarzane w obszarze geograficznym, w którym wdrożono model.

Wektoryzatory są używane w czasie zapytania, ale określone w definicjach indeksu i przywoływały do pól wektorowych za pośrednictwem profilu wektorowego. Niestandardowy internetowy wektorizer interfejsu API jest wywoływany WebApiVectorizer w interfejsie API.

Parametry wektoryzatora

W parametrach jest rozróżniana wielkość liter.

Nazwa parametru opis
uri Identyfikator URI internetowego interfejsu API, do którego jest wysyłany ładunek JSON. Dozwolony jest tylko schemat identyfikatora URI https.
httpMethod Metoda do użycia podczas wysyłania ładunku. Dozwolone metody są PUT lub POST
httpHeaders Kolekcja par klucz-wartość, w których klucze reprezentują nazwy nagłówków i wartości reprezentują wartości nagłówków wysyłane do internetowego interfejsu API wraz z ładunkiem. Następujące nagłówki nie mogą być w tej kolekcji: Accept, Accept-CharsetUpgradeAccept-EncodingContent-LengthTEContent-TypeCookieHost. Via
authResourceId (Opcjonalnie) Ciąg, który w przypadku ustawienia wskazuje, że ten wektorizer powinien używać tożsamości zarządzanej w połączeniu z funkcją lub aplikacją hostująca kod. Ta właściwość przyjmuje identyfikator aplikacji (klienta) lub rejestrację aplikacji w identyfikatorze Entra firmy Microsoft w dowolnym z następujących formatów: api://<appId>, , <appId>/.defaultapi://<appId>/.default. Ta wartość służy do określania zakresu tokenu uwierzytelniania pobranego przez indeksator i jest wysyłana wraz z niestandardowym żądaniem internetowego interfejsu API do funkcji lub aplikacji. Ustawienie tej właściwości wymaga skonfigurowania usługi wyszukiwania pod kątem tożsamości zarządzanej, a aplikacja funkcji platformy Azure jest skonfigurowana na potrzeby logowania w usłudze Microsoft Entra.
authIdentity (Opcjonalnie) Tożsamość zarządzana przez użytkownika używana przez usługę wyszukiwania do nawiązywania połączenia z funkcją lub aplikacją hostująca kod. Możesz użyć tożsamości zarządzanej przez system lub użytkownika. Aby użyć tożsamości zarządzanej przez system, pozostaw authIdentity wartość pustą.
timeout (Opcjonalnie) Po określeniu wskazuje limit czasu dla klienta http wykonującego wywołanie interfejsu API. Musi być sformatowana jako wartość XSD "dayTimeDuration" (ograniczony podzestaw wartości czasu trwania ISO 8601). Na przykład PT60S przez 60 sekund. Jeśli nie zostanie ustawiona, zostanie wybrana wartość domyślna 30 sekund. Limit czasu można ustawić na maksymalnie 230 sekund i co najmniej 1 sekundę.

Obsługiwane typy zapytań wektorowych

Wektoryfikator niestandardowego internetowego interfejsu API obsługuje textzapytania , imageUrli imageBinary wektorów.

Przykładowa definicja

"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
        },
    }
]

Struktura ładunku JSON

Wymagana struktura ładunku JSON oczekiwana dla punktu końcowego w przypadku używania go z niestandardowym wektoryzatorem internetowego interfejsu API jest taka sama jak niestandardowa umiejętność internetowego interfejsu API, która została omówiona bardziej szczegółowo w dokumentacji dotyczącej umiejętności.

Podczas implementowania internetowego punktu końcowego interfejsu API do użycia z niestandardowym wektoryzatorem internetowego interfejsu API należy wziąć pod uwagę następujące zagadnienia.

  • Wektoryzator wysyła tylko jeden rekord w czasie w tablicy values podczas wysyłania żądania do punktu końcowego.

  • Wektoryzator przekazuje dane do wektoryzowane w określonym kluczu data w obiekcie JSON w ładunku żądania. Ten klucz to text, imageUrllub imageBinary, w zależności od żądanego typu zapytania wektorowego.

  • Wektoryzator oczekuje, że wynikowe osadzanie będzie znajdować się pod kluczem vector w data obiekcie JSON w ładunku odpowiedzi.

  • Wszelkie błędy lub ostrzeżenia zwrócone przez punkt końcowy są ignorowane przez wektoryzatora i nie można uzyskać do celów debugowania w czasie zapytania.

  • Jeśli zażądano zapytania wektorowego imageBinary , ładunek żądania wysłany do punktu końcowego jest następujący:

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

Zobacz też