Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini untuk pengembang yang membutuhkan pemahaman yang lebih mendalam tentang komposisi skillset, dan mengasumsikan keakraban dengan konsep pengayaan AI tingkat tinggi atau bagaimana AI diterapkan di Azure AI Search untuk mengubah konten mentah selama pengindeksan.
Skillset adalah objek yang dapat digunakan kembali di Azure AI Search yang dilampirkan ke pengindeks. Ini berisi satu atau beberapa keterampilan yang memanggil AI bawaan atau pemrosesan kustom eksternal melalui konten mentah yang diambil dari sumber data eksternal.
Diagram berikut mengilustrasikan aliran data dasar pelaksanaan kumpulan keterampilan.
Dari awal pemrosesan set keterampilan hingga kesimpulannya, keterampilan membaca dari dan menulis ke pohon dokumen *diperkaya yang ada dalam memori. Awalnya, dokumen yang diperkaya hanyalah konten mentah yang diekstrak dari sumber data (diartikulasikan sebagai simpul "/document" akar). Dengan setiap eksekusi keterampilan, dokumen yang diperkaya mendapatkan struktur dan substansi saat setiap keterampilan menulis outputnya sebagai simpul dalam grafik.
Setelah eksekusi skillset selesai, output dokumen yang diperkaya dirutekan ke indeks melalui pemetaan bidang output yang ditentukan pengguna. Konten mentah apa pun yang ingin Anda transfer secara utuh, dari sumber ke indeks, didefinisikan melalui pemetaan bidang. Sebaliknya, pemetaan bidang output mentransfer konten dari dalam memori (simpul) ke dalam indeks.
Untuk mengonfigurasi AI yang diterapkan, tentukan pengaturan dalam set keterampilan dan pengindeks.
Definisi keterampilan
Skillset adalah kumpulan dari satu atau lebih keterampilan yang melakukan pengayaan, seperti menerjemahkan teks atau melakukan pengenalan karakter optik (OCR) pada file gambar. Keterampilan dapat menjadi keterampilan bawaan dari Microsoft, atau keterampilan kustom untuk memproses logika yang Anda host secara eksternal. Set keterampilan menghasilkan dokumen yang diperkaya yang dikonsumsi selama pengindeksan atau diproyeksikan ke penyimpanan pengetahuan.
Keterampilan memiliki konteks, input, dan output:
Konteks mengacu pada cakupan operasi, yang bisa sekali per dokumen atau sekali untuk setiap item dalam koleksi.
Input berasal dari simpul dalam dokumen yang diperkaya, di mana "sumber" dan "nama" mengidentifikasi simpul tertentu.
Output dikirim kembali ke dokumen yang diperkaya sebagai node baru. Nilai dari elemen adalah "nama" dan isi elemen. Jika nama node diduplikasi, Anda dapat mengatur nama target untuk disambiguasi.
Konteks keterampilan
Setiap keterampilan memiliki konteks, yang dapat berupa seluruh dokumen (/document) atau simpul yang lebih rendah di pohon (/document/countries/*).
Konteks menentukan:
Frekuensi keterampilan dijalankan, pada satu nilai (sekali per bidang, per dokumen), atau terhadap koleksi, di mana menambahkan
/*mengakibatkan pemanggilan keterampilan untuk setiap instans dalam koleksi.Pernyataan output, atau lokasi di pohon pengayaan tempat output kemampuan ditambahkan. Output selalu ditambahkan ke struktur pohon sebagai turunan dari simpul konteks.
Bentuk input. Untuk koleksi multi-tingkat, mengatur konteks ke koleksi induk memengaruhi bentuk input untuk keterampilan. Misalnya jika Anda memiliki pohon pengayaan dengan daftar negara/wilayah, masing-masing diperkaya dengan daftar status yang berisi daftar kode pos, bagaimana Anda mengatur konteks menentukan bagaimana input ditafsirkan.
Context Input Bentuk Input Pemanggilan Keterampilan /document/countries/*/document/countries/*/states/*/zipcodes/*Daftar semua kode pos di negara/wilayah Sekali per negara/wilayah /document/countries/*/states/*/document/countries/*/states/*/zipcodes/*Daftar kode pos di negara bagian Sekali per kombinasi negara/wilayah dan negara bagian
Dependensi keterampilan
Keterampilan dapat dijalankan secara independen dan paralel, atau berurutan dalam ketergantungan jika Anda mengalirkan output dari satu keterampilan ke keterampilan lain. Contoh berikut menunjukkan dua keterampilan bawaan yang dijalankan secara berurutan:
Keterampilan #1 adalah keterampilan Pemisahan Teks yang menerima konten dari bidang sumber "reviews_text" sebagai input, dan membagi konten tersebut menjadi "halaman" masing-masing 5.000 karakter sebagai output. Memisahkan teks besar menjadi gugus yang lebih kecil dapat menghasilkan hasil yang lebih baik untuk keterampilan seperti deteksi sentimen.
Keterampilan #2 adalah keterampilan Deteksi Sentimen tergantung pada output keterampilan terpisah. Ini menerima "halaman" sebagai input, dan menghasilkan bidang baru yang disebut "Sentimen" sebagai output yang berisi hasil analisis sentimen.
Perhatikan bagaimana output keterampilan pertama ("halaman") digunakan dalam analisis sentimen, di mana "/document/reviews_text/pages/*" adalah konteks dan input. Untuk informasi selengkapnya tentang rumusan jalur, lihat Cara mereferensikan pengayaan.
{
"skills": [
{
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"name": "#1",
"description": null,
"context": "/document/reviews_text",
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"maximumPageLength": 5000,
"inputs": [
{
"name": "text",
"source": "/document/reviews_text"
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
]
},
{
"@odata.type": "#Microsoft.Skills.Text.SentimentSkill",
"name": "#2",
"description": null,
"context": "/document/reviews_text/pages/*",
"defaultLanguageCode": "en",
"inputs": [
{
"name": "text",
"source": "/document/reviews_text/pages/*",
}
],
"outputs": [
{
"name": "sentiment",
"targetName": "sentiment"
},
{
"name": "confidenceScores",
"targetName": "confidenceScores"
},
{
"name": "sentences",
"targetName": "sentences"
}
]
}
. . .
]
}
Pohon pengayaan
Dokumen yang diperkaya adalah struktur data sementara seperti pohon yang dibuat selama eksekusi kumpulan keterampilan yang mengumpulkan semua perubahan yang diperkenalkan melalui penggunaan keterampilan. Secara kolektif, pengayaan diwakili sebagai hierarki simpul yang dapat diatasi. Simpul juga menyertakan bidang yang tidak diperkaya yang diteruskan secara verbatim dari sumber data eksternal. Pendekatan terbaik untuk memeriksa struktur dan konten pohon pengayaan adalah melalui sesi debug di portal Microsoft Azure.
Dokumen yang diperkaya ada selama durasi eksekusi kumpulan keterampilan, tetapi dapat di-cache atau dikirim ke penyimpanan pengetahuan.
Awalnya, dokumen yang diperkaya hanyalah konten yang diekstraksi dari sumber data selama pembongkaran dokumen, di mana teks dan gambar diekstraksi dari sumber dan tersedia untuk analisis bahasa atau gambar.
Konten awal adalah metadata dan simpul akar (document/content). Simpul akar biasanya merupakan seluruh dokumen atau gambar yang dinormalisasi yang diekstrak dari sumber data selama pemecahan dokumen. Bagaimana pengartikulasian data dalam pohon pengayaan berbeda-beda tergantung pada jenis sumber data masing-masing. Tabel berikut ini memperlihatkan status dokumen yang masuk ke dalam alur pengayaan untuk beberapa sumber data yang didukung:
| Sumber Data\Mode Penguraian | Default | JSON, JSON Lines & CSV |
|---|---|---|
| Blob Storage | /document/content /document/normalized_images/* … |
/document/{key1} /document/{key2} … |
| Azure SQL | /document/{column1} /document/{column2} … |
N/A |
| Azure Cosmos DB | /document/{key1} /document/{key2} … |
N/A |
Saat keterampilan mengeksekusi, output ditambahkan ke pohon pengayaan sebagai simpul baru. Jika pelaksanaan keterampilan meliputi seluruh dokumen, simpul ditambahkan pada tingkat pertama di bawah elemen akar.
Simpul dapat digunakan sebagai input untuk keterampilan hilir. Misalnya, keterampilan yang membuat konten, seperti string yang diterjemahkan, dapat menjadi input untuk keterampilan yang mengenali entitas atau mengekstrak frasa kunci.
Meskipun Anda dapat memvisualisasikan dan bekerja dengan pohon pengayaan melalui editor visual Sesi Debug, pohon ini sebagian besar merupakan struktur internal.
Penambahan bersifat tidak dapat diubah: setelah dibuat, simpul tidak dapat diedit. Saat keterampilan Anda menjadi lebih kompleks, demikian juga diagram pemerkayaan Anda, tetapi tidak semua node di diagram pemerkayaan perlu dimasukkan ke indeks atau penyimpanan pengetahuan.
Anda dapat secara selektif hanya mempertahankan subset output pengayaan sehingga Anda hanya menyimpan apa yang ingin Anda gunakan. Pemetaan bidang output dalam definisi pengindeks Anda menentukan konten apa yang sebenarnya diserap dalam indeks pencarian. Demikian juga, jika Anda membuat penyimpanan pengetahuan, Anda dapat memetakan keluaran ke dalam bentuk yang ditetapkan ke dalam proyeksi.
Note
Format pohon pengayaan memungkinkan alur pengayaan untuk melampirkan metadata ke jenis data primitif sekalipun. Metadata tidak akan menjadi objek JSON yang valid, tetapi dapat diproyeksikan ke dalam format JSON yang valid dalam definisi proyeksi di penyimpanan pengetahuan. Untuk informasi selengkapnya, lihat Kemampuan Shaper.
Definisi Pengindeks
Pengindeks memiliki properti dan parameter yang digunakan untuk mengonfigurasi eksekusi pengindeks. Di antara properti tersebut adalah pemetaan yang mengatur jalur data ke bidang dalam indeks pencarian.
Terdapat dua himpunan pemetaan:
"fieldMappings" memetakan bidang sumber ke bidang pencarian.
"outputFieldMappings" memetakan simpul dalam dokumen yang diperkaya ke bidang pencarian.
Properti "sourceFieldName" menentukan bidang di sumber data Anda atau simpul di pohon pengayaan. Properti "targetFieldName" menentukan bidang pencarian dalam indeks yang menerima konten.
Contoh pengayaan
Menggunakan keterampilan ulasan hotel sebagai titik referensi, contoh ini menjelaskan bagaimana pohon pengayaan berkembang melalui pelaksanaan keterampilan menggunakan diagram konseptual.
Contoh ini juga menunjukkan:
- Bagaimana konteks dan input keterampilan bekerja untuk menentukan berapa kali keterampilan dijalankan
- Bentuk input seperti apa yang didasarkan pada konteks
Dalam contoh ini, bidang sumber dari file CSV menyertakan ulasan pelanggan tentang hotel ("reviews_text") dan peringkat ("reviews_rating"). Pengindeks menambahkan bidang metadata dari penyimpanan Blob, dan keterampilan menambahkan teks terjemahan, skor sentimen, dan deteksi frasa kunci.
Dalam contoh ulasan hotel, sebuah "dokumen" mewakili satu ulasan hotel dalam proses pengayaan.
Tip
Anda dapat membuat indeks pencarian dan penyimpanan pengetahuan untuk data ini menggunakan REST API. Anda juga dapat menggunakan Sesi Debug untuk wawasan mengenai komposisi set keterampilan, ketergantungan, dan efek pada pohon peningkatan. Gambar dalam artikel ini ditarik dari Sesi Debug.
Secara konseptual, pohon pengayaan awal terlihat sebagai berikut:
Simpul akar untuk semua pengayaan adalah "/document". Saat Anda bekerja dengan pengindeks blob, simpul "/document" memiliki simpul anak "/document/content" dan "/document/normalized_images". Ketika data berbentuk CSV, seperti dalam contoh ini, nama kolom dipetakan ke node di bawah "/document".
Keterampilan #1: Keterampilan Memisahkan
Ketika konten sumber terdiri dari potongan teks yang besar, sangat membantu untuk memecahnya menjadi komponen yang lebih kecil untuk vektorisasi terintegrasi, atau untuk akurasi bahasa, sentimen, dan deteksi frasa kunci yang lebih besar. Ada dua jenis yang tersedia: halaman dan kalimat. Halaman terdiri dari sekitar 5.000 karakter.
Alternatif untuk membagi dengan keterampilan Split adalah melalui keterampilan Tata Letak Dokumen, tetapi kemampuan itu berada di luar cakupan untuk artikel ini.
Saat chunking diperlukan, skill Split biasanya yang pertama dalam satu set skill.
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"name": "#1",
"description": null,
"context": "/document/reviews_text",
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"maximumPageLength": 5000,
"inputs": [
{
"name": "text",
"source": "/document/reviews_text"
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
]
Dengan konteks keterampilan "/document/reviews_text", keterampilan pemisahan akan dijalankan sekali untuk reviews_text. Output keterampilan adalah daftar di mana reviews_text dipotong menjadi 5.000 segmen karakter. Output dari keterampilan terpisah diberi nama pages dan ditambahkan ke pohon pengayaan. Fitur ini targetName memungkinkan Anda mengganti nama output keterampilan sebelum ditambahkan ke pohon pengayaan.
Pohon pengayaan sekarang memiliki simpul baru yang ditempatkan di bawah konteks keterampilan. Simpul ini tersedia untuk pemetaan bidang keterampilan, proyeksi, atau keluaran apa pun.
Untuk mengakses pengayaan yang ditambahkan oleh sebuah keterampilan ke simpul, diperlukan jalur lengkap untuk pengayaan tersebut. Misalnya, jika Anda ingin menggunakan teks dari simpul pages sebagai input ke keterampilan lain, tentukan sebagai "/document/reviews_text/pages/*". Untuk informasi selengkapnya tentang jalur, lihat Pengayaan referensi.
Keterampilan #2 Language detection (Deteksi bahasa)
Dokumen ulasan hotel mencakup tanggapan pelanggan yang dinyatakan dalam beberapa bahasa. Keterampilan deteksi bahasa menentukan bahasa mana yang digunakan. Hasilnya kemudian diteruskan ke ekstraksi frasa kunci dan deteksi sentimen (tidak ditunjukkan), dengan mempertimbangkan bahasa saat mendeteksi sentimen dan frasa.
Meskipun keterampilan deteksi bahasa adalah keterampilan ketiga (keterampilan #3) yang ditentukan dalam set keterampilan, itu adalah keterampilan berikutnya untuk dijalankan. Ini tidak memerlukan input apa pun sehingga dijalankan secara paralel dengan keterampilan sebelumnya. Seperti keterampilan pemisahan yang mendahuluinya, keterampilan deteksi bahasa juga diaktifkan satu kali untuk setiap dokumen. Pohon pengayaan sekarang memiliki simpul baru untuk bahasa.
Keterampilan#3 dan #4 (analisis sentimen dan deteksi frasa kunci)
Umpan balik pelanggan mencerminkan berbagai pengalaman positif dan negatif. Keterampilan analisis sentimen menganalisis umpan balik dan memberikan skor sepanjang kontinum angka negatif ke positif, atau netral jika sentimen tidak ditentukan. Sejalan dengan analisis sentimen, deteksi frase kunci mengidentifikasi dan mengekstrak kata-kata dan frase pendek yang tampak seperti sebab-akibat.
Mengingat konteks /document/reviews_text/pages/*, analisis sentimen serta kemampuan frasa kunci dipanggil sekali untuk setiap item dalam kumpulan pages. Output dari kemampuan akan menjadi simpul di bawah elemen halaman terkait.
Anda sekarang harus dapat melihat sisa keterampilan dalam kumpulan keterampilan dan memvisualisasikan bagaimana pohon pengayaan tumbuh dengan eksekusi setiap keterampilan. Beberapa kemampuan, seperti kemampuan penggabungan dan kemampuan pembentukan, juga membuat simpul baru tetapi hanya menggunakan data dari simpul yang ada dan tidak membuat pengayaan baru tambahan.
Warna konektor di pohon di atas menunjukkan bahwa pengayaan dibuat oleh beragam keterampilan, dan setiap simpul perlu ditangani secara terpisah. Simpul-simpul ini tidak akan menjadi bagian dari objek yang dikembalikan ketika memilih simpul induk.
Keterampilan#5 Keterampilan pembentuk
Jika output termasuk penyimpanan pengetahuan, tambahkan keterampilan Pemodel sebagai langkah terakhir. Keterampilan Pembentuk menciptakan bentuk data dari simpul di pohon pengayaan. Misalnya, Anda mungkin ingin mengkonsolidasikan beberapa simpul menjadi satu bentuk. Anda kemudian dapat memproyeksikan bentuk ini sebagai tabel (simpul menjadi kolom dalam tabel), menyampaikan bentuk dengan nama ke proyeksi tabel.
Kemampuan Pembentuk mudah digunakan karena berfokus pada pembentukan di dalam satu kemampuan. Sebagai alternatif, Anda dapat memilih untuk melakukan pembentukan secara sebaris dalam proyeksi individual. Kemampuan Pembentuk tidak menambahkan atau mengurangi pohon pengayaan, sehingga tidak divisualisasikan. Sebagai gantinya, Anda dapat menganggap keterampilan Shaper sebagai sarana di mana Anda menyusun ulang pohon pengayaan yang sudah Anda miliki. Secara konseptual, keterampilan ini mirip dengan membuat tampilan dari tabel dalam database.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#5",
"description": null,
"context": "/document",
"inputs": [
{
"name": "name",
"source": "/document/name"
},
{
"name": "reviews_date",
"source": "/document/reviews_date"
},
{
"name": "reviews_rating",
"source": "/document/reviews_rating"
},
{
"name": "reviews_text",
"source": "/document/reviews_text"
},
{
"name": "reviews_title",
"source": "/document/reviews_title"
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey"
},
{
"name": "pages",
"sourceContext": "/document/reviews_text/pages/*",
"inputs": [
{
"name": "Sentiment",
"source": "/document/reviews_text/pages/*/Sentiment"
},
{
"name": "LanguageCode",
"source": "/document/Language"
},
{
"name": "Page",
"source": "/document/reviews_text/pages/*"
},
{
"name": "keyphrase",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"name": "Keyphrases",
"source": "/document/reviews_text/pages/*/Keyphrases/*"
}
]
}
]
}
],
"outputs": [
{
"name": "output",
"targetName": "tableprojection"
}
]
}
Langkah selanjutnya
Dengan pengantar dan contoh di belakang Anda, cobalah membuat skillset pertama Anda menggunakan keterampilan bawaan.