Bagikan melalui


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

Tutorial ini menunjukkan kepada Anda cara menggunakan Azure AI Search untuk mengindeks dokumen yang sebelumnya telah dienkripsi dengan kunci yang dikelola pelanggan di Azure Blob Storage.

Biasanya, pengindeks tidak dapat mengekstrak konten dari file terenkripsi karena tidak memiliki akses ke kunci enkripsi yang dikelola pelanggan di Azure Key Vault. Namun, dengan memanfaatkan keterampilan kustom DecryptBlobFile, diikuti oleh keterampilan Ekstraksi Dokumen, Anda dapat memberikan 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 melakukan tugas-tugas berikut:

  • Tentukan alur yang mendekripsi dokumen dan mengekstrak teks darinya.
  • Tentukan indeks untuk menyimpan output.
  • Jalankan alur untuk membuat dan memuat indeks.
  • Menjelajahi hasil menggunakan pencarian teks lengkap dan beragam sintaksis kueri.

Jika Anda belum punya langganan Azure, buka akun gratis sebelum memulai.

Prasyarat

Penyebaran keterampilan kustom membuat aplikasi Azure Function dan akun Azure Storage. Karena sumber daya ini dibuat untuk Anda, sumber daya tersebut tidak terdaftar sebagai prasyarat. Setelah selesai dengan tutorial ini, ingatlah untuk membersihkan sumber daya sehingga Anda tidak ditagih untuk layanan yang tidak Anda gunakan.

Catatan

Set keterampilan sering memerlukan pelampiran sumber daya multi-layanan Azure AI. Seperti yang ditulis, set keterampilan ini tidak memiliki dependensi pada layanan Azure AI dan dengan demikian tidak diperlukan kunci. Jika nanti Anda menambahkan pengayaan yang memanggil keterampilan bawaan, ingatlah untuk memperbarui skillset Anda dengan sesuai.

1 - Membuat layanan dan mengumpulkan info masuk

Menyebarkan keterampilan kustom

Contoh ini menggunakan sampel proyek DecryptBlobFile dari repositori GitHub Azure Search Power Skills. Di bagian ini, Anda akan menyebarkan keterampilan ke Azure Functions sehingga dapat digunakan dalam set keterampilan. Skrip penyebaran bawaan membuat sumber daya Azure Functions bernama yang dimulai dengan psdbf-function-app- dan memuat keterampilan. Anda akan diminta untuk menyediakan grup langganan dan sumber daya. Pastikan untuk memilih langganan yang sama tempat instans Azure Key Vault berada.

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

  1. Klik tombol Sebarkan ke Azure yang ditemukan di halaman arahan DecryptBlobFile, yang akan membuka templat Resource Manager yang disediakan di dalam portal Azure.

  2. Pilih langganan yang sama tempat instans Azure Key Vault Anda ada (tutorial ini tidak akan 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, pastikan Anda menyetujui persyaratan, lalu pilih Buat untuk menyebarkan Azure Functions.

    Cuplikan layar halaman templat ARM di portal 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. Dalam beberapa langkah berikutnya, Anda akan memberikan izin aplikasi untuk mengakses brankas kunci dan mengumpulkan informasi yang Anda perlukan untuk panggilan REST.

Memberikan izin di Azure Key Vault

  1. Navigasi ke layanan Azure Key Vault Anda di portal. Buat kebijakan akses di Azure Key Vault yang memberikan akses utama ke keterampilan kustom.

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

    Cuplikan layar perintah Kebijakan Akses di panel navigasi 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 daya yang digunakan untuk membuatnya di langkah 2, yang memiliki nilai awalan default psdbf-function-app.

  6. Pilih Selanjutnya.

  7. Pada Tinjau + buat, pilih Buat.

Mengumpulkan informasi aplikasi

  1. Navigasikan ke fungsi psdbf-function-app di portal, dan 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 menavigasi ke Kunci aplikasi, mengklik untuk menampilkan kunci default , dan menyalin nilai.

    Cuplikan layar halaman Kunci Aplikasi dari aplikasi Azure Function.

  1. Masuk ke portal Azure, dan di halaman Gambaran Umum layanan pencarian Anda, dapatkan nama layanan pencarian Anda. Anda dapat mengonfirmasi nama layanan Anda dengan meninjau URL titik akhir. Jika URL titik akhir Anda adalah https://mydemo.search.windows.net, nama layanan Anda akan menjadi mydemo.

  2. Di Pengaturan>Kunci, dapatkan kunci admin untuk mendapatkan hak penuh atas layanan. Ada dua kunci admin yang dapat dipertukarkan, kunci disediakan untuk kelangsungan bisnis jika Anda perlu menimpa salah satunya. Anda dapat menggunakan kunci utama atau sekunder pada permintaan untuk menambahkan, memodifikasi, dan menghapus objek.

    Mendapatkan kunci nama layanan, admin, dan kueri

Semua permintaan memerlukan api-key di header setiap permintaan yang dikirim ke layanan Anda. Kunci yang valid menetapkan kepercayaan, berdasarkan permintaan, antara aplikasi yang mengirim permintaan dan layanan yang menanganinya.

Menyiapkan klien REST

Buat variabel untuk titik akhir dan kunci:

Variabel Lokasi untuk 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, di tab Kunci Akses, pilih key1>String koneksi.
storage-container-name Nama kontainer blob yang memiliki file terenkripsi untuk diindeks.
function-uri Di Azure Functions di bawah Esensial di halaman utama.
function-code Di Azure Functions, dengan menavigasi ke Kunci aplikasi, mengklik untuk menampilkan 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 untuk membuat objek alur pengayaan:

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

  • 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 Functions yang akan mendekripsi data file blob, dan 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. Anda harus menjalankan permintaan terakhir. Keterampilan kustom dalam set keterampilan memanggil logika dekripsi.

Memantau pengindeksan

Pengindeksan dan pengayaan dimulai segera setelah Anda mengirimkan permintaan Create Indexer. 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 sedang berjalan, atau untuk melihat informasi kesalahan dan peringatan.

Jika Anda menggunakan tingkat Gratis, pesan berikut diharapkan: "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 32K pada ekstraksi karakter. Anda tidak akan melihat pesan ini untuk himpunan data ini pada tingkat yang lebih tinggi.

Mencari konten Anda

Setelah eksekusi pengindeks selesai, Anda dapat menjalankan beberapa kueri untuk memverifikasi bahwa data telah berhasil didekripsi dan diindeks. Navigasi ke layanan Pencarian Azure AI Anda di portal, dan gunakan penjelajah pencarian untuk menjalankan kueri melalui data terindeks.

Membersihkan sumber daya

Saat Anda bekerja di langganan Anda sendiri, di akhir proyek, sebaiknya hapus sumber daya yang tidak lagi Anda butuhkan. Sumber daya yang dibiarkan berjalan dapat menghabiskan uang Anda. Anda dapat menghapus sumber daya satu per satu atau menghapus grup sumber daya untuk menghapus seluruh rangkaian sumber daya.

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

Langkah berikutnya

Setelah Anda berhasil mengindeks file terenkripsi, Anda dapat melakukan iterasi pada alur ini dengan menambahkan lebih banyak keterampilan kognitif. Ini akan memungkinkan Anda memperkaya dan mendapatkan wawasan tambahan ke data Anda.

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