Megosztás a következőn keresztül:


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, kulcskifejezés-kinyeréssel, szövegfordítással, nyelvfelismeréssel és entitásfelismerési képességekkel, valamint egyéni tokenizer-képességekkel történő bővítésekor kaphat.

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:

Expression É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:

Expression É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:

Expression É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:

Expression É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:

Expression É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égbemenet és kimenet tartozik. 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 Expression É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 az egyes végrehajtások értékeit adja hozzá a dokumentumhoz "/document/normalized_images/0/out" az és "/document/normalized_images/1/out"a .

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.

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

Sortömbökben

Ha egy adott készségbemenethez adattömb szükséges, de az adatok jelenleg egyetlen értékként vannak ábrázolva, vagy több különböző önálló értéket kell egyesítenie egy tömbmezőben, akkor a készségbemeneti kifejezés részeként létrehozhat egy tömbértéket a zárójelek ([ és ]) vesszővel elválasztott kifejezéslistájának körbefuttatásával. A tömbérték szükség szerint kifejezésútvonalak vagy literális értékek kombinációja lehet. Így beágyazott tömböket is létrehozhat tömbökben.

Expression Érték
=['item'] ["item"]
=[$(/document/merged_content/entities/0/text), 'item'] ["BMN", "item"]
=[1, 3, 5] [1, 3, 5]
=[true, true, false] [igaz, igaz, hamis]
=[[$(/document/merged_content/entities/0/text), 'item'],['item2', $(/document/merged_content/keyphrases/1)]] [[["BMN", "item"], ["item2", "Syndrome"]]

Ha a képesség olyan környezettel rendelkezik, amely elmagyarázza a képesség tömbbemenetenként történő futtatását (azaz azt, hogy a "context": "/document/pages/*" képesség "laponként" pagesegyszer fut), akkor a kifejezésként megadott értéknek egy sortömbbe való bemenetként történő átadása egyszerre egy ilyen értéket használ.

Például a bővített mintaadatokkal, ha a képesség context /document/merged_content/keyphrases/* az, majd létrehoz egy beágyazott tömböt az alábbiakból =['key phrase', $(/document/merged_content/keyphrases/*)] az adott képesség bemenetén, akkor a képesség háromszor lesz végrehajtva, egyszer egy ["key phrase", "Study of BMN"] értékkel, egy másik értékkel ["key phrase", "Syndrome"] értékkel, végül pedig a ["kulcskifejezés" értékkel, "Gyermekbetegek"]. A literál "kulcskifejezés" értéke minden alkalommal ugyanaz marad, de a kifejezés útvonalának értéke az egyes képességek végrehajtásával változik.

Ö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 '!'

Expression Érték
=!false true

Negatív '-'

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

Összeadás '+'

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

Kivonás '-'

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

Szorzás '*'

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

Osztás '/'

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

Modulo '%'

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

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

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

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

Expression Érték
=15==4 false
=4==4 true
=15!=4 true
=1!=1 false

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

Expression É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ések kiértékelése alapján különböző értékeket adhat meg a ternáris operátorral.

Expression É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.

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

Lásd még