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.
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.
Dalam artikel ini, pelajari cara menghasilkan keterangan menggunakan pengayaan kecerdasan buatan dan kumpulan keterampilan. Gambar sering berisi informasi berguna yang relevan dalam skenario pencarian. Anda dapat mem-vektorisasi gambar untuk mewakili konten visual dalam indeks pencarian Anda. Atau, Anda dapat menggunakan pengayaan berbasis AI dan kumpulan keterampilan untuk membuat serta mengekstrak teks yang dapat dicari dari gambar.
Keterampilan GenAI Prompt dapat menghasilkan deskripsi setiap gambar di sumber data Anda, dan pengindeks mendorong deskripsi tersebut ke dalam indeks pencarian. Untuk menampilkan deskripsi, jalankan kueri yang menyertakannya dalam respons.
Prasyarat
Untuk bekerja dengan konten gambar dalam set keterampilan, Anda memerlukan:
- Sumber data yang didukung. Kami merekomendasikan Azure Storage.
- File atau blob yang berisi gambar.
- Membaca akses ke sumber data yang didukung. Artikel ini menggunakan autentikasi berbasis kunci, tetapi pengindeks juga dapat terhubung menggunakan identitas layanan pencarian dan autentikasi Microsoft Entra ID. Untuk kontrol akses berbasis peran, tetapkan peran pada sumber data untuk memungkinkan akses baca oleh identitas layanan. Jika Anda menguji pada komputer pengembangan lokal, pastikan Anda juga memiliki akses baca di sumber data yang didukung.
- Pengindeks pencarian, dikonfigurasi untuk tindakan gambar.
- Kumpulan keterampilan dengan keterampilan GenAI Prompt.
- Indeks pencarian dengan bidang untuk menerima output teks yang dihasilkan, ditambah pemetaan bidang output di pengindeks yang menetapkan asosiasi.
Secara opsional, Anda dapat menentukan proyeksi untuk menerima output analisis gambar ke dalam penyimpanan pengetahuan untuk skenario penambangan data.
Mengonfigurasi pengindeks untuk pemrosesan gambar
Setelah file sumber disiapkan, aktifkan normalisasi gambar dengan mengatur imageAction parameter dalam konfigurasi pengindeks. Normalisasi gambar membantu membuat gambar lebih seragam untuk pemrosesan hilir. Normalisasi gambar mencakup operasi berikut:
- Gambar besar diubah ukurannya menjadi tinggi dan lebar maksimum untuk membuatnya seragam.
- Untuk gambar yang memiliki metadata yang menentukan orientasi, rotasi gambar disesuaikan untuk pemuatan vertikal.
Perhatikan bahwa mengaktifkan imageAction (mengatur parameter ini ke selain none) akan dikenakan biaya tambahan untuk ekstraksi gambar sesuai dengan harga Pencarian Azure AI.
Buat atau perbarui pengindeks untuk mengatur properti konfigurasi:
{ "parameters": { "configuration": { "dataToExtract": "contentAndMetadata", "parsingMode": "default", "imageAction": "generateNormalizedImages" } } }Atur
dataToExtractkecontentAndMetadata(diperlukan).Verifikasi bahwa
parsingModediatur ke default (diperlukan).Parameter ini menentukan granularitas dokumen pencarian yang dibuat dalam indeks. Mode default menyiapkan korespondensi satu-ke-satu sehingga satu blob menghasilkan satu dokumen pencarian. Jika dokumen besar, atau jika keterampilan memerlukan potongan teks yang lebih kecil, Anda dapat menambahkan keterampilan Pemisahan Teks yang membagi dokumen menjadi halaman untuk tujuan pemrosesan. Tetapi untuk skenario pencarian, satu blob per dokumen diperlukan jika pengayaan mencakup pemrosesan gambar.
Atur
imageActionuntuk mengaktifkan simpulnormalized_imagesdi pohon pengayaan (diperlukan):generateNormalizedImagesuntuk menghasilkan array gambar yang dinormalisasi sebagai bagian dari pemecahan dokumen.generateNormalizedImagePerPage(hanya berlaku untuk PDF) untuk menghasilkan array gambar yang dinormalisasi di mana setiap halaman dalam PDF dirender ke satu gambar output. Untuk file non-PDF, perilaku parameter ini mirip seolah-olah Anda telah mengaturgenerateNormalizedImages. Namun, pengaturangenerateNormalizedImagePerPagedapat membuat operasi pengindeksan kurang berkinerja berdasarkan desain (terutama untuk dokumen besar) karena beberapa gambar harus dihasilkan.
Secara opsional, sesuaikan lebar atau tinggi gambar yang dinormalisasi yang dihasilkan:
normalizedImageMaxWidth diukur dalam piksel. Defaultnya adalah 2.000. Nilai maksimum adalah 10.000.
normalizedImageMaxHeight diukur dalam piksel. Defaultnya adalah 2.000. Nilai maksimum adalah 10.000.
Tentang gambar yang dinormalisasi
Ketika imageAction diatur ke nilai selain tidak ada, bidang baru normalized_images berisi array gambar. Setiap gambar adalah jenis kompleks yang memiliki anggota berikut:
| Elemen gambar | Deskripsi |
|---|---|
| data | String yang dikodekan BASE64 dari gambar yang dinormalisasi dalam format JPEG. |
| Lebar | Lebar gambar yang dinormalisasi dalam piksel. |
| Tinggi | Tinggi gambar yang dinormalisasi dalam piksel. |
| lebarAsli | Lebar asli gambar sebelum normalisasi. |
| tinggiAsli | Tinggi asli gambar sebelum normalisasi. |
| rotasiDariAsli | Rotasi berlawanan arah jarum jam dalam derajat yang terjadi untuk membuat gambar yang dinormalisasi. Nilai antara 0 derajat dan 360 derajat. Langkah ini membaca metadata dari gambar yang dihasilkan oleh kamera atau pemindai. Biasanya kelipatan 90 derajat. |
| contentOffset | Offset karakter dalam bidang konten tempat gambar diekstrak. Bidang ini hanya berlaku untuk file dengan gambar yang disematkan.
contentOffset untuk gambar yang diekstrak dari dokumen PDF selalu di akhir teks pada halaman tempat gambar diekstrak dalam dokumen. Ini berarti gambar muncul setelah semua teks di halaman tersebut, terlepas dari lokasi asli gambar di halaman. |
| nomorHalaman | Jika gambar diekstrak atau dirender dari PDF, bidang ini berisi nomor halaman dalam PDF yang diekstrak atau dirender dari, mulai dari 1. Jika gambar bukan dari PDF, bidang ini adalah 0. |
Nilai sampel dari normalized_images:
[
{
"data": "BASE64 ENCODED STRING OF A JPEG IMAGE",
"width": 500,
"height": 300,
"originalWidth": 5000,
"originalHeight": 3000,
"rotationFromOriginal": 90,
"contentOffset": 500,
"pageNumber": 2
}
]
Menentukan set keterampilan untuk pemrosesan gambar
Bagian ini melengkapi artikel referensi keterampilan dengan menyediakan konteks untuk bekerja dengan input keterampilan, output, dan pola, karena berkaitan dengan pemrosesan gambar.
- Buat atau perbarui set keterampilan untuk menambahkan keterampilan.
Setelah kerangka kerja dasar rangkaian keterampilan Anda dibuat dan Foundry Tools dikonfigurasi, Anda dapat fokus pada setiap keterampilan gambar individual, menentukan input-input dan konteks sumber, serta memetakan keluaran ke bidang di indeks maupun penyimpanan pengetahuan.
Catatan
Untuk contoh skillset yang menggabungkan pemrosesan gambar dengan pemrosesan bahasa alami hilir, lihat Tutorial REST: Menggunakan REST dan AI untuk menghasilkan konten yang dapat dicari dari blob Azure. Ini menunjukkan cara memberi umpan output pencitraan keterampilan ke dalam pengenalan entitas dan ekstraksi frasa kunci.
Contoh input untuk pemrosesan gambar
Seperti disebutkan, gambar diekstrak selama pemecahan dokumen dan kemudian dinormalisasi sebagai langkah awal. Gambar yang dinormalisasi adalah input ke keterampilan pemrosesan gambar apa pun, dan selalu diwakili dalam pohon dokumen yang diperkaya dengan salah satu dari dua cara:
-
/document/normalized_images/*adalah untuk dokumen yang diproses secara keseluruhan.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/normalized_images/*",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*/data"
},
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='Describe what you see in this image in 20 words or less in Spanish.'"
}
],
"outputs": [
{
"name": "response",
"targetName": "captionedImage"
}
]
}
Contoh menggunakan respons skema JSON dengan input teks
Contoh ini menunjukkan cara menggunakan output terstruktur untuk model bahasa. Kemampuan ini saat ini sebagian besar didukung oleh model bahasa OpenAI, meskipun itu mungkin berubah di masa depan.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/content",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='How many languages are there in the world and what are they?'"
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "structured_output",
"strict": true,
"schema": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"total",
"languages"
],
"additionalProperties": false
}
}
},
"outputs": [
{
"name": "response",
"targetName": "responseJsonForLanguages"
}
]
}
Memetakan output ke bidang pencarian
Teks output direpresentasikan sebagai simpul di pohon dokumen internal yang diperkaya, dan setiap simpul harus dipetakan ke bidang dalam indeks pencarian, atau ke proyeksi di penyimpanan pengetahuan, untuk membuat konten tersedia di aplikasi Anda.
Pertama, gunakan Buat atau Perbarui - Indeks untuk menambahkan bidang untuk menerima output keterampilan.
Dalam contoh kumpulan bidang berikut:
-
contentadalah konten blob. -
metadata_storage_nameberisi nama file (diaturretrievableke true). -
metadata_storage_pathadalah jalur unik blob dan merupakan kunci dokumen default. -
merged_contentadalah output dari Penggabungan Teks (berguna ketika gambar disisipkan). -
captioned_imageadalah output keterampilan dan harus menjadi bidang string untuk mengambil semua output model bahasa dalam indeks pencarian.
"fields": [
{
"name": "content",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_name",
"type": "Edm.String",
"filterable": true,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_path",
"type": "Edm.String",
"filterable": false,
"key": true,
"retrievable": true,
"searchable": false,
"sortable": false
},
{
"name": "captioned_image",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
}
]
Selanjutnya, gunakan Perbarui - Pengindeks untuk memetakan output skillset (simpul di pohon pengayaan) ke bidang indeks.
Dokumen yang diperkaya bersifat internal. Untuk eksternalisasi simpul dalam pohon dokumen yang diperkaya, siapkan pemetaan bidang output yang menentukan bidang indeks mana yang menerima konten simpul. Data yang diperkaya diakses oleh aplikasi Anda melalui bidang indeks. Contoh berikut menunjukkan simpul teks (output OCR) dalam dokumen yang diperkaya yang dipetakan ke bidang teks dalam indeks pencarian.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/captionedImage",
"targetFieldName": "captioned_image"
}
]
Jalankan pengindeks untuk memanggil pengambilan dokumen sumber, pemrosesan gambar melalui keterangan model bahasa, dan pengindeksan.
Memverifikasi hasil
Jalankan kueri terhadap indeks untuk memeriksa hasil pemrosesan gambar. Gunakan Search Explorer sebagai klien pencarian, atau alat apa pun yang mengirim permintaan HTTP. Kueri berikut memilih bidang yang berisi output pemrosesan gambar.
POST /indexes/[index name]/docs/search?api-version=[api-version]
{
"search": "A cat in a picture",
"select": "metadata_storage_name, captioned_image"
}