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.
Note
A tudástárak olyan másodlagos tárolók, amelyek az Azure Storage-ban léteznek, és tartalmazzák az Azure AI Keresés-képességkészletek kimeneteit. Ezek különböznek a tudásforrásoktól és a tudásbázisoktól, amelyeket ügynöki lekéréses munkafolyamatokban használnak.
A kivetítések a tudástár definíciójának összetevői, amelyek meghatározzák, hogyan tárolják az AI-gazdagított tartalmakat az Azure Storage-ban. Az előrejelzések határozzák meg a tartalmat tartalmazó adatstruktúrák típusát, mennyiségét és összetételét.
Ebben a cikkben megismerheti az egyes vetülettípusok szintaxisát:
Ne feledje, hogy az előrejelzések egy knowledgeStore készségkészlet tulajdonsága alatt vannak definiálva.
"knowledgeStore" : {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
"projections": [
{
"tables": [ ],
"objects": [ ],
"files": [ ]
}
]
}
Ha az első lépések előtt több háttérre van szüksége, tekintse át ezt az ellenőrzőlistát a tippekért és a munkafolyamatért.
Tip
Az előrejelzések fejlesztésekor engedélyezze a bővítési gyorsítótárazást (előzetes verzió), hogy újra felhasználhassa a meglévő bővítéseket a vetületdefiníciók szerkesztése során. A bővítés gyorsítótárazása előzetes verziójú funkció, ezért mindenképpen használja az előzetes verziójú REST API-t az indexelő kérésben. Gyorsítótárazás nélkül a kivetítés egyszerű szerkesztései a gazdagított tartalom teljes újrafeldolgozását eredményezik. A gazdagítások gyorsítótárazásával az előrejelzéseket át lehet iterálni anélkül, hogy a képességkészletek feldolgozási költségei merülnek fel.
Requirements
Minden vetület rendelkezik forrás- és céltulajdonságokkal. A forrás mindig belső tartalom egy képességkészlet végrehajtása során létrehozott bővítőfából. A cél egy Azure Storage-ban létrehozott és feltöltött külső objektum neve és típusa.
A csak bináris képeket elfogadó fájlvetítések kivételével a forrásnak a következőnek kell lennie:
- Érvényes JSON
- Egy csomópont elérési útja a bővítési fában (például
"source": "/document/objectprojection")
Bár a csomópontok egyetlen mezőre is feloldhatók, a gyakoribb ábrázolás egy összetett alakzatra mutató hivatkozás. Az összetett alakzatok formázási módszertanon keresztül jönnek létre, akár alakzatkezelő képesség , akár beágyazott formázási definíció, de általában Shaper-képesség. Az alakzat mezői vagy elemei határozzák meg a tárolókban és táblákban lévő mezőket.
A Shaper technológiák előnyben vannak, mert JSON-t adnak ki, míg a legtöbb technológia önállóan nem ad ki érvényes JSON-t. A Shaper-képesség által létrehozott adatalakzatot sok esetben egyformán használhatja a tábla- és objektumvetítés.
A forrásbemeneti követelményeknek megfelelően az adatok alakítása gyakorlati követelménysé válik a kivetítési definícióhoz, különösen akkor, ha táblákkal dolgozik.
Táblavetítés definiálása
A táblavetítések olyan forgatókönyvekhez ajánlottak, amelyek adatfeltárást követelnek meg, például a Power BI-val végzett elemzést vagy az adatkereteket használó számítási feladatokhoz. A kivetítési tömb táblák szakasza a kivetíteni kívánt táblák listája.
Táblavetület definiálásához használja a tables tömböt a vetítések tulajdonságában. A táblavetület három szükséges tulajdonsággal rendelkezik:
| Property | Description |
|---|---|
| tableName | Meghatározza az Azure Table Storage-ban létrehozott új tábla nevét. |
| generatedKeyName | Az egyes sorokat egyedileg azonosító kulcs oszlopneve. Az érték rendszer által generált. Ha kihagyja ezt a tulajdonságot, a rendszer automatikusan létrehoz egy oszlopot, amely a tábla nevét és a "kulcsot" használja elnevezési konvencióként. |
| adatforrás | Egy csomópont elérési útja egy dúsítófában. A csomópontnak egy összetett alakzatra kell hivatkoznia, amely meghatározza, hogy mely oszlopok jönnek létre a táblában. |
A táblavetületekben a "forrás" általában a tábla alakját meghatározó Shaper-képesség kimenete. A táblák sorokkal és oszlopokkal rendelkeznek, és a formázás az a mechanizmus, amellyel a sorok és oszlopok meg vannak adva. Shaper-készséget vagy beágyazott alakzatokat is használhat. A Shaper-képesség érvényes JSON-t hoz létre, de a forrás bármely képesség kimenete lehet, ha érvényes JSON.
Note
A táblavetítésekre az Azure Storage által előírt tárolási korlátok vonatkoznak. Az entitás mérete nem haladhatja meg az 1 MB-ot, és egyetlen tulajdonság sem lehet nagyobb 64 KB-nál. Ezek a korlátozások jó megoldássá teszik a táblákat nagy számú kis entitás tárolására.
Egy táblás példa
A tábla sémáját részben a kivetítés (tábla neve és kulcsa), valamint a táblázat alakját (oszlopait) biztosító forrás határozza meg. Ez a példa csak egy táblát mutat be, hogy a definíció részleteire összpontosíthasson.
"projections" : [
{
"tables": [
{ "tableName": "Hotels", "generatedKeyName": "HotelId", "source": "/document/tableprojection" }
]
}
]
Az oszlopok a "forrásból" származnak. A következő, HotelId, HotelName, Category és Description adatokat tartalmazó adatalakzat a táblázatban lévő oszlopok létrehozását eredményezi.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#3",
"description": null,
"context": "/document",
"inputs": [
{
"name": "HotelId",
"source": "/document/HotelId"
},
{
"name": "HotelName",
"source": "/document/HotelName"
},
{
"name": "Category",
"source": "/document/Category"
},
{
"name": "Description",
"source": "/document/Description"
},
],
"outputs": [
{
"name": "output",
"targetName": "tableprojection"
}
]
}
Több tábla (szeletelés) példa
A táblavetítések gyakori mintája, hogy több kapcsolódó táblával is rendelkezik, ahol a rendszer által létrehozott partitionKey és rowKey oszlopokkal támogatja a táblaközi kapcsolatokat az azonos vetületcsoportban lévő összes tábla esetében.
Több tábla létrehozása akkor lehet hasznos, ha szabályozni szeretné a kapcsolódó adatok összesítését. Ha a gazdagított tartalomnak vannak nem kapcsolódó vagy független összetevői, például a dokumentumból kinyert kulcsszavak nem kapcsolódnak az ugyanabban a dokumentumban felismert entitásokhoz, feloszthatja ezeket a mezőket szomszédos táblákra.
Ha több táblázatra vetít, a teljes struktúra minden táblázatba belekerül, kivéve, ha egy gyermekcsomópont egy másik táblázat adatszerkezeti elem forrása azonos csoportban. Ha egy meglévő vetítés gyermekét tartalmazó forrásútvonallal rendelkező vetítést adunk hozzá, a gyermekcsomópont kiemelődik a szülőcsomópontból, és az új, de kapcsolódó táblába vetül. Ez a technika lehetővé teszi egyetlen csomópont definiálását egy Shaper-képességben, amely az összes előrejelzés forrása lehet.
Több tábla mintája a következőkből áll:
- Egy tábla szülő- vagy főtáblaként
- Egyéb táblázatok, amelyek a bővített tartalom szeleteit tartalmazzák
Tegyük fel például, hogy egy Shaper-képesség egy "EnrichedShape" értéket ad ki, amely szállodai információkat, valamint bővített tartalmakat, például kulcskifejezéseket, helyszíneket és szervezeteket tartalmaz. A főtábla a szállodát leíró mezőket (azonosító, név, leírás, cím, kategória) tartalmazza. A kulcskifejezések a kulcskifejezések oszlopát kapják meg. Az entitások megkapják az entitásoszlopokat.
"projections" : [
{
"tables": [
{ "tableName": "MainTable", "generatedKeyName": "HotelId", "source": "/document/EnrichedShape" },
{ "tableName": "KeyPhrases", "generatedKeyName": "KeyPhraseId", "source": "/document/EnrichedShape/*/KeyPhrases/*" },
{ "tableName": "Entities", "generatedKeyName": "EntityId", "source": "/document/EnrichedShape/*/Entities/*" }
]
}
]
Névadási kapcsolatok
A generatedKeyName tulajdonságok és referenceKeyName a tulajdonságok táblák vagy akár vetülettípusok adatainak összekapcsolására szolgálnak. A gyermektábla minden sorában van egy tulajdonság, amely a szülőre mutat. A gyermek oszlopának vagy tulajdonságának neve a referenceKeyName szülőtől származik. Ha a referenceKeyName nincs megadva, a szolgáltatás alapértelmezésként a szülőtől származó generatedKeyName értéket használja.
A Power BI ezeket a létrehozott kulcsokat használja a táblákon belüli kapcsolatok felderítéséhez. Ha a gyermektábla más néven elnevezett oszlopára van szüksége, állítsa be a referenceKeyName tulajdonságot a szülőtáblán. Például állítsd be a generatedKeyName mint ID-t a tblDocument táblán és a referenceKeyName mint DocumentID-t. Ez azt eredményezné, hogy a tblEntities és a tblKeyPhrases táblák oszlopa a DocumentID nevű dokumentumazonosítót tartalmazza.
Objektumvetítés definiálása
Az objektumvetítések a bővítési fa JSON-ábrázolásai, amelyek bármely csomópontból származhatnak. A táblavetületekkel összehasonlítva az objektumvetítések egyszerűbben definiálhatók és használhatók a teljes dokumentumok kivetítésekor. Az objektumvetítések egy tároló egyetlen vetületére korlátozódnak, és nem szeletelhetők.
Objektumvetítés definiálásához használja a objects tömböt a vetítések tulajdonságában. Az objektumvetítés három szükséges tulajdonsággal rendelkezik:
| Property | Description |
|---|---|
| storageContainer | Meghatározza az Azure Storage-ban létrehozott új tároló nevét. |
| generatedKeyName | Az egyes sorokat egyedileg azonosító kulcs oszlopneve. Az érték rendszer által generált. Ha kihagyja ezt a tulajdonságot, a rendszer automatikusan létrehoz egy oszlopot, amely a tábla nevét és a "kulcsot" használja elnevezési konvencióként. |
| adatforrás | Egy csomópont elérési útja egy gazdagítófán, amely a kivetítés gyökere. A csomópont általában egy összetett adatalakzatra mutató hivatkozás, amely meghatározza a blob szerkezetét. |
Az alábbi példa az egyes szállodai dokumentumokat, blobonként egy szállodai dokumentumot egy úgynevezett hotelstárolóba veti be.
"knowledgeStore": {
"storageConnectionString": "an Azure storage connection string",
"projections" : [
{
"tables": [ ]
},
{
"objects": [
{
"storageContainer": "hotels",
"source": "/document/objectprojection",
}
]
},
{
"files": [ ]
}
]
}
A forrás a ""objectprojection"" nevű Shaper-képesség eredménye. Minden blob JSON-reprezentációval rendelkezik az egyes mezőbemenetek esetében.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#3",
"description": null,
"context": "/document",
"inputs": [
{
"name": "HotelId",
"source": "/document/HotelId"
},
{
"name": "HotelName",
"source": "/document/HotelName"
},
{
"name": "Category",
"source": "/document/Category"
},
{
"name": "keyPhrases",
"source": "/document/HotelId/keyphrases/*"
},
],
"outputs": [
{
"name": "output",
"targetName": "objectprojection"
}
]
}
Fájlvetítés definiálása
A fájlvetítések mindig bináris, normalizált képek, ahol a normalizálás a képességkészletek végrehajtásához használható lehetséges átméretezést és forgatást jelenti. Az objektumvetítésekhez hasonló fájlvetítések blobokként jönnek létre az Azure Storage-ban, és bináris adatokat tartalmaznak (szemben a JSON-sal).
Fájlvetítés definiálásához használja a files tömböt a vetítések tulajdonságában. A fájlvetítés három szükséges tulajdonsággal rendelkezik:
| Property | Description |
|---|---|
| storageContainer | Meghatározza az Azure Storage-ban létrehozott új tároló nevét. |
| generatedKeyName | Az egyes sorokat egyedileg azonosító kulcs oszlopneve. Az érték rendszer által generált. Ha kihagyja ezt a tulajdonságot, a rendszer automatikusan létrehoz egy oszlopot, amely a tábla nevét és a "kulcsot" használja elnevezési konvencióként. |
| adatforrás | Egy csomópont elérési útja egy gazdagítófán, amely a kivetítés gyökere. A képfájlok esetében a forrás mindig /document/normalized_images/*. A fájlvetítések csak a normalized_images gyűjteményen működnek. Sem az indexelők, sem a képességkészletek nem haladnak át az eredeti nem normalizált képen. |
A cél mindig egy blobtároló, amely a dokumentumazonosító base64 kódolású értékének mappaelőtagjával rendelkezik. Ha több kép is van, azokat ugyanabban a mappában helyezik el. A fájlvetítések nem oszthatják meg ugyanazt a tárolót, mint az objektumvetítések, ezért egy másik tárolóba kell kivetíteni.
Az alábbi példa egy bővített dokumentum dokumentumcsomópontjából kinyert összes normalizált lemezképet egy úgynevezett myImagestárolóba alakítja.
"projections": [
{
"tables": [ ],
"objects": [ ],
"files": [
{
"storageContainer": "myImages",
"source": "/document/normalized_images/*"
}
]
}
]
Tesztvetítések
A vetítések feldolgozásához kövesse az alábbi lépéseket:
Állítsa be a tudástár tulajdonságát
storageConnectionStringérvényes V2 általános célú tárfiókhoz kapcsolati sztringre.Frissítse a készségkészletet úgy, hogy egy PUT-kéréssel benyújtja a vetítési definíciót a készségkészlet törzs részében.
Futtassa az indexelőt a képességkészlet végrehajtásához.
Az indexelő végrehajtásának monitorozása az előrehaladás ellenőrzéséhez és a hibák észleléséhez.
Az Azure Portal használatával ellenőrizheti az objektumok létrehozását az Azure Storage-ban.
Ha táblákat vetít ki, importálja őket a Power BI-ba táblázatkezeléshez és vizualizációhoz. A Legtöbb esetben a Power BI automatikusan észleli a táblák közötti kapcsolatokat.
Gyakori problémák
Az alábbi lépések kihagyása váratlan eredményeket eredményezhet. Ellenőrizze a következő feltételeket, ha a kimenet nem megfelelő.
A sztringek bővítése nem érvényes JSON-ra van formázva. Ha a sztringek gazdagodnak, például
merged_contentkulcskifejezésekkel gazdagodnak, a gazdagított tulajdonság a gazdagításimerged_contentfán belül gyermekként jelenik meg. Az alapértelmezett ábrázolás nem megfelelően formázott JSON. A kijelzéskor győződjön meg arról, hogy a bővítést egy érvényes JSON-objektummá alakítja, amelynek neve és értéke van. A probléma megoldásához a Shaper használata vagy beágyazott alakzatok meghatározása segít.A
/*kihagyása a forrásútvonal végén. Ha a kivetítés forrása a/document/projectionShape/keyPhrases, a kulcskifejezések tömbje egyetlen objektumként vagy sorként lesz kivetítve. Ehelyett állítsa be a forrás elérési útját úgy, hogy/document/projectionShape/keyPhrases/*az egyes kulcskifejezésekhez egyetlen sort vagy objektumot adjon meg.Az útvonal szintaxis hiba. Az elérési út kiválasztók érzékenyek a kis- és nagybetűkre, és hiányzó bemeneti figyelmeztetésekhez vezethetnek, ha nem pontosan ugyanazt a kis- és nagybetűs használatot alkalmazza a választóban.
Következő lépések
A következő lépés végigvezeti egy gazdag képességkészlet kimenetének alakításán és kivetítésén. Ha a készségkészlet összetett, az alábbi cikk példákat tartalmaz az alakzatokra és a kivetítésekre is.