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).

Nästa steg