Aracılığıyla paylaş


Koşullu bilişsel beceri

Koşullu beceri, bir çıktıya atanacak verileri belirlemek için Boole işlemi gerektiren Azure AI Search senaryolarına olanak tanır. Bu senaryolar filtrelemeyi, varsayılan bir değer atamayı ve verileri bir koşula göre birleştirmeyi içerir.

Aşağıdaki sahte kod, koşullu becerinin neleri başarduğunu gösterir:

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

Dekont

Bu beceri Azure yapay zeka hizmetlerine bağlı değildir. Faturalandırılamaz ve Azure AI hizmetleri temel gereksinimi yoktur.

@odata.type

Microsoft.Skills.Util.ConditionalSkill

Değerlendirilen alanlar

Girişleri değerlendirilen alanlar olduğundan bu beceri özeldir.

Aşağıdaki öğeler bir ifadenin geçerli değerleridir:

  • Ek açıklama yolları (ifadelerdeki yollar "$(" ve ")") ile sınırlandırılmalıdır
    Örnekler:

        "= $(/document)"
        "= $(/document/content)"
    
  • Değişmez değerler (dizeler, sayılar, doğru, yanlış, null)
    Örnekler:

       "= 'this is a string'"   // string (note the single quotation marks)
       "= 34"                   // number
       "= true"                 // Boolean
       "= null"                 // null value
    
  • Karşılaştırma işleçleri kullanan ifadeler (==, !=, >=, >, <=, <)
    Örnekler:

        "= $(/document/language) == 'en'"
        "= $(/document/sentiment) >= 0.5"
    
  • Boole işleçleri (&, ||, !, ^) kullanan ifadeler
    Örnekler:

        "= $(/document/language) == 'en' && $(/document/sentiment) > 0.5"
        "= !true"
    
  • Sayısal işleçler (+, -, *, /, %) kullanan ifadeler
    Örnekler:

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

Koşullu beceri değerlendirmeyi desteklediğinden, bunu küçük dönüştürme senaryolarında kullanabilirsiniz. Örneğin bkz . beceri tanımı 4.

Beceri girişleri

Girişler büyük/küçük harfe duyarlıdır.

Girdi Açıklama
koşul Bu giriş, değerlendirilecek koşulu temsil eden değerlendirilen bir alandır . Bu koşul bir Boole değeri (true veya false) olarak değerlendirilmelidir.
Örnekler:
"= true"
"= $(/document/language) =='fr'"
"= $(/document/pages/*/language) == $(/document/expectedLanguage)"
whenTrue Bu giriş, koşul true olarak değerlendirilirse döndürülecek değeri temsil eden, değerlendirilen bir alandır. Sabit dizeleri tek tırnak işareti (' ve ') olarak döndürülmelidir.
Örnek değerler:
"= 'sözleşme'"
"= $(/document/contractType)"
"= $(/document/entities/*)"
whenFalse Bu giriş, koşul false olarak değerlendirilirse döndürülecek değeri temsil eden, değerlendirilen bir alandır.
Örnek değerler:
"= 'sözleşme'"
"= $(/document/contractType)"
"= $(/document/entities/*)"

Beceri çıkışları

Yalnızca "output" olarak adlandırılan tek bir çıkış vardır. Koşul false ise whenFalse veya koşul true ise whenTrue değerini döndürür.

Örnekler

Örnek beceri tanımı 1: Belgeleri yalnızca Fransızca belgeleri döndürecek şekilde filtreleyin

Aşağıdaki çıkış, belgenin dili Fransızca ise bir cümle dizisi ("/document/frenchSentences") döndürür. Dil Fransızca değilse değer null olarak ayarlanır.

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

Başka bir becerinin bağlamı olarak "/document/frenchSentences" kullanılıyorsa, bu beceri yalnızca "/document/frenchSentences" null olarak ayarlanmadığında çalışır.

Örnek beceri tanımı 2: Var olmayan bir değer için varsayılan değer ayarlama

Aşağıdaki çıkış, belgenin diline veya dil ayarlanmadıysa "es" olarak ayarlanmış bir ek açıklama ("/document/languageWithDefault") oluşturur.

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

Örnek beceri tanımı 3: İki alandaki değerleri tek bir alanda birleştirme

Bu örnekte, bazı cümlelerin frenchSentiment özelliği vardır. frenchSentiment özelliği null olduğunda englishSentiment değerini kullanmak istiyoruz. Çıkışı yaklaşım ("/document/sentences/*/sentiment") adlı bir üyeye atarız.

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

Dönüştürme örneği

Örnek beceri tanımı 4: Tek bir alanda veri dönüştürme

Bu örnekte 0 ile 1 arasında bir yaklaşım elde ediyoruz. -1 ile 1 arasında olacak şekilde dönüştürmek istiyoruz. Bu küçük dönüşümü yapmak için koşullu beceriyi kullanabiliriz.

Bu örnekte koşul her zaman doğru olduğundan becerinin koşullu yönünü kullanmıyoruz.

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

Özel hususlar

Bazı parametreler değerlendirilir, bu nedenle belgelenen deseni takip etmek için özellikle dikkatli olmanız gerekir. İfadeler eşittir işaretiyle başlamalıdır. Bir yol "$(" ve ")" ile sınırlandırılmalıdır. Dizeleri tek tırnak içine yerleştirdiğinden emin olun. Bu, değerlendiricinin dizeleri ve gerçek yolları ve işleçleri ayırt etmesine yardımcı olur. Ayrıca, işleçlerin çevresine boşluk koyduğundan emin olun (örneğin, bir yoldaki "*", çarpmadan farklı bir şey anlamına gelir).

Sonraki adımlar