Tutorial: Mengindeks dan memperkaya blob terenkripsi untuk pencarian teks lengkap di Pencarian Azure AI

Nota

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.

Pelajari cara menggunakan Pencarian Azure AI untuk mengindeks dokumen yang dienkripsi dengan kunci yang dikelola pelanggan di Azure Blob Storage.

Biasanya, pengindeks tidak dapat mengekstrak konten dari blob yang dienkripsi menggunakan enkripsi sisi klien di pustaka klien Azure Blob Storage. Ini karena pengindeks tidak memiliki akses ke kunci enkripsi yang dikelola pelanggan di Azure Key Vault. Namun, menggunakan keterampilan kustom DecryptBlobFile dan keterampilan Ekstraksi Dokumen, Anda dapat menyediakan akses terkontrol ke kunci untuk mendekripsi file dan kemudian mengekstrak konten darinya. Ini membuka kemampuan untuk mengindeks dan memperkaya dokumen-dokumen ini tanpa membahayakan status enkripsi dokumen tersimpan Anda.

Dimulai dengan seluruh dokumen yang dienkripsi sebelumnya (teks yang tidak terstruktur) seperti PDF, HTML, DOCX, dan PPTX di Azure Blob Storage, tutorial ini menggunakan klien REST dan REST API Pencarian untuk:

  • Menentukan alur yang mendekripsi dokumen dan mengekstrak teks dari dokumen tersebut
  • Menentukan indeks untuk menyimpan output
  • Jalankan alur untuk membuat dan memuat indeks
  • Menjelajahi hasil menggunakan pencarian teks lengkap dan sintaks kueri yang kaya

Prasyarat

Penyebaran kemampuan kustom membuat aplikasi Azure Function dan akun Azure Storage. Sumber daya ini dibuat untuk Anda, sehingga tidak terdaftar sebagai prasyarat. Ketika Anda menyelesaikan tutorial ini, ingatlah untuk membersihkan sumber daya sehingga Anda tidak ditagih untuk layanan yang tidak Anda gunakan.

Nota

Kumpulan keterampilan sering memerlukan melampirkan sumber daya Microsoft Foundry. Seperti yang tertulis, keterampilan ini tidak bergantung pada Foundry, jadi tidak memerlukan kunci. Jika nanti Anda menambahkan pengayaan yang memanggil keterampilan bawaan, ingatlah untuk memperbarui skillset Anda dengan sesuai.

Menyebarkan keterampilan kustom

Tutorial ini menggunakan sampel proyek DecryptBlobFile dari repositori GitHub Azure Search Power Skills . Di bagian ini, Anda menyebarkan kemampuan ke Azure Function sehingga dapat digunakan dalam seperangkat kemampuan. Skrip penerapan tertanam membuat sumber daya Azure Function dengan awalan psdbf-function-app- dan memuat kemampuan. Anda diminta untuk menyediakan langganan dan grup sumber daya. Pastikan untuk memilih langganan yang berisi instans Azure Key Vault Anda.

Secara operasional, keterampilan DecryptBlobFile mengambil URL dan token SAS untuk setiap blob sebagai input. Ini menghasilkan file yang telah diunduh dan didekripsi menggunakan kontrak referensi berkas sesuai dengan yang diharapkan oleh Pencarian Azure AI. Ingat bahwa DecryptBlobFile membutuhkan kunci enkripsi untuk melakukan dekripsi. Sebagai bagian dari penyiapan, Anda juga membuat kebijakan akses yang memberikan akses fungsi DecryptBlobFile ke kunci enkripsi di Azure Key Vault.

  1. Pada halaman arahan DecryptBlobFile, pilih Sebarkan ke Azure untuk membuka templat Resource Manager di portal Microsoft Azure.

  2. Pilih langganan tempat instans Azure Key Vault Anda berada. Tutorial ini tidak berfungsi jika Anda memilih langganan yang berbeda.

  3. Pilih grup sumber daya yang sudah ada atau buat yang baru. Grup sumber daya khusus membuat pembersihan lebih mudah nanti.

  4. Pilih Tinjau + buat, setujui persyaratan, lalu pilih Buat untuk menyebarkan Fungsi Azure.

    Cuplikan layar halaman templat ARM di portal Microsoft Azure.

  5. Tunggu hingga penyebaran selesai.

Anda harus memiliki aplikasi Azure Function yang berisi logika dekripsi dan sumber daya Azure Storage yang akan menyimpan data aplikasi. Pada langkah berikutnya, Anda memberikan izin aplikasi untuk mengakses brankas kunci dan mengumpulkan informasi yang Anda perlukan untuk panggilan REST.

Memberikan izin di Azure Key Vault

  1. Buka layanan Azure Key Vault Anda di portal Microsoft Azure. Buat kebijakan akses di Azure Key Vault yang memberikan akses kunci ke keterampilan kustom.

  2. Dari panel kiri, pilih Kebijakan akses, lalu pilih + Buat untuk memulai wizard Buat kebijakan akses .

    Cuplikan layar perintah Kebijakan Akses di panel kiri.

  3. Pada halaman Izin , di bawah Konfigurasikan dari templat, pilih Azure Data Lake Storage atau Azure Storage.

  4. Pilih Selanjutnya.

  5. Pada halaman Utama , pilih instans Azure Function yang Anda sebarkan. Anda dapat mencarinya menggunakan awalan sumber dayanya, yang memiliki nilai default psdbf-function-app.

  6. Pilih Selanjutnya.

  7. Pada Tinjau + buat, pilih Buat.

Mengumpulkan informasi aplikasi

  1. Buka fungsi psdbf-function-app di portal Microsoft Azure. Catat properti berikut yang Anda perlukan untuk panggilan REST.

  2. Dapatkan URL fungsi, yang dapat ditemukan di bawah Esensial di halaman utama untuk fungsi tersebut.

    Cuplikan layar halaman gambaran umum dan bagian Esensial dari aplikasi Azure Function.

  3. Dapatkan kode kunci host, yang dapat ditemukan dengan membuka Kunci aplikasi dan menampilkan kunci default , dan menyalin nilainya.

    Cuplikan layar halaman Kunci Aplikasi dari aplikasi Azure Function.

  1. Buka layanan pencarian Anda di portal Microsoft Azure.

  2. Pada halaman Gambaran Umum layanan pencarian Anda, dapatkan nama layanan pencarian Anda. Anda dapat mengonfirmasi nama layanan Anda dengan meninjau URL titik akhir. Misalnya, jika URL titik akhir Anda adalah https://mydemo.search.windows.net, nama layanan Anda adalah mydemo.

  3. DiPengaturan>Kunci, dapatkan kunci admin untuk hak penuh pada layanan. Ada dua kunci admin yang dapat dipertukarkan, dipersiapkan untuk kelangsungan bisnis jika Anda perlu mengubah yang satu. Anda dapat menggunakan kunci pada permintaan untuk menambahkan, mengubah, atau menghapus objek.

Kunci API diperlukan di header setiap permintaan yang dikirim ke layanan Anda. Kunci yang valid menetapkan kepercayaan, berdasarkan per permintaan, antara aplikasi yang mengirim permintaan dan layanan yang menanganinya.

Menyiapkan klien REST

Buat variabel berikut untuk titik akhir dan kunci.

Variable Di mana mendapatkannya
admin-key Pada halaman Kunci layanan Pencarian Azure AI.
search-service-name Nama layanan Pencarian Azure AI. URL-nya adalah https://{{search-service-name}}.search.windows.net.
storage-connection-string Di akun penyimpanan, pada tab Kunci Akses, pilih stringKoneksi>.
storage-container-name Nama kontainer blob yang memiliki file terenkripsi yang akan diindeks.
function-uri Pada Azure Function, di bawah Esensial di halaman utama.
function-code Dalam Azure Function, dengan mengakses Kunci aplikasi, melihat kunci default, dan menyalin nilai.
api-version Biarkan sebagai 2020-06-30.
datasource-name Biarkan sebagai encrypted-blobs-ds.
index-name Biarkan sebagai encrypted-blobs-idx.
skillset-name Biarkan sebagai encrypted-blobs-ss.
indexer-name Biarkan sebagai encrypted-blobs-ixr.

Meninjau dan menjalankan setiap permintaan

Gunakan permintaan HTTP berikut untuk membuat objek alur pengayaan.

  • Permintaan PUT untuk membuat indeks: Indeks pencarian ini menyimpan data yang digunakan dan dikembalikan oleh Pencarian Azure AI.

  • Permintaan POST untuk membuat sumber data: Sumber data ini menentukan koneksi ke akun penyimpanan Anda yang berisi file blob terenkripsi.

  • Permintaan PUT untuk membuat set keterampilan: Set keterampilan menentukan definisi keterampilan kustom untuk Azure Function yang akan mendekripsi data file blob. Ini juga menentukan DocumentExtractionSkill untuk mengekstrak teks dari setiap dokumen setelah didekripsi.

  • Permintaan PUT untuk membuat pengindeks: Menjalankan pengindeks mengambil blob, menerapkan set keterampilan, dan mengindeks dan menyimpan hasilnya. Permintaan ini harus Anda jalankan terakhir. Kemampuan khusus dalam kumpulan keterampilan memanggil logika dekripsi.

Memantau pengindeksan

Pengindeksan dan pengayaan dimulai segera setelah Anda mengirimkan permintaan Buat Pengindeks. Bergantung pada berapa banyak dokumen di akun penyimpanan Anda, pengindeksan dapat memakan waktu cukup lama. Untuk mengetahui apakah pengindeks masih berjalan, kirim permintaan Dapatkan Status Pengindeks dan tinjau respons untuk mempelajari apakah pengindeks menjalankan atau melihat informasi kesalahan dan peringatan.

Jika Anda menggunakan tingkat layanan Gratis, Anda dapat mengharapkan pesan berikut: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters". Pesan ini muncul karena pengindeksan blob pada tingkat Gratis memiliki batas 32.000 pada ekstraksi karakter. Anda tidak melihat pesan ini untuk himpunan data ini pada tingkat yang lebih tinggi.

Mencari konten Anda

Setelah eksekusi pengindeks selesai, Anda dapat menjalankan kueri untuk memverifikasi bahwa data berhasil didekripsi dan diindeks. Buka layanan Pencarian Azure AI Anda di portal Microsoft Azure dan gunakan Penjelajah Pencarian untuk menjalankan kueri melalui data terindeks.

Membersihkan sumber daya

Saat Anda bekerja di langganan milik Anda sendiri, di akhir proyek, sebaiknya hapus sumber daya yang tidak lagi Anda butuhkan. Sumber daya yang dibiarkan tetap aktif dapat merugikan Anda secara finansial. Anda dapat menghapus sumber daya satu per satu atau menghapus grup sumber daya untuk menghapus seluruh kumpulan sumber daya.

Anda dapat menemukan dan mengelola sumber daya di portal Microsoft Azure, menggunakan tautan Semua sumber daya atau Grup sumber daya di panel navigasi kiri.

Langkah selanjutnya

Setelah mengindeks file terenkripsi, Anda dapat melakukan iterasi pada alur ini dengan menambahkan lebih banyak keterampilan untuk memperkaya dan mendapatkan lebih banyak wawasan tentang data Anda.

Jika Anda bekerja dengan data yang dienkripsi dua kali, Anda mungkin ingin menyelidiki fitur enkripsi indeks yang tersedia di Pencarian Azure AI. Meskipun pengindeks membutuhkan data yang didekripsi untuk tujuan pengindeksan, setelah indeks ada, indeks pencarian dapat dienkripsi menggunakan kunci yang dikelola pelanggan. Ini memastikan bahwa data Anda selalu dienkripsi saat tidak aktif. Untuk informasi selengkapnya, lihat Mengonfigurasi kunci yang dikelola pelanggan untuk enkripsi data di Pencarian Azure AI.