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" pages
egyszer 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 |