Keterampilan kognitif kondisional

Note

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

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 } 

Note

Keterampilan ini tidak terikat pada Foundry Tools. Ini tidak dapat dibijaksakan dan tidak memiliki persyaratan kunci Foundry Tools.

@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 ")")
    Examples:

        "= $(/document)"
        "= $(/document/content)"
    
  • Literal (string, angka, true, false, null)
    Examples:

       "= 'this is a string'"   // string (note the single quotation marks)
       "= 34"                   // number
       "= true"                 // Boolean
       "= null"                 // null value
    
  • Ekspresi yang menggunakan operator perbandingan (==, !=, >=, >, <=, <)
    Examples:

        "= $(/document/language) == 'en'"
        "= $(/document/sentiment) >= 0.5"
    
  • Ekspresi yang menggunakan operator Boolean (&&&, ||, !, ^)
    Examples:

        "= $(/document/language) == 'en' && $(/document/sentiment) > 0.5"
        "= !true"
    
  • Ekspresi yang menggunakan operator numerik (+, -, *, /, %)
    Examples:

        "= $(/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.

Masukan keterampilan

Input peka huruf besar/kecil.

Input Deskripsi
condition Input ini merupakan bidang yang dievaluasi yang mewakili kondisi untuk dievaluasi. Kondisi ini harus dievaluasi ke nilai Boolean (true atau false).
Contoh:
"= true"
"= $(/dokumen/bahasa) =='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/*)"

Keluaran Keterampilan

Ada satu output yang disebut "output." Ini mengembalikan nilai whenFalse jika kondisi salah atau ketikaTrue jika kondisinya benar.

Examples

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 "es" 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 kepada anggota yang disebut sentimen ("/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).

Langkah berikutnya