Podmíněná kognitivní dovednost
Podmíněná dovednost umožňuje scénářům Azure AI Search, které vyžadují logickou operaci k určení dat, která se mají přiřadit k výstupu. Mezi tyto scénáře patří filtrování, přiřazení výchozí hodnoty a sloučení dat na základě podmínky.
Následující pseudokód ukazuje, co podmíněná dovednost dosahuje:
if (condition)
{ output = whenTrue }
else
{ output = whenFalse }
Poznámka:
Tato dovednost není vázána na služby Azure AI. Je nefakturovatelný a nemá žádný klíčový požadavek na služby Azure AI.
@odata.type
Microsoft.Skills.Util.ConditionalSkill
Vyhodnocená pole
Tato dovednost je zvláštní, protože její vstupy se vyhodnocují pole.
Následující položky jsou platné hodnoty výrazu:
Cesty poznámek (cesty ve výrazech musí být oddělené znakem $(" a ")).
Příklady:"= $(/document)" "= $(/document/content)"
Literály (řetězce, čísla, true, false, null)
Příklady:"= 'this is a string'" // string (note the single quotation marks) "= 34" // number "= true" // Boolean "= null" // null value
Výrazy, které používají relační operátory (==, !=, >=, >= <, <)
Příklady:"= $(/document/language) == 'en'" "= $(/document/sentiment) >= 0.5"
Výrazy, které používají logické operátory (&, ||, !, ^)
Příklady:"= $(/document/language) == 'en' && $(/document/sentiment) > 0.5" "= !true"
Výrazy, které používají číselné operátory (+, -, *, /, %)
Příklady:"= $(/document/sentiment) + 0.5" // addition "= $(/document/totalValue) * 1.10" // multiplication "= $(/document/lengthInMeters) / 0.3049" // division
Vzhledem k tomu, že podmíněná dovednost podporuje hodnocení, můžete ji použít ve scénářích menších transformací. Podívejte se například na definici dovednosti 4.
Vstupy dovedností
Vstupy rozlišují malá a velká písmena.
Vstup | Popis |
---|---|
condition | Tento vstup je vyhodnocené pole , které představuje podmínku k vyhodnocení. Tato podmínka by se měla vyhodnotit na logickou hodnotu (true nebo false). Příklady: "= true" "= $(/document/language) =='fr'" "= $(/document/pages/*/language) == $(/document/expectedLanguage)" |
whenTrue | Tento vstup je vyhodnocené pole , které představuje hodnotu, která se má vrátit, pokud je podmínka vyhodnocena jako true. Řetězce konstant by měly být vráceny v jednoduchých uvozovkách (' a '). Ukázkové hodnoty: "= 'contract'" "= $(/document/contractType)" "= $(/document/entities/*)" |
whenFalse | Tento vstup je vyhodnocené pole , které představuje hodnotu, která se má vrátit, pokud je podmínka vyhodnocena jako nepravda. Ukázkové hodnoty: "= 'contract'" "= $(/document/contractType)" "= $(/document/entities/*)" |
Výstupy dovedností
Existuje jeden výstup, který se jednoduše nazývá "výstup". Vrátí hodnotu whenFalse if the condition is false or whenTrue if the condition is true.
Příklady
Definice ukázkové dovednosti 1: Filtrování dokumentů pro vrácení pouze francouzských dokumentů
Následující výstup vrátí pole vět ("/document/frenchSentences"), pokud je jazyk dokumentu francouzština. Pokud jazyk není francouzština, je hodnota nastavená na hodnotu null.
{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document",
"inputs": [
{ "name": "condition", "source": "= $(/document/language) == 'fr'" },
{ "name": "whenTrue", "source": "/document/sentences" },
{ "name": "whenFalse", "source": "= null" }
],
"outputs": [ { "name": "output", "targetName": "frenchSentences" } ]
}
Pokud se jako kontext jiné dovednosti používá /document/frenchSentences, spustí se tato dovednost pouze v případě, že parametr /document/frenchSentences není nastaven na hodnotu null.
Definice ukázkové dovednosti 2: Nastavení výchozí hodnoty pro hodnotu, která neexistuje
Následující výstup vytvoří poznámku (/document/languageWithDefault), která je nastavená na jazyk dokumentu nebo na "es", pokud jazyk není nastavený.
{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document",
"inputs": [
{ "name": "condition", "source": "= $(/document/language) == null" },
{ "name": "whenTrue", "source": "= 'es'" },
{ "name": "whenFalse", "source": "= $(/document/language)" }
],
"outputs": [ { "name": "output", "targetName": "languageWithDefault" } ]
}
Definice ukázkové dovednosti 3: Sloučení hodnot ze dvou polí do jednoho
V tomto příkladu mají některé věty vlastnost frenchSentiment . Kdykoli je vlastnost frenchSentiment null, chceme použít hodnotu englishSentiment . Výstup přiřadíme členovi, kterému se říká mínění (/document/sentences/*/sentiment).
{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document/sentences/*",
"inputs": [
{ "name": "condition", "source": "= $(/document/sentences/*/frenchSentiment) == null" },
{ "name": "whenTrue", "source": "/document/sentences/*/englishSentiment" },
{ "name": "whenFalse", "source": "/document/sentences/*/frenchSentiment" }
],
"outputs": [ { "name": "output", "targetName": "sentiment" } ]
}
Příklad transformace
Definice ukázkové dovednosti 4: Transformace dat v jednom poli
V tomto příkladu obdržíme mínění , které je mezi 0 a 1. Chceme ho transformovat tak, aby byla mezi -1 a 1. K této menší transformaci můžeme použít podmíněnou dovednost.
V tomto příkladu nepoužíváme podmíněný aspekt dovednosti, protože podmínka je vždy pravdivá.
{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document/sentences/*",
"inputs": [
{ "name": "condition", "source": "= true" },
{ "name": "whenTrue", "source": "= $(/document/sentences/*/sentiment) * 2 - 1" },
{ "name": "whenFalse", "source": "= 0" }
],
"outputs": [ { "name": "output", "targetName": "normalizedSentiment" } ]
}
Speciální předpoklady
Některé parametry se vyhodnocují, takže musíte být opatrní zejména při sledování zdokumentovaného vzoru. Výrazy musí začínat symbolem rovná se. Cesta musí být oddělena "$(" a ")". Nezapomeňte vložit řetězce do jednoduchých uvozovek. To pomáhá vyhodnocovače rozlišovat mezi řetězci a skutečnými cestami a operátory. Nezapomeňte také umístit prázdné znaky kolem operátorů (například "*" v cestě znamená něco jiného než násobení).