{
  "aboutHtml": "<p>voyage-multimodal-3.5 adalah model embedding Voyage AI untuk temu kembali lintas teks, gambar, dan video. Model memproses teks serta konten visual berselang-seling melalui satu encoder transformer, merepresentasikan masukan multimodal lengkap dalam ruang vektor bersama. Edisi 3.5 menambahkan dukungan bingkai video secara eksplisit dan dimensi embedding yang fleksibel.</p><h4>Pertahankan hubungan antara teks dan visual</h4><p>Siapkan halaman atau bagian dokumen dalam bentuk yang mempertahankan informasi visual bergunanya. Slide berisi grafik dan penjelasan singkat dapat direpresentasikan dengan gambar slide serta teks pendamping dalam masukan berurutan yang sama. Untuk koleksi berbasis PDF, masukan visual yang didokumentasikan adalah tangkapan layar halaman atau representasi gambar lain dari dokumen.</p><p>Untuk grafik laporan, pertahankan judul, label sumbu, dan legenda dalam gambar. Lampirkan teks penjelasan ketika memberikan konteks yang dibutuhkan untuk menafsirkan visual. Simpan nomor halaman dan pengenal sumber di samping vektor hasil agar kandidat yang ditemukan dapat membuka halaman relevan, bukan sekadar mengembalikan nama dokumen.</p><p>Format masukan pembuat mendukung urutan teks, gambar, dan video. Format gambar yang diterbitkan adalah PNG, JPEG, WebP, dan GIF, serta MP4 untuk video. Konten visual dapat direpresentasikan melalui URL atau data Base64 dalam resep yang didokumentasikan; gunakan satu gaya representasi secara konsisten dalam satu permintaan.</p><h4>Temukan adegan, bukan seluruh video panjang</h4><p>Model merepresentasikan video sebagai urutan bingkai yang berurutan. Pembuat menyarankan pembagian video panjang menjadi adegan terkait, menyelaraskan batas adegan dengan cap waktu transkrip yang tersedia, dan menyimpan teks transkrip terkait. Resolusi lebih rendah atau laju bingkai yang dikurangi dapat membantu adegan yang berkesinambungan secara semantik muat dalam jatah konteksnya.</p><p>Untuk koleksi video pelatihan, kueri dapat meminta adegan yang menunjukkan penyesuaian kendali tertentu. Kaitkan setiap adegan terindeks dengan rentang waktunya. Kembalikan adegan yang cocok dan periksa bingkai atau klip asli untuk tindakan sebenarnya, bukan memperlakukan vektor yang ditemukan sebagai deskripsi tertulis tentang segala hal dalam rekaman.</p><p>Teks transkrip dapat berkontribusi ketika disiapkan sebagai bagian dari masukan multimodal. Embedding bingkai video sendiri tidak memberikan transkrip ucapan.</p><h4>Batas konteks dan persiapan</h4><p>Panjang konteks yang dinyatakan adalah 32.000 token per masukan. Voyage menghitung setiap 560 piksel gambar dan setiap 1120 piksel video sebagai satu token dalam penghitungan yang diterbitkan, sehingga konten visual berbagi jatah dengan teks. Batas yang didokumentasikan juga mencakup 16 juta piksel dan 20 MB per gambar, serta 20 MB per video. Satu daftar memuat paling banyak 1000 masukan dan total gabungan 320.000 token.</p><p>Pengaturan pemotongan bawaan memangkas masukan terlalu panjang; jika batasnya jatuh di dalam gambar, seluruh gambar dibuang. Karena itu, menyiapkan halaman atau adegan lengkap dalam jatah mempertahankan konten masukan yang lebih dapat diprediksi. Pengaturan alternatif yang didokumentasikan menolak masukan terlalu panjang alih-alih memotongnya.</p><h4>Dimensi vektor dan peran temu kembali</h4><p>Dimensi keluaran bawaan adalah 1024, dengan 256, 512, dan 2048 dimensi juga didokumentasikan untuk edisi ini. Pengumuman menjelaskan embedding Matryoshka serta representasi floating-point, 8 bit bertanda atau tanpa tanda, dan biner. Simpan dimensi serta representasi yang dipilih bersama indeks.</p><p>Resep temu kembali Voyage membedakan masukan query dan document. Kueri dapat berupa teks atau gambar, sementara dokumen terindeks dapat menggabungkan teks dan visual. Satu vektor merepresentasikan setiap urutan masukan lengkap; simpan hubungannya dengan halaman sumber, gambar, atau adegan agar hasil berperingkat tetap dapat diperiksa.</p><h4>Gunakan sumber visual yang dikembalikan</h4><p>Tahap temu kembali dapat menemukan halaman laporan, tabel, slide, atau adegan yang relevan dengan kueri. Tahap penulisan jawaban atau analisis kemudian membaca materi sumber tersebut. Untuk tabel, periksa header dan nilai sebenarnya sebelum menggunakan hasil; untuk adegan, periksa bingkai yang relevan dan teks terkait.</p><p>Perbedaan utama dari voyage-multimodal-3 adalah dukungan video eksplisit dan pilihan representasi tambahan edisi 3.5. Ini adalah kemampuan embedding untuk menemukan materi sumber, dengan vektor numerik sebagai keluaran, bukan gambar, video, atau jawaban naratif yang dihasilkan.</p>",
  "aboutText": "voyage-multimodal-3.5 adalah model embedding Voyage AI untuk temu kembali lintas teks, gambar, dan video. Model memproses teks serta konten visual berselang-seling melalui satu encoder transformer, merepresentasikan masukan multimodal lengkap dalam ruang vektor bersama. Edisi 3.5 menambahkan dukungan bingkai video secara eksplisit dan dimensi embedding yang fleksibel.\n\n### Pertahankan hubungan antara teks dan visual\n\nSiapkan halaman atau bagian dokumen dalam bentuk yang mempertahankan informasi visual bergunanya. Slide berisi grafik dan penjelasan singkat dapat direpresentasikan dengan gambar slide serta teks pendamping dalam masukan berurutan yang sama. Untuk koleksi berbasis PDF, masukan visual yang didokumentasikan adalah tangkapan layar halaman atau representasi gambar lain dari dokumen.\n\nUntuk grafik laporan, pertahankan judul, label sumbu, dan legenda dalam gambar. Lampirkan teks penjelasan ketika memberikan konteks yang dibutuhkan untuk menafsirkan visual. Simpan nomor halaman dan pengenal sumber di samping vektor hasil agar kandidat yang ditemukan dapat membuka halaman relevan, bukan sekadar mengembalikan nama dokumen.\n\nFormat masukan pembuat mendukung urutan teks, gambar, dan video. Format gambar yang diterbitkan adalah PNG, JPEG, WebP, dan GIF, serta MP4 untuk video. Konten visual dapat direpresentasikan melalui URL atau data Base64 dalam resep yang didokumentasikan; gunakan satu gaya representasi secara konsisten dalam satu permintaan.\n\n### Temukan adegan, bukan seluruh video panjang\n\nModel merepresentasikan video sebagai urutan bingkai yang berurutan. Pembuat menyarankan pembagian video panjang menjadi adegan terkait, menyelaraskan batas adegan dengan cap waktu transkrip yang tersedia, dan menyimpan teks transkrip terkait. Resolusi lebih rendah atau laju bingkai yang dikurangi dapat membantu adegan yang berkesinambungan secara semantik muat dalam jatah konteksnya.\n\nUntuk koleksi video pelatihan, kueri dapat meminta adegan yang menunjukkan penyesuaian kendali tertentu. Kaitkan setiap adegan terindeks dengan rentang waktunya. Kembalikan adegan yang cocok dan periksa bingkai atau klip asli untuk tindakan sebenarnya, bukan memperlakukan vektor yang ditemukan sebagai deskripsi tertulis tentang segala hal dalam rekaman.\n\nTeks transkrip dapat berkontribusi ketika disiapkan sebagai bagian dari masukan multimodal. Embedding bingkai video sendiri tidak memberikan transkrip ucapan.\n\n### Batas konteks dan persiapan\n\nPanjang konteks yang dinyatakan adalah 32.000 token per masukan. Voyage menghitung setiap 560 piksel gambar dan setiap 1120 piksel video sebagai satu token dalam penghitungan yang diterbitkan, sehingga konten visual berbagi jatah dengan teks. Batas yang didokumentasikan juga mencakup 16 juta piksel dan 20 MB per gambar, serta 20 MB per video. Satu daftar memuat paling banyak 1000 masukan dan total gabungan 320.000 token.\n\nPengaturan pemotongan bawaan memangkas masukan terlalu panjang; jika batasnya jatuh di dalam gambar, seluruh gambar dibuang. Karena itu, menyiapkan halaman atau adegan lengkap dalam jatah mempertahankan konten masukan yang lebih dapat diprediksi. Pengaturan alternatif yang didokumentasikan menolak masukan terlalu panjang alih-alih memotongnya.\n\n### Dimensi vektor dan peran temu kembali\n\nDimensi keluaran bawaan adalah 1024, dengan 256, 512, dan 2048 dimensi juga didokumentasikan untuk edisi ini. Pengumuman menjelaskan embedding Matryoshka serta representasi floating-point, 8 bit bertanda atau tanpa tanda, dan biner. Simpan dimensi serta representasi yang dipilih bersama indeks.\n\nResep temu kembali Voyage membedakan masukan query dan document. Kueri dapat berupa teks atau gambar, sementara dokumen terindeks dapat menggabungkan teks dan visual. Satu vektor merepresentasikan setiap urutan masukan lengkap; simpan hubungannya dengan halaman sumber, gambar, atau adegan agar hasil berperingkat tetap dapat diperiksa.\n\n### Gunakan sumber visual yang dikembalikan\n\nTahap temu kembali dapat menemukan halaman laporan, tabel, slide, atau adegan yang relevan dengan kueri. Tahap penulisan jawaban atau analisis kemudian membaca materi sumber tersebut. Untuk tabel, periksa header dan nilai sebenarnya sebelum menggunakan hasil; untuk adegan, periksa bingkai yang relevan dan teks terkait.\n\nPerbedaan utama dari voyage-multimodal-3 adalah dukungan video eksplisit dan pilihan representasi tambahan edisi 3.5. Ini adalah kemampuan embedding untuk menemukan materi sumber, dengan vektor numerik sebagai keluaran, bukan gambar, video, atau jawaban naratif yang dihasilkan.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f72ecdf5905e991841ac8c3581ffe9b0a3bb74c4f2efa36a4ee63b6b4ae268dc",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "id",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">VoyageAI by MongoDB: voyage-multimodal-3.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>VoyageAI by MongoDB /</span><code>voyageai/voyage-multimodal-3.5</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bagian kartu model\"><button type=\"button\" data-card-jump=\"overview\">Mulai</button><button type=\"button\" data-card-jump=\"methods\">Masukan &amp; metode</button><button type=\"button\" data-card-jump=\"pricing\">Paket</button><button type=\"button\" data-card-jump=\"examples\">Contoh</button><button type=\"button\" data-card-jump=\"results\">Hasil</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-multimodal-3.5\">Embedding</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Mulai</h3><p class=\"mdesc-full\">Voyage AI voyage-multimodal-3.5 membuat embedding teks, gambar, dan bingkai video dalam ruang temu kembali bersama. Model menangani konten berselang-seling seperti tangkapan layar dokumen, tabel, dan adegan, dengan masukan 32.000 token serta representasi bawaan 1024 dimensi.</p><dl class=\"card-io\" data-card-io><div><dt>Masukan yang diterima</dt><dd>Teks · token_ids</dd></div><div><dt>Hasil</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Tentang model</summary><p class=\"note-s\" data-model-method-boundary>Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>voyage-multimodal-3.5 adalah model embedding Voyage AI untuk temu kembali lintas teks, gambar, dan video. Model memproses teks serta konten visual berselang-seling melalui satu encoder transformer, merepresentasikan masukan multimodal lengkap dalam ruang vektor bersama. Edisi 3.5 menambahkan dukungan bingkai video secara eksplisit dan dimensi embedding yang fleksibel.</p><h4>Pertahankan hubungan antara teks dan visual</h4><p>Siapkan halaman atau bagian dokumen dalam bentuk yang mempertahankan informasi visual bergunanya. Slide berisi grafik dan penjelasan singkat dapat direpresentasikan dengan gambar slide serta teks pendamping dalam masukan berurutan yang sama. Untuk koleksi berbasis PDF, masukan visual yang didokumentasikan adalah tangkapan layar halaman atau representasi gambar lain dari dokumen.</p><p>Untuk grafik laporan, pertahankan judul, label sumbu, dan legenda dalam gambar. Lampirkan teks penjelasan ketika memberikan konteks yang dibutuhkan untuk menafsirkan visual. Simpan nomor halaman dan pengenal sumber di samping vektor hasil agar kandidat yang ditemukan dapat membuka halaman relevan, bukan sekadar mengembalikan nama dokumen.</p><p>Format masukan pembuat mendukung urutan teks, gambar, dan video. Format gambar yang diterbitkan adalah PNG, JPEG, WebP, dan GIF, serta MP4 untuk video. Konten visual dapat direpresentasikan melalui URL atau data Base64 dalam resep yang didokumentasikan; gunakan satu gaya representasi secara konsisten dalam satu permintaan.</p><h4>Temukan adegan, bukan seluruh video panjang</h4><p>Model merepresentasikan video sebagai urutan bingkai yang berurutan. Pembuat menyarankan pembagian video panjang menjadi adegan terkait, menyelaraskan batas adegan dengan cap waktu transkrip yang tersedia, dan menyimpan teks transkrip terkait. Resolusi lebih rendah atau laju bingkai yang dikurangi dapat membantu adegan yang berkesinambungan secara semantik muat dalam jatah konteksnya.</p><p>Untuk koleksi video pelatihan, kueri dapat meminta adegan yang menunjukkan penyesuaian kendali tertentu. Kaitkan setiap adegan terindeks dengan rentang waktunya. Kembalikan adegan yang cocok dan periksa bingkai atau klip asli untuk tindakan sebenarnya, bukan memperlakukan vektor yang ditemukan sebagai deskripsi tertulis tentang segala hal dalam rekaman.</p><p>Teks transkrip dapat berkontribusi ketika disiapkan sebagai bagian dari masukan multimodal. Embedding bingkai video sendiri tidak memberikan transkrip ucapan.</p><h4>Batas konteks dan persiapan</h4><p>Panjang konteks yang dinyatakan adalah 32.000 token per masukan. Voyage menghitung setiap 560 piksel gambar dan setiap 1120 piksel video sebagai satu token dalam penghitungan yang diterbitkan, sehingga konten visual berbagi jatah dengan teks. Batas yang didokumentasikan juga mencakup 16 juta piksel dan 20 MB per gambar, serta 20 MB per video. Satu daftar memuat paling banyak 1000 masukan dan total gabungan 320.000 token.</p><p>Pengaturan pemotongan bawaan memangkas masukan terlalu panjang; jika batasnya jatuh di dalam gambar, seluruh gambar dibuang. Karena itu, menyiapkan halaman atau adegan lengkap dalam jatah mempertahankan konten masukan yang lebih dapat diprediksi. Pengaturan alternatif yang didokumentasikan menolak masukan terlalu panjang alih-alih memotongnya.</p><h4>Dimensi vektor dan peran temu kembali</h4><p>Dimensi keluaran bawaan adalah 1024, dengan 256, 512, dan 2048 dimensi juga didokumentasikan untuk edisi ini. Pengumuman menjelaskan embedding Matryoshka serta representasi floating-point, 8 bit bertanda atau tanpa tanda, dan biner. Simpan dimensi serta representasi yang dipilih bersama indeks.</p><p>Resep temu kembali Voyage membedakan masukan query dan document. Kueri dapat berupa teks atau gambar, sementara dokumen terindeks dapat menggabungkan teks dan visual. Satu vektor merepresentasikan setiap urutan masukan lengkap; simpan hubungannya dengan halaman sumber, gambar, atau adegan agar hasil berperingkat tetap dapat diperiksa.</p><h4>Gunakan sumber visual yang dikembalikan</h4><p>Tahap temu kembali dapat menemukan halaman laporan, tabel, slide, atau adegan yang relevan dengan kueri. Tahap penulisan jawaban atau analisis kemudian membaca materi sumber tersebut. Untuk tabel, periksa header dan nilai sebenarnya sebelum menggunakan hasil; untuk adegan, periksa bingkai yang relevan dan teks terkait.</p><p>Perbedaan utama dari voyage-multimodal-3 adalah dukungan video eksplisit dan pilihan representasi tambahan edisi 3.5. Ini adalah kemampuan embedding untuk menemukan materi sumber, dengan vektor numerik sebagai keluaran, bukan gambar, video, atau jawaban naratif yang dihasilkan.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · masukan &amp; metode</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Embedding</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Masukan</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Keluaran</dt><dd><code>embedding</code></dd></div><div><dt>Konteks</dt><dd>32.000 tokens</dd></div><div><dt>Format keluaran</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kolom</th><th>Jenis</th><th>Persyaratan</th><th>Nilai &amp; batasan</th><th>Bawaan</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Wajib</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>voyageai/voyage-multimodal-3.5</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Wajib</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Item minimum: 1</div><div>Kondisi: Batch homogen yang tidak kosong. ID token berupa bilangan bulat nonnegatif.</div><div>Anggaran masukan: Maksimum: 32.000 · Satuan teks: byte UTF8 · Satuan token: elemen array token</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>float</div></td><td data-cell-label=\"Bawaan\" data-default=\"known\"><span class=\"card-cell-label\">Bawaan</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>integer</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Tidak didukung</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Minimum: 1</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>json_value</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Kondisi: Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>json_value</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Kondisi: Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>json_value</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Kondisi: Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Kondisi: provider.options ditolak</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinasi bahan masukan</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Parameter metode dan siklus hidup</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrak</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>model, input</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>input_shapes</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>encoding_format</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>float</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>dimensions_override</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_input_budget_units</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>32000</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>multimodal_objects</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text, token_ids</td></tr></tbody></table></div><p>Siklus hidup: <code>synchronous_json</code></p><p class=\"note-s\">Pertahankan index dan dimensi setiap vektor.</p><p class=\"note-s\">Nama model multimodal tidak mengizinkan objek gambar pada jalur persis ini.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Paket</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.</p><dl data-price-conditions><dt>Mode Fast</dt><dd>Tarif standar <span class=\"note-s\">Saat mode fast dipilih</span></dd><dt>Mode Flex</dt><dd>Tarif standar <span class=\"note-s\">Saat mode flex dipilih</span></dd><dt>Upaya penalaran maksimum</dt><dd>Tarif standar <span class=\"note-s\">Saat upaya penalaran maksimum menggunakan penyesuaian default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarif Ailoot</h4><h4>Harga menurut konfigurasi</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadwal tarif</th><th>Biaya</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Tarif dasar token</th><td data-cell-label=\"Jadwal tarif\"><span class=\"card-cell-label\">Jadwal tarif</span>Tarif dasar</td><td data-cell-label=\"Biaya\"><span class=\"card-cell-label\">Biaya</span><div><span>Masukan · Token masukan</span> <b>$0.00024</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Keluaran · Token keluaran</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Pembacaan cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Penulisan cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Penulisan cache, 1 jam</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. <a href=\"/docs/id/billing/reserve/\">Cara kerja cadangan dan penyelesaian tagihan →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · Embedding</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kode\"><button class=\"cg-tab\" id=\"model-code-2705-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2705-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2705-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2705-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kode\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2705-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2705-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;voyageai/voyage-multimodal-3.5&quot;, &quot;input&quot;: [&quot;First document&quot;, &quot;Second document&quot;]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2705-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2705-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.embeddings.create(model=&#39;voyageai/voyage-multimodal-3.5&#39;,input=[&quot;First document&quot;,&quot;Second document&quot;])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Terima dan simpan hasil</h3><h4>Ailoot Ultra · Embedding</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.</p><p class=\"note-s\">Simpan setiap vektor beserta index masing-masing. Jumlah vektor harus sama dengan jumlah input; dimensinya harus konsisten.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asli perlu diperiksa</h5><p class=\"note-s\">Endpoint untuk tugas embedding tidak ditambahkan.</p></div><details class=\"card-about\" data-output-fields><summary>Kolom respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kolom</th><th>Jenis</th></tr></thead><tbody><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>finite float[]</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Kesalahan dan langkah berikutnya</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respons</th><th>Kondisi</th><th>Langkah berikutnya</th></tr></thead><tbody><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Bidang wajib, representasi materi, atau nilai parameter tidak valid</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Perbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias model</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=voyageai%2Fvoyage-multimodal-3.5&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-multimodal-3.5&amp;fmt=embeddings\"><code>voyageai/voyage-multimodal-3.5</code></a></span></p><h4>Alias jalur metode</h4><p class=\"note-s\">Gunakan jalur metode yang ditampilkan di atas.</p><h4>ID pemanggil terkait</h4><p class=\"note-s\"><a href=\"#m=voyageai%2Fvoyage-multimodal-3.5&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-multimodal-3.5&amp;fmt=embeddings\"><code>voyageai/voyage-multimodal-3.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/voyage-multimodal-3.5",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-multimodal-3.5",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "errors": [
              {
                "code": null,
                "condition": "Bidang wajib, representasi materi, atau nilai parameter tidak valid",
                "http_status": 400,
                "recovery": "Perbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Endpoint untuk tugas embedding tidak ditambahkan."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Simpan setiap vektor beserta index masing-masing. Jumlah vektor harus sama dengan jumlah input; dimensinya harus konsisten.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "voyageai/voyage-multimodal-3.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "byte UTF8",
                  "token_unit": "elemen array token"
                },
                "conditions": "Batch homogen yang tidak kosong. ID token berupa bilangan bulat nonnegatif.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options ditolak",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "Pertahankan index dan dimensi setiap vektor.",
            "Nama model multimodal tidak mengizinkan objek gambar pada jalur persis ini."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 32000,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarif dasar token",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"voyageai/voyage-multimodal-3.5\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='voyageai/voyage-multimodal-3.5',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.24,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Mode Fast",
            "value": "Tarif standar",
            "when": "Saat mode fast dipilih"
          },
          {
            "label": "Mode Flex",
            "value": "Tarif standar",
            "when": "Saat mode flex dipilih"
          },
          {
            "label": "Upaya penalaran maksimum",
            "value": "Tarif standar",
            "when": "Saat upaya penalaran maksimum menggunakan penyesuaian default"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "voyageai/voyage-multimodal-3.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1132eea551ea91b7ed866a8e5d28121196733ab929c7087709b4f9d4a8256894",
    "input_html_sha256": "f0c6f1b702bc8f5939aafcc369ba24979348724eba16a1ad7cdc8e28eb86152d",
    "private_audit_sha256": "74018d8d47e67e2782b9a571395978e07beb75cccb0cc2124a7bf157aa1b4865",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/id/voyageai-voyage-multimodal-3-5/",
    "description": "Voyage AI voyage-multimodal-3.5 membuat embedding teks, gambar, dan bingkai video dalam ruang temu kembali bersama. Model menangani konten berselang-seling seperti tangkapan layar dokumen, tabel, dan adegan, dengan masukan 32.000 token serta representasi bawaan 1024 dimensi.",
    "locale": "id",
    "md_url": "https://ailoot.ai/models/id/voyageai-voyage-multimodal-3-5/index.md",
    "title": "VoyageAI by MongoDB: voyage-multimodal-3.5 — Ailoot",
    "url": "https://ailoot.ai/models/id/voyageai-voyage-multimodal-3-5/"
  },
  "rawModel": {
    "about": "voyage-multimodal-3.5 adalah model embedding Voyage AI untuk temu kembali lintas teks, gambar, dan video. Model memproses teks serta konten visual berselang-seling melalui satu encoder transformer, merepresentasikan masukan multimodal lengkap dalam ruang vektor bersama. Edisi 3.5 menambahkan dukungan bingkai video secara eksplisit dan dimensi embedding yang fleksibel.\n\n### Pertahankan hubungan antara teks dan visual\n\nSiapkan halaman atau bagian dokumen dalam bentuk yang mempertahankan informasi visual bergunanya. Slide berisi grafik dan penjelasan singkat dapat direpresentasikan dengan gambar slide serta teks pendamping dalam masukan berurutan yang sama. Untuk koleksi berbasis PDF, masukan visual yang didokumentasikan adalah tangkapan layar halaman atau representasi gambar lain dari dokumen.\n\nUntuk grafik laporan, pertahankan judul, label sumbu, dan legenda dalam gambar. Lampirkan teks penjelasan ketika memberikan konteks yang dibutuhkan untuk menafsirkan visual. Simpan nomor halaman dan pengenal sumber di samping vektor hasil agar kandidat yang ditemukan dapat membuka halaman relevan, bukan sekadar mengembalikan nama dokumen.\n\nFormat masukan pembuat mendukung urutan teks, gambar, dan video. Format gambar yang diterbitkan adalah PNG, JPEG, WebP, dan GIF, serta MP4 untuk video. Konten visual dapat direpresentasikan melalui URL atau data Base64 dalam resep yang didokumentasikan; gunakan satu gaya representasi secara konsisten dalam satu permintaan.\n\n### Temukan adegan, bukan seluruh video panjang\n\nModel merepresentasikan video sebagai urutan bingkai yang berurutan. Pembuat menyarankan pembagian video panjang menjadi adegan terkait, menyelaraskan batas adegan dengan cap waktu transkrip yang tersedia, dan menyimpan teks transkrip terkait. Resolusi lebih rendah atau laju bingkai yang dikurangi dapat membantu adegan yang berkesinambungan secara semantik muat dalam jatah konteksnya.\n\nUntuk koleksi video pelatihan, kueri dapat meminta adegan yang menunjukkan penyesuaian kendali tertentu. Kaitkan setiap adegan terindeks dengan rentang waktunya. Kembalikan adegan yang cocok dan periksa bingkai atau klip asli untuk tindakan sebenarnya, bukan memperlakukan vektor yang ditemukan sebagai deskripsi tertulis tentang segala hal dalam rekaman.\n\nTeks transkrip dapat berkontribusi ketika disiapkan sebagai bagian dari masukan multimodal. Embedding bingkai video sendiri tidak memberikan transkrip ucapan.\n\n### Batas konteks dan persiapan\n\nPanjang konteks yang dinyatakan adalah 32.000 token per masukan. Voyage menghitung setiap 560 piksel gambar dan setiap 1120 piksel video sebagai satu token dalam penghitungan yang diterbitkan, sehingga konten visual berbagi jatah dengan teks. Batas yang didokumentasikan juga mencakup 16 juta piksel dan 20 MB per gambar, serta 20 MB per video. Satu daftar memuat paling banyak 1000 masukan dan total gabungan 320.000 token.\n\nPengaturan pemotongan bawaan memangkas masukan terlalu panjang; jika batasnya jatuh di dalam gambar, seluruh gambar dibuang. Karena itu, menyiapkan halaman atau adegan lengkap dalam jatah mempertahankan konten masukan yang lebih dapat diprediksi. Pengaturan alternatif yang didokumentasikan menolak masukan terlalu panjang alih-alih memotongnya.\n\n### Dimensi vektor dan peran temu kembali\n\nDimensi keluaran bawaan adalah 1024, dengan 256, 512, dan 2048 dimensi juga didokumentasikan untuk edisi ini. Pengumuman menjelaskan embedding Matryoshka serta representasi floating-point, 8 bit bertanda atau tanpa tanda, dan biner. Simpan dimensi serta representasi yang dipilih bersama indeks.\n\nResep temu kembali Voyage membedakan masukan query dan document. Kueri dapat berupa teks atau gambar, sementara dokumen terindeks dapat menggabungkan teks dan visual. Satu vektor merepresentasikan setiap urutan masukan lengkap; simpan hubungannya dengan halaman sumber, gambar, atau adegan agar hasil berperingkat tetap dapat diperiksa.\n\n### Gunakan sumber visual yang dikembalikan\n\nTahap temu kembali dapat menemukan halaman laporan, tabel, slide, atau adegan yang relevan dengan kueri. Tahap penulisan jawaban atau analisis kemudian membaca materi sumber tersebut. Untuk tabel, periksa header dan nilai sebenarnya sebelum menggunakan hasil; untuk adegan, periksa bingkai yang relevan dan teks terkait.\n\nPerbedaan utama dari voyage-multimodal-3 adalah dukungan video eksplisit dan pilihan representasi tambahan edisi 3.5. Ini adalah kemampuan embedding untuk menemukan materi sumber, dengan vektor numerik sebagai keluaran, bukan gambar, video, atau jawaban naratif yang dihasilkan.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/voyage-multimodal-3.5",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Informasi lengkap harga konfigurasi tersedia di bagian detail."
      }
    ],
    "ctx": 32000,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "voyageai/voyage-multimodal-3.5",
    "input": [
      "text",
      "token_ids"
    ],
    "kind": "embedding",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "errors": [
              {
                "code": null,
                "condition": "Bidang wajib, representasi materi, atau nilai parameter tidak valid",
                "http_status": 400,
                "recovery": "Perbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Endpoint untuk tugas embedding tidak ditambahkan."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Simpan setiap vektor beserta index masing-masing. Jumlah vektor harus sama dengan jumlah input; dimensinya harus konsisten.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "voyageai/voyage-multimodal-3.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "byte UTF8",
                  "token_unit": "elemen array token"
                },
                "conditions": "Batch homogen yang tidak kosong. ID token berupa bilangan bulat nonnegatif.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Sumber mengizinkan kolom metadata JSON ini; makna tepatnya pada layanan hulu bergantung pada model.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options ditolak",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "Pertahankan index dan dimensi setiap vektor.",
            "Nama model multimodal tidak mengizinkan objek gambar pada jalur persis ini."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 32000,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarif dasar token",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"voyageai/voyage-multimodal-3.5\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='voyageai/voyage-multimodal-3.5',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.24,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Mode Fast",
            "value": "Tarif standar",
            "when": "Saat mode fast dipilih"
          },
          {
            "label": "Mode Flex",
            "value": "Tarif standar",
            "when": "Saat mode flex dipilih"
          },
          {
            "label": "Upaya penalaran maksimum",
            "value": "Tarif standar",
            "when": "Saat upaya penalaran maksimum menggunakan penyesuaian default"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "voyageai/voyage-multimodal-3.5",
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: voyage-multimodal-3.5",
    "price": {
      "in": 0.24,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.24,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "voyageai/voyage-multimodal-3.5",
    "short": "Voyage AI voyage-multimodal-3.5 membuat embedding teks, gambar, dan bingkai video dalam ruang temu kembali bersama. Model menangani konten berselang-seling seperti tangkapan layar dokumen, tabel, dan adegan, dengan masukan 32.000 token serta representasi bawaan 1024 dimensi."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Voyage AI voyage-multimodal-3.5 membuat embedding teks, gambar, dan bingkai video dalam ruang temu kembali bersama. Model menangani konten berselang-seling seperti tangkapan layar dokumen, tabel, dan adegan, dengan masukan 32.000 token serta representasi bawaan 1024 dimensi.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "1efa3d244732116c1810f1f7534bf76067d03276546dc993834d4d184c37ba8a",
    "renderer_sha256": "2a0471475a29000c23db326ca1e315df73dee7524f6bc2907818ee3458813f2d"
  },
  "sourceRevision": "a74068de5fbf0a8d9a43b3e1e3cad80b23e441a0009b032f66269b12b795ea9b"
}
