A bővített csomópontok elérési útjának hivatkozása környezet és forrástulajdonságok használatával egy Azure AI Keresés képességkészletben

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.

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 gazdagítás vagy kiterjesztés egy korábbi csomópont gyermekeként jön létre.
csomópont A bővített dokumentumokban a csomópontok (más néven "széljegyzetek") olyan konkrét kimenetek, mint például az OCR-képesség "text" vagy "layoutText", vagy egy eredeti forrásmező értéke, például egy termékazonosító mező tartalma, vagy a forrásból másolt metaadatok, például metadata_storage_path az Azure Storage-blobokból.
"környezet" A bővítés hatóköre lehet a teljes dokumentum, a dokumentum egy része (oldalak vagy mondatok), vagy ha képekkel dolgozik, a dokumentumból kivont 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.

Képernyőkép egy képességkészlet-definícióról, kiemelve a környezet- és a forráselemeket.

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 út azért /document/HotelId, mert a gyűjtemény a /HotelId mező szerint dokumentumokra van particionálva.

  • source az elérési út azért van, /document/Description mert a készség fordítási készség, és a lefordítani kívánt mező az Description mező minden dokumentumban.

Minden elérési út ezzel /documentkezdődik: . A bővített dokumentum az indexelő végrehajtásának "dokumentum feltárása" szakaszában jön létre, amikor az indexelő megnyit egy dokumentumot, vagy beolvas egy sort 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/* válik a kontextussá, ha egy nagy dokumentumot kisebb részekre bont feldolgozás céljából. Ha a "környezet" az /document/pages/*, a funkció minden oldalon egyszer végrehajtódik a dokumentumban. Mivel egynél több oldal vagy mondat is lehet, hozzáfűzheti a /* szimbólumot az összes elfogására.
  • /document/normalized_images/* a dokumentum feltörése során 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 különböző fájlok találhatók, 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ájára most "/document/people"-ként hivatkozhatunk. 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/*", ahol a csillag ("*") a bővített dokumentum összes csomópontját a "/document/people" leszármazottjaiként 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": "lastname"
      }
    ]
  }

Ha a széljegyzetek tömbök vagy sztringek gyűjteményei, feltételezhetően az adott tagokat szeretnénk megcélozni a tömb egésze helyett. Az előző példa egy annotációt hoz létre "lastname" néven minden csomópont alatt, amelyet a környezet képvisel. Ha a jegyzetcsaládra szeretne hivatkozni, használja a szintaxist "/document/people/*/lastname". Ha egy adott megjegyzésre szeretne hivatkozni, használjon explicit indexet ("/document/people/1/lastname") a dokumentumban azonosított első személy vezetéknevére való hivatkozáshoz. Figyelje meg, hogy ebben a szintaxisban a tömbök indexelése nulla.

3. példa: Hivatkozás tagokra egy tömbben

Néha egy adott típusú annotációt kell csoportosítania, hogy átadja őket egy adott funkciónak. 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 "/document/people/*/lastname" számossága 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 jegyzetek 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 a saját adatain a varázsló által generált 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.

Lásd még