Vektorisasi API Web Kustom

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.

Vektorizer API Web Kustom memungkinkan Anda mengonfigurasi kueri pencarian untuk memanggil titik akhir API web yang menghasilkan penyematan pada waktu kueri. Struktur payload JSON yang diperlukan untuk titik akhir dijelaskan nanti dalam artikel ini. Data Anda diproses dalam geography tempat model Anda disebarkan.

Meskipun vektorizer digunakan pada waktu kueri, Anda menentukannya dalam definisi indeks dan mereferensikannya pada bidang vektor melalui profil vektor. Untuk informasi selengkapnya, lihat Mengonfigurasi vektorizer dalam indeks pencarian.

Vektorizer API web kustom dipanggil WebApiVectorizer di REST API. Gunakan versi stabil terbaru Indexes - Create (REST API) atau paket SDK Azure yang menyediakan fitur tersebut.

Parameter vektorisasi

Parameter bersifat peka terhadap huruf besar/kecil.

Nama Parameter Deskripsi
uri URI API Web tempat payload JSON dikirim. Hanya skema URI https yang diperbolehkan. Saat Anda mengambil indeks dengan GET, layanan mengembalikan nilai parameter kueri ?code= sebagai ?code=<redacted> untuk mencegah tereksposnya kunci fungsi. Untuk memperbarui vektorizer tanpa mengubah URI tersimpan, atur uri ke <unchanged>.
httpMethod Metode yang digunakan untuk mengirim muatan. Metode yang diizinkan adalah PUT atau POST.
httpHeaders Kumpulan pasangan kunci-nilai di mana kunci adalah nama header dan nilai dikirim ke API web Anda. Header berikut dilarang: Accept, , , Accept-CharsetAccept-EncodingContent-Length, Content-Type, Cookie, Host, TE, Upgrade, dan .Via GET mengembalikan nilai <redacted> sentinel untuk setiap nilai header. Untuk persyaratan pembaruan, lihat Memperbarui nilai header setelah GET.
authResourceId (Opsional) String yang, jika diatur, menunjukkan bahwa vektorizer ini menggunakan identitas terkelola untuk koneksi ke fungsi atau aplikasi yang menghosting kode. Properti ini mengambil ID aplikasi (klien) atau pendaftaran aplikasi dalam Microsoft Entra ID dalam salah satu format berikut: api://<appId>, <appId>/.default, api://<appId>/.default. Nilai ini mencakup token autentikasi yang diambil oleh alur kueri dan dikirim dengan permintaan API web kustom ke fungsi atau aplikasi. Mengatur properti ini mengharuskan search service Anda dikonfigurasi untuk identitas terkelola dan aplikasi fungsi Azure Anda dikonfigurasi agar dapat masuk Microsoft Entra.
authIdentity (Opsional) Identitas yang dikelola pengguna yang digunakan oleh search service untuk terhubung ke fungsi atau aplikasi yang menghosting kode. Anda dapat menggunakan identitas yang dikelola sistem atau dikelola pengguna. Untuk menggunakan identitas yang dikelola sistem, biarkan authIdentity kosong.
timeout (Opsional) Waktu habis untuk klien HTTP yang melakukan panggilan API. Ini harus diformat sebagai nilai XSD dayTimeDuration (subset terbatas dari nilai durasi ISO 8601 ). Misalnya, PT60S berarti 60 detik. Jika tidak diatur, defaultnya adalah 30 detik. Batas waktu bisa antara 1 dan 230 detik.

Jenis kueri vektor yang didukung

API Web Kustom Vectorizer mendukung kueri vektor text, imageUrl, dan imageBinary.

Definisi sampel

"vectorizers": [
    {
        "name": "my-custom-web-api-vectorizer",
        "kind": "customWebApi",
        "customWebApiParameters": {
            "uri": "https://contoso.embeddings.com",
            "httpMethod": "POST",
            "httpHeaders": {
                "api-key": "<your-header-value>"
            },
            "timeout": "PT60S",
            "authResourceId": null,
            "authIdentity": null
        }
    }
]

Memperbarui nilai header setelah GET

Saat Anda mengambil definisi indeks, layanan mengembalikan sentinel <redacted> untuk setiap httpHeaders nilai dalam vektorizer API Web Kustom. Contohnya:

{
    "name": "my-custom-web-api-vectorizer",
    "kind": "customWebApi",
    "customWebApiParameters": {
        "uri": "https://contoso.embeddings.com",
        "httpMethod": "POST",
        "httpHeaders": {
            "api-key": "<redacted>"
        },
        "timeout": "PT60S",
        "authResourceId": null,
        "authIdentity": null
    }
}

Untuk menggunakan kembali nilai yang disimpan api-key , perbarui vektorizer yang ada yang sama dengan yang sama name dan kind, biarkan uri tidak berubah, dan kirim ulang sentinel untuk nama header yang cocok:

{
    "name": "my-custom-web-api-vectorizer",
    "kind": "customWebApi",
    "customWebApiParameters": {
        "uri": "https://contoso.embeddings.com",
        "httpMethod": "POST",
        "httpHeaders": {
            "api-key": "<redacted>"
        },
        "timeout": "PT60S",
        "authResourceId": null,
        "authIdentity": null
    }
}

Dengan yang tidak berubah uri, Anda dapat mencampur <redacted> untuk nilai header yang dipertahankan dengan nilai penggantian aktual untuk header lain yang sudah ada. Berikan nilai aktual untuk setiap header yang ditambahkan atau diganti namanya karena sentinel hanya berlaku untuk header yang ada dengan nama yang sama pada vektorizer yang sama.

Jika Anda mengubah uri, berikan nilai aktual untuk setiap httpHeaders entri dalam pembaruan yang sama. Layanan ini tidak menggunakan kembali nilai yang disimpan untuk yang berbeda uri:

{
    "name": "my-custom-web-api-vectorizer",
    "kind": "customWebApi",
    "customWebApiParameters": {
        "uri": "https://new.contoso.embeddings.com",
        "httpMethod": "POST",
        "httpHeaders": {
            "api-key": "<new-header-value>"
        },
        "timeout": "PT60S",
        "authResourceId": null,
        "authIdentity": null
    }
}

Jika kredensial tidak tersedia dan Anda harus mengubah uri, putar atau regenerasi di titik akhir eksternal. Kemudian kirim nilai baru uri dan header bersama-sama.

Nilainya <redacted> adalah sentinel layanan, bukan kredensial. Ini tidak dapat membuat vektorizer atau mengambil atau menggunakan kembali nilai header yang disimpan untuk vektorizer lain.

Struktur payload JSON

Struktur payload JSON yang diperlukan untuk endpoint yang digunakan dengan vectorizer Custom Web API sama dengan struktur yang digunakan oleh skill Custom Web API. Untuk informasi selengkapnya, lihat dokumentasi keterampilan.

Ingatlah pertimbangan berikut saat menerapkan titik akhir API web untuk vektorizer API Web Kustom:

  • Vektorizer hanya mengirim satu rekaman pada satu waktu dalam values array saat membuat permintaan ke titik akhir.

  • Vektorizer meneruskan data yang akan diubah menjadi vektor dalam kunci tertentu di data objek JSON dalam payload permintaan. Kunci itu adalah text, , imageUrlatau imageBinary, tergantung pada jenis kueri vektor mana yang diminta.

  • Vectorizer mengharapkan embedding yang dihasilkan berada di bawah kunci vector di objek data JSON dalam payload respons.

  • Pemvektor mengabaikan kesalahan atau peringatan yang dikembalikan oleh endpoint. Kesalahan dan peringatan ini tidak tersedia untuk proses debug saat kueri dijalankan.

  • imageBinary Jika kueri vektor diminta, payload permintaan yang dikirim ke titik akhir adalah sebagai berikut:

    {
        "values": [
            {
                "recordId": "0",
                "data":
                {
                    "imageBinary": {
                        "data": "<base 64 encoded image binary data>"
                    }
                }
            }
        ]
    }
    

Lihat juga