Keterampilan kognitif shaper

Keterampilan Shaper digunakan untuk membentuk ulang atau memodifikasi struktur pohon pengayaan dalam memori yang dibuat oleh set keterampilan. Jika output keterampilan tidak dapat dipetakan langsung ke bidang pencarian, Anda dapat menambahkan keterampilan Shaper untuk membuat bentuk data yang Anda butuhkan untuk indeks pencarian atau penyimpanan pengetahuan Anda.

Kasus penggunaan utama untuk keterampilan ini meliputi:

  • Anda mengisi penyimpanan pengetahuan. Struktur fisik tabel dan objek penyimpanan pengetahuan didefinisikan melalui proyeksi. Keterampilan Shaper menambahkan granularitas dengan membuat bentuk data yang dapat didorong ke proyeksi.

  • Anda ingin memetakan beberapa output keterampilan ke dalam satu struktur dalam indeks pencarian Anda, biasanya jenis kompleks, seperti yang dijelaskan dalam skenario 1.

  • Keterampilan menghasilkan beberapa output, tetapi Anda ingin menggabungkan ke dalam satu bidang (tidak harus menjadi jenis kompleks), seperti yang dijelaskan dalam skenario 2. Misalnya, menggabungkan judul dan penulis ke dalam satu bidang.

  • Keterampilan menghasilkan beberapa output dengan elemen anak, dan Anda ingin menggabungkannya. Kasus penggunaan ini diilustrasikan dalam skenario 3.

Nama output keterampilan Shaper selalu "output". Secara internal, alur dapat memetakan nama yang berbeda, seperti "analyzedText" seperti yang ditunjukkan pada contoh di bawah ini, tetapi keterampilan Shaper itu sendiri mengembalikan "keluaran" sebagai respons. Ini mungkin penting jika Anda memeriksa kesalahan dokumen yang diperkaya dan melihat perbedaan penamaan, atau jika Anda membangun keterampilan khusus dan menyusun respons sendiri.

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.ShaperSkill

Skenario 1: tipe kompleks

Pertimbangkan skenario ketika Anda ingin membuat struktur yang disebut analyzedText yang masing-masing memiliki dua anggota: teks dan sentimen. Dalam indeks, bidang multibagian yang dapat dicari disebut tipe kompleks dan sering dibuat ketika data sumber memiliki struktur kompleks terkait yang memetakannya.

Namun, pendekatan lain untuk membuat jenis yang kompleks adalah melalui keterampilan Shaper. Dengan menyertakan keterampilan ini dalam rangkaian kemampuan, operasi dalam memori selama pemrosesan keterampilan dapat menghasilkan bentuk data dengan struktur bersarang, yang kemudian dapat dipetakan ke jenis kompleks dalam indeks Anda.

Contoh definisi keterampilan berikut menyediakan nama anggota sebagai input.

{
  "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
  "context": "/document/content/phrases/*",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content/phrases/*"
    },
    {
      "name": "sentiment",
      "source": "/document/content/phrases/*/sentiment"
    }
  ],
  "outputs": [
    {
      "name": "output",
      "targetName": "analyzedText"
    }
  ]
}

Indeks sampel CLI

Keterampilan dipanggil oleh pengindeks, dan pengindeks memerlukan indeks. Representasi bidang yang kompleks dalam indeks Anda mungkin terlihat seperti contoh berikut.

"name":"my-index",
"fields":[
   { "name":"myId", "type":"Edm.String", "key":true, "filterable":true  },
   { "name":"analyzedText", "type":"Edm.ComplexType",
      "fields":[
         {
            "name":"text",
            "type":"Edm.String",
            "facetable":false,
            "filterable":false,
            "searchable":true,
            "sortable":false  },
         {
            "name":"sentiment",
            "type":"Edm.Double",
            "facetable":true,
            "filterable":true,
            "searchable":true,
            "sortable":true }
      }

Masukan keterampilan

Dokumen JSON yang masuk yang menyediakan input yang dapat digunakan untuk keterampilan Shaper ini dapat berupa:

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "this movie is awesome",
                "sentiment": 0.9
            }
        }
    ]
}

Keluaran keterampilan

Keterampilan Shaper menghasilkan elemen baru yang disebut analyzedText dengan elemen gabungan teks dan sentimen. Keluaran ini sesuai dengan skema indeks. Ini akan diimpor dan diindeks dalam indeks Pencarian Azure AI.

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
            "analyzedText": 
              {
                "text": "this movie is awesome" ,
                "sentiment": 0.9
              }
           }
      }
    ]
}

Skenario 2: konsolidasi input

Dalam contoh lain, bayangkan bahwa pada berbagai tahap pemrosesan alur, Anda telah mengekstrak judul buku, dan judul bab pada halaman buku yang berbeda. Anda sekarang dapat membuat satu struktur yang terdiri dari berbagai output ini.

Definisi keterampilan Shaper untuk skenario ini mungkin terlihat seperti contoh berikut:

{
    "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
    "context": "/document",
    "inputs": [
        {
            "name": "title",
            "source": "/document/content/title"
        },
        {
            "name": "chapterTitles",
            "source": "/document/content/pages/*/chapterTitles/*/title"
        }
    ],
    "outputs": [
        {
            "name": "output",
            "targetName": "titlesAndChapters"
        }
    ]
}

Keluaran keterampilan

Dalam hal ini, Shaper meratakan semua judul bab untuk membuat satu array.

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "titlesAndChapters": {
                    "title": "How to be happy",
                    "chapterTitles": [
                        "Start young",
                        "Laugh often",
                        "Eat, sleep and exercise"
                    ]
                }
            }
        }
    ]
}

Skenario 3: input konsolidasi dari konteks bersarang

Bayangkan Anda memiliki judul bab dan nomor bab buku dan telah menjalankan pengenalan entitas dan frasa kunci pada konten dan sekarang perlu menggabungkan hasil dari keterampilan yang berbeda menjadi satu bentuk dengan nama bab, entitas, dan frasa kunci.

Contoh ini menambahkan properti opsional sourceContext ke input "chapterTitles". Properti source dan sourceContext saling eksklusif. Jika input berada pada konteks keterampilan, Anda dapat menggunakan source. Jika input berada pada konteks yang berbeda dari konteks keterampilan, gunakan sourceContext. sourceContext mengharuskan Anda untuk menentukan input berlapis, di mana setiap input memiliki source yang mengidentifikasi elemen tertentu yang digunakan untuk mengisi node bernama.

Definisi keterampilan Shaper untuk skenario ini mungkin terlihat seperti contoh berikut:

{
    "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
    "context": "/document",
    "inputs": [
        {
            "name": "title",
            "source": "/document/content/title"
        },
        {
            "name": "chapterTitles",
            "sourceContext": "/document/content/pages/*/chapterTitles/*",
            "inputs": [
              {
                  "name": "title",
                  "source": "/document/content/pages/*/chapterTitles/*/title"
              },
              {
                  "name": "number",
                  "source": "/document/content/pages/*/chapterTitles/*/number"
              }
            ]
        }

    ],
    "outputs": [
        {
            "name": "output",
            "targetName": "titlesAndChapters"
        }
    ]
}

Keluaran keterampilan

Dalam hal ini, Shaper membuat tipe yang kompleks. Struktur ini ada dalam memori. Jika Anda ingin menyimpannya ke penyimpanan informasi,Anda harus membuat proyeksi dalam keterampilan Anda yang menentukan karakteristik penyimpanan.

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "titlesAndChapters": {
                    "title": "How to be happy",
                    "chapterTitles": [
                      { "title": "Start young", "number": 1},
                      { "title": "Laugh often", "number": 2},
                      { "title": "Eat, sleep and exercise", "number: 3}
                    ]
                }
            }
        }
    ]
}

Lihat juga