Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Note
Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.
Wektoryfikator niestandardowego internetowego interfejsu API umożliwia skonfigurowanie zapytań wyszukiwania w celu wywołania internetowego punktu końcowego interfejsu API, który generuje osadzanie w czasie zapytania. Wymagana struktura ładunku JSON dla punktu końcowego została opisana w dalszej części tego artykułu. Dane są przetwarzane w regionie, w którym wdrożono model.
Mimo że wektoryzatory są używane w czasie wykonywania zapytania, należy określić je w definicjach indeksu i odwoływać się do nich w polach wektorów za pośrednictwem profilu wektorowego. Aby uzyskać więcej informacji, zobacz Konfigurowanie wektoryzatora w indeksie wyszukiwania.
Niestandardowy webowy wektorizer API jest wywoływany jako WebApiVectorizer w interfejsie REST API. Użyj najnowszej stabilnej wersji Indexes - Create (REST API) lub pakietu Azure SDK, który udostępnia tę funkcję.
Parametry wektoryzatora
Parametry są rozróżniane ze względu na wielkość liter.
| Nazwa parametru | opis |
|---|---|
uri |
URI internetowego interfejsu API, do którego są wysyłane dane JSON.
Dozwolony jest tylko schemat identyfikatora URI https. Odpowiedzi GET i LIST ukrywają poufne wartości zapytania, w tym sig i code. Aby zaktualizować wektoryzator bez zmiany przechowywanego URI, ustaw całą uri wartość na <unchanged>. Aby uzyskać informacje o zwracanych symbolach zastępczych i regułach dopasowania, zobacz Redagowanie identyfikatorów URI i aktualizacje zachowujące poświadczenia. |
httpMethod |
Metoda używana do wysyłania ładunku. Dozwolone metody to PUT lub POST. |
httpHeaders |
Kolekcja par klucz-wartość, w których klucze są nazwami nagłówków, a wartości są wysyłane do internetowego interfejsu API. Następujące nagłówki są zabronione: Accept, Accept-Charset, Accept-Encoding, Content-Length, Content-Type, Cookie, Host, TE, Upgrade i Via. Odpowiedzi GET i LIST zwracają <redacted> dla każdej wartości nagłówka. Aby uzyskać informacje o wymaganiach dotyczących aktualizacji, zobacz Aktualizuj wartości nagłówka po GET. |
authResourceId |
(Opcjonalnie) Ciąg, który, jeśli ustawiono, wskazuje, że ten wektorizer używa tożsamości zarządzanej dla połączenia z funkcją lub aplikacją hostująca kod. Ta właściwość przyjmuje identyfikator aplikacji (ID klienta) lub rejestrację aplikacji w Microsoft Entra ID w jednym z następujących formatów: api://<appId>, <appId>/.default, api://<appId>/.default. Ta wartość określa zakres tokenu uwierzytelniania pobranego przez potok zapytania i wysyłany za pomocą niestandardowego żądania internetowego interfejsu API do funkcji lub aplikacji. Ustawienie tej właściwości wymaga, aby usługa wyszukiwania była skonfigurowana dla tożsamości zarządzanej, a aplikacja funkcji Azure była skonfigurowana dla logowania Microsoft Entra. |
authIdentity |
(Opcjonalnie) Tożsamość zarządzana przez użytkownika używana przez search service do łączenia się z funkcją lub aplikacją hostująca kod. Można użyć tożsamości zarządzanej przez system lub tożsamości zarządzanej przez użytkownika. Aby użyć tożsamości zarządzanej przez system, pozostaw authIdentity wartość pustą. |
timeout |
(Opcjonalnie) Limit czasu klienta HTTP wywołującego interfejs API. Musi być sformatowana jako wartość XSD dayTimeDuration (ograniczony podzestaw wartości czasu trwania ISO 8601 ). Na przykład PT60S oznacza 60 sekund. Jeśli nie zostanie ustawiona, wartość domyślna to 30 sekund. Czas wyczekiwania może wynosić od 1 do 230 sekund. |
Obsługiwane typy zapytań wektorowych
Wektoryfikator niestandardowego internetowego interfejsu API obsługuje text, imageUrl, i imageBinary zapytania 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": "<your-header-value>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
]
Aktualizowanie wartości nagłówka po żądaniu GET
Gdy pobierasz definicję indeksu za pomocą GET lub wyświetlasz indeksy za pomocą LIST, usługa zwraca <redacted> dla każdej wartości httpHeaders w niestandardowym wektoryzatorze internetowego interfejsu API. Przykład:
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<redacted>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
Aby ponownie użyć przechowywanej api-key wartości, zaktualizuj ten sam istniejący wektoryzator przy użyciu tego samego nameelementu , kindi punktu końcowego. Prześlij ponownie zwrócony symbol zastępczy dla pasującej nazwy nagłówka:
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<redacted>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
Dla tego samego istniejącego wektoryzatora i punktu końcowego można mieszać <redacted> lub <unchanged> dla zachowanych wartości nagłówka z rzeczywistymi wartościami zastępczymi. Jawne wartości mają pierwszeństwo przed symbolami zastępczymi. Podaj rzeczywistą wartość dla każdego dodanego nagłówka lub nagłówka o zmienionej nazwie, ponieważ symbol zastępczy wymaga jednoznacznego istniejącego źródła. Aby uzyskać informacje na temat zmian w zapytaniu URI, zobacz Redagowanie identyfikatorów URI i aktualizacje zachowujące poświadczenia.
Jeśli zmienisz endpoint, podaj rzeczywisty URI i sekrety nagłówka w tej samej aktualizacji. Usługa nie używa ponownie przechowywanych sekretów dla innego punktu końcowego:
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://new.contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<new-header-value>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
Jeśli dane uwierzytelniające są niedostępne i musisz zmienić punkt końcowy, przeprowadzić rotację lub ponownie je wygenerować w zewnętrznym punkcie końcowym. Następnie prześlij razem nowe wartości uri i nagłówka.
Wartość <redacted> jest wartością wartowniczą usługi, a nie poświadczeniem. Nie może utworzyć wektoryzatora ani pobrać ani ponownie użyć wartości nagłówka przechowywanej dla innego wektoryzatora.
Maskowanie identyfikatorów URI i aktualizacje zachowujące dane logowania
To zachowanie parametru query w identyfikatorze URI dotyczy wszystkich wersji interfejsu API.
Gdy pobierasz indeks za pomocą GET lub wyświetlasz listę indeksów za pomocą LIST, usługa Wyszukiwanie AI platformy Azure ukrywa poufne wartości parametrów zapytania w identyfikatorze URI niestandardowego internetowego interfejsu API, w tym sig, code oraz wartości nagłówków HTTP. Te zanonimizowane wartości chronią sygnatury dostępu współdzielonego (SAS), klucze funkcji i poświadczenia nagłówka.
Aby zachować przechowywane sekrety, zaktualizuj ten sam istniejący zasób i punkt końcowy. Prześlij zwrócone <redacted> lub <unchanged> symbole zastępcze w żądaniu PUT do zarządzania. To żądanie PUT aktualizuje definicję indeksu; nie jest to wywołanie punktu końcowego kontrolowane przez element httpMethod wektoryzatora. Możesz również ustawić całe uri na <unchanged>, aby zachować przechowywany identyfikator URI.
Wartości sekretów nie są przenoszone do innego punktu końcowego ani kopiowane do nowego zasobu. Zmiana punktu końcowego, sklonowanie ocenzurowanej definicji lub ponowne wskazanie zasobu wymaga jawnych sekretów.
Jeśli usługa nie może zidentyfikować jednego jednoznacznego istniejącego źródła dla symbolu zastępczego, funkcja PUT zakończy się niepowodzeniem 400 Bad Request i zażąda rzeczywistej wartości sekretu. Nierozwiązane lub pozostawione symbole zastępcze nie są danymi uwierzytelniającymi do użycia. Przywracanie sekretów jest niepodzielne: jeśli przywracanie się nie powiedzie, nie powoduje częściowego zastosowania zmian identyfikatora URI ani nagłówka.
W dowolnym momencie możesz podać zastępczy identyfikator URI lub sekrety nagłówka. Jawne wartości mają pierwszeństwo przed symbolami zastępczymi.
Aktualizacje zapytań URI są zgodne z następującymi regułami:
- W przypadku parametru Azure Function
codemożna zaktualizować inne parametry zapytania inne niż tajne, zachowując przechowywany klucz funkcji dla tego samego punktu końcowego. - W przypadku parametru SAS
sigsygnatura jest powiązana z otaczającą konfiguracją kwerendy bez wpisu tajnego. Jeśli zmieni się zakres, uprawnienia, wygaśnięcie, zasób, wersja, kolejność, wielkość liter lub kodowanie, podaj nowy podpis. Nawet semantycznie równoważny tekst zapytania o zmienionej kolejności lub ponownie zakodowany wymaga nowego podpisu.
Nazwy parametrów tajnego zapytania są rozpoznawane bez uwzględniania wielkości liter i również po zakodowaniu procentowym. Usługa zachowuje reprezentację identyfikatora URI zamiast go normalizować. Powtarzające się tajne parametry są dopasowywane według wystąpienia. Jeśli wzorzec ich wystąpienia nie jest już zgodny z przechowywanym identyfikatorem URI, podaj rzeczywiste wartości.
Istniejące przepływy pracy GET-then-PUT używające <redacted> lub <unchanged> pozostają obsługiwane. Aby zapoznać się z przykładami nagłówków, zobacz Aktualizowanie wartości nagłówka po metodzie GET.
W przypadku umiejętności niestandardowych zobacz Ukrywanie identyfikatora URI umiejętności niestandardowej usługi Web API i aktualizacje zachowujące poświadczenia.
Struktura ładunku JSON
Wymagana struktura ładunku JSON dla punktu końcowego używanego z wektoryzatorem Custom Web API jest taka sama jak struktura używana przez umiejętność Custom Web API. Aby uzyskać więcej informacji, zobacz dokumentację umiejętności.
Podczas wdrażania punktu końcowego interfejsu Web API dla niestandardowego wektoryzatora Web API należy pamiętać o następujących kwestiach:
Wektoryzator wysyła tylko jeden rekord w tablicy
valuesjednocześnie podczas wysyłania żądania do punktu końcowego.Wektoryzator przekazuje dane do wektoryzacji w kluczu
dataw określonym obiekcie JSON w ładunku żądania. Ten klucz totext,imageUrllubimageBinary, w zależności od żądanego typu zapytania wektorowego.Wektoryzator oczekuje, że wynikowe osadzenie znajdzie się pod kluczem
vectorw obiekcie JSONdataw danych odpowiedzi.Wektoryzator ignoruje wszelkie błędy lub ostrzeżenia zwrócone przez punkt końcowy. Te błędy i ostrzeżenia nie są dostępne do debugowania w czasie wykonywania zapytań.
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>" } } } ] }