Competenza cognitiva condizionale

La competenza condizionale consente scenari di Ricerca di intelligenza artificiale di Azure che richiedono un'operazione booleana per determinare i dati da assegnare a un output. Questi scenari includono il filtro, l'assegnazione di un valore predefinito e l'unione dei dati in base a una condizione.

Lo pseudocodice seguente illustra le operazioni eseguite dalla competenza condizionale:

if (condition) 
    { output = whenTrue } 
else 
    { output = whenFalse } 

Nota

Questa competenza non è associata ai servizi di intelligenza artificiale di Azure. Non è fatturabile e non ha requisiti chiave per i servizi di intelligenza artificiale di Azure.

@odata.type

Microsoft.Skills.Util.ConditionalSkill

Campi valutati

Questa competenza è speciale perché i relativi input vengono valutati.

Gli elementi seguenti sono valori validi di un'espressione:

  • Percorsi di annotazione (i percorsi nelle espressioni devono essere delimitati da "$(" e ")")
    Esempi:

        "= $(/document)"
        "= $(/document/content)"
    
  • Valori letterali (stringhe, numeri, true, false, null)
    Esempi:

       "= 'this is a string'"   // string (note the single quotation marks)
       "= 34"                   // number
       "= true"                 // Boolean
       "= null"                 // null value
    
  • Espressioni che usano operatori di confronto (==, !=, =, >>, <=, <)
    Esempi:

        "= $(/document/language) == 'en'"
        "= $(/document/sentiment) >= 0.5"
    
  • Espressioni che usano operatori booleani (&&, ||, !, ^)
    Esempi:

        "= $(/document/language) == 'en' && $(/document/sentiment) > 0.5"
        "= !true"
    
  • Espressioni che usano operatori numerici (+, -, *, /, %)
    Esempi:

        "= $(/document/sentiment) + 0.5"         // addition
        "= $(/document/totalValue) * 1.10"       // multiplication
        "= $(/document/lengthInMeters) / 0.3049" // division
    

Poiché la competenza condizionale supporta la valutazione, è possibile usarla in scenari di trasformazione secondaria. Ad esempio, vedere definizione della competenza 4.

Input competenze

Gli input fanno distinzione tra maiuscole e minuscole.

Input Descrizione
condizione Questo input è un campo valutato che rappresenta la condizione da valutare. Questa condizione deve restituire un valore booleano (true o false).
Esempi:
"= true"
"= $(/document/language) =='fr'"
"= $(/document/pages/*/language) == $(/document/expectedLanguage)"
whenTrue Questo input è un campo valutato che rappresenta il valore da restituire se la condizione viene valutata su true. Le stringhe di costanti devono essere restituite tra virgolette singole (' e ').
Valori di esempio:
"= 'contract'"
"= $(/document/contractType)"
"= $(/document/entities/*)"
whenFalse Questo input è un campo valutato che rappresenta il valore da restituire se la condizione viene valutata su false.
Valori di esempio:
"= 'contract'"
"= $(/document/contractType)"
"= $(/document/entities/*)"

Output competenze

Esiste un singolo output denominato semplicemente "output". Restituisce il valore quandoFalse se la condizione è false o whenTrue se la condizione è true.

Esempi

Definizione di competenza di esempio 1: Filtrare i documenti per restituire solo documenti francesi

L'output seguente restituisce una matrice di frasi ("/document/frenchSentences") se la lingua del documento è francese. Se la lingua non è francese, il valore viene impostato su 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" } ]
}

Se "/document/frenchSentences" viene usato come contesto di un'altra competenza, tale competenza viene eseguita solo se "/document/frenchSentences" non è impostato su Null.

Definizione della competenza di esempio 2: Impostare un valore predefinito per un valore che non esiste

L'output seguente crea un'annotazione ("/document/languageWithDefault") impostata sulla lingua del documento o su "es" se la lingua non è impostata.

{
    "@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" } ]
}

Definizione di competenza di esempio 3: Unire valori da due campi in uno

In questo esempio alcune frasi hanno una proprietà frenchSentiment . Ogni volta che la proprietà frenchSentiment è null, si vuole usare il valore englishSentiment . L'output viene assegnato a un membro denominato 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" } ]
}

Esempio di trasformazione

Definizione della competenza di esempio 4: Trasformazione dei dati in un singolo campo

In questo esempio si riceve un sentiment compreso tra 0 e 1. Vogliamo trasformarlo in modo che sia compreso tra -1 e 1. È possibile usare la competenza condizionale per eseguire questa trasformazione secondaria.

In questo esempio non viene usato l'aspetto condizionale della competenza perché la condizione è sempre true.

{
    "@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" } ]
}

Considerazioni speciali

Alcuni parametri vengono valutati, quindi è necessario prestare particolare attenzione a seguire il modello documentato. Le espressioni devono iniziare con un segno di uguale. Un percorso deve essere delimitato da "$(" e ")". Assicurarsi di inserire le stringhe tra virgolette singole. Ciò consente all'analizzatore di distinguere tra stringhe e percorsi e operatori effettivi. Assicurarsi inoltre di inserire spazi vuoti intorno agli operatori (ad esempio, un "*" in un percorso significa qualcosa di diverso rispetto alla moltiplicazione).

Passaggi successivi