Egyéni webes API-vektorizáló

Note

Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.

Az egyéni webes API-vektorizáló lehetővé teszi a keresési lekérdezések konfigurálását egy webes API-végpont meghívására, amely beágyazásokat hoz létre a lekérdezési időpontban. A végponthoz szükséges JSON hasznos adatstruktúrát a cikk későbbi részében ismertetjük. Az adatokat azon földrajzi helyen dolgozzák fel, ahol a modell üzembe van helyezve.

Bár a vektorizálókat a lekérdezési időpontban használják, indexdefiníciókban adhatja meg őket, és vektorprofilon keresztül hivatkozhat rájuk a vektormezőkön. További információ: Vektorizáló konfigurálása keresési indexben.

Az egyéni webes API-vektorizáló meghívása a REST API-ban történik WebApiVectorizer . Használja a Indexes – Létrehozás (REST API) legújabb stabil verzióját, vagy a funkciót biztosító Azure SDK-csomagot.

Vektorizáló paraméterek

A paraméterek megkülönböztetik a kis- és nagybetűket.

Paraméter neve Leírás
uri Annak a webes API-nak az URI-ja, amelyre a JSON hasznos adatokat tartalmazó kéréseket küldik. Csak a https URI-séma engedélyezett. Amikor GET-tel lekéri az indexet, a szolgáltatás a ?code= lekérdezési paraméter értékét ?code=<redacted> értékként adja vissza, hogy megakadályozza a függvénykulcsok felfedését. Ha a vektorizálót a tárolt URI módosítása nélkül szeretné frissíteni, állítsa a uri következőre <unchanged>: .
httpMethod A hasznos teher küldéséhez használt módszer. Az engedélyezett metódusok a következők: PUT vagy POST.
httpHeaders Kulcs-érték párok gyűjteménye, amelyekben a kulcsok fejlécnevek és értékek lesznek elküldve a webes API-nak. A következő fejlécek tiltottak: Accept, Accept-Charset, , Accept-Encoding, Content-LengthContent-Type, Cookie, Host, TE, Upgradeés Via. A GET minden fejlécértékhez visszaadja a sentinel értéket <redacted> . A frissítési követelményekről a GET után a Fejlécértékek frissítése című témakörben olvashat.
authResourceId (Nem kötelező) Egy sztring, amely ha be van állítva, azt jelzi, hogy ez a vektorizáló felügyelt identitást használ a kódot üzemeltető függvényhez vagy alkalmazáshoz való csatlakozáshoz. Ez a tulajdonság az alkalmazás (ügyfél) azonosítóját vagy alkalmazásregisztrációját adja meg a Microsoft Entra ID-ban, a következő formátumok egyikében: api://<appId>, <appId>/.default, api://<appId>/.default. Ez az érték korlátozza a hitelesítési token hatályát, amelyet a lekérési csatorna kér le, és az egyedi webes API-kérelemmel együtt küld a függvénynek vagy alkalmazásnak. A tulajdonság beállításához a keresési szolgáltatás felügyelt identitásra van konfigurálva, és az Azure függvényalkalmazás konfigurálva van a Microsoft Entra bejelentkezéshez.
authIdentity (Nem kötelező) A search service által a kódot futtató függvényhez vagy alkalmazáshoz való csatlakozáshoz használt, felhasználó által felügyelt identitás. Rendszer által felügyelt vagy felhasználó által felügyelt identitást is használhat. Rendszer által felügyelt identitás használatához hagyja üresen authIdentity .
timeout (Nem kötelező) Az API-hívást végrehajtó HTTP-ügyfél határideje. XSD-értékként dayTimeDuration kell formázni (az ISO 8601 időtartamérték korlátozott részhalmaza). Ez például PT60S 60 másodpercet jelent. Ha nincs beállítva, az alapértelmezett érték 30 másodperc. Az időtúllépés 1 és 230 másodperc között lehet.

Támogatott vektoros lekérdezéstípusok

A Custom Web API vektorosító támogatja a text, imageUrl és imageBinary vektoros lekérdezéseket.

Mintadefiníció

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

Fejlécértékek frissítése a GET után

Amikor lekéri az indexdefiníciót, a szolgáltatás visszaadja a sentinelt <redacted> egy egyéni webes API-vektorizáló minden httpHeaders értékéhez. Például:

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

A tárolt api-key érték újbóli felhasználásához frissítse ugyanazt a meglévő vektorizálót ugyanazzal name , és kindhagyja uri változatlanul, és küldje el újra a sentinelt a megfelelő fejlécnévhez:

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

Változatlan uriértékekkel kombinálhatja <redacted> a megőrzött fejlécértékeket más meglévő fejlécek tényleges helyettesítő értékeivel. Adjon meg egy tényleges értéket minden hozzáadott vagy átnevezett fejléchez, mert a sentinel csak egy olyan meglévő fejlécre vonatkozik, amelynek ugyanaz a neve ugyanazon a vektorizálón.

Ha módosítja a urielemet, adjon meg tényleges értékeket minden bejegyzéshez httpHeaders ugyanabban a frissítésben. A szolgáltatás nem használja újra a tárolt értékeket egy másikhoz 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
    }
}

Ha a hitelesítő adatok nem érhetők el, és módosítania kell a urihitelesítő adatokat, forgassa vagy hozza létre újra őket a külső végponton. Ezután küldje el együtt az új uri és fejlécértékeket.

Az <redacted> érték egy szolgáltatásküldő, nem pedig hitelesítő adat. Nem tud vektorizálót létrehozni, és nem tudja beolvasni vagy újra felhasználni egy másik vektorizálóhoz tárolt fejlécértéket.

JSON adatcsomag struktúra

Az Egyéni webes API-vektorizálóval használt végponthoz szükséges JSON hasznos adatstruktúra megegyezik az Egyéni webes API-képesség által használt struktúrával. További információkért tekintse meg a szakértelem dokumentációját.

Tartsa szem előtt a következő szempontokat, amikor webes API-végpontot implementál az egyéni webes API-vektorizálóhoz:

  • A vektorizáló egyszerre csak egy rekordot küld a tömbben, values amikor kérést küld a végpontnak.

  • A vektorizáló átadja a vektorizálandó adatokat a kérelem hasznos adategységében lévő data JSON-objektum egy adott kulcsában. Ez a kulcs , textimageUrlvagy imageBinaryattól függően, hogy milyen típusú vektoros lekérdezést kértek.

  • A vektorizáló elvárja, hogy az eredményként kapott beágyazás a vector kulcs alatt legyen a data JSON-objektumban a válasz adatcsomagjában.

  • A vektorizáló figyelmen kívül hagyja a végpont által visszaadott hibákat vagy figyelmeztetéseket. Ezek a hibák és figyelmeztetések nem állnak rendelkezésre a lekérdezés közbeni hibakereséshez.

  • imageBinary Ha vektoros lekérdezést kértek, a végpontnak küldött kérelem terjedelme a következő:

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

Lásd még