Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Tento článek je referenční dokumentace pro kontext dovedností a syntaxi vstupu. Jedná se o úplný popis jazyka výrazů, který slouží k vytváření cest k uzlům v rozšířeném dokumentu.
Dovednosti Azure AI Vyhledávač můžou využívat a rozšiřovat data pocházející ze zdroje dat a z výstupu dalších dovedností. Pracovní sada dat, která představuje aktuální stav práce indexeru pro aktuální dokument, začíná z nezpracovaných dat pocházejících ze zdroje dat a postupně se rozšiřuje o výstupní data jednotlivých dovedností. Tato data jsou interně uspořádaná ve stromové struktuře, která se dá dotazovat, aby se použila jako vstupy dovedností nebo aby se přidala do indexu. Uzly ve stromu mohou být jednoduché hodnoty, jako jsou řetězce a čísla, pole nebo složité objekty a dokonce binární soubory. Dokonce i jednoduché hodnoty lze rozšířit o strukturovanější informace. Řetězec může být například opatřen poznámkami s dalšími informacemi, které jsou pod ním uloženy ve stromu rozšiřování. Výrazy používané k dotazování na tuto interní strukturu používají bohatou syntaxi, která je podrobně popsána v tomto článku. Rozšířenou datovou strukturu je možné zkontrolovat z ladicích relací. Výrazy dotazující se na strukturu je možné testovat také z ladicích relací.
V celém článku jako příklad používáme následující rozšířená data. Tato data jsou typická pro typ struktury, kterou byste získali při rozšiřování dokumentu pomocí sady dovedností pomocí OCR, extrakce klíčových frází, překladu textu, rozpoznávání jazyka a dovedností rozpoznávání entit a dovednosti vlastního tokenizátoru.
| Cesta | Value |
|---|---|
document |
|
merged_content |
"Studie BMN 110 u pediatrických pacientů"... |
keyphrases |
|
[0] |
"Studie BMN" |
[1] |
"Syndrome" |
[2] |
"Pediatrii pacienti" |
| ... | |
locations |
|
[0] |
"IVA" |
translated_text |
"Étude de BMN 110 chez les patients pédiatriques"... |
entities |
|
[0] |
|
category |
"Organization" |
subcategory |
null |
confidenceScore |
0.72 |
length |
3 |
offset |
9 |
text |
"BMN" |
| ... | |
organizations |
|
[0] |
"BMN" |
language |
"en" |
normalized_images |
|
[0] |
|
layoutText |
... |
text |
|
words |
|
[0] |
"Study" |
[1] |
"of" |
[2] |
"BMN" |
[3] |
"110" |
| ... | |
[1] |
|
layoutText |
... |
text |
|
words |
|
[0] |
"it" |
[1] |
"is" |
[2] |
"certainly" |
| ... | |
| ... | |
| ... |
Kořenový adresář dokumentu
Data jsou pod jedním kořenovým prvkem a cesta je "/document". Kořenový prvek je výchozím kontextem dovedností.
Jednoduché cesty
Jednoduché cesty prostřednictvím interního rozšířeného dokumentu lze vyjádřit jednoduchými tokeny oddělenými lomítky. Tato syntaxe se podobá specifikaci ukazatele JSON.
Vlastnosti objektu
Vlastnosti uzlů, které představují objekty, přidávají své hodnoty do stromu pod názvem vlastnosti. Tyto hodnoty lze získat připojením názvu vlastnosti jako tokenu odděleného lomítkem:
| Expression | Value |
|---|---|
/document/merged_content/language |
"en" |
U tokenů názvů vlastností se rozlišují malá a velká písmena.
Index položky pole
Na konkrétní prvky pole lze odkazovat pomocí jejich číselného indexu, jako je název vlastnosti:
| Expression | Value |
|---|---|
/document/merged_content/keyphrases/1 |
"Syndrome" |
/document/merged_content/entities/0/text |
"BMN" |
Escape sekvence
Existuje několik znaků, které mají zvláštní význam a musí být speciálně zpracovány, pokud mají být interpretovány doslova místo jako prvek syntaxe. Mezi tyto znaky patří #, /a ~ mimo jiné.
| Úniková sekvence | Speciální význam (použití v syntaxi cesty) | Příklad |
|---|---|---|
~0 |
Používá se pro zapouzdření ~ |
"~0" pro ~, kde "~/documents" se změní na ~0 ~1documents. |
~1 |
Používá se pro zapouzdření / |
"~1" pro /, kde "~/documents" se změní na ~0~1documents. |
~2 |
Slouží k obecnému úniku libovolných sekvencí (včetně mimo jiné # a *) |
"~2#~2", kde se "readme#requirements" stane "readme~2#~2requirements" |
Výčet polí
Pole hodnot lze získat pomocí tokenu '*' :
| Expression | Value |
|---|---|
/document/normalized_images/0/text/words/* |
["Study", "of", "BMN", "110" ...] |
Token '*' nemusí být na konci cesty. Je možné vytvořit výčet všech uzlů odpovídající cestě s hvězdičkou uprostřed nebo několika hvězdičkami:
| Expression | Value |
|---|---|
/document/normalized_images/*/text/words/* |
["Study", "of", "BMN", "110" ... "it", "is", "certainly" ...] |
Tento příklad vrátí plochý seznam všech odpovídajících uzlů.
Je možné zachovat větší strukturu a získat samostatné pole pro slova každé stránky pomocí '#' tokenu místo druhého '*' tokenu:
| Expression | Value |
|---|---|
/document/normalized_images/*/text/words/# |
[["Study", "of", "BMN", "110" ...], ["it", "is", "certainly" ...] ...] |
Token '#' vyjadřuje, že pole by mělo být považováno za jednu hodnotu, nikoli jako výčet.
Výčet polí v kontextu
Často je užitečné zpracovat každý prvek pole izolovaně a mít pro každý z nich jinou sadu vstupů dovedností a výstupů.
Tento osvědčený postup lze provést nastavením kontextu dovednosti na výčet místo výchozího "/document".
V následujícím příkladu použijeme jeden ze vstupních výrazů, které jsme použili dříve, ale s jiným kontextem, který změní výslednou hodnotu.
| Context | Expression | Values |
|---|---|---|
/document/normalized_images/* |
/document/normalized_images/*/text/words/* |
["Study", "of", "BMN", "110" ...]["it", "is", "certainly" ...]... |
Pro tuto kombinaci kontextu a vstupu se dovednost provede jednou pro každý normalizovaný obrázek: jednou pro "/document/normalized_images/0" a jednou pro "/document/normalized_images/1". Dva vstupní hodnoty odpovídající jednotlivým spuštěním dovedností jsou podrobně popsány ve sloupci hodnot.
Při vytváření výčtu pole v kontextu se všechny výstupy, které dovednost vytváří, přidají do dokumentu jako obohacení kontextu.
V předchozím příkladu jsou hodnoty výstupu s názvem "out" pro každé spuštění přidány do dokumentu pod "/document/normalized_images/0/out" a "/document/normalized_images/1/out".
Literální hodnoty
Vstupy dovedností mohou jako vstupy přijímat literály místo dynamických hodnot dotazovaných z existujícího dokumentu. Tento osvědčený postup lze dosáhnout předponou hodnoty symbolem rovná se. Hodnoty můžou být čísla, řetězce nebo logická hodnota.
Řetězcové hodnoty mohou být uzavřeny v jednoduchých ' nebo dvojitých " uvozovkách.
| Expression | Value |
|---|---|
=42 |
42 |
=2.45E-4 |
0.000245 |
="some string" |
"some string" |
='some other string' |
"some other string" |
="unicod\u0065" |
"unicode" |
=false |
false |
V řádcích polí
Pokud určitý vstup dovednosti vyžaduje pole dat, ale data jsou reprezentována jako jedna hodnota v současné době nebo potřebujete zkombinovat více různých jednoduchých hodnot do pole pole, pak můžete vytvořit maticovou hodnotu vloženou jako součást vstupního výrazu dovednosti tak, že zabalíte čárkami oddělený seznam výrazů v hranatých závorkách ([ a ]). Hodnota pole může být kombinací cest výrazů nebo literálových hodnot podle potřeby. Tímto způsobem můžete také vytvořit vnořená pole v rámci polí.
| Expression | Value |
|---|---|
=['item'] |
["item"] |
=[$(/document/merged_content/entities/0/text), 'item'] |
["BMN", "položka"] |
=[1, 3, 5] |
[1, 3, 5] |
=[true, true, false] |
[pravda, pravda, lež] |
=[[$(/document/merged_content/entities/0/text), 'item'],['item2', $(/document/merged_content/keyphrases/1)]] |
[["BMN", "item"], ["item2", "Syndrom"]] |
Pokud má dovednost kontext, který vysvětluje spuštění dovednosti pro vstup pole (to znamená, jak to znamená, že "context": "/document/pages/*" dovednost se spouští jednou za "stránku" v pages) a předání této hodnoty jako výrazu jako vstupu do řádku používá jednu z těchto hodnot najednou.
Příklad s našimi ukázkovými obohacenými daty, pokud je context vaše dovednost /document/merged_content/keyphrases/* a pak vytvoříte vložené pole následujícího =['key phrase', $(/document/merged_content/keyphrases/*)] na vstupu této dovednosti, pak se dovednost provede třikrát, jednou s hodnotou ["klíčové fráze", "Studie BMN"], další s hodnotou ["klíčové fráze", další s hodnotou ["klíčové fráze", "Syndrom"] a nakonec s hodnotou ["klíčové fráze", "Pediatrii pacienti"]. Hodnota literálu "klíčová fráze" zůstává vždy stejná, ale hodnota cesty výrazu se mění při každém provádění dovedností.
Složené výrazy
Hodnoty je možné kombinovat pomocí unárních, binárních a ternárních operátorů.
Operátory mohou kombinovat hodnoty literálů a hodnoty vyplývající z vyhodnocení cesty.
Při použití uvnitř výrazu by měly být cesty uzavřeny mezi "$(" a ")".
Logická hodnota není '!'
| Expression | Value |
|---|---|
=!false |
true |
Negativní '-'
| Expression | Value |
|---|---|
=-42 |
-42 |
=-$(/document/merged_content/entities/0/offset) |
-9 |
Sčítání '+'
| Expression | Value |
|---|---|
=2+2 |
4 |
=2+$(/document/merged_content/entities/0/offset) |
11 |
Odčítání '-'
| Expression | Value |
|---|---|
=2-1 |
1 |
=$(/document/merged_content/entities/0/offset)-2 |
7 |
Násobení '*'
| Expression | Value |
|---|---|
=2*3 |
6 |
=$(/document/merged_content/entities/0/offset)*2 |
18 |
Dělení '/'
| Expression | Value |
|---|---|
=3/2 |
1.5 |
=$(/document/merged_content/entities/0/offset)/3 |
3 |
Modulo '%'
| Expression | Value |
|---|---|
=15%4 |
3 |
=$(/document/merged_content/entities/0/offset)%2 |
1 |
Zřetězení řetězců '+'
| Expression | Value |
|---|---|
="Hello," + "world!" |
"Hello, world!" |
=$(/document/merged_content/entities/0/text) + $(/document/merged_content/entities/0/category) |
"BMN Organization" |
Menší než, menší než nebo rovno, větší než a větší než nebo rovno '<''<=''>''>='
| Expression | Value |
|---|---|
=15<4 |
false |
=4<=4 |
true |
=15>4 |
true |
=1>=2 |
false |
Rovnost a nerovnost '==''!='
| Expression | Value |
|---|---|
=15==4 |
false |
=4==4 |
true |
=15!=4 |
true |
=1!=1 |
false |
Logické operace a nebo výhradní nebo '&&''||''^'
| Expression | Value |
|---|---|
=true&&true |
true |
=true&&false |
false |
=true||true |
true |
=true||false |
true |
=false||false |
false |
=true^false |
true |
=true^true |
false |
Ternární operátor '?:'
Je možné zadat různé hodnoty na základě vyhodnocení logického výrazu pomocí ternárního operátoru.
| Expression | Value |
|---|---|
=true?"true":"false" |
"true" |
=$(/document/merged_content/entities/0/offset)==9?"nine":"not nine" |
"nine" |
Priorita závorek a operátorů
Operátory se vyhodnocují s prioritami, které odpovídají obvyklým konvencím: unární operátory, pak násobení, dělení a modulo, následné sčítání a odčítání, pak porovnání, pak rovnost a logické operátory. Platí také běžná pravidla asociativity.
Závorky lze použít ke změně nebo nejednoznačnosti pořadí vyhodnocení.
| Expression | Value |
|---|---|
=3*2+5 |
11 |
=3*(2+5) |
21 |