Feltételes kognitív képesség

A feltételes képesség lehetővé teszi az Olyan Azure AI Search-forgatókönyveket, amelyek logikai műveletet igényelnek a kimenethez rendelendő adatok meghatározásához. Ezek a forgatókönyvek közé tartozik a szűrés, az alapértelmezett érték hozzárendelése és az adatok feltételen alapuló egyesítése.

Az alábbi pszeudokód bemutatja, hogy a feltételes képesség mire képes:

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

Megjegyzés:

Ez a képesség nem kötődik az Azure AI-szolgáltatásokhoz. Nem számlázható, és nincs Azure AI-szolgáltatások kulcskövetelménye.

@odata.type

Microsoft.Skills.Util.ConditionalSkill

Kiértékelt mezők

Ez a képesség azért különleges, mert a bemenetei kiértékelt mezők.

A következő elemek egy kifejezés érvényes értékei:

  • Széljegyzetek elérési útjai (a kifejezések elérési útjait "$(" és ")") kell elválasztani.
    Examples:

        "= $(/document)"
        "= $(/document/content)"
    
  • Literálok (sztringek, számok, igaz, hamis, null)
    Examples:

       "= 'this is a string'"   // string (note the single quotation marks)
       "= 34"                   // number
       "= true"                 // Boolean
       "= null"                 // null value
    
  • Összehasonlító operátorokat használó kifejezések (==, !=, >=, >= <, <)
    Examples:

        "= $(/document/language) == 'en'"
        "= $(/document/sentiment) >= 0.5"
    
  • Logikai operátorokat (&, ||, !, ^) használó kifejezések
    Examples:

        "= $(/document/language) == 'en' && $(/document/sentiment) > 0.5"
        "= !true"
    
  • Numerikus operátorokat (+, -, *, /, %) használó kifejezések
    Examples:

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

Mivel a feltételes képesség támogatja a kiértékelést, kisebb átalakítási forgatókönyvekben is használhatja. Lásd például a 4. képességdefiníciót.

Készségbemenetek

A bemenetek megkülönböztetik a kis- és nagybetűket.

Bevitel Leírás
feltétel Ez a bemenet egy kiértékelendő mező , amely az kiértékelendő feltételt jelöli. Ennek a feltételnek logikai értékre (igaz vagy hamis) kell kiértékelnie.
Példák:
"= igaz"
"= $(/document/language) =='fr'"
"= $(/document/pages/*/language) == $(/document/expectedLanguage)"
whenTrue Ez a bemenet egy kiértékelt mező, amely a visszaadandó értéket jelöli, ha a feltétel kiértékelése igaz. Az állandók sztringeket egyetlen idézőjelben (" és ") kell visszaadni.
Mintaértékek:
"= "szerződés"
"= $(/document/contractType)"
"= $(/document/entities/*)"
whenFalse Ez a bemenet egy kiértékelt mező, amely a visszaadandó értéket jelöli, ha a feltétel kiértékelése hamis.
Mintaértékek:
"= "szerződés"
"= $(/document/contractType)"
"= $(/document/entities/*)"

Képességkimenetek

Egyetlen kimenet van, amelyet egyszerűen "kimenetnek" neveznek. Azt az értéket adja vissza, amikorFalse , ha a feltétel hamis, vagy ha a feltétel igaz.

Példák

1. minta készségdefiníció: Dokumentumok szűrése csak francia dokumentumok visszaadásához

Az alábbi kimenet mondatok ("/document/frenchSentences") tömbét adja vissza, ha a dokumentum nyelve francia. Ha a nyelv nem francia, akkor az érték null értékre van állítva.

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

Ha a "/document/frenchSentences" egy másik képesség kontextusa, akkor ez a képesség csak akkor fut, ha a "/document/frenchSentences" értéke nem null.

2. mintaképesség-definíció: Alapértelmezett érték beállítása nem létező értékhez

A következő kimenet létrehoz egy széljegyzetet ("/document/languageWithDefault"), amely a dokumentum nyelvére vagy "es" értékre van állítva, ha a nyelv nincs beállítva.

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

3. minta készségdefiníció: Értékek egyesítése két mezőből egybe

Ebben a példában néhány mondat franciaSentiment tulajdonságú. Amikor a frenchSentiment tulajdonság null értékű, az englishSentiment értéket szeretnénk használni. A kimenetet egy hangulatnak nevezett taghoz rendeljük ("/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" } ]
}

Átalakítási példa

4. minta készségdefiníció: Adatátalakítás egyetlen mezőn

Ebben a példában egy 0 és 1 közötti hangulatot kapunk. -1 és 1 közötti értékre szeretnénk átalakítani. A feltételes képesség használatával elvégezhetjük ezt a kisebb átalakítást.

Ebben a példában nem a képesség feltételes aspektusát használjuk, mert a feltétel mindig igaz.

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

Különleges megfontolások

A rendszer kiértékel néhány paramétert, ezért különösen körültekintőnek kell lennie a dokumentált minta követésére. A kifejezéseknek egyenlőségjellel kell kezdődniük. Az elérési utat "$(" és ")" elválasztással kell elválasztani. Ügyeljen arra, hogy sztringeket tegyen idézőjelek közé. Ez segít a kiértékelőnek megkülönböztetni a sztringeket, a tényleges útvonalakat és operátorokat. Ügyeljen arra is, hogy az operátorok köré fehér térközt helyezzen el (például a "*" az elérési úton valami mást jelent, mint a szorzás).

További lépések