Bagikan melalui


Keterampilan penyematan multimodal Azure AI Vision

Penting

Fitur ini berada di pratinjau publik dalam Ketentuan Penggunaan Tambahan. REST API Pratinjau 2024-05-01 mendukung fitur ini.

Keterampilan penyematan multimodal Azure AI Vision menggunakan API penyematan multimodal Azure AI Vision untuk menghasilkan penyematan untuk input gambar atau teks.

Keterampilan ini hanya didukung di layanan pencarian yang terletak di wilayah yang mendukung AZURE AI Vision Multimodal embeddings API. Tinjau ketersediaan wilayah untuk penyematan multimodal. Data Anda diproses di Geo tempat model Anda disebarkan.

Catatan

Keterampilan ini terikat ke layanan Azure AI dan memerlukan sumber daya yang dapat ditagih untuk transaksi yang melebihi 20 dokumen per pengindeks per hari. Eksekusi keterampilan bawaan dibebankan pada harga prabayar layanan Azure AI yang ada.

Selain itu, ekstraksi gambar dapat ditagih oleh Azure AI Search.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Batasan data

Batas input untuk keterampilan dapat ditemukan dalam dokumentasi Azure AI Vision untuk gambar dan teks masing-masing. Pertimbangkan untuk menggunakan keterampilan Pemisahan Teks jika Anda memerlukan potongan data untuk input teks.

Parameter keterampilan

Parameternya peka huruf besar/kecil.

Input Deskripsi
modelVersion (Diperlukan) Versi model yang akan diteruskan ke API penyematan multimodal Azure AI Vision untuk menghasilkan penyematan. Penting bahwa semua penyematan yang disimpan dalam bidang indeks tertentu dihasilkan menggunakan yang sama modelVersion. Untuk informasi tentang dukungan versi untuk model ini, lihat penyematan multimodal.

Input keterampilan

Input Deskripsi
text Teks input yang akan di-vektorisasi. Jika Anda menggunakan potongan data, sumbernya mungkin /document/pages/*.
image Jenis Kompleks. Saat ini hanya berfungsi dengan bidang "/document/normalized_images", yang dihasilkan oleh pengindeks blob Azure saat imageAction diatur ke nilai selain none.
url URL untuk mengunduh gambar yang akan di-vektorisasi.
queryString String kueri URL untuk mengunduh gambar yang akan di-vektorisasi. Berguna jika Anda menyimpan URL dan token SAS di jalur terpisah.

Hanya salah satu dari text, image atau url/queryString yang dapat dikonfigurasi untuk satu instans keterampilan. Jika Anda ingin mem-vektorisasi gambar dan teks dalam set keterampilan yang sama, sertakan dua instans keterampilan ini dalam definisi skillset, satu untuk setiap jenis input yang ingin Anda gunakan.

Output keterampilan

Output Deskripsi
vector Output penyematan array float untuk teks atau gambar input.

Definisi sampel

Untuk input teks, pertimbangkan rekaman yang memiliki bidang berikut:

{
    "content": "Microsoft released Windows 10."
}

Kemudian definisi keterampilan Anda mungkin terlihat seperti ini:

{ 
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
    "context": "/document", 
    "modelVersion": "2023-04-15", 
    "inputs": [ 
        { 
            "name": "text", 
            "source": "/document/content" 
        } 
    ], 
    "outputs": [ 
        { 
            "name": "vector"
        } 
    ] 
} 

Untuk input gambar, definisi keterampilan Anda mungkin terlihat seperti ini:

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document/normalized_images/*",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "image",
            "source": "/document/normalized_images/*"
        }
    ],
    "outputs": [
        {
            "name": "vector"
        }
    ]
}

Jika Anda ingin mem-vektorisasi gambar langsung dari sumber data penyimpanan blob Anda, definisi keterampilan Anda mungkin terlihat seperti ini:

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "url",
            "source": "/document/metadata_storage_path"
        },
        {
            "name": "queryString",
            "source": "/document/metadata_storage_sas_token"
        }
    ],
    "outputs": [
        {
            "name": "vector"
        }
    ]
}

Sampel output

Untuk teks input yang diberikan, output penyematan vektorisasi diproduksi.

{
  "vector": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

Output berada dalam memori. Untuk mengirim output ini ke bidang dalam indeks pencarian, Anda harus menentukan outputFieldMapping yang memetakan output penyematan vektor (yang merupakan array) ke bidang vektor. Dengan asumsi output keterampilan berada di simpul vektor dokumen, dan content_vector adalah bidang dalam indeks pencarian, outputFieldMapping di pengindeks akan terlihat seperti:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/vector/*",
      "targetFieldName": "content_vector"
    }
  ]

Untuk pemetaan penyematan gambar ke indeks, Anda harus menggunakan fitur Proyeksi Indeks. Payload untuk indexProjections mungkin terlihat seperti ini:

"indexProjections": {
    "selectors": [
        {
            "targetIndexName": "myTargetIndex",
            "parentKeyFieldName": "ParentKey",
            "sourceContext": "/document/normalized_images/*",
            "mappings": [
                {
                    "name": "content_vector",
                    "source": "/document/normalized_images/*/vector"
                }
            ]
        }
    ]
}

Lihat juga