Öğretici: Azure Yapay Zeka Arama'te tam metin araması için şifrelenmiş blobları dizine alma ve zenginleştirme

Uyarı

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Azure Blob Depolama'da müşteri tarafından yönetilen bir anahtarla şifrelenmiş belgelerin dizinini oluşturmak için Azure AI Search'ü kullanmayı öğrenin.

Normalde dizin oluşturucu, Azure Blob Depolama istemci kitaplığında istemci tarafı şifrelemesi kullanılarak şifrelenmiş bloblardan içerik ayıklayamaz. Bunun nedeni dizin oluşturucunun Azure Key Vault'ta müşteri tarafından yönetilen şifreleme anahtarına erişimi olmamasıdır. Ancak , DecryptBlobFile özel becerisini ve Belge Ayıklama becerisini kullanarak, dosyaların şifresini çözmek ve sonra onlardan içerik ayıklamak için anahtara denetimli erişim sağlayabilirsiniz. Bu, depolanan belgelerinizin şifreleme durumundan ödün vermeden bu belgeleri dizine alma ve zenginleştirme olanağı sağlar.

Azure Blob Depolama'da PDF, HTML, DOCX ve PPTX gibi önceden şifrelenmiş tüm belgelerden (yapılandırılmamış metin) başlayarak, bu öğreticide bir REST istemcisi ve Arama REST API'leri kullanılır:

  • Belgelerin şifresini çözen ve onlardan metin ayıklayan bir işlem hattı tanımlama
  • Çıkışı depolamak için dizin tanımlama
  • Dizini oluşturmak ve yüklemek için işlem hattını yürütme
  • Tam metin araması ve zengin sorgu söz dizimi kullanarak sonuçları keşfetme

Önkoşullar

Özel beceri dağıtımı bir Azure İşlevi uygulaması ve bir Azure Depolama hesabı oluşturur. Bu kaynaklar sizin için oluşturulduğu için önkoşul olarak listelenmez. Bu öğreticiyi tamamladığınızda, kullanmadığınız hizmetler için faturalandırılmamanız için kaynakları temizlemeyi unutmayın.

Uyarı

Beceri kümeleri genellikle bir Microsoft Foundry kaynağı eklemeyi gerektirir. Belirtildiği gibi, bu beceri kümesinin Foundry'ye bağımlılığı yoktur, bu nedenle anahtar gerekmez. Daha sonra yerleşik becerileri çağıran zenginleştirmeler eklerseniz beceri kümesinizi uygun şekilde güncelleştirmeyi unutmayın.

Özel yeteneği dağıtın

Bu öğreticide Azure Search Power Skills GitHub deposundaki örnek DecryptBlobFile projesi kullanılmaktadır. Bu bölümde beceri kümesinin kullanılabilmesi için beceriyi bir Azure İşlevi'ne dağıtacaksınız. Yerleşik bir dağıtım betiği, psdbf-function-app- ön ekiyle bir Azure İşlevi kaynağı oluşturur ve beceriyi yükler. Bir abonelik ve kaynak grubu sağlamanız istenir. Azure Key Vault örneğinizi içeren aboneliği seçtiğinizden emin olun.

DecryptBlobFile becerisi, her blob için URL ve SAS belirtecini giriş olarak alır. Azure Yapay Zeka Arama'in beklediği dosya başvuru sözleşmesini kullanarak indirilen, şifresi çözülmüş dosyanın çıktısını alır. DecryptBlobFile'ın şifre çözme işlemini gerçekleştirmek için şifreleme anahtarına ihtiyacı olduğunu hatırlayın. Kurulumun bir parçası olarak, Azure Key Vault'taki şifreleme anahtarına DecryptBlobFile işlevi erişimi veren bir erişim ilkesi de oluşturursunuz.

  1. DecryptBlobFile giriş sayfasındaAzure'a Dağıt'ı seçerek Resource Manager şablonunu Azure portalında açın.

  2. Azure Key Vault örneğinizin bulunduğu aboneliği seçin. Farklı bir abonelik seçerseniz bu öğretici çalışmaz.

  3. Mevcut bir kaynak grubunu seçin ya da yeni bir tane oluşturun. Ayrılmış bir kaynak grubu daha sonra temizlemeyi kolaylaştırır.

  4. Gözden geçir ve oluştur'u seçin, koşulları kabul edin ve ardından Oluştur'u seçerek Azure İşlevi'ni dağıtın.

    Azure portalında ARM şablonu sayfasının ekran görüntüsü.

  5. Dağıtım işleminin tamamlanmasını bekleyin.

Şifre çözme mantığını içeren bir Azure İşlevi uygulamanız ve uygulama verilerini depolayacak bir Azure Depolama kaynağınız olmalıdır. Sonraki adımlarda, uygulamaya anahtar kasasına erişme ve REST çağrıları için ihtiyacınız olacak bilgileri toplama izinleri verirsiniz.

Azure Key Vault'ta izinler verme

  1. Azure portalında Azure Key Vault hizmetinize gidin. Azure Key Vault'ta özel beceriye anahtar erişimi veren bir erişim ilkesi oluşturun.

  2. Sol bölmeden Erişim ilkeleri'ni ve ardından + Oluştur'u seçerek Erişim ilkesi oluşturma sihirbazını başlatın.

    Sol bölmedeki Erişim İlkesi komutunun ekran görüntüsü.

  3. İzinler sayfasındaki Şablondan yapılandır'ın altında Azure Data Lake Storage veya Azure Depolama'yı seçin.

  4. sonrakiseçin.

  5. Principal sayfasında dağıttığınız Azure Function örneğini seçin. Varsayılan psdbf-function-app değerine sahip olan kaynak ön ekini kullanarak bunu arayabilirsiniz.

  6. sonrakiseçin.

  7. Gözden geçir ve oluştur'daOluştur'u seçin.

Uygulama bilgilerini toplama

  1. Azure portalında psdbf-function-app işlevine gidin. REST çağrıları için ihtiyacınız olan aşağıdaki özellikleri not edin.

  2. İşlev url'sini alın. Bu URL, işlevin ana sayfasındaki Temel Bileşenler bölümünde bulunabilir.

    Azure İşlevi uygulamasının genel bakış sayfasının ve Temel Parçalar bölümünün ekran görüntüsü.

  3. Uygulama anahtarları'na gidip varsayılan anahtarı gösterdikten sonra değeri kopyalayarak ana bilgisayar anahtar kodunu alın.

    Azure İşlevi uygulamasının Uygulama Anahtarları sayfasının ekran görüntüsü.

  1. Azure portalında arama hizmetinize gidin.

  2. Arama hizmetine Genel Bakış sayfanızda arama hizmetinizin adını alın. Uç nokta URL'sini gözden geçirerek hizmet adınızı onaylayabilirsiniz. Örneğin, uç nokta URL'niz ise https://mydemo.search.windows.nethizmet adınız şeklindedir mydemo.

  3. Ayarlar>Anahtarları'nda, hizmet üzerinde tam haklar için bir yönetici anahtarı alın. İş sürekliliğini sağlamak amacıyla sunulmuş, bunlardan birini devretmeniz gerektiği durumlarda kullanılan iki değiştirilebilir yönetici anahtarı vardır. İsteklerde nesneleri eklemek, değiştirmek veya silmek için iki anahtardan birini kullanabilirsiniz.

Hizmetinize gönderilen her isteğin üst bilgisinde bir API anahtarı gereklidir. Geçerli bir anahtar, isteği gönderen uygulama ile bunu işleyen hizmet arasında istek başına güven oluşturur.

REST istemcisi ayarlama

Uç noktalar ve anahtarlar için aşağıdaki değişkenleri oluşturun.

Variable Nereden edinileceği
admin-key Azure Yapay Zeka Arama hizmetinin Anahtarlar sayfasında.
search-service-name Azure Yapay Zeka Arama hizmetinin adı. URL'si şeklindedir https://{{search-service-name}}.search.windows.net.
storage-connection-string Depolama hesabındaki Erişim Anahtarları sekmesinde key1>Bağlantı dizesi'ni seçin.
storage-container-name Dizine eklenecek şifrelenmiş dosyaların yer aldığı blob kapsayıcısının adı.
function-uri Azure İşlevi'nde, ana sayfadaki Temel Bileşenler'in altında.
function-code Azure İşlevi'nde Uygulama anahtarları'na gidip varsayılan anahtarı göstererek ve değeri kopyalayarak.
api-version 2020-06-30 olarak bırakın.
datasource-name Encrypted-blobs-ds olarak bırakın.
index-name encrypted-blobs-idx olarak bırakın.
skillset-name encrypted-blobs-ss olarak bırakın.
indexer-name Encrypted-blobs-ixr olarak bırakın.

Her bir isteği gözden geçirme ve işleme

Zenginleştirme işlem hattının nesnelerini oluşturmak için aşağıdaki HTTP isteklerini kullanın.

  • Dizini oluşturmak için PUT isteği: Bu arama dizini, Azure Yapay Zeka Arama'in kullandığı ve döndürdüğü verileri barındırıyor.

  • Veri kaynağını oluşturmak için POST isteği: Bu veri kaynağı, şifrelenmiş blob dosyalarını içeren depolama hesabınızla bağlantıyı belirtir.

  • Beceri kümesini oluşturmak için PUT isteği: Beceri kümesi, blob dosya verilerinin şifresini çözecek Azure İşlevi için özel beceri tanımını belirtir. Ayrıca, şifresi çözüldükten sonra her belgeden metin ayıklamak için bir DocumentExtractionSkill belirtir.

  • Indexer'ı oluşturmak için PUT isteği: Dizin oluşturucunun çalıştırılması blobları alır, beceri kümesini uygular ve sonuçları dizinleyip depolar. Bu isteği en son çalıştırmanız gerekir. Beceri kümesindeki özel beceri şifre çözme mantığını çağırır.

İndekslemeyi izleme

Dizin oluşturucu oluşturma isteğini gönderdiğiniz anda dizin oluşturma ve zenginleştirme başlar. Depolama hesabınızda kaç belge bulunduğuna bağlı olarak dizin oluşturma biraz zaman alabilir. Dizin oluşturucunun hala çalışıp çalışmadığını öğrenmek için bir Dizin Oluşturucu Durumu Al isteği gönderin ve dizin oluşturucunun çalışıp çalışmadığını öğrenmek veya hata ve uyarı bilgilerini görüntülemek için yanıtı gözden geçirin.

Ücretsiz katmanını kullanıyorsanız şu iletiyi bekleyin: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters". Ücretsiz katmanında blob dizin oluşturma işlemi karakter çıkarma için 32.000 sınırına sahip olduğundan bu uyarı görüntülenir. Bu veri kümesi için bu iletiyi daha yüksek katmanlarda görmezsiniz.

İçeriğinizi arama

Dizin oluşturucu yürütmesi tamamlandıktan sonra, verilerin şifresinin başarıyla çözüldüğünü ve dizinlendiğini doğrulamak için sorgular çalıştırabilirsiniz. Azure portalında Azure Yapay Zeka Arama hizmetinize gidin ve dizine alınan veriler üzerinde sorgu çalıştırmak için Arama Gezgini'ni kullanın.

Kaynakları temizle

Kendi aboneliğinizde çalışırken, bir projenin sonunda artık ihtiyacınız olmayan kaynakları kaldırmak iyi bir fikirdir. Çalışır durumda bırakılan kaynaklar sana pahalıya mal olabilir. Kaynakları tek tek silebilir veya kaynak grubunu silip kaynak kümesinin tamamını silebilirsiniz.

Sol gezinti bölmesindeki Tüm kaynaklar veya Kaynak grupları bağlantısını kullanarak Kaynakları Azure portalında bulabilir ve yönetebilirsiniz.

Sonraki Adımlar

Şifrelenmiş dosyaların dizinini oluşturduğunuza göre, verilerinizi zenginleştirmek ve daha fazla içgörü elde etmek için daha fazla beceri ekleyerek bu işlem hattında yineleme yapabilirsiniz.

Iki kez şifrelenmiş verilerle çalışıyorsanız Azure Yapay Zeka Arama'te kullanılabilen dizin şifreleme özelliklerini araştırmak isteyebilirsiniz. Dizin oluşturucunun dizin oluşturma amacıyla şifresi çözülmüş verilere ihtiyacı olsa da, dizin mevcut olduğunda müşteri tarafından yönetilen bir anahtar kullanılarak arama dizininde şifrelenebilir. Bu, durağan durumda verilerinizin her zaman şifrelenmesini sağlar. Daha fazla bilgi için bkz. Azure Yapay Zeka Arama'te veri şifrelemesi için müşteri tarafından yönetilen anahtarları yapılandırma.