Képességkörnyezet és beviteli széljegyzet nyelve

Ez a cikk a készségkörnyezet és a bemeneti szintaxis referenciadokumentációja. Ez a kifejezésnyelv teljes leírása, amellyel egy gazdagított dokumentumban csomópontok elérési útjait hozhatja létre.

Az Azure AI Search-készségek használhatják és bővíthetik az adatforrásból és más készségek kimenetéből származó adatokat. Az aktuális dokumentum indexelőjének aktuális állapotát képviselő adatmunkakészlet az adatforrásból származó nyers adatokból indul ki, és fokozatosan bővül az egyes képességi iterációk kimeneti adataival. Az adatok belső rendszerezése faszerű szerkezetben történik, amely lekérdezhető képességbemenetként való használatra vagy az indexhez való hozzáadására. A fa csomópontjai lehetnek egyszerű értékek, például sztringek és számok, tömbök, összetett objektumok és akár bináris fájlok is. Még az egyszerű értékek is bővíthetők további strukturált információkkal. A sztringek például széljegyzetekkel is elláthatók, amelyek a gazdagítási fa alatt találhatók. A belső struktúra lekérdezéséhez használt kifejezések a cikkben részletezett, részletes szintaxist használják. A bővített adatstruktúra hibakeresési munkamenetekből vizsgálható. A struktúrát lekérdező kifejezések hibakeresési munkamenetekből is tesztelhetők.

A cikk során a következő bővített adatokat fogjuk példaként használni. Ezek az adatok jellemzőek arra a struktúrára, amelyet a dokumentumok ocR-val való bővítésekor kapna, kulcskifejezés-kinyeréssel, szövegfordítással, nyelvfelismeréssel, entitásfelismerési képességekkel és egyéni jogkivonat-kezelő képességekkel.

Elérési út Érték
document
merged_content "A BMN 110 vizsgálata gyermekgyógyászati betegekben"...
  keyphrases
   [0] "A BMN tanulmányozása"
   [1] "Szindróma"
   [2] "Gyermekbetegek"
   ...
  locations
   [0] "IVA"
  translated_text "Étude de BMN 110 chez les patients pédiatriques"...
  entities
   [0]
    category "Szervezet"
    subcategory null
    confidenceScore 0,72
    length 3
    offset 9
    text "BMN"
   ...
  organizations
   [0] "BMN"
  language „hu”
normalized_images
  [0]
   layoutText ...
   text
    words
     [0] "Tanulmány"
     [1] "az"
     [2] "BMN"
     [3] "110"
     ...
  [1]
   layoutText ...
   text
    words
     [0] "it"
     [1] "is"
     [2] "természetesen"
     ...
    ...
  ...

Dokumentumgyökér

Az összes adat egy gyökérelem alatt található, amelyhez az elérési út tartozik "/document". A fő elem a készségek alapértelmezett környezete.

Egyszerű útvonalak

A belső bővített dokumentum egyszerű elérési útjai perjelekkel elválasztott egyszerű jogkivonatokkal fejezhetők ki. Ez a szintaxis hasonló a JSON Pointer specifikációjához.

Objektumtulajdonságok

Az objektumokat képviselő csomópontok tulajdonságai hozzáadják az értékeiket a tulajdonság neve alatti fához. Ezek az értékek a tulajdonságnév perjellel elválasztott jogkivonatként való hozzáfűzésével szerezhetők be:

Kifejezés Érték
/document/merged_content/language "en"

A tulajdonságnév-jogkivonatok megkülönböztetik a kis- és nagybetűket.

Tömbelem-index

A tömb egyes elemeire a numerikus indexük, például egy tulajdonságnév használatával hivatkozhat:

Kifejezés Érték
/document/merged_content/keyphrases/1 "Syndrome"
/document/merged_content/entities/0/text "BMN"

Menekülési sorozatok

Két karakter van, amelyek különleges jelentéssel rendelkeznek, és meg kell szökni, ha megjelennek egy kifejezésben, és úgy kell értelmezni, mint ahelyett, hogy különleges jelentésük lenne: '/' és '~'. Ezeket a karaktereket a következőképpen kell feloldani '~0''~1'.

Tömbök számbavétele

Az értékek tömbje a '*' jogkivonat használatával kérhető le:

Kifejezés Érték
/document/normalized_images/0/text/words/* ["Study", "of", "BMN", "110" ...]

A '*' jogkivonatnak nem kell az elérési út végén lennie. A középen lévő csillaggal vagy több csillaggal egyező összes csomópont számbavétele lehetséges:

Kifejezés Érték
/document/normalized_images/*/text/words/* ["Study", "of", "BMN", "110" ... "it", "is", "certainly" ...]

Ez a példa az összes egyező csomópont egy sima listáját adja vissza.

A második '*' token helyett egy '#' jogkivonat használatával több struktúrát tarthat fenn, és külön tömböt kaphat az egyes lapok szavaihoz:

Kifejezés Érték
/document/normalized_images/*/text/words/# [["Study", "of", "BMN", "110" ...], ["it", "is", "certainly" ...] ...]

A '#' jogkivonat azt fejezi ki, hogy a tömböt egyetlen értékként kell kezelni a számbavétel helyett.

Tömbök számbavétele a környezetben

Gyakran hasznos, ha egy tömb minden elemét külön-külön dolgozzuk fel, és mindegyikhez más-más képességbemenetek és kimenetek tartoznak. Ezt úgy teheti meg, hogy a képesség kontextusát enumerálásra állítja az alapértelmezett "/document"helyett.

Az alábbi példában a korábban használt egyik bemeneti kifejezést használjuk, de egy másik kontextusban, amely megváltoztatja az eredményként kapott értéket.

Környezet Kifejezés Értékek
/document/normalized_images/* /document/normalized_images/*/text/words/* ["Study", "of", "BMN", "110" ...]
["it", "is", "certainly" ...]
...

A környezet és a bemenet ezen kombinációjához a képesség minden normalizált rendszerképhez egyszer lesz végrehajtva: egyszer és "/document/normalized_images/0" egyszer."/document/normalized_images/1" Az egyes képességek végrehajtásának megfelelő két bemeneti érték az értékek oszlopában található.

A tömbök környezetbeli számbavételekor a képesség által előállított kimenetek is hozzáadva lesznek a dokumentumhoz a környezet gazdagításaként. A fenti példában egy elnevezett "out" kimenet minden végrehajtáshoz hozzá lesz adva az értékekhez a dokumentum alatt és "/document/normalized_images/1/out"alatt"/document/normalized_images/0/out".

Literális értékek

A készségbemenetek a meglévő dokumentumból lekérdezett dinamikus értékek helyett a konstans értékeket használhatják bemenetként. Ez az érték egyenlőségjellel történő előtagolásával érhető el. Az értékek lehetnek számok, sztringek vagy logikai értékek. A sztringértékek egy ' - vagy két " idézőjelben is csatolhatók.

Kifejezés Érték
=42 42
=2.45E-4 0.000245
="some string" "some string"
='some other string' "some other string"
="unicod\u0065" "unicode"
=false false

Összetett kifejezések

Az értékek egyesíthetők a nemáris, bináris és ternáris operátorokkal. Az operátorok az elérési út kiértékelése során keletkező literális értékeket és értékeket kombinálhatják. Ha egy kifejezésen belül használják, az elérési utakat az és ")"a között "$(" kell megadni.

Logikai nem '!'

Kifejezés Érték
=!false true

Negatív '-'

Kifejezés Érték
=-42 -42
=-$(/document/merged_content/entities/0/offset) -9

Ezen kívül '+'

Kifejezés Érték
=2+2 4
=2+$(/document/merged_content/entities/0/offset) 11

Kivonás '-'

Kifejezés Érték
=2-1 1
=$(/document/merged_content/entities/0/offset)-2 7

Szorzás '*'

Kifejezés Érték
=2*3 6
=$(/document/merged_content/entities/0/offset)*2 18

Osztály '/'

Kifejezés Érték
=3/2 1.5
=$(/document/merged_content/entities/0/offset)/3 3

Modulo '%'

Kifejezés Érték
=15%4 3
=$(/document/merged_content/entities/0/offset)%2 1

Kisebb, kisebb vagy egyenlő, nagyobb és nagyobb, mint vagy egyenlő '<''<=''>''>='

Kifejezés Érték
=15<4 false
=4<=4 true
=15>4 true
=1>=2 false

Egyenlőség és nem egyenlőség '==''!='

Kifejezés Érték
=15==4 false
=4==4 true
=15!=4 true
=1!=1 false

Logikai műveletek és, vagy kizárólagos vagy '&&''||''^'

Kifejezés Érték
=true&&true true
=true&&false false
=true||true true
=true||false true
=false||false false
=true^false true
=true^true false

Ternáris operátor '?:'

A logikai kifejezés kiértékelése alapján különböző értékeket adhat meg a ternáris operátorral.

Kifejezés Érték
=true?"true":"false" "true"
=$(/document/merged_content/entities/0/offset)==9?"nine":"not nine" "nine"

Zárójelek és operátorprioritás

Az operátorokat a szokásos konvencióknak megfelelő prioritásokkal értékelik ki: a nem kötelező operátorokat, majd a szorzást, az osztást és a modulót, majd az összeadást és kivonást, majd az összehasonlítást, majd az egyenlőséget, majd a logikai operátorokat. A szokásos asszociativitási szabályok is érvényesek.

Zárójelekkel módosíthatja vagy egyértelműsítheti a kiértékelési sorrendet.

Kifejezés Érték
=3*2+5 11
=3*(2+5) 21

Lásd még