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.
Catatan
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.
Artikel ini menjelaskan kolom indeks dan konfigurasi yang diperlukan untuk retrieval agentik. Tidak satu pun dari persyaratan ini yang baru. Anda dapat menggunakan indeks yang sudah ada yang memenuhi kriteria, bahkan jika dibuat dengan versi API sebelumnya.
Setiap sumber pengetahuan terindeks bergantung pada indeks yang mendasar. Bergantung pada cara Anda menyiapkan alur, indeks bisa menjadi salah satu hal berikut:
Sudah ada: Indeks mandiri yang diekspos melalui sumber pengetahuan indeks pencarian. Indeks harus memenuhi kriteria dalam artikel ini.
Dihasilkan: Indeks yang dibuat secara otomatis oleh sumber pengetahuan terindeks. Indeks yang dihasilkan memenuhi semua kriteria secara default.
Kriteria untuk pengambilan agenik
Tabel berikut mengelompokkan elemen indeks yang memengaruhi penelusuran agentic berdasarkan tingkat persyaratan.
| Elemen indeks | Persyaratan | Notes |
|---|---|---|
searchable dan retrievable kolom string |
Required | Digunakan untuk eksekusi kueri dan pengambilan hasil. |
| Konfigurasi semantik | Required | Gunakan defaultSemanticConfiguration atau ambil alih konfigurasi semantik di sumber pengetahuan. |
| Bidang kutipan | Recommended | Bidang yang ditentukan pengguna yang mengaitkan respons terhadap konten sumber, seperti nama dokumen, nomor halaman, atau ID gugus. |
| Bidang vektor dan pemvektor | Recommended | Mengaktifkan konversi teks ke vektor pada waktu kueri. |
| Profil penskoran | Optional | Meningkatkan relevansi untuk bidang tertentu. Atur defaultScoringProfile untuk menerapkan secara otomatis. |
| Analyzer | Optional | Mengontrol bagaimana teks ditokenisasi, seperti menangani spasi kosong atau karakter khusus. |
| Peta sinonim | Optional | Memperluas kueri dengan terminologi atau jargon. |
Contoh definisi indeks
Contoh berikut menunjukkan indeks yang berfungsi untuk penelusuran berbasis agen. Ini memenuhi kriteria untuk elemen yang diperlukan dan mencakup bidang vektor sebagai praktik terbaik.
{
"name": "earth_at_night",
"description": "Contains images and descriptions of our planet in darkness as captured from space by Earth-observing satellites and astronauts on the International Space Station over the past 25 years.",
"fields": [
{
"name": "id", "type": "Edm.String",
"searchable": true, "retrievable": true, "filterable": true, "sortable": true, "facetable": true,
"key": true,
"stored": true,
"synonymMaps": []
},
{
"name": "page_chunk", "type": "Edm.String",
"searchable": true, "retrievable": true, "filterable": false, "sortable": false, "facetable": false,
"analyzer": "en.microsoft",
"stored": true,
"synonymMaps": []
},
{
"name": "page_chunk_vector_text_3_large", "type": "Collection(Edm.Single)",
"searchable": true, "retrievable": false, "filterable": false, "sortable": false, "facetable": false,
"dimensions": 3072,
"vectorSearchProfile": "hnsw_text_3_large",
"stored": false,
"synonymMaps": []
},
{
"name": "page_number", "type": "Edm.Int32",
"searchable": false, "retrievable": true, "filterable": true, "sortable": true, "facetable": true,
"stored": true,
"synonymMaps": []
},
{
"name": "chapter_number", "type": "Edm.Int32",
"searchable": false, "retrievable": true, "filterable": true, "sortable": true, "facetable": true,
"stored": true,
"synonymMaps": []
}
],
"semantic": {
"defaultConfiguration": "semantic_config",
"configurations": [
{
"name": "semantic_config",
"flightingOptIn": false,
"prioritizedFields": {
"prioritizedContentFields": [
{
"fieldName": "page_chunk"
}
],
"prioritizedKeywordsFields": []
}
}
]
},
"vectorSearch": {
"algorithms": [
{
"name": "alg",
"kind": "hnsw",
"hnswParameters": {
"metric": "cosine",
"m": 4,
"efConstruction": 400,
"efSearch": 500
}
}
],
"profiles": [
{
"name": "hnsw_text_3_large",
"algorithm": "alg",
"vectorizer": "azure_openai_text_3_large"
}
],
"vectorizers": [
{
"name": "azure_openai_text_3_large",
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "https://YOUR-AOAI-RESOURCE.openai.azure.com",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
}
],
"compressions": []
}
}
Indeks yang dirancang dengan baik untuk AI generatif atau retrieval-augmented generation (RAG) memiliki komponen berikut:
Deskripsi yang dapat digunakan LLM atau agen untuk menentukan apakah indeks harus digunakan atau dilewati.
Bagian-bagian teks yang dapat dibaca oleh manusia yang dapat Anda berikan sebagai token input ke LLM untuk merumuskan jawaban.
Konfigurasi pemeringkat semantik karena pengambilan agenik menggunakan peringkat semantik tingkat 2 (L2) untuk mengidentifikasi gugus yang paling relevan.
(Opsional) Versi vektor yang setara dari potongan teks yang dapat dibaca manusia untuk pencarian vektor pelengkap.
Teks yang dibagi menjadi beberapa bagian itu penting karena LLM memproses dan menghasilkan rangkaian teks yang ditokenisasi dalam bentuk konten teks biasa yang dapat dibaca manusia. Karena itu, Anda memerlukan searchable kolom yang berisi string teks biasa dan retrievable dalam respons. Dalam Pencarian Azure AI, Anda dapat membuat teks yang dipotong dengan menggunakan solusi built-in atau pihak ketiga.
Asumsi bawaan untuk konten yang dipotong adalah bahwa dokumen sumber asli memiliki konten verbose dalam jumlah besar. Jika konten sumber Anda berupa data terstruktur, seperti basis data produk, indeks Anda sebaiknya tidak menggunakan chunking dan sebagai gantinya menyertakan field yang dipetakan ke sumber data asli, seperti nama produk, kategori, atau deskripsi. Atribusi searchable dan retrievable juga berlaku untuk data terstruktur.
searchable membuat konten dalam cakupan untuk kueri, dan retrievable menambahkannya ke hasil pencarian (data dasar).
Konten vektor dapat berguna karena menambahkan pencarian kesamaan pada pengambilan informasi. Pada waktu kueri, ketika bidang vektor ada dalam indeks, mesin pengambilan agenik menjalankan kueri vektor secara paralel dengan kueri teks. Karena kueri vektor mencari konten serupa daripada mencocokkan kata, kueri vektor dapat menemukan hasil yang sangat relevan yang mungkin terlewatkan oleh kueri teks. Menambahkan vektor dapat meningkatkan dan meningkatkan kualitas data grounding Anda tetapi tidak diperlukan secara ketat. Pencarian Azure AI memiliki pendekatan terintegrasi untuk vektorisasi.
Bidang vektor hanya digunakan untuk eksekusi kueri pada Pencarian Azure AI. Anda tidak memerlukan vektor dalam hasil karena tidak terbaca oleh manusia atau LLM. Untuk meminimalkan persyaratan ruang, sebaiknya atur retrievable dan stored ke false. Untuk informasi selengkapnya, lihat Mengoptimalkan penyimpanan dan pemrosesan vektor.
Jika Anda menggunakan vektor, memiliki vektorizer yang ditentukan dalam konfigurasi pencarian vektor sangat penting. Ini menentukan apakah bidang vektor Anda digunakan selama eksekusi kueri. Vektorizer mengodekan subkueri string ke vektor pada waktu kueri untuk pencarian kesamaan atas vektor. Vectorizer harus menggunakan model embedding yang sama seperti yang digunakan untuk membuat vektor dalam indeks.
Secara default, semua searchable bidang disertakan dalam eksekusi kueri, dan semua retrievable bidang dikembalikan dalam hasil. Anda dapat memilih bidang mana yang akan digunakan untuk setiap tindakan dalam definisi sumber pengetahuan indeks pencarian.
Menambahkan deskripsi
Bidang indeks description adalah string yang ditentukan pengguna yang dapat Anda gunakan untuk memberikan panduan ke server LLM dan Model Context Protocol (MCP) saat memutuskan untuk menggunakan indeks tertentu untuk kueri. Teks yang dapat dibaca manusia ini sangat berharga ketika sistem harus mengakses beberapa indeks dan membuat keputusan berdasarkan deskripsi.
Deskripsi indeks adalah pembaruan skema, dan Anda dapat menambahkannya tanpa harus membangun kembali seluruh indeks.
Panjang string maksimum 4.000 karakter.
Konten harus dapat dibaca manusia, di Unicode. Kasus penggunaan Anda harus menentukan bahasa mana yang akan digunakan (misalnya, bahasa Inggris atau bahasa lain).
Menambahkan konfigurasi semantik
Indeks harus memiliki setidaknya satu konfigurasi semantik. Konfigurasi semantik harus memiliki:
- Konfigurasi yang diberi nama
- Atur
prioritizedContentFieldske setidaknya satu bidang string yang keduanyasearchabledanretrievable.
Ada dua cara untuk menentukan konfigurasi semantik berdasarkan nama. Jika indeks defaultSemanticConfiguration disetel ke konfigurasi bernama, proses pengambilan akan menggunakannya. Atau, Anda dapat menentukan konfigurasi semantik di dalam sumber pengetahuan indeks pencarian.
Dalam konfigurasi, prioritizedContentFields diperlukan. Judul dan kata kunci bersifat opsional. Untuk konten yang dipecah menjadi bagian-bagian, Anda mungkin tidak memilikinya. Namun, jika Anda menambahkan pengenalan entitas atau ekstraksi frasa kunci, Anda mungkin memiliki beberapa kata kunci yang terkait dengan setiap gugus yang dapat berguna dalam skenario pencarian, mungkin dalam profil penilaian.
Contoh berikut menunjukkan konfigurasi semantik yang berfungsi untuk pengambilan agenik.
"semantic":{
"defaultConfiguration":"semantic_config",
"configurations":[
{
"name":"semantic_config",
"flightingOptIn":false,
"prioritizedFields":{
"titleField":{
"fieldName":""
},
"prioritizedContentFields":[
{
"fieldName":"page_chunk"
}
],
"prioritizedKeywordsFields":[
{
"fieldName":"Category"
},
{
"fieldName":"Tags"
},
{
"fieldName":"Location"
}
]
}
}
]
}
Catatan
Respons menyediakan title, terms, dan content, yang memetakan ke bidang yang diprioritaskan dalam konfigurasi ini.
Menambahkan pengvektor
Jika indeks Anda berisi bidang vektor, rencana kueri menyertakan bidang ini jika bidang tersebut searchable dan memiliki vectorizer penugasan.
Vectorizer menentukan model penyematan yang menyediakan konversi teks ke vektor pada saat pencarian. Ini harus menunjuk ke model penyematan yang sama yang digunakan untuk mengodekan konten vektor dalam indeks Anda. Anda dapat menggunakan model penyematan apa pun yang didukung oleh Pencarian Azure AI. Anda menentukan vektorizer pada kolom vektor melalui profil vektor.
Definisi bidang vektor dalam contoh indeks menunjukkan atribut bidang utama: dimensions, yang merupakan jumlah penyematan yang dihasilkan oleh model, dan vectorSearchProfile.
{
"name": "page_chunk_text_3_large", "type": "Collection(Edm.Single)",
"searchable": true, "retrievable": false, "filterable": false, "sortable": false, "facetable": false,
"dimensions": 3072,
"vectorSearchProfile": "hnsw_text_3_large",
"stored": false,
"synonymMaps": []
}
Profil vektor adalah konfigurasi vektorizer, algoritma, dan teknik kompresi. Setiap bidang vektor hanya dapat menggunakan satu profil, tetapi indeks Anda dapat memiliki banyak jika Anda menginginkan profil unik untuk setiap bidang vektor.
Menjalankan kueri pada vektor dan memanggil proses vektorisasi menambah latensi pada keseluruhan permintaan, tetapi jika Anda menginginkan pencarian kemiripan, hal itu mungkin sepadan dengan komprominya.
Contoh berikut menunjukkan pevektor yang digunakan untuk retrieval agentik sebagaimana ditampilkan dalam konfigurasi vectorSearch. Tidak ada dalam definisi vektorizer yang perlu diubah untuk bekerja dengan pengambilan agenik.
"vectorSearch": {
"algorithms": [
{
"name": "alg",
"kind": "hnsw",
"hnswParameters": {
"metric": "cosine",
"m": 4,
"efConstruction": 400,
"efSearch": 500
}
}
],
"profiles": [
{
"name": "hnsw_text_3_large",
"algorithm": "alg",
"vectorizer": "azure_openai_text_3_large"
}
],
"vectorizers": [
{
"name": "azure_openai_text_3_large",
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "https://YOUR-AOAI-RESOURCE.openai.azure.com",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
}
],
"compressions": []
}
Menambahkan profil penilaian
Profil penilaian adalah kriteria untuk peningkatan relevansi. Mereka diterapkan ke bidang non-vektor (teks dan angka) dan dievaluasi selama eksekusi kueri, meskipun perilaku yang tepat tergantung pada versi API yang digunakan untuk membuat indeks.
Profil penilaian lebih mungkin menambahkan nilai ke solusi Anda jika indeks Anda didasarkan pada data terstruktur. Data terstruktur diindeks ke dalam beberapa bidang diskrit, yang berarti profil penilaian Anda dapat memiliki kriteria yang menargetkan konten atau karakteristik bidang tertentu.
Jika Anda membuat indeks menggunakan pratinjau 2025-05-01 atau yang lebih baru, profil penilaian akan dijalankan terakhir. Jika indeks dibuat menggunakan versi API yang lebih lama, profil penilaian dievaluasi sebelum reranking semantik. Urutan yang sesungguhnya dari hasil berperingkat semantik ditentukan oleh properti rankingOrder dalam indeks, yang diatur ke boostedRerankerScore (profil penilaian skor diterapkan) atau rerankerScore (tanpa profil penilaian skor).
Anda dapat menggunakan profil penilaian apa pun yang masuk akal untuk indeks Anda. Contoh berikut menunjukkan profil penilaian yang meningkatkan skor pencarian kecocokan jika kecocokan ditemukan di bidang tertentu. Bidang ditimbang dengan meningkatkan perkalian. Misalnya, jika kecocokan ditemukan di bidang "Kategori", skor yang ditingkatkan dikalikan dengan 5.
"scoringProfiles": [
{
"name": "boostSearchTerms",
"text": {
"weights": {
"Location": 2,
"Category": 5
}
}
}
]
Menambahkan penganalisis
Penganalisis berlaku untuk bidang teks dan dapat berupa penganalisis bahasa atau penganalisis kustom yang mengontrol tokenisasi dalam indeks, seperti mempertahankan karakter khusus atau spasi kosong.
Penganalisis ditentukan dalam indeks pencarian dan ditetapkan ke bidang. Contoh kumpulan bidang menyertakan referensi penganalisis pada potongan teks. Dalam contoh ini, penganalisis default (Lucene standar) diganti dengan penganalisis bahasa Microsoft untuk bahasa Inggris.
{
"name": "page_chunk", "type": "Edm.String",
"searchable": true, "retrievable": true, "filterable": false, "sortable": false, "facetable": false,
"analyzer": "en.microsoft",
"stored": true,
"synonymMaps": []
}
Menambahkan peta sinonim
Peta sinonim memperluas kueri dengan menambahkan sinonim untuk istilah bernama. Misalnya, Anda mungkin memiliki istilah ilmiah atau medis untuk istilah umum.
Peta sinonim didefinisikan sebagai sumber daya tingkat atas pada indeks pencarian dan ditetapkan ke bidang. Contoh kumpulan bidang tidak menyertakan peta sinonim, tetapi contoh berikut menunjukkan bagaimana peta sinonim dengan ejaan varian nama negara/wilayah mungkin ditetapkan ke bidang "lokasi" hipotetis.
{
"name":"locations",
"type":"Edm.String",
"searchable":true,
"synonymMaps":[ "country-region-synonyms" ]
}
Menambahkan indeks Anda ke sumber pengetahuan
Jika Anda memiliki indeks mandiri yang sudah ada dan tidak dihasilkan oleh sumber pengetahuan, buat objek berikut:
- Sumber pengetahuan indeks pencarian untuk merangkum konten terindeks Anda.
- Pangkalan pengetahuan yang mewakili satu atau beberapa sumber pengetahuan dan instruksi lain untuk pengambilan agenik.