Keterampilan kognitif kondisional
Keterampilan Bersyarat memungkinkan skenario Pencarian Azure AI yang memerlukan operasi Boolean untuk menentukan data yang akan ditetapkan ke output. Skenario ini meliputi pemfilteran, penetapan nilai default, dan penggabungan data berdasarkan persyaratan.
Pseudocode berikut menunjukkan apa yang dicapai keterampilan kondisional:
if (condition)
{ output = whenTrue }
else
{ output = whenFalse }
Catatan
Keterampilan ini tidak terikat ke layanan Azure AI. Ini tidak dapat ditagih dan tidak memiliki persyaratan kunci layanan Azure AI.
@odata.type
Microsoft.Skills.Util.ConditionalSkill
Bidang yang dievaluasi
Keterampilan ini istimewa karena inputnya adalah kolom yang dievaluasi.
Item berikut ini adalah nilai ekspresi yang valid:
Jalur anotasi (jalur dalam ekspresi harus dibatasi oleh "$(" dan ")")
Contoh:"= $(/document)" "= $(/document/content)"
Literal (string, angka, true, false, null)
Contoh:"= 'this is a string'" // string (note the single quotation marks) "= 34" // number "= true" // Boolean "= null" // null value
Ekspresi yang menggunakan operator perbandingan (==, !=, >=, >, <=, <)
Contoh:"= $(/document/language) == 'en'" "= $(/document/sentiment) >= 0.5"
Ekspresi yang menggunakan operator Boolean (&&&, ||, !, ^)
Contoh:"= $(/document/language) == 'en' && $(/document/sentiment) > 0.5" "= !true"
Ekspresi yang menggunakan operator numerik (+, -, *, /, %)
Contoh:"= $(/document/sentiment) + 0.5" // addition "= $(/document/totalValue) * 1.10" // multiplication "= $(/document/lengthInMeters) / 0.3049" // division
Karena keterampilan kondisional mendukung evaluasi, Anda dapat menggunakannya dalam skenario transformasi kecil. Sebagai contoh, lihat definisi keterampilan 4.
Input keterampilan
Input peka huruf besar/kecil.
Input | Deskripsi |
---|---|
kondisi | Input ini merupakan bidang yang dievaluasi yang mewakili kondisi untuk dievaluasi. Kondisi ini harus dievaluasi ke nilai Boolean (true atau false). Contoh: "= true" "= $(/document/language) =='fr'" "= $(/document/pages/*/language) == $(/document/expectedLanguage)" |
whenTrue | Input ini adalah bidang yang dievaluasi yang mewakili nilai yang akan dihasilkan jika kondisi dievaluasi ke benar. Untai (karakter) konstanta harus dikembalikan dalam tanda kutip tunggal (' dan '). Nilai sampel: "= 'kontrak'" "= $(/document/contractType)" "= $(/document/entities/*)" |
whenFalse | Input ini adalah bidang yang dievaluasi yang mewakili nilai yang akan dihasilkan jika kondisi dievaluasi ke false. Nilai sampel: "= 'kontrak'" "= $(/document/contractType)" "= $(/document/entities/*)" |
Output keterampilan
Ada satu output yang hanya disebut "output." Ini mengembalikan nilai whenFalse jika kondisi salah atau ketikaTrue jika kondisinya benar.
Contoh
Contoh definisi keterampilan 1: Filter dokumen untuk mengambil hanya dokumen Prancis
Output berikut menghasilkan array kalimat ("/document/frenchSentences") jika bahasa dokumen adalah bahasa Prancis. Jika bahasanya bukan bahasa Prancis, nilainya diatur ke 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" } ]
}
Jika "/document/frenchSentences" digunakan sebagai konteks keterampilan lain, keterampilan itu hanya berjalan jika "/document/frenchSentences" tidak diset ke null.
Sampel definisi keterampilan 2: Set nilai default untuk nilai yang tidak ada
Output berikut membuat anotasi ("/document/languageWithDefault") yang diatur ke bahasa dokumen atau ke "bahasa-bahasa" jika bahasa tidak diatur.
{
"@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" } ]
}
Sampel definisi keterampilan 3: Gabungkan nilai dari dua bidang menjadi satu
Dalam contoh ini, beberapa kalimat memiliki properti FrenchSentiment. Setiap kali properti frenchSentiment null, kami akan menggunakan nilai englishSentiment. Kami menetapkan output ke anggota yang disebut 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" } ]
}
Contoh transformasi
Sampel definisi keterampilan 4: Transformasi data pada satu bidang
Dalam contoh ini, kami menerima sentiment yaitu antara 0 dan 1. Kami ingin mengubahnya menjadi antara -1 dan 1. Kita dapat menggunakan keterampilan kondisional untuk melakukan transformasi kecil ini.
Dalam contoh ini, kita tidak menggunakan aspek keterampilan kondisional karena kondisinya selalu 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" } ]
}
Pertimbangan khusus
Beberapa parameter dievaluasi, jadi Anda harus sangat berhati-hati untuk mengikuti pola yang didokumentasikan. Ekspresi harus dimulai dengan tanda sama dengan. Jalur harus dibatasi oleh "$(" dan ")". Pastikan untuk meletakkan untai (karakter) dalam tanda kutip tunggal. Ini membantu evaluator membedakan antara untai (karakter) dan jalur dan operator aktual. Selain itu, pastikan untuk menempatkan ruang putih di sekitar operator (misalnya, sebuah "*" di jalur berarti sesuatu yang berbeda dengan kalikan).