Keterampilan penyematan Azure OpenAI

Note

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.

Keterampilan Azure OpenAI Embedding terhubung ke model penyematan yang disebarkan ke sumber daya OpenAI Azure di Foundry Models atau proyek Microsoft Foundry untuk menghasilkan penyematan selama pengindeksan. Data Anda diproses di Geo tempat model Anda disebarkan.

Wizard Impor data di portal Azure menggunakan keterampilan Penyematan OpenAI Azure untuk mengvektorkan konten. Anda dapat menjalankan wizard dan meninjau kumpulan keterampilan yang dihasilkan untuk melihat bagaimana wizard membangun keterampilan untuk menyematkan model.

Note

Skill ini terikat untuk Azure OpenAI dan dikenakan biaya Azure OpenAI Standar.

Prasyarat

  • Azure OpenAI di sumber daya Foundry Models atau proyek Foundry.

    • Sumber daya OpenAI Azure Anda harus memiliki subdomain kustom, seperti https://<resource-name>.openai.azure.com. Anda dapat menemukan titik akhir ini di halaman Keys dan Endpoint di portal Azure dan menggunakannya untuk properti resourceUri dalam keterampilan ini.

    • Sumber daya induk proyek Foundry Anda menyediakan akses ke beberapa titik akhir, termasuk https://<resource-name>.openai.azure.com, , https://<resource-name>.services.ai.azure.comdan https://<resource-name>.cognitiveservices.azure.com. Anda dapat menemukan titik akhir ini di halaman Keys dan Endpoint di portal Azure dan menggunakan salah satunya untuk properti resourceUri dalam keterampilan ini.

  • Model penyematan OpenAI Azure yang disebarkan ke sumber daya atau proyek Anda. Untuk model yang didukung, lihat bagian Parameter keterampilan .

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Batasan data

Ukuran maksimum input teks harus 8.000 token. Jika input melebihi maksimum yang diizinkan, model akan melemparkan kesalahan permintaan yang tidak valid. Untuk informasi selengkapnya, lihat konsep kunci tokens dalam dokumentasi OpenAI Azure. Pertimbangkan untuk menggunakan keterampilan Pemisahan Teks jika Anda memerlukan pemotongan data.

Parameter keterampilan

Parameter peka huruf besar/kecil.

Masukan-masukan Deskripsi
resourceUri (Diperlukan) URI penyedia model. Domain yang didukung adalah:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com

Bidang ini diperlukan jika sumber daya Anda disebarkan di belakang titik akhir privat atau menggunakan integrasi jaringan virtual (VNet). Titik akhir Azure API Management juga didukung, kecuali domain kustom API Management. Untuk penyiapan, termasuk autentikasi, RBAC, dan konektivitas privat opsional, lihat Gunakan Azure API Management dengan keterampilan dan vektorizer OpenAI Azure.

apiKey Kunci rahasia yang digunakan untuk mengakses model. Jika Anda menyediakan kunci, biarkan authIdentity kosong. Jika Anda mengatur dan apiKeyauthIdentity, apiKey digunakan pada koneksi.
deploymentId (Diperlukan) ID model penyematan OpenAI Azure yang disebarkan. Ini adalah nama penyebaran yang Anda tentukan saat Anda menyebarkan model.
authIdentity Identitas yang dikelola pengguna yang digunakan oleh layanan pencarian untuk koneksi. Anda dapat menggunakan identitas yang dikelola sistem atau pengguna. Untuk menggunakan identitas yang dikelola sistem, biarkan apiKey dan authIdentity kosong. Identitas yang dikelola sistem digunakan secara otomatis. Identitas terkelola harus memiliki izin Cognitive Services OpenAI User untuk mengirim teks ke Azure OpenAI.
modelName (Diperlukan) Nama model OpenAI Azure yang disebarkan pada deploymentId yang ditentukan. Nilai yang didukung adalah:

  • text-embedding-ada-002
  • text-embedding-3-large
  • text-embedding-3-small
dimensions (Opsional) Dimensi penyematan yang ingin Anda hasilkan, dengan asumsi model mendukung berbagai dimensi. Defaultnya adalah dimensi maksimum untuk setiap model. Untuk keahlian yang dibuat dengan versi REST API sebelum pratinjau 2023-10-01, dimensi ditetapkan pada 1536. Jika Anda mengatur dimensions properti dalam keterampilan ini, atur dimensions properti pada definisi bidang vektor ke nilai yang sama.

Dimensi yang didukung oleh modelName

Dimensi yang didukung untuk keterampilan Penyematan OpenAI Azure bergantung pada modelName yang dikonfigurasi.

modelName Dimensi minimum Dimensi maksimum
text-embedding-ada-002 1536 1536
text-embedding-3-large (penyisipan teks besar 3) 1 3072
text-embedding-3-small 1 1536

Masukan keterampilan

Input Deskripsi
text Teks input yang akan divektorisasi. Jika Anda menggunakan pemotongan data, sumbernya mungkin ./document/pages/*

Keluaran Keterampilan

Hasil Deskripsi
embedding Penyematan vektor untuk teks input.

Contoh definisi

Pertimbangkan rekaman yang memiliki bidang berikut:

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

Maka definisi keterampilan Anda mungkin terlihat seperti ini:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Contoh keluaran

Untuk teks input yang diberikan, output penyematan vektor dihasilkan.

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

Output berada di 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 penyematan dokumen, dan content_vector adalah bidang dalam indeks pencarian, outputFieldMapping di pengindeks akan terlihat seperti:

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

Praktik terbaik

Berikut ini adalah beberapa praktik terbaik yang perlu Anda pertimbangkan saat memanfaatkan keterampilan ini:

  • Jika Anda mencapai batas Azure OpenAI TPM (Token per menit), pertimbangkan saran batas quota sehingga Anda dapat mengatasinya. Lihat dokumentasi pemantauan Azure OpenAI untuk informasi selengkapnya tentang performa instans OpenAI Azure Anda.

  • Penyebaran model penyematan OpenAI Azure yang Anda gunakan untuk keterampilan ini idealnya harus terpisah dari penyebaran yang digunakan untuk kasus penggunaan lain, termasuk vektor query. Ini membantu setiap penyebaran disesuaikan dengan kasus penggunaan spesifiknya, yang mengarah ke performa yang dioptimalkan dan mengidentifikasi lalu lintas dari pengindeks dan panggilan penyematan indeks dengan mudah.

  • Instans OpenAI Azure Anda harus berada di wilayah yang sama atau setidaknya secara geografis dekat dengan wilayah tempat layanan Pencarian AI Anda dihosting. Ini mengurangi latensi dan meningkatkan kecepatan transfer data antara layanan.

  • Untuk menghindari seringnya mengalami 429 kode kesalahan, pertimbangkan untuk menerapkan penyeimbangan beban melalui API Management dengan menerapkan gateway di depan beberapa penyebaran model penyematan OpenAI Azure.

  • Jika Anda memiliki batas TPM OpenAI (Token per menit) Azure default seperti yang dipublikasikan dalam quotas dan batasan dokumentasi, buka support dengan tim Pencarian Azure AI, sehingga ini dapat disesuaikan dengan sesuai. Ini membantu proses pengindeksan Anda tidak diperlambat secara tidak perlu oleh batas TPM default yang didokumenkan, jika Anda memiliki batas yang lebih tinggi.

  • Untuk contoh dan sampel kode kerja menggunakan keterampilan ini, lihat tautan berikut:

Kesalahan dan peringatan

Keadaan Result
URI null atau tidak valid Kesalahan
ID penyebaran null atau tidak valid Kesalahan
Teks kosong Warning
Teks lebih besar dari 8.000 token Kesalahan

Pertimbangan keamanan untuk autentikasi identitas terkelola

Ketika keterampilan Azure OpenAI Embedding menggunakan autentikasi identitas terkelola, Pencarian Azure AI mendapatkan token akses Microsoft Entra untuk audiens Foundry Tools (https://cognitiveservices.azure.com) dan menyertakannya dalam permintaan yang dikirim ke titik akhir yang ditentukan oleh resourceUri. Autentikasi identitas terkelola berlaku saat authIdentity diatur, atau ketika dan apiKeyauthIdentity kosong dan layanan menggunakan identitas yang ditetapkan sistem.

Titik akhir yang dirujuk oleh resourceUri diharapkan menjadi sumber daya OpenAI atau Foundry Tools Azure Anda sendiri. Domain yang didukung adalah:

  • openai.azure.com
  • cognitiveservices.azure.com
  • services.ai.azure.com

titik akhir Azure API Management (APIM) (*.azure-api.net) juga didukung. Karena nama host APIM tidak dapat diverifikasi dari namanya saja, Pencarian Azure AI memvalidasi titik akhir ini dengan pemeriksaan konektivitas langsung pada waktu konfigurasi daripada dengan pencocokan domain. Anda bertanggung jawab untuk mengonfigurasi dan memelihara hubungan antara titik akhir APIM dan sumber daya OpenAI atau Foundry Tools Azure di belakangnya.

Token identitas terkelola yang dikeluarkan untuk audiens Foundry Tools valid terhadap Foundry Tools atau Azure sumber daya OpenAI tempat identitas diotorisasi. Mengirimnya ke titik akhir yang tidak tepercaya dapat mengekspos token.

Untuk membantu mempertahankan penyebaran yang aman, ikuti praktik berikut:

  • Atur resourceUri hanya ke titik akhir yang Anda miliki dan percayai. Lebih suka domain Foundry Tools yang tercantum sebelumnya. Jika Anda menggunakan titik akhir APIM, konfirmasikan titik akhir tersebut akan memisahkan sumber daya Anda sendiri sebelum mengaktifkan identitas terkelola. Nama host yang terlihat tepercaya bukan bukti kepemilikan.
  • Terapkan prinsip hak istimewa paling sedikit ke identitas terkelola yang digunakan oleh layanan pencarian. Keterampilan Azure OpenAI Embedding hanya memerlukan peran Pengguna OpenAI Cognitive Services pada sumber daya target. Hindari memberikan peran yang lebih luas.
  • Gunakan Perimeter Keamanan Jaringan (NSP) dan titik akhir privat atau integrasi VNet untuk membatasi titik akhir mana yang dapat dijangkau layanan pencarian dan sumber sumber daya target mana yang menerima permintaan.
  • Jika Anda menggunakan titik akhir APIM, pastikan gateway memvalidasi permintaan masuk dan meneruskannya hanya ke backend yang dimaksudkan. Anda juga harus meninjau kebijakan aksesnya secara berkala.
  • Lebih suka identitas terkelola daripada apiKey. Jika Anda menggunakan apiKey, simpan dan putar dengan aman dan jangan sematkan dalam kontrol sumber. Layanan menolak konfigurasi yang mengatur dan apiKeyauthIdentity.
  • Tinjau definisi skillset secara berkala, penetapan peran identitas terkelola, dan konfigurasi APIM untuk mengonfirmasi bahwa resourceUri nilai, kontrol akses, dan izin identitas tetap terkini dan sesuai. Tinjau perubahan konfigurasi melalui proses manajemen perubahan dan peninjauan keamanan yang ditetapkan.
  • Pantau Azure log masuk OpenAI dan Foundry Tools, peristiwa autentikasi, dan log akses untuk aktivitas yang tidak terduga atau tidak sah.
  • Hapus keterampilan, titik akhir, penetapan peran, dan kunci API yang tidak lagi diperlukan.

Membatasi akses ke konfigurasi skillset

Pengguna yang dapat membuat, memodifikasi, atau menjalankan set keterampilan mengontrol titik akhir tujuan (resourceUri) dan konfigurasi autentikasi yang digunakan oleh keterampilan. Karena keterampilan mengirim token identitas terkelola untuk audiens Foundry Tools ke titik akhir tersebut, batasi izin ini ke administrator tepercaya dan ikuti proses manajemen perubahan dan peninjauan keamanan standar Anda saat mengonfigurasi keterampilan yang mendukung identitas terkelola.

Baca juga