Villkorsstyrd kognitiv skicklighet
Med villkorsfärdigheten kan du använda Azure AI Search-scenarier som kräver en boolesk åtgärd för att fastställa vilka data som ska tilldelas till utdata. Dessa scenarier omfattar filtrering, tilldelning av ett standardvärde och sammanslagning av data baserat på ett villkor.
Följande pseudokod visar vad den villkorliga färdigheten åstadkommer:
if (condition)
{ output = whenTrue }
else
{ output = whenFalse }
Kommentar
Den här färdigheten är inte kopplad till Azure AI-tjänster. Den kan inte faktureras och har inga nyckelkrav för Azure AI-tjänster.
@odata.type
Microsoft.Skills.Util.ConditionalSkill
Utvärderade fält
Den här färdigheten är speciell eftersom dess indata utvärderas fält.
Följande objekt är giltiga värden för ett uttryck:
Anteckningssökvägar (sökvägar i uttryck måste avgränsas med "$(" och ")")
Exempel:"= $(/document)" "= $(/document/content)"
Literaler (strängar, siffror, sant, falskt, null)
Exempel:"= 'this is a string'" // string (note the single quotation marks) "= 34" // number "= true" // Boolean "= null" // null value
Uttryck som använder jämförelseoperatorer (==, !=, >=, >, <=, <)
Exempel:"= $(/document/language) == 'en'" "= $(/document/sentiment) >= 0.5"
Uttryck som använder booleska operatorer (&, ||, !, ^)
Exempel:"= $(/document/language) == 'en' && $(/document/sentiment) > 0.5" "= !true"
Uttryck som använder numeriska operatorer (+, -, *, /, %)
Exempel:"= $(/document/sentiment) + 0.5" // addition "= $(/document/totalValue) * 1.10" // multiplication "= $(/document/lengthInMeters) / 0.3049" // division
Eftersom den villkorliga färdigheten stöder utvärdering kan du använda den i mindre omvandlingsscenarier. Se till exempel kunskapsdefinition 4.
Kunskapsindata
Indata är skiftlägeskänsliga.
Indata | beskrivning |
---|---|
villkor | Den här indatan är ett utvärderat fält som representerar villkoret som ska utvärderas. Det här villkoret bör utvärderas till ett booleskt värde (sant eller falskt). Exempel: "= true" "= $(/document/language) =='fr'" "= $(/document/pages/*/language) == $(/document/expectedLanguage)" |
whenTrue | Den här indatan är ett utvärderat fält som representerar det värde som ska returneras om villkoret utvärderas till sant. Konstantsträngar ska returneras inom enkla citattecken (" och "). Exempelvärden: "= 'contract'" "= $(/document/contractType)" "= $(/document/entities/*)" |
whenFalse | Den här indatan är ett utvärderat fält som representerar det värde som ska returneras om villkoret utvärderas till falskt. Exempelvärden: "= 'contract'" "= $(/document/contractType)" "= $(/document/entities/*)" |
Kunskapsutdata
Det finns en enda utdata som helt enkelt kallas "utdata". Det returnerar värdet närFalse om villkoret är falskt eller whenTrue om villkoret är sant.
Exempel
Exempel på färdighetsdefinition 1: Filtrera dokument för att endast returnera franska dokument
Följande utdata returnerar en matris med meningar ("/document/frenchSentences") om dokumentets språk är franska. Om språket inte är franska anges värdet till 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" } ]
}
Om "/document/frenchSentences" används som kontext för en annan färdighet körs den färdigheten endast om "/document/frenchSentences" inte är inställt på null.
Exempel på färdighetsdefinition 2: Ange ett standardvärde för ett värde som inte finns
Följande utdata skapar en anteckning ("/document/languageWithDefault") som är inställd på språket i dokumentet eller till "es" om språket inte har angetts.
{
"@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" } ]
}
Exempel på färdighetsdefinition 3: Sammanfoga värden från två fält till ett
I det här exemplet har vissa meningar en frenchSentiment-egenskap . När egenskapen frenchSentiment är null vill vi använda värdet englishSentiment . Vi tilldelar utdata till en medlem som kallas sentiment ("/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" } ]
}
Transformeringsexempel
Exempel på färdighetsdefinition 4: Datatransformering i ett enda fält
I det här exemplet får vi en attityd som är mellan 0 och 1. Vi vill omvandla den till mellan -1 och 1. Vi kan använda den villkorliga färdigheten för att utföra den här mindre omvandlingen.
I det här exemplet använder vi inte den villkorsstyrda aspekten av färdigheten eftersom villkoret alltid är sant.
{
"@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" } ]
}
Särskilda beaktanden
Vissa parametrar utvärderas, så du måste vara särskilt noga med att följa det dokumenterade mönstret. Uttryck måste börja med ett likhetstecken. En sökväg måste avgränsas med "$(" och ")". Se till att placera strängar inom enkla citattecken. Det hjälper utvärderaren att skilja mellan strängar och faktiska sökvägar och operatorer. Se också till att placera tomt utrymme runt operatorer (till exempel innebär en "*" i en sökväg något annat än att multiplicera).