Vlastní vektorizátor webového rozhraní API

Note

Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.

Vektorizátor Custom Web API umožňuje konfigurovat vyhledávací dotazy pro volání endpointu webového rozhraní API, který generuje embeddingy v době dotazu. Požadovaná struktura datové části JSON pro koncový bod je popsaná dále v tomto článku. Vaše data se zpracovávají v geografii kde je váš model nasazený.

I když se vektorizátory používají v době dotazu, zadáte je v definicích indexu a odkazujete na ně na vektorová pole prostřednictvím vektorového profilu. Další informace naleznete v tématu Konfigurace vektorizátoru v indexu vyhledávání.

Vlastní vektorizátor webového rozhraní API se volá WebApiVectorizer v rozhraní REST API. Použijte nejnovější stabilní verzi Indexes – Create (REST API) nebo balíček sady AZURE SDK, který tuto funkci poskytuje.

Parametry vektorizátoru

Parametry jsou citlivé na velikost písmen.

Název parametru Popis
uri Identifikátor URI webového rozhraní API, do kterého se odesílá datová část JSON. Je povoleno pouze schéma URI https. Když získáte index pomocí metody GET, služba vrátí hodnotu parametru dotazu ?code= jako ?code=<redacted>, aby se zabránilo zveřejnění klíčů funkcí. Chcete-li aktualizovat vektorizátor beze změny uloženého identifikátoru URI, nastavte na urihodnotu <unchanged> .
httpMethod Metoda použitá k odeslání datové části. Povolené metody jsou PUT nebo POST.
httpHeaders Kolekce párů klíč-hodnota, ve kterých jsou klíče názvy hlaviček a hodnoty se posílají do webového rozhraní API. Následující hlavičky jsou zakázány: Accept, , Accept-Charset, Accept-EncodingContent-Length, Content-Type, Cookie, Host, TE, , Upgrade, a Via. Funkce GET vrátí hodnotu <redacted> sentinelu pro každou hodnotu hlavičky. Informace o požadavcích na aktualizaci najdete v tématu Aktualizace hodnot hlaviček po příkazu GET.
authResourceId (Volitelné) Řetězec, který v případě nastavení označuje, že tento vektorizátor používá spravovanou identitu pro připojení k funkci nebo aplikaci hostující kód. Tato vlastnost přebírá ID aplikace (klienta) nebo registraci aplikace Microsoft Entra ID v jednom z těchto formátů: api://<appId>, <appId>/.default, api://<appId>/.default. Tato hodnota vymezuje ověřovací token načtený kanálem dotazu a odesílaný spolu s přizpůsobeným požadavkem webového API do funkce nebo aplikace. Nastavení této vlastnosti vyžaduje, aby váš search service byl nakonfigurovaný pro spravovanou identitu a aplikace funkcí Azure je nakonfigurovaná pro přihlášení k Microsoft Entra.
authIdentity (Volitelné) Identita spravovaná uživatelem používaná search service pro připojení k funkci nebo aplikaci hostující kód. Můžete použít identitu spravovanou systémem nebo spravovanou uživatelem. Pokud chcete použít identitu spravovanou systémem, nechejte authIdentity prázdnou.
timeout (Volitelné) Časový limit pro klienta HTTP, který provádí volání rozhraní API. Musí být formátovaná jako hodnota XSD dayTimeDuration (omezená podmnožina hodnoty doby trvání ISO 8601 ). Například PT60S to znamená 60 sekund. Pokud není nastavená, výchozí hodnota je 30 sekund. Časový limit může být 1 až 230 sekund.

Podporované typy vektorových dotazů

Vektorizátor vlastního webového rozhraní API podporuje text, imageUrl a imageBinary vektorové dotazy.

Ukázková definice

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

Aktualizace hodnot hlaviček po příkazu GET

Když načtete definici indexu, vrátí služba sentinel <redacted> pro každou httpHeaders hodnotu vektorizátoru vlastního webového rozhraní API. Příklady:

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

Pokud chcete uloženou api-key hodnotu znovu použít, aktualizujte stejný existující vektorizátor stejným name způsobem a kindponechte ho uri beze změny a znovu odešlete sentinel pro odpovídající název hlavičky:

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

Beze změny urimůžete pro zachování hodnot záhlaví kombinovat <redacted> se skutečnými náhradními hodnotami pro ostatní existující hlavičky. Zadejte skutečnou hodnotu pro každou přidanou nebo přejmenovanou hlavičku, protože sentinel se vztahuje pouze na existující hlavičku se stejným názvem na stejném vektorizátoru.

Pokud změníte urihodnotu , zadejte skutečné hodnoty pro každou httpHeaders položku ve stejné aktualizaci. Služba opakovaně nepoužívá uložené hodnoty pro jinou uri:

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

Pokud jsou přihlašovací údaje nedostupné a musíte je změnit uri, otočte je nebo znovu vygenerujte na externím koncovém bodu. Pak společně odešlete nové uri hodnoty a hodnoty záhlaví.

Hodnota <redacted> je služba sentinel, nikoli přihlašovací údaje. Nemůže vytvořit vektorizátor ani načíst nebo znovu použít hodnotu hlavičky uloženou pro jiný vektorizátor.

Struktura datové části JSON

Požadovaná struktura datové části JSON pro koncový bod použitý s vektorizátorem vlastního webového rozhraní API je stejná jako struktura používaná dovedností vlastního webového rozhraní API. Další informace najdete v dokumentaci ke dovednostem.

Při implementaci koncového bodu webového rozhraní API pro vektorizátor vlastního webového rozhraní API mějte na paměti následující skutečnosti:

  • Vektorizátor odesílá v poli values pouze jeden záznam najednou při požadavku na koncový bod.

  • Vektorizátor předává data, která se mají vektorizovat v určitém klíči objektu data JSON v datové části požadavku. Tento klíč je text, imageUrlnebo imageBinary, v závislosti na typu vektorového dotazu byl požadován.

  • Vektorizátor očekává, že výsledné vkládání bude pod vector klíčem v objektu data JSON v datové části odpovědi.

  • Vektorizátor ignoruje všechny chyby nebo upozornění vrácené koncovým bodem. Tyto chyby a upozornění nejsou k dispozici pro ladění v době dotazu.

  • Pokud byl požadován vektorový imageBinary dotaz, datová část požadavku odeslaná do koncového bodu je následující:

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

Viz také