Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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-képesség használatával bővítheti az AI-bővítést egy egyéni műveleteket biztosító webes API-végpont meghívásával. A beépített képességekhez hasonlóan az egyéni webes API-képességek bemenetekkel és kimenetekkel is rendelkezik. A bemenettől függően a webes API JSON hasznos adatokat kap az indexelő futtatásakor, és válaszként egy JSON hasznos adatot ad vissza a sikerességi állapotkóddal együtt. A válasznak tartalmaznia kell az egyéni képesség által megadott kimeneteket. A rendszer minden más választ hibának tekint, és nem végez bővítést. A JSON hasznos adatok struktúráját a dokumentum későbbi részében ismertetjük.
Az Egyéni webes API-készség a Azure OpenAI On Your Data funkció implementációjában is használatos. Ha Azure OpenAI szerepköralapú hozzáférésre van konfigurálva, és a vektorindex létrehozásakor hibaüzenet jelenik meg403 Forbidden, ellenőrizze, hogy Azure AI Keresés rendelkezik-e rendszer által hozzárendelt identitással, és megbízható szolgáltatásként fut-e Azure OpenAI-n.
Note
Az indexelő kétszer újrapróbálkozza a webes API-ból visszaadott szabványos HTTP-állapotkódokat. Ezek a HTTP-állapotkódok a következők:
502 Bad Gateway503 Service Unavailable429 Too Many Requests
@odata.type
Microsoft.Skills.Custom.WebApiSkill
Képességparamé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 küldi. Csak a https URI-séma engedélyezett. Amikor lekéri a képességkészletet a GET használatával, a szolgáltatás visszaadja a ?code= lekérdezési paraméter értékét ?code=<redacted> , hogy megakadályozza a függvénykulcsok expozícióját. Ha a készséget a tárolt URI módosítása nélkül szeretné frissíteni, állítsa a uri következőre <unchanged>: . |
authResourceId |
(Nem kötelező) Egy sztring, amely ha be van állítva, azt jelzi, hogy ennek a képességnek rendszer által felügyelt identitást kell használnia a kódot futtató függvényhez vagy alkalmazáshoz való kapcsolaton. Ez a tulajdonság az alkalmazás (ügyfél) azonosítóját vagy egy alkalmazás regisztrációját veszi Microsoft Entra ID a következő formátumok bármelyikében: api://<appId>, <appId>/.defaultvagy api://<appId>/.default. Ez az érték az indexelő által lekért hitelesítési jogkivonat hatókörére szolgál, és az Egyéni webes API-képességkéréssel együtt elküldi a függvénynek vagy alkalmazásnak. A tulajdonság beállításához a keresési szolgáltatásnak konfigurálnia kell a felügyelt identitást , az Azure-függvényalkalmazás pedig a Microsoft Entra-bejelentkezéshez van konfigurálva. A paraméter használatához hívja meg az API-t vagy az újabb verziót api-version=2023-10-01-preview . A megfelelő érték kiválasztásával kapcsolatos útmutatásért lásd : authResourceId Az érték értelmezése. |
authIdentity |
(Nem kötelező) A keresőszolgáltatás által a kódot üzemeltető függvényhez vagy alkalmazáshoz való csatlakozáshoz használt, felhasználó által felügyelt identitás. Rendszer- vagy felhasználó által felügyelt identitást is használhat. A rendszer által felügyelt identitás használatához hagyja üresen authIdentity . |
httpMethod |
A hasznos adatok küldése során használandó módszer. Az engedélyezett metódusok PUTPOST |
httpHeaders |
Kulcs-érték párok gyűjteménye, ahol a kulcsok fejlécneveket, az értékeket pedig a webes API-nak küldött fejlécértékeket és a hasznos adatokat jelölik. A következő fejlécek nem szerepelnek ebben a gyűjteményben: Accept, , Accept-CharsetAccept-Encoding, Content-Length, Content-Type, Cookie, HostTEUpgradeVia. Amikor lekéri a tudáskészletet a GET használatával, a szolgáltatás visszaadja <redacted> az összes fejlécértéket, hogy megakadályozza az olyan hitelesítő adatok expozícióját, mint a tulajdonosi jogkivonatok és az API-kulcsok. Ha a készséget a tárolt fejlécértékek módosítása nélkül szeretné frissíteni, állítsa az egyes értékeket a következőre <unchanged>: . A szolgáltatás visszaállítja az eredeti tárolt értéket. |
timeout |
(Nem kötelező) Ha meg van adva, az API-hívást kezdeményező HTTP-ügyfél időtúllépését jelzi. XSD "dayTimeDuration" értékként kell formázni (az ISO 8601 időtartamérték korlátozott részhalmaza). Például PT60S 60 másodpercig. Ha nincs beállítva, a rendszer 30 másodperces alapértelmezett értéket választ. Az időtúllépés legfeljebb 230 másodpercre és legalább 1 másodpercre állítható be. |
batchSize |
(Nem kötelező) Azt jelzi, hogy az API-hívásonként hány "adatrekord" (lásd az alábbi JSON hasznos adatstruktúrát) küldi el. Ha nincs beállítva, a rendszer az 1000 alapértelmezett értéket választja. Ezzel a paraméterrel megfelelő kompromisszumot érhet el az indexelési átviteli sebesség és az API terhelése között. |
degreeOfParallelism |
(Nem kötelező) Ha meg van adva, az indexelő által a megadott végpontokkal párhuzamosan indított hívások számát jelzi. Ezt az értéket csökkentheti, ha a végpont nyomás alatt meghibásodik, vagy megemelheti, ha a végpont képes kezelni a terhelést. Ha nincs beállítva, a rendszer az alapértelmezett 5 értéket használja. A degreeOfParallelism beállítás legfeljebb 10 lehet, de legalább 1 is lehet. |
Az authResourceId érték értelmezése
Ha egy egyéni webes API-képesség felügyelt identitáshitelesítést használ, Azure AI Keresés beszerez egy Microsoft Entra hozzáférési jogkivonatot, és elküldi azt az egyéni képességvégpontnak. A authResourceId tulajdonság megadja az erőforrás-azonosítót, más néven a célközönséget vagy az alkalmazásazonosító URI-t, amelyhez a jogkivonatot kérik. Az értéknek meg kell egyeznie azzal, amit a célalkalmazás elvár a jogkivonat érvényesítése során. Ellenkező esetben a hitelesítés válaszsal 401 Unauthorized meghiúsul.
Az authResourceId érték azonosítja az egyéni készséget üzemeltető alkalmazást. Nem a keresési szolgáltatás vagy az indexelő URL-címe.
Az alábbi táblázat a gyakori formátumokat mutatja be:
| Célalkalmazás |
authResourceId Érték |
|---|---|
| Microsoft Entra védett webalkalmazás | api://<application-client-id> |
| Egyéni alkalmazásazonosító URI-val konfigurált alkalmazás | Egyéni alkalmazásazonosító URI-ja, például api://contoso-customskill |
| Azure Microsoft Entra ID által védett függvény | A függvényalkalmazás alkalmazásregisztrációjára konfigurált alkalmazásazonosító URI, például api://contoso-funcapp |
A tulajdonság a hatókör utótaggal és anélkül is elfogadja a .default formátumokat. Az alkalmazásazonosító URI-jának közvetlen egyeztetésére szolgál api://<appId> . Ha például .defaultutótagot api://<appId>/.default is tartalmaz, a hozzáférési jogkivonat jogcíme aud az alapalkalmazás-azonosító URI-t tartalmazza az utótag nélkül.
Az Azure függvény Microsoft Entra hitelesítésének konfigurálásához és beállításához authResourceIdlásd: A keresési szolgáltatás által felügyelt identitás használata Azure függvényalkalmazáshoz való csatlakozáshoz.
Példa: Azure Microsoft Entra ID által védett függvény
Ebben a példában Azure AI Keresés beszerez egy hozzáférési jogkivonatot a célközönség számára, amelyet authResourceId az egyéni képességvégpont meghívásakor a jogkivonat is tartalmaz.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"uri": "https://contoso-function.azurewebsites.net/api/enrich",
"authResourceId": "api://contoso-customskill"
}
Készségbemenetek
Ez a képesség nem rendelkezik előre definiált bemenetekkel. A bemenetek bármely meglévő mező vagy a bővítési fa bármely csomópontja, amelyet át szeretne adni az egyéni képességnek.
Képességkimenetek
Ez a képesség nem rendelkezik előre definiált kimenetekkel. Mindenképpen adjon meg kimeneti mezőleképezést az indexelőben, ha a képesség kimenetét a keresési index egy mezőjébe kell küldeni.
Mintadefiníció
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "A custom skill that can identify positions of different phrases in the source text",
"uri": "https://contoso.count-things.com",
"batchSize": 4,
"context": "/document",
"inputs": [
{
"name": "text",
"source": "/document/content"
},
{
"name": "language",
"source": "/document/languageCode"
},
{
"name": "phraseList",
"source": "/document/keyphrases"
}
],
"outputs": [
{
"name": "hitPositions"
}
]
}
Note
Ha a GET használatával kér le egy készségkészletet, a szolgáltatás az összes <redacted> értékre és httpHeaders a ?code=<redacted>lekérdezési paraméterre ?code= ad vissza.uri Mindkét érték megakadályozza a hitelesítő adatok kitettségét a keresési szolgáltatás közreműködői szerepkörével rendelkező hívók számára, de a külső szolgáltatásban nincs szerepkör. Ha úgy szeretné frissíteni a képességet, hogy nem módosítja ezeket a tárolt értékeket, adja át <unchanged> az egyes érintett mezőket.
Az alábbi példa egy get választ mutat be egy fejlécalapú hitelesítést és egy Azure függvény URI-t használó képességhez:
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"uri": "https://contoso.example.org/api?code=<redacted>",
"httpMethod": "POST",
"name": "myCustomSkill",
"httpHeaders": {
"Authorization": "<redacted>",
"Ocp-Apim-Subscription-Key": "<redacted>"
}
}
Ha a meglévő értékek módosítása nélkül szeretné frissíteni ezt a képességet, használja <unchanged>a következőt:
{
"uri": "<unchanged>",
"httpHeaders": {
"Authorization": "<unchanged>",
"Ocp-Apim-Subscription-Key": "<unchanged>"
}
}
Minta bemeneti JSON-struktúra
Ez a JSON-struktúra a webes API-nak küldött hasznos adatokat jelöli. Mindig az alábbi korlátozásokat követi:
A legfelső szintű entitás neve
valuesobjektumtömb. Ezeknek az objektumoknak a száma legfeljebb abatchSize.A tömb minden objektuma a
valueskövetkező:Egy
recordIdegyedi sztringet tartalmazó tulajdonság, amely a rekord azonosítására szolgál.JSON-objektumnak
dataminősülő tulajdonság. A tulajdonság mezőidataa képességdefiníció szakaszábaninputsmegadott "neveknek" felelnek meg. Ezeknek a mezőknek az értékei ezekből asourcemezőkből származnak (amelyek a dokumentum egy mezőjéből vagy esetleg egy másik képességből származhatnak).
{
"values": [
{
"recordId": "0",
"data":
{
"text": "Este es un contrato en Inglés",
"language": "es",
"phraseList": ["Este", "Inglés"]
}
},
{
"recordId": "1",
"data":
{
"text": "Hello world",
"language": "en",
"phraseList": ["Hi"]
}
},
{
"recordId": "2",
"data":
{
"text": "Hello world, Hi world",
"language": "en",
"phraseList": ["world"]
}
},
{
"recordId": "3",
"data":
{
"text": "Test",
"language": "es",
"phraseList": []
}
}
]
}
Minta kimeneti JSON-struktúra
A "kimenet" a webes API-ból visszaadott válasznak felel meg. A webes API-nak csak JSON hasznos adatokat kell visszaadnia (a Content-Type válaszfejlécen ellenőrizve), és meg kell felelnie a következő korlátozásoknak:
Egy legfelső szintű entitásnak
valueskell lennie, amelynek objektumtömbnek kell lennie.A tömbben lévő objektumok számának meg kell egyeznie a webes API-nak küldött objektumok számával.
Minden objektumnak a következőnek kell lennie:
Egy
recordIdtulajdonság.Egy
datatulajdonság, amely egy olyan objektum, amelyben a mezők olyan gazdagítások, amelyek megfelelnek aoutput"neveknek", és amelynek értékét a gazdagításnak tekintik.Egy
errorstulajdonság, egy tömb, amely felsorolja az indexelőzmények végrehajtási előzményeihez hozzáadott hibákat. Ez a tulajdonság kötelező, de lehetnullértéke.Egy
warningstulajdonság, egy tömb, amely felsorolja az indexelőzmények végrehajtási előzményeihez hozzáadott figyelmeztetéseket. Ez a tulajdonság kötelező, de lehetnullértéke.
Az objektumok sorrendje a kérelemben
valuesvagy a válaszban nem fontos. A rendszer azonban arecordIdkorrelációhoz használja, így a válaszbanrecordIdszereplő olyan rekordokat, amelyek nem részei a Webes API-nak küldött eredeti kérésnek, elvetik.
{
"values": [
{
"recordId": "3",
"data": {
},
"errors": [
{
"message" : "'phraseList' should not be null or empty"
}
],
"warnings": null
},
{
"recordId": "2",
"data": {
"hitPositions": [6, 16]
},
"errors": null,
"warnings": null
},
{
"recordId": "0",
"data": {
"hitPositions": [0, 23]
},
"errors": null,
"warnings": null
},
{
"recordId": "1",
"data": {
"hitPositions": []
},
"errors": null,
"warnings": [
{
"message": "No occurrences of 'Hi' were found in the input text"
}
]
},
]
}
Hibaesetek leírása
Amellett, hogy a webes API nem érhető el, vagy nem sikeres állapotkódokat küld, vegye figyelembe a következő eseteket:
Ha a webes API sikeres állapotkódot ad vissza, de a válasz azt jelzi, hogy nem
application/json, a válasz érvénytelen, és nem történik bővítés.Ha a választömb
valuesérvénytelen rekordokat tartalmaz (például hiányzó vagy duplikáltrecordId), az érvénytelen rekordok nem lesznek gazdagítva. Egyéni készségek fejlesztésekor tartsa be a webes API-készségszerződést. Ebben a példában a Power Skill-adattárban található, a várt szerződést követő példára hivatkozhat.
Ha a webes API nem érhető el, vagy HTTP-hibát ad vissza, az indexelőzmények rövid hibát tartalmaznak a HTTP-hibával kapcsolatos esetleges részletekkel.
A felügyelt identitás hitelesítésének biztonsági szempontjai
Ha egyéni webes API-képességgel rendelkező felügyelt identitáshitelesítést használ, Azure AI Keresés lekér egy Microsoft Entra hozzáférési jogkivonatot az általa azonosított authResourceId alkalmazáshoz, és a jogkivonatot a megadott urivégpontra küldött kérelmekben is tartalmazza. A hivatkozott uri végpont általában a Azure függvény, Azure App Service, Azure API Management végpont vagy egy másik Microsoft Entra által védett alkalmazás. Ön felel a végpont és az általa azonosított alkalmazás közötti kapcsolat konfigurálásáért és fenntartásáért authResourceId.
A hitelesítési módszertől függetlenül az egyéni készségbemenetek tartalmazhatnak az ügyfél által megadott dokumentumokból vagy ezekből a dokumentumokból származó értékeket. Az összes egyéni készségbemenetet ne megbízhatóként kezelje. Azure AI Keresés továbbítja a képességkészletben konfigurált bemeneteket a végpontnak anélkül, hogy értelmezi, érvényesíti vagy korlátozza az egyéni megvalósításhoz szükséges tartalmakat.
Ellenőrizze és korlátozza a dokumentumból származtatott értékeket az egyéni képességében, mielőtt kimenő kérésekben vagy más biztonsági szempontból érzékeny műveletekben használva használnák őket. Használjon bemeneti érvényesítést, célengedélylistákat, URL-címet és állomásnév-ellenőrzést, protokollkorlátozásokat és minimális jogosultságú hálózati hozzáférést, amely csak azokat a célhelyeket és portokat teszi lehetővé, amelyekre a képességnek szüksége van. További információ: Architektúrastratégiák a hálózatkezeléshez és a kapcsolatokhoz.
Ajánlott biztonsági eljárások
A biztonságos üzembe helyezés fenntartásához kövesse az alábbi eljárásokat:
- Konfigurálja úgy a
uritulajdonságot, hogy csak olyan megbízható végpontokra mutasson, amelyek a Azure AI Keresés kéréseinek fogadására szolgálnak. - Konfigurálja
authResourceIdannak a Microsoft Entra alkalmazásnak a azonosítására, amely várhatóan megkapja és érvényesíti a hozzáférési jogkivonatot. - A kérések feldolgozása előtt győződjön meg arról, hogy a kéréseket fogadó alkalmazás érvényesíti a szabványos jogkivonat-jogcímeket, beleértve a célközönséget (
aud), a kiállítót (iss), a bérlőt (tid), valamint a szükséges alkalmazásszerepköröket vagy engedélyeket. - Alkalmazza a minimális jogosultság elvét, amikor engedélyeket ad a Azure AI Keresés felügyelt identitásnak.
- Rendszeresen tekintse át az egyéni webes API-képességdefiníciókat, Microsoft Entra alkalmazásregisztrációkat, valamint Azure AI Keresés felügyelt identitások számára biztosított alkalmazásszerepkör-hozzárendeléseket és engedélyeket. Tekintse át a konfigurációs módosításokat a már létrehozott változáskezelési és biztonsági felülvizsgálati folyamatokkal.
- Rendszeresen tekintse át Azure Functions, App Services, API-k és API-átjárók végpontkonfigurációit.
- Az alkalmazás bejelentkezési naplóinak, hitelesítési eseményeinek és API-hozzáférési naplóinak monitorozása váratlan vagy jogosulatlan tevékenységek esetén.
- Távolítsa el a már nem használt végpontokat, engedélyeket, alkalmazásregisztrációkat és szerepkör-hozzárendeléseket.
A képességkészlet-konfigurációhoz való hozzáférés korlátozása
Azok a felhasználók, akik képességkészleteket hozhatnak létre, módosíthatnak vagy futtathatnak, vezérelhetik a célvégpontot és az egyéni webes API-képesség által használt hitelesítési konfigurációt is. Korlátozza ezeket az engedélyeket megbízható rendszergazdákra, és kövesse a szabványos változáskezelési és biztonsági felülvizsgálati folyamatokat a felügyelt identitásbarát egyéni képességek konfigurálásakor.
Important
Az authResourceId érték azonosítja a hozzáférési jogkivonat kívánt címzett alkalmazását. Győződjön meg arról, hogy a megadott uri végpont az a végpont, amely várhatóan megkapja és érvényesíti az adott alkalmazás jogkivonatait. A helytelen konfiguráció hitelesítési hibákat vagy kéréseket eredményezhet egy nem kívánt végpontnak.