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.
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.
Important
Fitur dan fungsionalitas ini mendukung koneksi ke layanan layanan Microsoft dan pihak ketiga lainnya. Penggunaan layanan ini tunduk pada persyaratan masing-masing dan dapat mengakibatkan pemrosesan data atau penyimpanan di luar batas kepatuhan Azure, serta data yang mengalir ke batas kepatuhan Azure.
Anda bertanggung jawab untuk mengelola apakah data Anda akan mengalir di luar batas kepatuhan dan geografis organisasi Anda dan implikasi terkait, dan bahwa izin, batas, dan persetujuan yang sesuai disediakan.
Anda bertanggung jawab untuk meninjau dan menguji aplikasi yang Anda buat dengan cermat dalam konteks kasus penggunaan spesifik Anda dan membuat semua keputusan dan penyesuaian yang sesuai. Ini termasuk menerapkan mitigasi AI Anda sendiri yang bertanggung jawab, seperti metaprompts, filter konten, atau sistem keamanan lainnya, dan memastikan aplikasi Anda memenuhi standar kualitas, keandalan, keamanan, dan kepercayaan yang sesuai. Untuk informasi selengkapnya, lihat Catatan Transparansi Pencarian Azure AI.
Kiat
Artikel ini ditujukan untuk alur yang ada yang menggunakan keterampilan Tata Letak Dokumen. Untuk kumpulan keterampilan baru, gunakan keterampilan Azure Content Understanding. Skill ini menyediakan fungsi yang lebih baru, seperti pemenggalan semantik, deskripsi gambar yang dihasilkan AI, dan ekstraksi tabel yang disematkan dalam dokumen, semuanya dalam satu skill. Untuk memulai, lihat Chunk dan vektorisasi konten dengan keterampilan Pemahaman Konten Azure.
Strategi pemotongan data teks memainkan peran kunci dalam mengoptimalkan respons dan performa RAG. Dengan menggunakan keterampilan Tata Letak Dokumen , Anda dapat memotong konten berdasarkan struktur dokumen, menangkap judul dan memotong isi konten berdasarkan koherensi semantik, seperti paragraf dan kalimat. Potongan diproses secara mandiri. Karena LLM bekerja dengan beberapa gugus, ketika potongan-potongan tersebut berkualitas lebih tinggi dan secara semantik koheren, relevansi keseluruhan kueri ditingkatkan.
Keterampilan Tata Letak Dokumen memanggil model tata letak dari Azure Document Intelligence di Foundry Tools. Model ini mengartikulasikan struktur konten di JSON menggunakan sintaks Markdown (judul dan konten), dengan bidang untuk judul dan konten yang disimpan dalam indeks pencarian di Pencarian Azure AI. Konten yang dapat dicari yang dihasilkan dari keterampilan Tata Letak Dokumen adalah teks biasa tetapi Anda dapat menerapkan vektorisasi terintegrasi untuk menghasilkan penyematan untuk bidang apa pun di dokumen sumber Anda, termasuk gambar.
Dalam artikel ini, pelajari cara:
- Gunakan keterampilan Tata Letak Dokumen untuk mengenali struktur dokumen
- Gunakan keterampilan Pemisahan Teks untuk membatasi ukuran gugus ke setiap bagian Markdown
- Menghasilkan representasi vektor untuk setiap potongan
- Menggunakan proyeksi indeks untuk memetakan penyematan ke bidang dalam indeks pencarian
Untuk tujuan ilustrasi, artikel ini menggunakan SAMPEL PDF paket kesehatan yang diunggah ke Azure Blob Storage lalu diindeks menggunakan wizard Impor data .
Prasyarat
Alur pengindeksan berbasis pengindeks dengan indeks yang menerima output. Indeks harus memiliki bidang untuk menerima judul dan konten.
Proyeksi indeks untuk pengindeksan satu-ke-banyak.
Sumber data yang didukung memiliki konten teks yang ingin Anda gugus.
Set keterampilan dengan dua keterampilan ini:
Keterampilan Tata Letak Dokumen yang memisahkan dokumen berdasarkan batas paragraf. Jika Anda menggunakan penagihan berdasarkan kunci, keterampilan ini mengharuskan Microsoft Foundry berada di wilayah yang sama dengan Pencarian Azure AI untuk pengayaan AI. Persyaratan wilayah dilonggarkan untuk penagihan tanpa kunci.
Fitur Penyematan Azure OpenAI yang menghasilkan penyajian vektor. Keterampilan ini tidak memiliki persyaratan wilayah.
Siapkan file data
Anda harus menggunakan sumber data yang didukung untuk input mentah, dan file harus dalam format yang didukung oleh keterampilan Tata Letak Dokumen.
Format file yang didukung termasuk PDF, JPEG, JPG, PNG, BMP, TIFF, DOCX, XLSX, PPTX, dan HTML.
Pengindeks yang didukung adalah pengindeks apa pun yang dapat menangani format file yang didukung. Pengindeks ini termasuk pengindeks Blob, pengindeks Microsoft OneLake, dan pengindeks File (pratinjau).
Wilayah yang didukung untuk pengalaman portal fitur ini termasuk US Timur, Eropa Barat, dan US Tengah Utara. Jika Anda menyiapkan set keterampilan secara terprogram, Anda dapat menggunakan wilayah Azure Document Intelligence mana pun yang juga menyediakan fitur pengayaan AI dari Pencarian Azure AI. Untuk informasi selengkapnya, lihat Wilayah yang didukung untuk keterampilan Tata Letak Dokumen.
Anda dapat menggunakan portal Azure, REST API, atau paket Azure SDK untuk membuat sumber data.
Kiat
Untuk mencoba kemampuan Tata Letak Dokumen dan pengelompokan yang peka terhadap struktur di layanan pencarian Anda sendiri, unggah file sampel PDF rencana kesehatan ke sumber data yang didukung. Wizard Impor Data adalah pendekatan yang mudah dan bebas kode untuk mencoba kemampuan ini. Pastikan untuk memilih mode penguraian default untuk menggunakan pembagian yang memperhatikan struktur. Jika tidak, mode penguraian Markdown digunakan.
Buat indeks untuk pengindeksan satu-ke-banyak
Contoh berikut menunjukkan satu dokumen pencarian yang dirancang di sekitar potongan. Saat Anda bekerja dengan gugus, Anda memerlukan bidang gugus dan bidang induk yang mengidentifikasi asal gugus. Dalam contoh ini, bidang induk adalah text_parent_id bidang . Bidang anak adalah potongan vektor dan nonvektor dari bagian Markdown.
Keterampilan Tata Letak Dokumen menghasilkan judul dan konten. Dalam contoh ini, header_1 hingga header_3 menyimpan judul dokumen, sebagaimana terdeteksi oleh fitur. Konten lain, seperti paragraf, disimpan di chunk. Bidang text_vector adalah representasi vektor dari konten bidang gugus.
Anda dapat menggunakan wizard Impor data di portal Microsoft Azure, REST API, atau Azure SDK untuk membuat indeks. Indeks berikut ini sangat mirip dengan apa yang dibuat wizard secara default. Anda mungkin memiliki lebih banyak bidang jika Anda menambahkan vektorisasi gambar.
Jika Anda tidak menggunakan wizard, indeks harus ada di layanan pencarian sebelum Anda membuat himpunan keterampilan atau menjalankan pengindeks.
{
"name": "my_consolidated_index",
"fields": [
{
"name": "chunk_id",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": true,
"facetable": false,
"key": true,
"analyzer": "keyword"
},
{
"name": "text_parent_id",
"type": "Edm.String",
"searchable": false,
"filterable": true,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "chunk",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "title",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "header_1",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "header_2",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "header_3",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "text_vector",
"type": "Collection(Edm.Single)",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false,
"dimensions": 1536,
"stored": false,
"vectorSearchProfile": "profile"
}
],
"vectorSearch": {
"profiles": [
{
"name": "profile",
"algorithm": "algorithm"
}
],
"algorithms": [
{
"name": "algorithm",
"kind": "hnsw"
}
]
}
}
Tentukan keterampilan untuk pemotongan dan vektorisasi yang mempertimbangkan struktur.
Contoh berikut menunjukkan definisi set keterampilan yang memproyeksikan bagian Markdown individual, gugus, dan setara vektornya sebagai bidang dalam indeks pencarian. Ini menggunakan keterampilan Tata Letak Dokumen untuk mendeteksi judul dan mengisi bidang konten berdasarkan paragraf dan kalimat yang koheren secara semantik dalam dokumen sumber. Ini menggunakan keterampilan Pemisahan Teks untuk membagi konten Markdown menjadi potongan. Ini menggunakan keterampilan Azure OpenAI Embedding untuk mem-vektorisasi gugus dan bidang lain yang ingin Anda sematkan.
Selain keterampilan, kumpulan keterampilan meliputi indexProjections dan cognitiveServices.
indexProjectionsdigunakan untuk indeks yang berisi dokumen yang dipotong. Proyeksi menentukan bagaimana konten induk-anak dipetakan ke bidang dalam indeks pencarian untuk indeks yang mencakup banyak entri. Untuk informasi selengkapnya, lihat Menentukan proyeksi indeks.cognitiveServicesmelampirkan sumber daya Microsoft Foundry untuk tujuan penagihan. Keterampilan Tata Letak Dokumen tersedia melalui harga Standar.
POST {endpoint}/skillsets?api-version=2026-04-01
{
"name": "my_skillset",
"description": "A skillset for structure-aware chunking and vectorization with an index projection around markdown section",
"skills": [
{
"@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
"name": "my_document_intelligence_layout_skill",
"context": "/document",
"outputMode": "oneToMany",
"inputs": [
{
"name": "file_data",
"source": "/document/file_data"
}
],
"outputs": [
{
"name": "markdown_document",
"targetName": "markdownDocument"
}
],
"markdownHeaderDepth": "h3"
},
{
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"name": "my_markdown_section_split_skill",
"description": "A skill that splits text into chunks",
"context": "/document/markdownDocument/*",
"inputs": [
{
"name": "text",
"source": "/document/markdownDocument/*/content",
"inputs": []
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
],
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"unit": "characters"
},
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"name": "my_azure_openai_embedding_skill",
"context": "/document/markdownDocument/*/pages/*",
"inputs": [
{
"name": "text",
"source": "/document/markdownDocument/*/pages/*",
"inputs": []
}
],
"outputs": [
{
"name": "embedding",
"targetName": "text_vector"
}
],
"resourceUri": "https://<subdomain>.openai.azure.com",
"deploymentId": "text-embedding-3-small",
"apiKey": "<Azure OpenAI api key>",
"modelName": "text-embedding-3-small"
}
],
"cognitiveServices": {
"@odata.type": "#Microsoft.Azure.Search.CognitiveServicesByKey",
"key": "<Cognitive Services api key>"
},
"indexProjections": {
"selectors": [
{
"targetIndexName": "my_consolidated_index",
"parentKeyFieldName": "text_parent_id",
"sourceContext": "/document/markdownDocument/*/pages/*",
"mappings": [
{
"name": "text_vector",
"source": "/document/markdownDocument/*/pages/*/text_vector"
},
{
"name": "chunk",
"source": "/document/markdownDocument/*/pages/*"
},
{
"name": "title",
"source": "/document/title"
},
{
"name": "header_1",
"source": "/document/markdownDocument/*/sections/h1"
},
{
"name": "header_2",
"source": "/document/markdownDocument/*/sections/h2"
},
{
"name": "header_3",
"source": "/document/markdownDocument/*/sections/h3"
}
]
}
],
"parameters": {
"projectionMode": "skipIndexingParentDocuments"
}
}
}
Mengonfigurasi dan menjalankan pengindeks
Setelah Anda membuat sumber data, indeks, dan set keterampilan, buat dan jalankan pengindeks. Langkah ini menjalankan alur kerja.
Saat Anda menggunakan keterampilan Tata Letak Dokumen, atur parameter berikut pada definisi pengindeks:
- Atur parameter
allowSkillsetToReadFileDataketrue. - Atur parameter
parsingModekedefault.
Anda tidak perlu mengatur outputFieldMappings dalam skenario ini karena indexProjections menangani bidang sumber untuk mencari asosiasi bidang. Proyeksi indeks mengelola asosiasi bidang untuk fitur Tata Letak Dokumen dan juga pembagian data secara teratur dengan fitur pemisahan untuk beban kerja data yang diimpor dan di-vektorisasi. Anda masih memerlukan pemetaan bidang output untuk transformasi atau pemetaan data kompleks dengan fungsi yang berlaku dalam kasus lain. Namun, untuk n-potongan per dokumen, proyeksi indeks menangani fungsionalitas ini secara langsung.
Berikut adalah contoh permintaan pembuatan pengindeks.
POST {endpoint}/indexers?api-version=2026-04-01
{
"name": "my_indexer",
"dataSourceName": "my_blob_datasource",
"targetIndexName": "my_consolidated_index",
"skillsetName": "my_skillset",
"parameters": {
"batchSize": 1,
"configuration": {
"dataToExtract": "contentAndMetadata",
"parsingMode": "default",
"allowSkillsetToReadFileData": true
}
},
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_path",
"targetFieldName": "title"
}
],
"outputFieldMappings": []
}
Saat Anda mengirim permintaan ke layanan pencarian, pengindeks berjalan.
Memverifikasi hasil
Anda dapat mengkueri indeks pencarian setelah pemrosesan menyimpulkan untuk menguji solusi Anda.
Untuk memeriksa hasilnya, jalankan kueri terhadap indeks. Gunakan Search Explorer sebagai klien pencarian, atau alat apa pun yang mengirim permintaan HTTP. Kueri berikut memilih bidang yang berisi output konten nonvektor bagian Markdown dan vektornya.
Untuk Search Explorer, Anda dapat menyalin JSON saja dan menempelkannya ke tampilan JSON untuk eksekusi kueri.
POST /indexes/[index name]/docs/search?api-version=[api-version]
{
"search": "copay for in-network providers",
"count": true,
"searchMode": "all",
"vectorQueries": [
{
"kind": "text",
"text": "*",
"fields": "text_vector,image_vector"
}
],
"queryType": "semantic",
"semanticConfiguration": "healthplan-doc-layout-test-semantic-configuration",
"captions": "extractive",
"answers": "extractive|count-3",
"select": "header_1, header_2, header_3"
}
Jika Anda menggunakan PDF rencana kesehatan untuk menguji keterampilan ini, hasil Search Explorer untuk contoh kueri akan terlihat mirip dengan hasil dalam cuplikan layar berikut.
Kueri ini adalah sebuah kueri hibrid yang mencakup teks dan vektor, sehingga Anda dapat melihat dan hasil diberi peringkat berdasarkan skor tersebut.
searchMode=allberarti bahwa semua istilah kueri harus dipertimbangkan untuk kecocokan (defaultnya adalah apa pun).Kueri menggunakan peringkat semantik, sehingga Anda melihat
captions. Ini juga memilikianswers, tetapi tidak ditampilkan dalam cuplikan layar. Hasilnya adalah yang paling relevan secara semantik terhadap input kueri, sebagaimana ditentukan oleh pemeringkat semantik.Pernyataan
select(tidak ditampilkan dalam cuplikan layar) menentukan bidang header yang dideteksi dan diisi oleh keterampilan Tata Letak Dokumen. Anda dapat menambahkan lebih banyak bidang ke klausa pilih untuk memeriksa konten gugus, judul, atau bidang lain yang dapat dibaca manusia.