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 }
Not
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.
Giriş | 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).