"Proyeksi" penyimpanan pengetahuan di Pencarian Azure AI

Nota

Penyimpanan pengetahuan adalah penyimpanan sekunder yang ada di Azure Storage dan berisi output set keterampilan Pencarian Azure AI. Mereka terpisah dari sumber pengetahuan dan pangkalan pengetahuan, yang digunakan dalam alur kerja pengambilan agenik .

Proyeksi menentukan tabel fisik, objek, dan file di penyimpanan pengetahuan yang menerima konten dari alur pengayaan Pencarian Azure AI. Jika Anda membuat penyimpanan pengetahuan, mendefinisikan dan membentuk proyeksi adalah sebagian besar pekerjaan.

Artikel ini memperkenalkan konsep dan alur kerja proyeksi sehingga Anda memiliki beberapa latar belakang sebelum memulai pengkodean.

Proyeksi didefinisikan dalam kumpulan keterampilan Pencarian Azure AI, tetapi hasil akhirnya adalah proyeksi file tabel, objek, dan gambar di Azure Storage.

Proyeksi yang disimpan dalam Azure Storage

Jenis proyeksi dan penggunaan

Penyimpanan pengetahuan adalah konstruksi logis yang secara fisik dinyatakan sebagai koleksi tabel yang longggar, objek JSON, atau file gambar biner dalam Azure Storage.

Projection Storage Usage
Tables Penyimpanan Tabel Azure Digunakan untuk data yang paling baik direpresentasikan sebagai baris dan kolom, atau kapan pun Anda memerlukan representasi terperinci dari data Anda (misalnya, sebagai bingkai data). Proyeksi tabel memungkinkan Anda untuk menentukan bentuk skema, menggunakan keterampilan Pembentuk atau menggunakan pembentukan sebaris untuk menentukan kolom dan baris. Anda dapat mengatur konten ke dalam beberapa tabel berdasarkan prinsip normalisasi yang sudah dikenal. Tabel yang berada dalam grup yang sama secara otomatis terkait.
Objects Azure Blob Storage Digunakan saat Anda memerlukan representasi JSON lengkap dari data dan pengayaan Anda dalam satu dokumen JSON. Seperti proyeksi tabel, hanya objek JSON yang valid yang dapat diproyeksikan sebagai objek, dan pembentukan dapat membantu Anda melakukannya.
Files Azure Blob Storage Digunakan saat Anda perlu menyimpan file gambar biner yang dinormalisasi.

Definisi proyeksi

Proyeksi ditentukan di bagian properti "knowledgeStore" dari set keterampilan. Definisi proyeksi digunakan selama pemanggilan pengindeks untuk membuat dan memuat objek dalam Azure Storage dengan konten yang diperkaya. Jika Anda tidak terbiasa dengan konsep ini, mulailah dengan pengayaan AI untuk pengenalan.

Contoh berikut menggambarkan penempatan proyeksi di bagian knowledgeStore, dan konstruksi dasar. Nama, jenis, dan sumber konten membentuk definisi proyeksi.

"knowledgeStore" : {
    "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
    "projections": [
      {
        "tables": [
          { "tableName": "ks-museums-main", "generatedKeyName": "ID", "source": "/document/tableprojection" },
          { "tableName": "ks-museumEntities", "generatedKeyName": "ID","source": "/document/tableprojection/Entities/*" }
        ],
        "objects": [
          { "storageContainer": "ks-museums", "generatedKeyName": "ID", "source": "/document/objectprojection" }
        ],
        "files": [ ]
      }
    ]

Grup proyeksi

Proyeksi adalah susunan dari berbagai koleksi yang kompleks, yang berarti Anda dapat menentukan beberapa set dari setiap jenis. Hanya menggunakan satu grup proyeksi merupakan hal umum, tetapi Anda mungkin menggunakan beberapa jika persyaratan penyimpanan menyertakan berbagai alat dan skenario dukungan. Misalnya, Anda dapat menggunakan satu grup untuk mendesain dan men-debug satu set keterampilan, sementara set kedua mengumpulkan output yang digunakan untuk aplikasi online, dengan yang ketiga untuk beban kerja ilmu data.

Hasil keterampilan yang sama digunakan untuk mengisi semua grup dalam bagian proyeksi. Contoh berikut menunjukkan dua.

"knowledgeStore" : {
    "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
    "projections": [
        {
            "tables": [],
            "objects": [],
            "files": []
        }, 
        {
            "tables": [],
            "objects": [],
            "files": []
        }
    ]
}

Grup proyeksi memiliki karakteristik utama yang mencakup eksklusivitas bersama dan keterkaitan.

Principle Description
Eksklusivitas timbal balik Setiap grup sepenuhnya terisolasi dari grup lain untuk mendukung skenario pembentukan data yang berbeda. Misalnya, jika Anda menguji struktur dan kombinasi tabel yang berbeda, Anda akan menempatkan setiap set dalam grup proyeksi yang berbeda untuk pengujian AB. Setiap kelompok memperoleh data dari sumber yang sama (pohon pengayaan) tetapi sepenuhnya terisolasi dari kombinasi tabel-objek-file dari setiap kelompok proyeksi serekan.
Relatedness Dalam grup proyeksi, konten dalam tabel, objek, dan file terkait. Penyimpanan pengetahuan menggunakan kunci yang dihasilkan sebagai titik referensi ke node induk umum. Misalnya, pertimbangkan skenario saat Anda memiliki dokumen yang berisi gambar dan teks. Anda dapat memproyeksikan teks ke tabel dan gambar ke file biner, dan tabel dan objek memiliki kolom/properti yang berisi URL file.

Proyeksi "sumber"

Parameter sumber adalah komponen ketiga dari definisi proyeksi. Karena proyeksi menyimpan data dari alur pengayaan AI, sumber proyeksi selalu merupakan output dari keterampilan. Dengan demikian, output mungkin bidang tunggal (misalnya, bidang teks yang diterjemahkan), tetapi seringkali itu adalah referensi ke bentuk data.

Bentuk data berasal dari keterampilan Anda. Di antara semua keterampilan bawaan yang disediakan dalam Pencarian Azure AI, ada keterampilan utilitas yang disebut keterampilan Shaper yang digunakan untuk membuat bentuk data. Anda dapat menyertakan keterampilan Pembentuk (sebanyak yang Anda butuhkan) untuk mendukung proyeksi di gudang pengetahuan.

Bentuk sering digunakan dengan proyeksi tabel, di mana bentuk tidak hanya menentukan baris mana yang masuk ke tabel, tetapi juga kolom mana yang dibuat (Anda juga dapat meneruskan bentuk ke proyeksi objek).

Bentuk bisa rumit dan di luar cakupan untuk membahasnya secara mendalam di sini, tetapi contoh berikut secara singkat menggambarkan bentuk dasar. Output dari Skill Shaper ditentukan sebagai sumber proyeksi tabel. Di dalam proyeksi tabel itu sendiri, akan ada kolom untuk "metadata-storage_path", "reviews_text", "reviews_title", dan sebagainya, seperti yang ditentukan dalam struktur.

{
    "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
    "name": "ShaperForTables",
    "description": null,
    "context": "/document",
    "inputs": [
        {
            "name": "metadata_storage_path",
            "source": "/document/metadata_storage_path",
            "sourceContext": null,
            "inputs": []
        },
        {
          "name": "reviews_text",
          "source": "/document/reviews_text"
        }, 
        {
          "name": "reviews_title",
          "source": "/document/reviews_title"
        },
        {
          "name": "reviews_username",
          "source": "/document/reviews_username"
        },
    ],
    "outputs": [
      {
        "name": "output",
        "targetName": "mytableprojection"
      }
    ]
}

Siklus hidup proyeksi

Proyeksi memiliki siklus hidup yang terkait dengan data sumber di sumber data Anda. Saat data sumber diperbarui dan diindeks ulang, proyeksi diperbarui dengan hasil pengayaan, memastikan proyeksi Anda pada akhirnya konsisten dengan data di sumber data Anda. Namun, proyeksi juga disimpan secara independen di Azure Storage. Mereka tidak akan dihapus ketika pengindeks atau layanan pencarian itu sendiri dihapus.

Mengkonsumsi dalam aplikasi

Setelah pengindeks dijalankan, sambungkan ke proyeksi dan konsumsi data di aplikasi dan beban kerja lain.

  • Gunakan portal Azure untuk memverifikasi pembuatan objek dan konten di Azure Storage.

  • Gunakan Power BI untuk eksplorasi data. Alat ini bekerja paling baik ketika data berada di Penyimpanan Tabel Azure. Dalam Power BI, Anda dapat memanipulasi data ke dalam tabel baru yang lebih mudah untuk mengkueri dan menganalisis.

  • Gunakan data yang diperkaya dalam kontainer blob dalam alur ilmu data. Misalnya, Anda dapat memuat data dari blob ke dalam DataFrame Pandas.

  • Terakhir, jika Anda perlu mengekspor data Anda dari penyimpanan pengetahuan, Azure Data Factory memiliki konektor untuk mengekspor data dan mendaratkannya dalam database pilihan Anda.

Daftar periksa untuk memulai

Ingat bahwa proyeksi eksklusif untuk penyimpanan pengetahuan, dan tidak digunakan untuk menyusun indeks pencarian.

  1. Di Azure Storage, dapatkan string koneksi dari Kunci Akses dan verifikasi bahwa akun adalah StorageV2 (tujuan umum V2).

  2. Saat berada di Azure Storage, biasakan diri Anda dengan konten yang ada dalam kontainer dan tabel sehingga Anda memilih nama yang tidak berkonflik untuk proyeksi. Penyimpanan pengetahuan adalah kumpulan tabel dan kontainer yang tidak terstruktur. Pertimbangkan untuk mengadopsi konvensi penamaan untuk melacak objek terkait.

  3. Di Pencarian Azure AI, aktifkan penyimpanan pengayaan (pratinjau) di pengindeks lalu jalankan pengindeks untuk menjalankan skillset dan mengisi cache. Ini adalah fitur pratinjau, jadi pastikan untuk menggunakan PRATINJAU REST API pada permintaan pengindeks. Setelah cache diisi, Anda dapat memodifikasi definisi proyeksi di penyimpanan pengetahuan secara gratis (selama keterampilan itu sendiri tidak dimodifikasi).

  4. Dalam kode Anda, semua proyeksi didefinisikan semata-mata dalam set keterampilan. Tidak ada properti pengindeks (seperti pemetaan lapangan atau pemetaan bidang output) yang berlaku untuk proyeksi. Dalam definisi skillset, Anda akan fokus pada dua area: properti knowledgeStore dan array keterampilan.

    1. Di bagian knowledgeStore, tentukan tabel, objek, proyeksi file di bagian projections tersebut. Jenis objek, nama objek, dan kuantitas (sesuai jumlah proyeksi yang Anda tentukan) ditentukan di bagian ini.

    2. Dari array keterampilan, tentukan output keterampilan mana yang harus direferensikan dalam source setiap proyeksi. Semua proyeksi memiliki sumber. Sumber dapat merupakan output dari keterampilan upstream, tetapi sering merupakan output dari keterampilan Shaper. Komposisi proyeksi Anda ditentukan melalui bentuk.

  5. Jika Anda menambahkan proyeksi ke set keterampilan yang ada, perbarui set keterampilan dan jalankan pengindeks.

  6. Periksa hasil Anda di Azure Storage. Pada jalankan berikutnya, hindari tabrakan penamaan dengan menghapus objek di Azure Storage atau mengubah nama proyek di set keterampilan.

  7. Jika Anda menggunakan proyeksi Tabel, periksa Memahami model data Layanan Tabel dan Skalabilitas dan target performa untuk penyimpanan Tabel untuk memastikan persyaratan data Anda berada dalam batas penyimpanan Tabel yang didokumenkan.

Langkah selanjutnya

Meninjau sintaks dan contoh untuk setiap jenis proyeksi.