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.
Nota
Penyimpanan pengetahuan adalah penyimpanan sekunder yang ada di Azure Storage dan berisi output set keterampilan Pencarian Azure AI. Mereka terpisah dari sumber pengetahuan dan pangkalan pengetahuan, yang digunakan dalam alur kerja pengambilan agenik .
Di Pencarian Azure AI, "membentuk data" menjelaskan langkah dalam alur kerja penyimpanan pengetahuan yang membuat representasi data konten yang ingin Anda proyeksikan ke dalam tabel, objek, dan file di Azure Storage.
Saat kemampuan dijalankan, output ditulis ke pohon pengayaan dalam hierarki simpul, dan sementara Anda mungkin ingin melihat dan mengonsumsi pohon pengayaan secara keseluruhan, kemungkinan besar Anda akan menginginkan tingkat yang lebih rinci, membuat subset simpul untuk berbagai skenario, seperti menempatkan simpul terkait dengan teks yang diterjemahkan atau entitas yang diekstrak dalam tabel tertentu.
Secara mandiri, pohon pengayaan tidak menyertakan logika yang akan menentukan bagaimana kontennya diwakili dalam penyimpanan pengetahuan. Bentuk data mengisi celah ini dengan menyediakan segala skema yang masuk ke setiap tabel, objek, dan proyeksi file. Anda dapat menganggap bentuk data sebagai definisi atau tampilan kustom dari data yang diperkaya. Anda dapat membuat bentuk sebanyak yang Anda butuhkan, lalu menetapkannya ke proyeksi dalam definisi penyimpanan pengetahuan.
Pendekatan untuk membuat bentuk
Ada dua cara untuk membentuk konten yang diperkaya sehingga dapat diproyeksikan ke dalam penyimpanan pengetahuan:
Gunakan kemampuan Shaper untuk menyusun simpul di pohon pengayaan yang digunakan khususnya untuk proyeksi. Sebagian besar keterampilan membuat konten baru. Sebaliknya, keterampilan Shaper bekerja dengan simpul yang ada, biasanya untuk mengonsolidasikan beberapa simpul ke dalam satu objek kompleks. Ini berguna untuk tabel di mana Anda ingin output dari beberapa simpul dinyatakan secara fisik sebagai kolom dalam tabel.
Gunakan bentuk sebaris dalam definisi proyeksi itu sendiri.
Dengan menggunakan kemampuan Shaper, bentuknya dapat dieksternalisasi sehingga dapat dipakai oleh beberapa proyeksi atau bahkan kemampuan lainnya. Shaper juga memastikan bahwa semua mutasi pohon pengayaan terkandung dalam keterampilan dan bahwa outputnya adalah objek yang dapat digunakan kembali. Sebaliknya, pembentukan sebaris memungkinkan Anda membuat bentuk yang Anda butuhkan, tetapi merupakan objek anonim dan hanya tersedia untuk proyeksi yang ditentukan.
Pendekatan dapat digunakan bersama-sama atau secara terpisah. Artikel ini menunjukkan keduanya: kemampuan Shaper dalam proyeksi tabel, dan pembentukan sebaris dengan frasa kunci proyeksi tabel.
Menggunakan skill Shaper
Keterampilan Shaper biasanya ditempatkan di akhir skillset, menciptakan representasi data yang ingin Anda proyeksikan. Contoh ini menciptakan bentuk bernama "tableprojection" yang berisi simpul berikut: "reviews_text", "reviews_title", "AzureSearch_DocumentKey", dan skor sentimen serta frasa kunci dari ulasan berdasarkan halaman.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#5",
"description": null,
"context": "/document",
"inputs": [
{
"name": "reviews_text",
"source": "/document/reviews_text",
"sourceContext": null,
"inputs": []
},
{
"name": "reviews_title",
"source": "/document/reviews_title",
"sourceContext": null,
"inputs": []
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey",
"sourceContext": null,
"inputs": []
},
{
"name": "pages",
"source": null,
"sourceContext": "/document/reviews_text/pages/*",
"inputs": [
{
"name": "Sentiment",
"source": "/document/reviews_text/pages/*/Sentiment",
"sourceContext": null,
"inputs": []
},
{
"name": "LanguageCode",
"source": "/document/Language",
"sourceContext": null,
"inputs": []
},
{
"name": "Page",
"source": "/document/reviews_text/pages/*",
"sourceContext": null,
"inputs": []
},
{
"name": "keyphrase",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"source": "/document/reviews_text/pages/*/Keyphrases/*",
"name": "Keyphrases"
}
]
}
]
}
],
"outputs": [
{
"name": "output",
"targetName": "tableprojection"
}
]
}
Properti SourceContext
Dalam kemampuan Shaper, sebuah input bisa memiliki elemen sourceContext. Properti yang sama ini juga dapat digunakan pada bentuk sebaris dalam proyeksi.
sourceContext digunakan untuk membangun objek bersarang yang berjenjang dalam alur pengayaan. Jika input berada pada konteks yang berbeda dari konteks keterampilan, gunakan sourceContext.
SourceContext mengharuskan Anda untuk menentukan input bertumpuk dengan elemen tertentu yang ditangani sebagai sumber.
Dalam contoh sebelumnya, analisis sentimen dan ekstraksi frasa kunci dilakukan pada teks yang dibagi menjadi halaman untuk analisis yang lebih efisien. Dengan asumsi Anda ingin skor dan frasa diproyeksikan ke dalam tabel, Anda sekarang perlu mengatur konteks ke input berlapis yang menyediakan skor dan frasa.
Memproyeksikan bentuk ke dalam beberapa tabel
Dengan simpul yang tableprojection didefinisikan di outputs bagian sebelumnya, Anda dapat memotong bagian tableprojection simpul ke dalam tabel terkait individual.
"projections": [
{
"tables": [
{
"tableName": "hotelReviewsDocument",
"generatedKeyName": "Documentid",
"source": "/document/tableprojection"
},
{
"tableName": "hotelReviewsPages",
"generatedKeyName": "Pagesid",
"source": "/document/tableprojection/pages/*"
},
{
"tableName": "hotelReviewsKeyPhrases",
"generatedKeyName": "KeyPhrasesid",
"source": "/document/tableprojection/pages/*/keyphrase/*"
}
]
}
]
Bentuk sebaris untuk proyeksi tabel
Pembentukan sebaris adalah kemampuan untuk membentuk bentuk baru dalam definisi proyeksi itu sendiri. Pembentukan sebaris memiliki karakteristik berikut:
- Bentuk ini hanya digunakan oleh proyeksi yang mengandungnya.
- Bentuknya bisa identik dengan apa yang dihasilkan keterampilan Shaper.
Bentuk sebaris dibuat menggunakan sourceContext dan inputs.
| Properti | Deskripsi |
|---|---|
| sourceContext | Menetapkan akar proyeksi. |
| input | Setiap input adalah kolom dalam tabel. Nama adalah nama kolom. Sumber adalah simpul pengayaan yang memberikan nilai. |
Untuk memproyeksikan data yang sama seperti contoh sebelumnya, opsi proyeksi sebaris akan terlihat seperti ini:
"projections": [
{
"tables": [
{
"tableName": "hotelReviewsInlineDocument",
"generatedKeyName": "Documentid",
"sourceContext": "/document",
"inputs": [
{
"name": "reviews_text",
"source": "/document/reviews_text"
},
{
"name": "reviews_title",
"source": "/document/reviews_title"
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey"
}
]
},
{
"tableName": "hotelReviewsInlinePages",
"generatedKeyName": "Pagesid",
"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/*"
}
]
},
{
"tableName": "hotelReviewsInlineKeyPhrases",
"generatedKeyName": "KeyPhraseId",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"name": "Keyphrases",
"source": "/document/reviews_text/pages/*/Keyphrases/*"
}
]
}
]
}
]
Salah satu pengamatan dari kedua pendekatan adalah bagaimana nilai “Keyphrases” diproyeksikan menggunakan “sourceContext”. Simpul "Keyphrases", yang berisi kumpulan string, adalah anak dari teks halaman. Namun, karena proyeksi memerlukan objek JSON dan halaman adalah primitif (string), "sourceContext" digunakan untuk membungkus frasa kunci ke dalam objek dengan properti yang terdefinisi. Teknik ini memungkinkan bahkan elemen dasar untuk diproyeksikan secara mandiri.
Bentuk sebaris untuk proyeksi objek
Anda dapat menghasilkan bentuk baru menggunakan keterampilan Shaper atau menggunakan pembentukan sebaris dari proyeksi objek. Sementara contoh tabel menunjukkan pendekatan pembuatan bentuk dan pembelahan, contoh ini menunjukkan penggunaan pembentukan sebaris.
Pembentukan inline adalah kemampuan untuk membuat bentuk baru dalam definisi input untuk proyeksi. Pembentukan sebaris menciptakan objek anonim yang identik dengan apa yang akan dihasilkan oleh kemampuan Shaper (dalam hal ini, projectionShape). Pemrosesan bentuk sebaris berguna jika Anda mendefinisikan bentuk yang tidak akan digunakan kembali.
Properti proyeksi adalah larik. Contoh ini menambahkan instans proyeksi baru ke larik, di mana definisi knowledgeStore berisi proyeksi sebaris. Saat menggunakan proyeksi inline, Anda dapat menghilangkan fungsi Shaper.
"knowledgeStore" : {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
"projections": [
{
"tables": [ ],
"objects": [
{
"storageContainer": "sampleobject",
"source": null,
"generatedKeyName": "myobject",
"sourceContext": "/document",
"inputs": [
{
"name": "metadata_storage_name",
"source": "/document/metadata_storage_name"
},
{
"name": "metadata_storage_path",
"source": "/document/metadata_storage_path"
},
{
"name": "content",
"source": "/document/content"
},
{
"name": "keyPhrases",
"source": "/document/merged_content/keyphrases/*"
},
{
"name": "entities",
"source": "/document/merged_content/entities/*/name"
},
{
"name": "ocrText",
"source": "/document/normalized_images/*/text"
},
{
"name": "ocrLayoutText",
"source": "/document/normalized_images/*/layoutText"
}
]
}
],
"files": []
}
]
}
Langkah berikutnya
Artikel ini menjelaskan konsep dan prinsip bentuk proyeksi. Sebagai langkah selanjutnya, lihat bagaimana hal ini diterapkan dalam pola untuk proyeksi tabel, objek, dan file.