{
  "aboutHtml": "<p>Voyage Code 3 adalah model embedding yang dikhususkan untuk mencari kode sumber. Pembuatnya menjelaskan tugas pencarian dari bahasa alami ke kode, dari kode ke kode, dan dari docstring ke kode: pertanyaan dapat menemukan implementasi, potongan kode dapat menemukan logika terkait, dan deskripsi fungsi dapat menemukan kode yang relevan. Model ini menghasilkan vektor untuk pencarian, bukan berkas yang sudah diedit atau program yang sudah selesai.</p><p>Siapkan materi repositori berdasarkan unit kode yang bermakna. Sertakan nama, signature, dan komentar yang menjelaskan tujuan suatu fungsi bersama fungsi tersebut. Untuk komponen yang lebih besar, sertakan definisi di sekitarnya yang diperlukan untuk memahami operasi tersebut. Simpan repositori, revisi, jalur berkas, dan lokasi baris secara terpisah agar hasil pencarian membuka kode sumber persis yang dibuatkan embedding.</p><p>Pencarian dalam bahasa alami dapat menjelaskan perilaku, misalnya menemukan bagian proyek yang memvalidasi unggahan sebelum menyimpannya. Kueri berbasis kode dapat menyertakan fungsi yang tujuannya perlu dicocokkan di bagian lain. Pilih pencarian yang mewakili tugas pengembangan nyata, termasuk penamaan yang tidak dikenal, implementasi serupa, dan utilitas yang maknanya bergantung pada kode di sekitarnya.</p><p>Jendela konteks 32000 token menampung bagian kode yang cukup besar. Gunakan ruang tersebut dengan sengaja: fungsi yang lengkap beserta dependensi terkait dapat memberikan informasi lebih baik daripada blok sembarang yang terpotong di tengah alur kontrol. Pertahankan format kode sumber agar mudah dibaca dan jaga sintaks bahasanya selama ekstraksi. Jika berkas sumber lebih besar daripada jendela masukan, bagi pada batas struktur yang berguna dan pertahankan hubungan antara bagian kode dan berkas induknya.</p><p>Voyage Code 3 mendukung embedding berdimensi 2048, 1024, 512, atau 256, dengan representasi floating-point, delapan bit bertanda atau tanpa tanda, serta biner. Kontrol ini mendukung berbagai ukuran indeks repositori dan konfigurasi pencarian. Evaluasi representasi ringkas menggunakan pencarian nyata yang sama dengan baseline yang lebih besar, sambil memeriksa apakah fungsi atau berkas yang tepat tetap muncul di antara hasil yang berguna.</p><p>Untuk asisten pemrograman, cari bagian kode sumber yang relevan terlebih dahulu, lalu berikan bagian tersebut beserta referensi berkasnya kepada komponen yang bertanggung jawab menjawab atau melakukan perubahan. Kecocokan kemiripan membantu memilih konteks; kecocokan tersebut tidak membuktikan bahwa dua implementasi dapat saling menggantikan. Periksa masukan, efek samping, dan kontrak di sekitar kode yang ditemukan sebelum menggunakannya sebagai panduan penyuntingan.</p><p>Pisahkan versi repositori yang tidak terkait melalui metadata dan jaga agar revisi yang diindeks dapat ditelusuri. Jika fungsi berpindah atau perilakunya berubah, perbarui vektor dan lokasi kode sumbernya. Pengaturan embedding yang sama harus digunakan untuk kode sumber yang diindeks dan kuerinya. Saat memigrasikan indeks, bandingkan hasil dengan kumpulan pertanyaan yang sudah ada agar perubahan model atau representasi vektor tidak diam-diam mengubah kode yang dilihat pengembang.</p><p>Pemeriksaan yang berguna mencakup apakah kueri menemukan implementasi sebenarnya, bukan hanya nama pengujian, apakah docstring menemukan fungsi yang sesuai, dan apakah kode yang terkait secara semantik dapat dibedakan dari potongan yang hanya tampak serupa. Pertahankan teks kode sumber dan lokasi yang dikembalikan dalam hasil pencarian agar pengembang dapat memeriksa buktinya. Dengan cara ini, embedding model yang berfokus pada kode menjadi alat praktis untuk navigasi dan pemilihan konteks.</p>",
  "aboutText": "Voyage Code 3 adalah model embedding yang dikhususkan untuk mencari kode sumber. Pembuatnya menjelaskan tugas pencarian dari bahasa alami ke kode, dari kode ke kode, dan dari docstring ke kode: pertanyaan dapat menemukan implementasi, potongan kode dapat menemukan logika terkait, dan deskripsi fungsi dapat menemukan kode yang relevan. Model ini menghasilkan vektor untuk pencarian, bukan berkas yang sudah diedit atau program yang sudah selesai.\n\nSiapkan materi repositori berdasarkan unit kode yang bermakna. Sertakan nama, signature, dan komentar yang menjelaskan tujuan suatu fungsi bersama fungsi tersebut. Untuk komponen yang lebih besar, sertakan definisi di sekitarnya yang diperlukan untuk memahami operasi tersebut. Simpan repositori, revisi, jalur berkas, dan lokasi baris secara terpisah agar hasil pencarian membuka kode sumber persis yang dibuatkan embedding.\n\nPencarian dalam bahasa alami dapat menjelaskan perilaku, misalnya menemukan bagian proyek yang memvalidasi unggahan sebelum menyimpannya. Kueri berbasis kode dapat menyertakan fungsi yang tujuannya perlu dicocokkan di bagian lain. Pilih pencarian yang mewakili tugas pengembangan nyata, termasuk penamaan yang tidak dikenal, implementasi serupa, dan utilitas yang maknanya bergantung pada kode di sekitarnya.\n\nJendela konteks 32000 token menampung bagian kode yang cukup besar. Gunakan ruang tersebut dengan sengaja: fungsi yang lengkap beserta dependensi terkait dapat memberikan informasi lebih baik daripada blok sembarang yang terpotong di tengah alur kontrol. Pertahankan format kode sumber agar mudah dibaca dan jaga sintaks bahasanya selama ekstraksi. Jika berkas sumber lebih besar daripada jendela masukan, bagi pada batas struktur yang berguna dan pertahankan hubungan antara bagian kode dan berkas induknya.\n\nVoyage Code 3 mendukung embedding berdimensi 2048, 1024, 512, atau 256, dengan representasi floating-point, delapan bit bertanda atau tanpa tanda, serta biner. Kontrol ini mendukung berbagai ukuran indeks repositori dan konfigurasi pencarian. Evaluasi representasi ringkas menggunakan pencarian nyata yang sama dengan baseline yang lebih besar, sambil memeriksa apakah fungsi atau berkas yang tepat tetap muncul di antara hasil yang berguna.\n\nUntuk asisten pemrograman, cari bagian kode sumber yang relevan terlebih dahulu, lalu berikan bagian tersebut beserta referensi berkasnya kepada komponen yang bertanggung jawab menjawab atau melakukan perubahan. Kecocokan kemiripan membantu memilih konteks; kecocokan tersebut tidak membuktikan bahwa dua implementasi dapat saling menggantikan. Periksa masukan, efek samping, dan kontrak di sekitar kode yang ditemukan sebelum menggunakannya sebagai panduan penyuntingan.\n\nPisahkan versi repositori yang tidak terkait melalui metadata dan jaga agar revisi yang diindeks dapat ditelusuri. Jika fungsi berpindah atau perilakunya berubah, perbarui vektor dan lokasi kode sumbernya. Pengaturan embedding yang sama harus digunakan untuk kode sumber yang diindeks dan kuerinya. Saat memigrasikan indeks, bandingkan hasil dengan kumpulan pertanyaan yang sudah ada agar perubahan model atau representasi vektor tidak diam-diam mengubah kode yang dilihat pengembang.\n\nPemeriksaan yang berguna mencakup apakah kueri menemukan implementasi sebenarnya, bukan hanya nama pengujian, apakah docstring menemukan fungsi yang sesuai, dan apakah kode yang terkait secara semantik dapat dibedakan dari potongan yang hanya tampak serupa. Pertahankan teks kode sumber dan lokasi yang dikembalikan dalam hasil pencarian agar pengembang dapat memeriksa buktinya. Dengan cara ini, embedding model yang berfokus pada kode menjadi alat praktis untuk navigasi dan pemilihan konteks.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "d71107191462b0bd7593424108ea6763b8aa059f6911f83636fbb85c7f5c6a3c",
    "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\">Voyage AI: Voyage Code 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Voyage AI /</span><code>voyage-code-3</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|voyage-code-3\">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 Code 3 membuat embedding untuk pencarian dari teks ke kode, dari kode ke kode, dan dari docstring ke kode. Jendela 32000 token, dimensi vektor yang dapat dipilih, serta keluaran terkuantisasi mendukung pencarian repositori dan pemilihan konteks kode untuk asisten pemrograman.</p><dl class=\"card-io\" data-card-io><div><dt>Masukan yang diterima</dt><dd>Teks</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 Code 3 adalah model embedding yang dikhususkan untuk mencari kode sumber. Pembuatnya menjelaskan tugas pencarian dari bahasa alami ke kode, dari kode ke kode, dan dari docstring ke kode: pertanyaan dapat menemukan implementasi, potongan kode dapat menemukan logika terkait, dan deskripsi fungsi dapat menemukan kode yang relevan. Model ini menghasilkan vektor untuk pencarian, bukan berkas yang sudah diedit atau program yang sudah selesai.</p><p>Siapkan materi repositori berdasarkan unit kode yang bermakna. Sertakan nama, signature, dan komentar yang menjelaskan tujuan suatu fungsi bersama fungsi tersebut. Untuk komponen yang lebih besar, sertakan definisi di sekitarnya yang diperlukan untuk memahami operasi tersebut. Simpan repositori, revisi, jalur berkas, dan lokasi baris secara terpisah agar hasil pencarian membuka kode sumber persis yang dibuatkan embedding.</p><p>Pencarian dalam bahasa alami dapat menjelaskan perilaku, misalnya menemukan bagian proyek yang memvalidasi unggahan sebelum menyimpannya. Kueri berbasis kode dapat menyertakan fungsi yang tujuannya perlu dicocokkan di bagian lain. Pilih pencarian yang mewakili tugas pengembangan nyata, termasuk penamaan yang tidak dikenal, implementasi serupa, dan utilitas yang maknanya bergantung pada kode di sekitarnya.</p><p>Jendela konteks 32000 token menampung bagian kode yang cukup besar. Gunakan ruang tersebut dengan sengaja: fungsi yang lengkap beserta dependensi terkait dapat memberikan informasi lebih baik daripada blok sembarang yang terpotong di tengah alur kontrol. Pertahankan format kode sumber agar mudah dibaca dan jaga sintaks bahasanya selama ekstraksi. Jika berkas sumber lebih besar daripada jendela masukan, bagi pada batas struktur yang berguna dan pertahankan hubungan antara bagian kode dan berkas induknya.</p><p>Voyage Code 3 mendukung embedding berdimensi 2048, 1024, 512, atau 256, dengan representasi floating-point, delapan bit bertanda atau tanpa tanda, serta biner. Kontrol ini mendukung berbagai ukuran indeks repositori dan konfigurasi pencarian. Evaluasi representasi ringkas menggunakan pencarian nyata yang sama dengan baseline yang lebih besar, sambil memeriksa apakah fungsi atau berkas yang tepat tetap muncul di antara hasil yang berguna.</p><p>Untuk asisten pemrograman, cari bagian kode sumber yang relevan terlebih dahulu, lalu berikan bagian tersebut beserta referensi berkasnya kepada komponen yang bertanggung jawab menjawab atau melakukan perubahan. Kecocokan kemiripan membantu memilih konteks; kecocokan tersebut tidak membuktikan bahwa dua implementasi dapat saling menggantikan. Periksa masukan, efek samping, dan kontrak di sekitar kode yang ditemukan sebelum menggunakannya sebagai panduan penyuntingan.</p><p>Pisahkan versi repositori yang tidak terkait melalui metadata dan jaga agar revisi yang diindeks dapat ditelusuri. Jika fungsi berpindah atau perilakunya berubah, perbarui vektor dan lokasi kode sumbernya. Pengaturan embedding yang sama harus digunakan untuk kode sumber yang diindeks dan kuerinya. Saat memigrasikan indeks, bandingkan hasil dengan kumpulan pertanyaan yang sudah ada agar perubahan model atau representasi vektor tidak diam-diam mengubah kode yang dilihat pengembang.</p><p>Pemeriksaan yang berguna mencakup apakah kueri menemukan implementasi sebenarnya, bukan hanya nama pengujian, apakah docstring menemukan fungsi yang sesuai, dan apakah kode yang terkait secara semantik dapat dibedakan dari potongan yang hanya tampak serupa. Pertahankan teks kode sumber dan lokasi yang dikembalikan dalam hasil pencarian agar pengembang dapat memeriksa buktinya. Dengan cara ini, embedding model yang berfokus pada kode menjadi alat praktis untuk navigasi dan pemilihan konteks.</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></dd></div><div><dt>Keluaran</dt><dd><code>embedding</code></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><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>voyage-code-3</div><div>Kondisi: Gunakan pemilih model Ailoot yang persis.</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr><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 or array&lt;string&gt;</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>Kondisi: Teks atau daftar teks; simpan satu vektor untuk setiap item data yang dikembalikan beserta indeksnya.</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr></tbody></table></div><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>optional</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span></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</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>conditions</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>Kirim teks dengan model yang dipilih; simpan setiap vektor yang dikembalikan beserta indeksnya.</td></tr></tbody></table></div><p>Siklus hidup: <code>synchronous</code></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>Tidak ditentukan <span class=\"note-s\">Saat mode fast dipilih</span></dd><dt>Mode Flex</dt><dd>Tidak ditentukan <span class=\"note-s\">Saat mode flex dipilih</span></dd><dt>Upaya penalaran maksimum</dt><dd>Tidak ditentukan <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.0004</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-2790-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2790-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · simpan semua vektor dan data penggunaan</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-2790-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2790-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;voyage-code-3&quot;,\n  &quot;input&quot;: &quot;The quick brown fox jumps over the lazy dog&quot;\n}\nJSON\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Terima dan simpan hasil</h3></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=voyage-code-3&amp;route=Ultra&amp;caller=voyage-code-3&amp;fmt=embeddings\"><code>voyage-code-3</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=voyage-code-3&amp;route=Ultra&amp;caller=voyage-code-3&amp;fmt=embeddings\"><code>voyage-code-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyage-code-3",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyage-code-3",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Simpan respons asli dan X-Client-Request-ID untuk rekonsiliasi. Respons yang ambigu bukan izin untuk mengirim ulang permintaan pembuatan yang sama.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Simpan respons JSON lengkap, setiap vektor beserta indeksnya, semua field penggunaan, dan header permintaan.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Gunakan pemilih model Ailoot yang persis.",
                "default_known": false,
                "enum": [
                  "voyage-code-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Teks atau daftar teks; simpan satu vektor untuk setiap item data yang dikembalikan beserta indeksnya.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-code-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-code-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Kirim teks dengan model yang dipilih; simpan setiap vektor yang dikembalikan beserta indeksnya."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarif dasar token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-code-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Embedding",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "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.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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": "voyage-code-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": "voyage-code-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1354bd6f2d87029b3b0eb87da8f8780a54c7e5e6b96d4df65480cf4b031d53f3",
    "input_html_sha256": "b9c6b9b3d43634ebd5c125586b4e86c58c64cd4e23626f7e9f89894c2ffe08a2",
    "private_audit_sha256": "eac650b278c226987814bf8d95a24c4de222a11d35484b8a9fda20bcccea274a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/id/voyage-code-3/",
    "description": "Voyage Code 3 membuat embedding untuk pencarian dari teks ke kode, dari kode ke kode, dan dari docstring ke kode. Jendela 32000 token, dimensi vektor yang dapat dipilih, serta keluaran terkuantisasi mendukung pencarian repositori dan pemilihan konteks kode untuk asisten pemrograman.",
    "locale": "id",
    "md_url": "https://ailoot.ai/models/id/voyage-code-3/index.md",
    "title": "Voyage AI: Voyage Code 3 — Ailoot",
    "url": "https://ailoot.ai/models/id/voyage-code-3/"
  },
  "rawModel": {
    "about": "Voyage Code 3 adalah model embedding yang dikhususkan untuk mencari kode sumber. Pembuatnya menjelaskan tugas pencarian dari bahasa alami ke kode, dari kode ke kode, dan dari docstring ke kode: pertanyaan dapat menemukan implementasi, potongan kode dapat menemukan logika terkait, dan deskripsi fungsi dapat menemukan kode yang relevan. Model ini menghasilkan vektor untuk pencarian, bukan berkas yang sudah diedit atau program yang sudah selesai.\n\nSiapkan materi repositori berdasarkan unit kode yang bermakna. Sertakan nama, signature, dan komentar yang menjelaskan tujuan suatu fungsi bersama fungsi tersebut. Untuk komponen yang lebih besar, sertakan definisi di sekitarnya yang diperlukan untuk memahami operasi tersebut. Simpan repositori, revisi, jalur berkas, dan lokasi baris secara terpisah agar hasil pencarian membuka kode sumber persis yang dibuatkan embedding.\n\nPencarian dalam bahasa alami dapat menjelaskan perilaku, misalnya menemukan bagian proyek yang memvalidasi unggahan sebelum menyimpannya. Kueri berbasis kode dapat menyertakan fungsi yang tujuannya perlu dicocokkan di bagian lain. Pilih pencarian yang mewakili tugas pengembangan nyata, termasuk penamaan yang tidak dikenal, implementasi serupa, dan utilitas yang maknanya bergantung pada kode di sekitarnya.\n\nJendela konteks 32000 token menampung bagian kode yang cukup besar. Gunakan ruang tersebut dengan sengaja: fungsi yang lengkap beserta dependensi terkait dapat memberikan informasi lebih baik daripada blok sembarang yang terpotong di tengah alur kontrol. Pertahankan format kode sumber agar mudah dibaca dan jaga sintaks bahasanya selama ekstraksi. Jika berkas sumber lebih besar daripada jendela masukan, bagi pada batas struktur yang berguna dan pertahankan hubungan antara bagian kode dan berkas induknya.\n\nVoyage Code 3 mendukung embedding berdimensi 2048, 1024, 512, atau 256, dengan representasi floating-point, delapan bit bertanda atau tanpa tanda, serta biner. Kontrol ini mendukung berbagai ukuran indeks repositori dan konfigurasi pencarian. Evaluasi representasi ringkas menggunakan pencarian nyata yang sama dengan baseline yang lebih besar, sambil memeriksa apakah fungsi atau berkas yang tepat tetap muncul di antara hasil yang berguna.\n\nUntuk asisten pemrograman, cari bagian kode sumber yang relevan terlebih dahulu, lalu berikan bagian tersebut beserta referensi berkasnya kepada komponen yang bertanggung jawab menjawab atau melakukan perubahan. Kecocokan kemiripan membantu memilih konteks; kecocokan tersebut tidak membuktikan bahwa dua implementasi dapat saling menggantikan. Periksa masukan, efek samping, dan kontrak di sekitar kode yang ditemukan sebelum menggunakannya sebagai panduan penyuntingan.\n\nPisahkan versi repositori yang tidak terkait melalui metadata dan jaga agar revisi yang diindeks dapat ditelusuri. Jika fungsi berpindah atau perilakunya berubah, perbarui vektor dan lokasi kode sumbernya. Pengaturan embedding yang sama harus digunakan untuk kode sumber yang diindeks dan kuerinya. Saat memigrasikan indeks, bandingkan hasil dengan kumpulan pertanyaan yang sudah ada agar perubahan model atau representasi vektor tidak diam-diam mengubah kode yang dilihat pengembang.\n\nPemeriksaan yang berguna mencakup apakah kueri menemukan implementasi sebenarnya, bukan hanya nama pengujian, apakah docstring menemukan fungsi yang sesuai, dan apakah kode yang terkait secara semantik dapat dibedakan dari potongan yang hanya tampak serupa. Pertahankan teks kode sumber dan lokasi yang dikembalikan dalam hasil pencarian agar pengembang dapat memeriksa buktinya. Dengan cara ini, embedding model yang berfokus pada kode menjadi alat praktis untuk navigasi dan pemilihan konteks.",
    "about_sha256": "7a62faecaa1a469a228fb832e8fd51d0fb1ee7fc0232e975614f45428c1f130f",
    "alias_of": null,
    "aliases": [],
    "author": "Voyage AI",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": null,
    "display_name": "Voyage AI: Voyage Code 3",
    "formats": [
      "embeddings"
    ],
    "id": "voyage-code-3",
    "input": [
      "text"
    ],
    "kind": "embedding",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Simpan respons asli dan X-Client-Request-ID untuk rekonsiliasi. Respons yang ambigu bukan izin untuk mengirim ulang permintaan pembuatan yang sama.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Simpan respons JSON lengkap, setiap vektor beserta indeksnya, semua field penggunaan, dan header permintaan.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Gunakan pemilih model Ailoot yang persis.",
                "default_known": false,
                "enum": [
                  "voyage-code-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Teks atau daftar teks; simpan satu vektor untuk setiap item data yang dikembalikan beserta indeksnya.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-code-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-code-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Kirim teks dengan model yang dipilih; simpan setiap vektor yang dikembalikan beserta indeksnya."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarif dasar token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-code-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Embedding",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "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.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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": "voyage-code-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": "voyage-code-3",
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Voyage AI: Voyage Code 3",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "short": "Voyage Code 3 membuat embedding untuk pencarian dari teks ke kode, dari kode ke kode, dan dari docstring ke kode. Jendela 32000 token, dimensi vektor yang dapat dipilih, serta keluaran terkuantisasi mendukung pencarian repositori dan pemilihan konteks kode untuk asisten pemrograman.",
    "short_sha256": "d4d092b4a7555efe0f233ac899b7e43901dde1d9465c4a647af52200c6d5d963"
  },
  "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 Code 3 membuat embedding untuk pencarian dari teks ke kode, dari kode ke kode, dan dari docstring ke kode. Jendela 32000 token, dimensi vektor yang dapat dipilih, serta keluaran terkuantisasi mendukung pencarian repositori dan pemilihan konteks kode untuk asisten pemrograman.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3c8609050324e5ed0f8abf42e921db77ff5178c7c2c359d742c442e8e0e879f5",
    "renderer_sha256": "2a0471475a29000c23db326ca1e315df73dee7524f6bc2907818ee3458813f2d"
  },
  "sourceRevision": "91524c302d57dd9e3935bd4f1762f370382b616d0bdbb605bcb134bbc547553a"
}
