Az Azure AI Search-képességkészlet környezet- és forrástulajdonságait használó gazdagított csomópontok elérési útjának hivatkozása
A képességkészlet végrehajtása során a motor létrehoz egy memóriabeli dúsítási fát , amely rögzíti az egyes bővítéseket, például felismert entitásokat vagy lefordított szöveget. Ebből a cikkből megtudhatja, hogyan hivatkozhat a gazdagítási fában található bővítési csomópontra, hogy átadhassa a kimenetet az alsóbb rétegbeli készségeknek, vagy megadhat egy kimeneti mezőleképezést egy keresési indexmezőhöz.
Ez a cikk példákkal szemlélteti a különböző forgatókönyveket. A teljes szintaxist a Szakértelem környezete és a beviteli széljegyzet nyelve című témakörben tekintheti meg.
Háttérfogalmak
Mielőtt áttekintené a szintaxist, tekintsünk át néhány fontos fogalmat a cikk későbbi részében bemutatott példák jobb megértéséhez.
Időszak | Leírás |
---|---|
"bővített dokumentum" | A bővített dokumentum egy memórián belüli struktúra, amely összegyűjti a képességkimenetet a létrehozásakor, és a dokumentumhoz kapcsolódó összes bővítést tartalmazza. Gondoljon egy bővített dokumentumra, mint egy fára. A fa általában a gyökérdokumentum szintjén kezdődik, és minden új bővítés egy korábbi gyermekből jön létre. |
"csomópont" | A bővített dokumentumokban egy csomópontot (más néven "széljegyzetet") hoz létre és tölt fel egy képesség, például a "text" és az "layoutText" az OCR-képességben. A bővített dokumentumokat a program a forrásból másolt eredeti forrásmezőértékekkel és metaadatokkal együtt tölti ki. |
"környezet" | A bővítés hatóköre, amely vagy a teljes dokumentum, egy dokumentum egy része, vagy ha képekkel dolgozik, a dokumentumból kinyert képek. Alapértelmezés szerint a bővítési környezet a "/document" szinten van, és az adatforrásban található egyes dokumentumokra terjed ki. Egy képesség futtatásakor a képesség kimenetei a meghatározott környezet tulajdonságaivá válnak. |
Különböző forgatókönyvek elérési útjai
Az elérési utak egy képességkészlet "környezet" és "forrás" tulajdonságaiban, valamint az indexelő kimeneti mezőleképezéseiben vannak megadva.
A képernyőképen látható példa egy Azure Cosmos DB-gyűjtemény egy elemének elérési útját mutatja be.
context
elérési útja az,/document/HotelId
hogy a gyűjteményt a mező dokumentumaiba particionálta/HotelId
.source
az elérési út azért van/document/Description
, mert a képesség fordítási képesség, és a lefordítandó mező azDescription
egyes dokumentumok mezője.
Minden elérési út ezzel /document
kezdődik: . A bővített dokumentum az indexelő végrehajtásának "dokumentumrepedés" szakaszában jön létre, amikor az indexelő megnyit egy dokumentumot, vagy egy sorban olvas az adatforrásból. Kezdetben a bővített dokumentumok egyetlen csomópontja a gyökércsomópont (/document
), és ez az a csomópont, ahonnan az összes többi bővítés történik.
Az alábbi lista számos gyakori példát tartalmaz:
/document
a gyökércsomópont, amely egy teljes blobot jelöl az Azure Storage-ban, vagy egy SQL-tábla egy sorát./document/{key}
Egy Azure Cosmos DB-gyűjtemény dokumentumának vagy elemének szintaxisa, ahol{key}
a tényleges kulcs található, például/document/HotelId
az előző példában./document/content
egy JSON-blob "content" tulajdonságát adja meg./document/{field}
egy adott mezőn végrehajtott művelet szintaxisa, például a/document/Description
mező lefordítása, amely az előző példában látható./document/pages/*
vagy/document/sentences/*
a környezetté, ha egy nagy dokumentumot kisebb adattömbökre tör feldolgozásra. Ha a "környezet" az/document/pages/*
, a képesség a dokumentum minden oldalán egyszer végrehajtja a elemet. Mivel egynél több oldal vagy mondat is lehet, az összeset hozzá kell fűznie/*
./document/normalized_images/*
akkor jön létre, ha a dokumentum képeket tartalmaz. A képek elérési útjai normalized_images kezdődnek. Mivel gyakran több kép van beágyazva egy dokumentumba, fűzze hozzá/*
.
A cikk hátralévő részében található példák az Azure blobindexelők által automatikusan létrehozott "tartalom" mezőn alapulnak a dokumentumtörési fázis részeként. Amikor blobtárolóból származó dokumentumokra hivatkozik, használjon olyan formátumot, mint "/document/content"
például a "tartalom" mező a "dokumentum" része.
1. példa: Egyszerű széljegyzethivatkozás
Tegyük fel, hogy az Azure Blob Storage-ban számos fájl található, amelyek az entitásfelismeréssel kinyerni kívánt személyek nevére mutató hivatkozásokat tartalmaznak. A következő képességdefinícióban "/document/content"
a teljes dokumentum szöveges ábrázolása, a "személyek" pedig a személyekként azonosított entitások teljes nevének kinyerése.
Mivel az alapértelmezett környezet az "/document"
, a személyek listája mostantól a következőképpen hivatkozhat gombra "/document/people"
. Ebben a konkrét esetben "/document/people"
egy széljegyzet, amely mostantól leképezhető egy index egy mezőjére, vagy egy másik készségben is használható ugyanabban a képességkészletben.
{
"@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
"categories": [ "Person"],
"defaultLanguageCode": "en",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "persons",
"targetName": "people"
}
]
}
2. példa: Hivatkozás egy tömbre egy dokumentumban
Ez a példa az előzőre épül, amely bemutatja, hogyan hívhat meg többször egy bővítési lépést ugyanazon a dokumentumon keresztül. Tegyük fel, hogy az előző példa sztringekből álló tömböt hozott létre egyetlen dokumentumból 10 személynévvel. Egy ésszerű következő lépés lehet egy második bővítés, amely kinyeri a vezetéknevet egy teljes névből. Mivel 10 név van, ezt a lépést 10-szer kell meghívni ebben a dokumentumban, egyenként egyszer.
A megfelelő számú iteráció meghívásához állítsa be a környezetet úgy, hogy "/document/people/*"
a csillag ("*"
) a bővített dokumentum összes csomópontját a program leszármazottjaként "/document/people"
jelöli. Bár ez a képesség csak egyszer van definiálva a képességtömbben, a rendszer a dokumentum minden tagjához meghívja, amíg az összes tag feldolgozásra nem kerül.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Fictitious skill that gets the last name from a full name",
"uri": "http://names.azurewebsites.net/api/GetLastName",
"context" : "/document/people/*",
"defaultLanguageCode": "en",
"inputs": [
{
"name": "fullname",
"source": "/document/people/*"
}
],
"outputs": [
{
"name": "lastname",
"targetName": "last"
}
]
}
Ha a széljegyzetek tömbök vagy sztringek gyűjteményei, érdemes lehet az adott tagokat megcélzni a tömb egésze helyett. A fenti példa a környezet által képviselt csomópontok alatt egy jegyzetet "last"
hoz létre. Ha erre a széljegyzetcsaládra szeretne hivatkozni, használhatja a szintaxist "/document/people/*/last"
. Ha egy adott széljegyzetre szeretne hivatkozni, használhat egy explicit indexet: "/document/people/1/last
" használatával hivatkozhat a dokumentumban azonosított első személy vezetéknevére. Figyelje meg, hogy ebben a szintaxistömbben a "0 indexelt" érték szerepel.
3. példa: Hivatkozás tagokra egy tömbben
Néha egy adott típusú széljegyzetet kell csoportosítania, hogy átadhassa őket egy adott képességnek. Vegyünk egy hipotetikus egyéni képességet, amely a 2. példában kinyert összes vezetéknév leggyakoribb vezetéknevét azonosítja. Ha csak a vezetékneveket szeretné megadni az egyéni képességnek, adja meg a kontextust "/document"
és a bemenetet."/document/people/*/lastname"
Figyelje meg, hogy a számosság "/document/people/*/lastname"
nagyobb, mint a dokumentum. Előfordulhat, hogy 10 vezetéknévcsomópont van, míg ehhez a dokumentumhoz csak egy dokumentumcsomópont van. Ebben az esetben a rendszer automatikusan létrehoz egy tömböt "/document/people/*/lastname"
, amely tartalmazza a dokumentum összes elemét.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Fictitious skill that gets the most common string from an array of strings",
"uri": "http://names.azurewebsites.net/api/MostCommonString",
"context" : "/document",
"inputs": [
{
"name": "strings",
"source": "/document/people/*/lastname"
}
],
"outputs": [
{
"name": "mostcommon",
"targetName": "common-lastname"
}
]
}
Tippek a széljegyzetek elérési útjának hibaelhárításához
Ha problémákat tapasztal a képességbemenetek megadásával kapcsolatban, az alábbi tippek segíthetnek a továbblépésben:
Futtassa az Adatok importálása varázslót az adatokon a varázsló által létrehozott képességkészlet-definíciók és mezőleképezések áttekintéséhez.
Hibakeresési munkamenet indítása egy készségkészleten a bővített dokumentumok szerkezetének megtekintéséhez. Szerkesztheti a képességdefiníció elérési útjait és más részeit, majd futtathatja a képességet a módosítások ellenőrzéséhez.