{
  "aboutHtml": "<p>Ministral 3 8B Instruct 2512 adalah model berukuran menengah yang disesuaikan untuk mengikuti instruksi dalam keluarga Ministral 3 dari Mistral AI. Checkpoint yang dirilis menjalani pascapelatihan untuk tugas percakapan dan instruksi dengan presisi FP8. Model ini menggabungkan komponen bahasa dengan encoder visual, menerima teks dan gambar serta mengembalikan teks, bukan artefak gambar atau audio.</p><p>Arsitektur dan fitur utama</p><p>Pembuatnya mencantumkan model bahasa dengan 8,4 miliar parameter dan encoder visual dengan 0,4 miliar parameter. Jendela konteksnya dijelaskan sebagai 256k, dan catatan penggunaan yang dipublikasikan memakai panjang bawaan yang dikonfigurasi sebesar 262.144. Angka ini menjelaskan edisi berukuran 8B ini; anggota keluarga 3B yang lebih kecil dan 14B yang lebih besar memiliki ukuran komponen dan konfigurasi masing-masing.</p><p>Kemampuan visual memperluas masukan model melampaui percakapan tertulis. Gambar dokumen dapat dipasangkan dengan pertanyaan tentang bidang, paragraf, atau hubungan terlihat yang dipilih. Tangkapan layar dapat dipasangkan dengan tujuan pengguna dan permintaan untuk mengidentifikasi kontrol yang relevan. Minta pengamatan yang mendukung setiap kesimpulan ketika jawaban bergantung pada detail visual, serta pertahankan judul, label, dan satuan yang diperlukan untuk menafsirkan potongan gambar.</p><p>Kartu model menjelaskan pekerjaan multibahasa dalam puluhan bahasa, termasuk Inggris, Prancis, Spanyol, Jerman, Italia, Portugis, Belanda, Mandarin, Jepang, Korea, dan Arab. Kepatuhan terhadap instruksi sistem, pemanggilan fungsi bawaan, dan keluaran JSON juga disebutkan. Tetapkan bahasa akhir, peran, dan persyaratan keluaran secara eksplisit alih-alih membiarkan model menyimpulkan artefak yang dimaksud dari masukan besar.</p><p>Tugas dokumen, percakapan, dan agen</p><p>Kasus penggunaan dari pembuatnya mencakup antarmuka percakapan, asisten sehari-hari, deskripsi gambar dan dokumen, penerjemahan, pembuatan konten, dan agen khusus. Untuk asisten dokumen, berikan halaman dan tentukan informasi yang harus dikembalikan. Permintaan ekstraksi dapat menyebut label bidang, tipe yang diharapkan, dan penanganan nilai yang tidak tersedia. Jawaban yang berguna dapat memuat pengenal dokumen, nilai hasil ekstraksi, dan penjelasan singkat yang terkait dengan sumber yang terlihat.</p><p>Untuk percakapan yang berlanjut, pertahankan jawaban sebelumnya yang relevan dan ajukan pertanyaan lanjutan yang terarah. Pengguna dapat terlebih dahulu meminta ringkasan dokumen, lalu menanyakan pernyataan mana yang mendukung satu kesimpulan. Ini mengubah keluaran yang diwajibkan dari gambaran umum menjadi penjelasan yang terkait dengan sumber, sambil mempertahankan materi asli dan tujuan dialog.</p><p>Untuk penyuntingan multibahasa, berikan bagian teks asli, pembaca yang dituju, dan daftar istilah. Minta versi revisi yang mempertahankan nama, kondisi, dan satuan, diikuti penjelasan singkat perubahan jika berguna. Untuk pembuatan konten, tentukan audiens dan fakta yang harus muncul sebelum meminta draf pendek atau redaksi alternatif.</p><p>Dalam tugas agen, aplikasi menyediakan alat dan parameternya. Model dapat memilih fungsi dan menyiapkan argumen, sementara aplikasi menjalankannya serta mengembalikan hasil. Contoh fungsi dalam kartu model menggabungkan pertanyaan gambar dengan alat perhitungan. Pisahkan hasil alat dari usulan pemanggilan agar jawaban tertulis berikutnya menggunakan informasi yang benar-benar dikembalikan oleh operasi.</p><p>Persiapan dan pengaturan yang direkomendasikan</p><p>Pembuatnya merekomendasikan instruksi sistem yang menjelaskan lingkungan, kasus penggunaan, dan cara menggunakan alat. Pastikan kumpulan alat terdefinisi dengan baik dan terbatas pada jumlah minimum yang dibutuhkan tugas. Alur pencarian kecil dapat menawarkan fungsi yang relevan dengan pertanyaan saat ini, dengan argumen wajib yang diberi nama jelas, alih-alih menyajikan kumpulan besar operasi tak terkait.</p><p>Untuk penggunaan sehari-hari dan bergaya produksi, kartu model merekomendasikan temperature di bawah 0.1, dengan temperature lebih tinggi tersedia untuk eksplorasi kreatif. Perlakukan ini sebagai rekomendasi alur instruksi, bukan kontrol mode penalaran tersendiri. Keluarga ini memiliki checkpoint Base, Instruct, dan Reasoning yang berbeda; entri ini adalah edisi Instruct 2512, bukan rilis Reasoning terpisah dengan ukuran yang sama.</p><p>Untuk gambar, pembuatnya merekomendasikan rasio aspek mendekati 1:1 dan menghindari masukan yang terlalu tipis atau lebar. Pangkas bila perlu sambil mempertahankan label dan konteks yang diwajibkan pertanyaan. Jika halaman memuat beberapa area yang tidak terkait, identifikasi bagian yang harus diperiksa dan hasil yang harus dikembalikan. Gambar yang terbaca dan terarah lebih berguna daripada meminta model menebak detail kecil mana dalam halaman luas yang penting.</p><p>Batas konteks dan edisi</p><p>Rencanakan teks, gambar, percakapan, dan jawaban yang diinginkan sesuai konteks yang dikonfigurasi. Catatan penggunaan secara eksplisit memperbolehkan pengurangan panjang model yang dikonfigurasi ketika konteks yang dibutuhkan lebih sedikit, sehingga jendela penuh bukan instruksi untuk memenuhi setiap permintaan dengan seluruh materi yang tersedia. Contoh generasi 512 token dalam kartu model hanyalah pengaturan contoh, dan sumber yang dibaca tidak menetapkan batas keras panjang jawaban maksimum yang terpisah.</p><p>Checkpoint FP8 Instruct, rilis Base yang telah melalui prapelatihan, dan rilis Reasoning adalah edisi yang terpisah. Pembuatnya juga menjelaskan spesialisasi dan fine-tuning sebagai kasus penggunaan. Pertahankan checkpoint bernama beserta tokenizernya saat menyiapkan percakapan, dan bedakan generasi teks dari akses repositori, eksekusi fungsi, atau tindakan lain yang disediakan aplikasi di sekelilingnya.</p>",
  "aboutText": "Ministral 3 8B Instruct 2512 adalah model berukuran menengah yang disesuaikan untuk mengikuti instruksi dalam keluarga Ministral 3 dari Mistral AI. Checkpoint yang dirilis menjalani pascapelatihan untuk tugas percakapan dan instruksi dengan presisi FP8. Model ini menggabungkan komponen bahasa dengan encoder visual, menerima teks dan gambar serta mengembalikan teks, bukan artefak gambar atau audio.\n\nArsitektur dan fitur utama\n\nPembuatnya mencantumkan model bahasa dengan 8,4 miliar parameter dan encoder visual dengan 0,4 miliar parameter. Jendela konteksnya dijelaskan sebagai 256k, dan catatan penggunaan yang dipublikasikan memakai panjang bawaan yang dikonfigurasi sebesar 262.144. Angka ini menjelaskan edisi berukuran 8B ini; anggota keluarga 3B yang lebih kecil dan 14B yang lebih besar memiliki ukuran komponen dan konfigurasi masing-masing.\n\nKemampuan visual memperluas masukan model melampaui percakapan tertulis. Gambar dokumen dapat dipasangkan dengan pertanyaan tentang bidang, paragraf, atau hubungan terlihat yang dipilih. Tangkapan layar dapat dipasangkan dengan tujuan pengguna dan permintaan untuk mengidentifikasi kontrol yang relevan. Minta pengamatan yang mendukung setiap kesimpulan ketika jawaban bergantung pada detail visual, serta pertahankan judul, label, dan satuan yang diperlukan untuk menafsirkan potongan gambar.\n\nKartu model menjelaskan pekerjaan multibahasa dalam puluhan bahasa, termasuk Inggris, Prancis, Spanyol, Jerman, Italia, Portugis, Belanda, Mandarin, Jepang, Korea, dan Arab. Kepatuhan terhadap instruksi sistem, pemanggilan fungsi bawaan, dan keluaran JSON juga disebutkan. Tetapkan bahasa akhir, peran, dan persyaratan keluaran secara eksplisit alih-alih membiarkan model menyimpulkan artefak yang dimaksud dari masukan besar.\n\nTugas dokumen, percakapan, dan agen\n\nKasus penggunaan dari pembuatnya mencakup antarmuka percakapan, asisten sehari-hari, deskripsi gambar dan dokumen, penerjemahan, pembuatan konten, dan agen khusus. Untuk asisten dokumen, berikan halaman dan tentukan informasi yang harus dikembalikan. Permintaan ekstraksi dapat menyebut label bidang, tipe yang diharapkan, dan penanganan nilai yang tidak tersedia. Jawaban yang berguna dapat memuat pengenal dokumen, nilai hasil ekstraksi, dan penjelasan singkat yang terkait dengan sumber yang terlihat.\n\nUntuk percakapan yang berlanjut, pertahankan jawaban sebelumnya yang relevan dan ajukan pertanyaan lanjutan yang terarah. Pengguna dapat terlebih dahulu meminta ringkasan dokumen, lalu menanyakan pernyataan mana yang mendukung satu kesimpulan. Ini mengubah keluaran yang diwajibkan dari gambaran umum menjadi penjelasan yang terkait dengan sumber, sambil mempertahankan materi asli dan tujuan dialog.\n\nUntuk penyuntingan multibahasa, berikan bagian teks asli, pembaca yang dituju, dan daftar istilah. Minta versi revisi yang mempertahankan nama, kondisi, dan satuan, diikuti penjelasan singkat perubahan jika berguna. Untuk pembuatan konten, tentukan audiens dan fakta yang harus muncul sebelum meminta draf pendek atau redaksi alternatif.\n\nDalam tugas agen, aplikasi menyediakan alat dan parameternya. Model dapat memilih fungsi dan menyiapkan argumen, sementara aplikasi menjalankannya serta mengembalikan hasil. Contoh fungsi dalam kartu model menggabungkan pertanyaan gambar dengan alat perhitungan. Pisahkan hasil alat dari usulan pemanggilan agar jawaban tertulis berikutnya menggunakan informasi yang benar-benar dikembalikan oleh operasi.\n\nPersiapan dan pengaturan yang direkomendasikan\n\nPembuatnya merekomendasikan instruksi sistem yang menjelaskan lingkungan, kasus penggunaan, dan cara menggunakan alat. Pastikan kumpulan alat terdefinisi dengan baik dan terbatas pada jumlah minimum yang dibutuhkan tugas. Alur pencarian kecil dapat menawarkan fungsi yang relevan dengan pertanyaan saat ini, dengan argumen wajib yang diberi nama jelas, alih-alih menyajikan kumpulan besar operasi tak terkait.\n\nUntuk penggunaan sehari-hari dan bergaya produksi, kartu model merekomendasikan temperature di bawah 0.1, dengan temperature lebih tinggi tersedia untuk eksplorasi kreatif. Perlakukan ini sebagai rekomendasi alur instruksi, bukan kontrol mode penalaran tersendiri. Keluarga ini memiliki checkpoint Base, Instruct, dan Reasoning yang berbeda; entri ini adalah edisi Instruct 2512, bukan rilis Reasoning terpisah dengan ukuran yang sama.\n\nUntuk gambar, pembuatnya merekomendasikan rasio aspek mendekati 1:1 dan menghindari masukan yang terlalu tipis atau lebar. Pangkas bila perlu sambil mempertahankan label dan konteks yang diwajibkan pertanyaan. Jika halaman memuat beberapa area yang tidak terkait, identifikasi bagian yang harus diperiksa dan hasil yang harus dikembalikan. Gambar yang terbaca dan terarah lebih berguna daripada meminta model menebak detail kecil mana dalam halaman luas yang penting.\n\nBatas konteks dan edisi\n\nRencanakan teks, gambar, percakapan, dan jawaban yang diinginkan sesuai konteks yang dikonfigurasi. Catatan penggunaan secara eksplisit memperbolehkan pengurangan panjang model yang dikonfigurasi ketika konteks yang dibutuhkan lebih sedikit, sehingga jendela penuh bukan instruksi untuk memenuhi setiap permintaan dengan seluruh materi yang tersedia. Contoh generasi 512 token dalam kartu model hanyalah pengaturan contoh, dan sumber yang dibaca tidak menetapkan batas keras panjang jawaban maksimum yang terpisah.\n\nCheckpoint FP8 Instruct, rilis Base yang telah melalui prapelatihan, dan rilis Reasoning adalah edisi yang terpisah. Pembuatnya juga menjelaskan spesialisasi dan fine-tuning sebagai kasus penggunaan. Pertahankan checkpoint bernama beserta tokenizernya saat menyiapkan percakapan, dan bedakan generasi teks dari akses repositori, eksekusi fungsi, atau tindakan lain yang disediakan aplikasi di sekelilingnya.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "344be6bbb04b5ca9e5a6d5fea949e8a2032e8ef8f75c3312fe9cfcd6e1e10418",
    "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\">Mistral: Ministral 3 8B 2512 (batch)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/ministral-8b-2512:batch</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|batches|/v1/batches|mistralai%2Fministral-8b-2512%3Abatch\">Batch</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\">Ministral 3 8B Instruct 2512 adalah model instruksi teks dan gambar multibahasa dengan komponen bahasa 8,4B dan encoder visual 0,4B. Model ini mendukung konteks 256k dari pembuatnya, instruksi sistem, JSON, dan pemanggilan fungsi bawaan untuk asisten serta alur dokumen.</p><dl class=\"card-io\" data-card-io><div><dt>Masukan yang diterima</dt><dd>Teks</dd></div><div><dt>Hasil</dt><dd>Teks</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>Ministral 3 8B Instruct 2512 adalah model berukuran menengah yang disesuaikan untuk mengikuti instruksi dalam keluarga Ministral 3 dari Mistral AI. Checkpoint yang dirilis menjalani pascapelatihan untuk tugas percakapan dan instruksi dengan presisi FP8. Model ini menggabungkan komponen bahasa dengan encoder visual, menerima teks dan gambar serta mengembalikan teks, bukan artefak gambar atau audio.</p><p>Arsitektur dan fitur utama</p><p>Pembuatnya mencantumkan model bahasa dengan 8,4 miliar parameter dan encoder visual dengan 0,4 miliar parameter. Jendela konteksnya dijelaskan sebagai 256k, dan catatan penggunaan yang dipublikasikan memakai panjang bawaan yang dikonfigurasi sebesar 262.144. Angka ini menjelaskan edisi berukuran 8B ini; anggota keluarga 3B yang lebih kecil dan 14B yang lebih besar memiliki ukuran komponen dan konfigurasi masing-masing.</p><p>Kemampuan visual memperluas masukan model melampaui percakapan tertulis. Gambar dokumen dapat dipasangkan dengan pertanyaan tentang bidang, paragraf, atau hubungan terlihat yang dipilih. Tangkapan layar dapat dipasangkan dengan tujuan pengguna dan permintaan untuk mengidentifikasi kontrol yang relevan. Minta pengamatan yang mendukung setiap kesimpulan ketika jawaban bergantung pada detail visual, serta pertahankan judul, label, dan satuan yang diperlukan untuk menafsirkan potongan gambar.</p><p>Kartu model menjelaskan pekerjaan multibahasa dalam puluhan bahasa, termasuk Inggris, Prancis, Spanyol, Jerman, Italia, Portugis, Belanda, Mandarin, Jepang, Korea, dan Arab. Kepatuhan terhadap instruksi sistem, pemanggilan fungsi bawaan, dan keluaran JSON juga disebutkan. Tetapkan bahasa akhir, peran, dan persyaratan keluaran secara eksplisit alih-alih membiarkan model menyimpulkan artefak yang dimaksud dari masukan besar.</p><p>Tugas dokumen, percakapan, dan agen</p><p>Kasus penggunaan dari pembuatnya mencakup antarmuka percakapan, asisten sehari-hari, deskripsi gambar dan dokumen, penerjemahan, pembuatan konten, dan agen khusus. Untuk asisten dokumen, berikan halaman dan tentukan informasi yang harus dikembalikan. Permintaan ekstraksi dapat menyebut label bidang, tipe yang diharapkan, dan penanganan nilai yang tidak tersedia. Jawaban yang berguna dapat memuat pengenal dokumen, nilai hasil ekstraksi, dan penjelasan singkat yang terkait dengan sumber yang terlihat.</p><p>Untuk percakapan yang berlanjut, pertahankan jawaban sebelumnya yang relevan dan ajukan pertanyaan lanjutan yang terarah. Pengguna dapat terlebih dahulu meminta ringkasan dokumen, lalu menanyakan pernyataan mana yang mendukung satu kesimpulan. Ini mengubah keluaran yang diwajibkan dari gambaran umum menjadi penjelasan yang terkait dengan sumber, sambil mempertahankan materi asli dan tujuan dialog.</p><p>Untuk penyuntingan multibahasa, berikan bagian teks asli, pembaca yang dituju, dan daftar istilah. Minta versi revisi yang mempertahankan nama, kondisi, dan satuan, diikuti penjelasan singkat perubahan jika berguna. Untuk pembuatan konten, tentukan audiens dan fakta yang harus muncul sebelum meminta draf pendek atau redaksi alternatif.</p><p>Dalam tugas agen, aplikasi menyediakan alat dan parameternya. Model dapat memilih fungsi dan menyiapkan argumen, sementara aplikasi menjalankannya serta mengembalikan hasil. Contoh fungsi dalam kartu model menggabungkan pertanyaan gambar dengan alat perhitungan. Pisahkan hasil alat dari usulan pemanggilan agar jawaban tertulis berikutnya menggunakan informasi yang benar-benar dikembalikan oleh operasi.</p><p>Persiapan dan pengaturan yang direkomendasikan</p><p>Pembuatnya merekomendasikan instruksi sistem yang menjelaskan lingkungan, kasus penggunaan, dan cara menggunakan alat. Pastikan kumpulan alat terdefinisi dengan baik dan terbatas pada jumlah minimum yang dibutuhkan tugas. Alur pencarian kecil dapat menawarkan fungsi yang relevan dengan pertanyaan saat ini, dengan argumen wajib yang diberi nama jelas, alih-alih menyajikan kumpulan besar operasi tak terkait.</p><p>Untuk penggunaan sehari-hari dan bergaya produksi, kartu model merekomendasikan temperature di bawah 0.1, dengan temperature lebih tinggi tersedia untuk eksplorasi kreatif. Perlakukan ini sebagai rekomendasi alur instruksi, bukan kontrol mode penalaran tersendiri. Keluarga ini memiliki checkpoint Base, Instruct, dan Reasoning yang berbeda; entri ini adalah edisi Instruct 2512, bukan rilis Reasoning terpisah dengan ukuran yang sama.</p><p>Untuk gambar, pembuatnya merekomendasikan rasio aspek mendekati 1:1 dan menghindari masukan yang terlalu tipis atau lebar. Pangkas bila perlu sambil mempertahankan label dan konteks yang diwajibkan pertanyaan. Jika halaman memuat beberapa area yang tidak terkait, identifikasi bagian yang harus diperiksa dan hasil yang harus dikembalikan. Gambar yang terbaca dan terarah lebih berguna daripada meminta model menebak detail kecil mana dalam halaman luas yang penting.</p><p>Batas konteks dan edisi</p><p>Rencanakan teks, gambar, percakapan, dan jawaban yang diinginkan sesuai konteks yang dikonfigurasi. Catatan penggunaan secara eksplisit memperbolehkan pengurangan panjang model yang dikonfigurasi ketika konteks yang dibutuhkan lebih sedikit, sehingga jendela penuh bukan instruksi untuk memenuhi setiap permintaan dengan seluruh materi yang tersedia. Contoh generasi 512 token dalam kartu model hanyalah pengaturan contoh, dan sumber yang dibaca tidak menetapkan batas keras panjang jawaban maksimum yang terpisah.</p><p>Checkpoint FP8 Instruct, rilis Base yang telah melalui prapelatihan, dan rilis Reasoning adalah edisi yang terpisah. Pembuatnya juga menjelaskan spesialisasi dan fine-tuning sebagai kasus penggunaan. Pertahankan checkpoint bernama beserta tokenizernya saat menyiapkan percakapan, dan bedakan generasi teks dari akses repositori, eksekusi fungsi, atau tindakan lain yang disediakan aplikasi di sekelilingnya.</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 · Batch</b> <code>POST /v1/batches</code></summary><dl class=\"method-capabilities\"><div><dt>Masukan</dt><dd><code>text</code></dd></div><div><dt>Keluaran</dt><dd><code>text</code></dd></div><div><dt>Format keluaran</dt><dd>JSON inline pada results[].response.body</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\">endpoint</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>/v1/chat/completions</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\">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>mistralai/ministral-8b-2512:batch</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\">requests</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>batch_item[]</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></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\">requests[].custom_id</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></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\">requests[].body.messages</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>message[]</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></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\">completion_window</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>24h</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|null</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></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\">requests[].body.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>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>mistralai/ministral-8b-2512:batch, mistralai/ministral-8b-2512</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.only</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>mistral</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.allow_fallbacks</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>boolean|null</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>false, null</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>endpoint, model, requests</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>representation</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>requests[] inline; setiap item memiliki custom_id dan body</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>request_endpoint_profile</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>/v1/chat/completions</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>file_material</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>Pemanggil dapat membaca JSONL UTF-8 aktual secara lokal ke dalam requests[]. Tidak menggunakan purpose unggahan, input_file_id, atau referensi file. Materi pelanggan yang tidak ada atau kosong menghentikan persiapan sebelum POST.</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>serialization_order</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>endpoint, model, provider (jika disertakan), completion_window (jika disertakan), requests paling akhir</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>provider.only, provider.allow_fallbacks, completion_window</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>schema_scope</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>body teks Chat Completions dalam envelope Batch inline yang didokumentasikan.</td></tr></tbody></table></div><p>Siklus hidup: <code>asynchronous</code></p><p class=\"note-s\"><code>GET /v1/batches/{operation_id}</code> · response.id aktual dari operasi create awal; user/key/group yang sama</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><dt>Harga cache eksplisit</dt><dd>Tidak diaktifkan <span class=\"note-s\">Saat cache eksplisit diminta</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarif Ailoot</h4><h4>Harga menurut konfigurasi</h4><p class=\"note-s\">Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadwal tarif</th><th>Token konteks, lebih dari</th><th>Token konteks, hingga dan termasuk</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=\"Token konteks, lebih dari\"><span class=\"card-cell-label\">Token konteks, lebih dari</span>—</td><td data-cell-label=\"Token konteks, hingga dan termasuk\"><span class=\"card-cell-label\">Token konteks, hingga dan termasuk</span>Tanpa batas atas</td><td data-cell-label=\"Biaya\"><span class=\"card-cell-label\">Biaya</span><div><span>Masukan · Token masukan</span> <b>$0.00015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Keluaran · Token keluaran</span> <b>$0.00015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Pembacaan cache</span> <b>$0.000015</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><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Panjang permintaan · tingkat 1</th><td data-cell-label=\"Jadwal tarif\"><span class=\"card-cell-label\">Jadwal tarif</span>—</td><td data-cell-label=\"Token konteks, lebih dari\"><span class=\"card-cell-label\">Token konteks, lebih dari</span>0</td><td data-cell-label=\"Token konteks, hingga dan termasuk\"><span class=\"card-cell-label\">Token konteks, hingga dan termasuk</span>Tanpa batas atas</td><td data-cell-label=\"Biaya\"><span class=\"card-cell-label\">Biaya</span><div><span>Masukan · Token masukan</span> <b>$0.00015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Keluaran · Token keluaran</span> <b>$0.00015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Pembacaan cache</span> <b>$0.000015</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 · Batch</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-1901-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1901-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · fixture yang disimpan</button><button class=\"cg-tab\" id=\"model-code-1901-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1901-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python HTTP · JSONL pelanggan yang sebenarnya</button><button class=\"cg-tab\" id=\"model-code-1901-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1901-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · simpan setiap hasil yang telah selesai</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-1901-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1901-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\nfrom pathlib import Path\nbody=json.loads(&#39;{&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;,&quot;model&quot;:&quot;mistralai/ministral-8b-2512:batch&quot;,&quot;requests&quot;:[{&quot;custom_id&quot;:&quot;req-0001&quot;,&quot;body&quot;:{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Hello!&quot;}],&quot;max_tokens&quot;:16}}]}&#39;)\nPath(&quot;batch-request.json&quot;).write_text(json.dumps(body,ensure_ascii=False),encoding=&quot;utf-8&quot;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1901-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1901-tab-1\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(&quot;Customer JSONL file is missing&quot;)\n    items = [json.loads(line) for line in path.read_text(encoding=&quot;utf-8&quot;).splitlines() if line.strip()]\n    if not items: raise ValueError(&quot;Customer JSONL contains no requests&quot;)\n    ids = set()\n    for item in items:\n        if set(item) != {&quot;custom_id&quot;, &quot;body&quot;}: raise ValueError(&quot;Each item needs custom_id and body&quot;)\n        cid = item[&quot;custom_id&quot;]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(&quot;custom_id must be nonempty and unique&quot;)\n        ids.add(cid)\n        if not isinstance(item[&quot;body&quot;], dict) or not item[&quot;body&quot;].get(&quot;messages&quot;): raise ValueError(&quot;Supply actual text messages&quot;)\n        supplied_model = item[&quot;body&quot;].get(&quot;model&quot;)\n        if supplied_model is not None and supplied_model not in [&#39;mistralai/ministral-8b-2512:batch&#39;, &#39;mistralai/ministral-8b-2512&#39;]: raise ValueError(&quot;body.model must be an exact documented caller or wire ID&quot;)\n    return {&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;, &quot;model&quot;:&quot;mistralai/ministral-8b-2512:batch&quot;, &quot;requests&quot;:items}\n\nif __name__ == &quot;__main__&quot;:\n    material = os.environ.get(&quot;AILOOT_BATCH_REQUESTS_JSONL&quot;, &quot;&quot;)\n    if not material: raise SystemExit(&quot;Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file&quot;)\n    body = prepare_requests(material)\n    key = os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;)\n    if not key: raise SystemExit(&quot;Set AILOOT_API_KEY&quot;)\n    request = Request(&quot;https://api.ailoot.ai/v1/batches&quot;, data=json.dumps(body, ensure_ascii=False).encode(&quot;utf-8&quot;), headers={&quot;Authorization&quot;:&quot;Bearer &quot; + key, &quot;Content-Type&quot;:&quot;application/json&quot;}, method=&quot;POST&quot;)\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(&quot;batch-create-response.json&quot;).write_bytes(raw)\n        print(raw.decode(&quot;utf-8&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1901-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1901-tab-2\" hidden><pre data-lang=\"python\"><code>import json\nfrom pathlib import Path\nraw = Path(&quot;batch-status-response.json&quot;).read_bytes()\nresponse = json.loads(raw)\nif response.get(&quot;status&quot;) != &quot;completed&quot;:\n    raise SystemExit(&quot;Keep the original operation; read its status without resubmitting&quot;)\nresults = response.get(&quot;results&quot;)\nif not isinstance(results, list) or not results:\n    raise SystemExit(&quot;Preserve the original response; completed results are missing&quot;)\nPath(&quot;batch-results.jsonl&quot;).write_text(&quot;&quot;.join(json.dumps(item, ensure_ascii=False) + &quot;\\n&quot; for item in results), encoding=&quot;utf-8&quot;)\n# Preserve batch-status-response.json with aggregate usage and every result/error.\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 · Batch</h4><p class=\"note-s\">JSON inline pada results[].response.body</p><ul class=\"card-result-paths\"><li><code>GET /v1/batches/{operation_id}</code></li></ul><h5>Periksa status tugas</h5><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-1902-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1902-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · status operasi asli</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-1902-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1902-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nBATCH_OPERATION_ID=&quot;$(python3 - &lt;&lt;&#39;PY_ID&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(&quot;batch-create-response.json&quot;).read_text(encoding=&quot;utf-8&quot;))\noperation = response.get(&quot;id&quot;)\nif not isinstance(operation, str) or not operation: raise SystemExit(&quot;No actual original operation ID; preserve the response and do not resubmit&quot;)\nprint(quote(operation, safe=&quot;&quot;))\nPY_ID\n)&quot;\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o batch-status-response.json\n</code></pre></div></div></div><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\">Pertahankan JSON status asli secara lengkap, setiap result/custom_id, serta body response atau error yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penyaringan.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asli perlu diperiksa</h5><p class=\"note-s\">Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui.</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\">results[].custom_id</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\">results[].response.body.choices[].message.content</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string|null</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">results[].error</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>object|null</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|null</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">id</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\">endpoint</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\">status</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\">request_counts</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>object</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">results[].id</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\">results[].response.status_code</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\">results[].response.request_id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</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>Envelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Perbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Kunci API tidak valid.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Gunakan kunci Ailoot yang berizin.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>403 · <code>permission_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Grup Batch tidak tersedia.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Periksa hak akses key/group.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Batch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Gunakan grup berizin yang ditagih dari saldo.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Penawaran harga untuk input Batch tidak dapat dibuat.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan respons; gunakan input keluarga API yang didokumentasikan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>402 · <code>billing_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Cadangan Batch tidak tersedia.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Selesaikan kendala penerimaan sebelum mengirim permintaan baru.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code>price_unavailable</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Harga metode Batch/tarif native tidak tersedia.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan respons; jangan mengganti harga.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code>api_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Rute pemasok yang tepat tidak tersedia.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan respons untuk perbaikan rute.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Hasil asli perlu diperiksa; X-Should-Retry:false.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>404 · <code>not_found</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Operasi status Batch tidak ada atau dimiliki oleh identitas lain.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Gunakan id asli yang persis sama dan user/key/group yang sama.</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=mistralai%2Fministral-8b-2512%3Abatch&amp;route=Ultra&amp;caller=mistralai%2Fministral-8b-2512%3Abatch&amp;fmt=batches\"><code>mistralai/ministral-8b-2512:batch</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=mistralai%2Fministral-8b-2512%3Abatch&amp;route=Ultra&amp;caller=mistralai%2Fministral-8b-2512%3Abatch&amp;fmt=batches\"><code>mistralai/ministral-8b-2512:batch</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/ministral-8b-2512:batch",
        "fmt": "batches",
        "http": "POST",
        "path": "/v1/batches",
        "request_model_id": "mistralai/ministral-8b-2512:batch",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|batches|/v1/batches|mistralai%2Fministral-8b-2512%3Abatch",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.015,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Envelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi.",
                "http_status": 400,
                "recovery": "Perbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Kunci API tidak valid.",
                "http_status": 401,
                "recovery": "Gunakan kunci Ailoot yang berizin.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Grup Batch tidak tersedia.",
                "http_status": 403,
                "recovery": "Periksa hak akses key/group.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Batch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak.",
                "http_status": 422,
                "recovery": "Gunakan grup berizin yang ditagih dari saldo.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Penawaran harga untuk input Batch tidak dapat dibuat.",
                "http_status": 422,
                "recovery": "Simpan respons; gunakan input keluarga API yang didokumentasikan.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Cadangan Batch tidak tersedia.",
                "http_status": 402,
                "recovery": "Selesaikan kendala penerimaan sebelum mengirim permintaan baru.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Harga metode Batch/tarif native tidak tersedia.",
                "http_status": 503,
                "recovery": "Simpan respons; jangan mengganti harga.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Rute pemasok yang tepat tidak tersedia.",
                "http_status": 503,
                "recovery": "Simpan respons untuk perbaikan rute.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Hasil asli perlu diperiksa; X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Simpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "Operasi status Batch tidak ada atau dimiliki oleh identitas lain.",
                "http_status": 404,
                "recovery": "Gunakan id asli yang persis sama dan user/key/group yang sama.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/ministral-8b-2512:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "Pertahankan JSON status asli secara lengkap, setiap result/custom_id, serta body response atau error yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penyaringan.",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "JSON inline pada results[].response.body"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/ministral-8b-2512:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/ministral-8b-2512:batch",
                  "mistralai/ministral-8b-2512"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "mistral"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "mistral"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "mistralai/ministral-8b-2512:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "mistral"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "mistral"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "mistralai/ministral-8b-2512:batch",
                              "mistralai/ministral-8b-2512"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/ministral-8b-2512:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Pemanggil dapat membaca JSONL UTF-8 aktual secara lokal ke dalam requests[]. Tidak menggunakan purpose unggahan, input_file_id, atau referensi file. Materi pelanggan yang tidak ada atau kosong menghentikan persiapan sebelum POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "requests[] inline; setiap item memiliki custom_id dan body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "body teks Chat Completions dalam envelope Batch inline yang didokumentasikan.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (jika disertakan)",
              "completion_window (jika disertakan)",
              "requests paling akhir"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "response.id aktual dari operasi create awal; user/key/group yang sama",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarif dasar token",
            "units": [
              {
                "amount": "0.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Panjang permintaan · tingkat 1",
            "units": [
              {
                "amount": "0.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"mistralai/ministral-8b-2512:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['mistralai/ministral-8b-2512:batch', 'mistralai/ministral-8b-2512']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"mistralai/ministral-8b-2512:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 0.15,
        "input": [
          "text"
        ],
        "label": "Batch",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0.15,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "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"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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": "mistralai/ministral-8b-2512:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.015,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.15,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 0.15,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000015",
            "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.00015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000015",
            "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": "0.000015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.000000015",
            "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": "mistralai/ministral-8b-2512:batch",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4a76f1380f1dd995bc80fdcbd27cd1bd82a0ecf08247012448788803218db28f",
    "input_html_sha256": "f6b9a9701f17d3e5e2265ba4535ad68bb7ff2126a4dee2e7d75123e2699a9bac",
    "private_audit_sha256": "46966c7987b8213b872fb98a2be0b33b3bc88a3f79c4aa8194ac2b1009dbbfcf",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/id/mistralai-ministral-8b-2512-u003a-batch/",
    "description": "Ministral 3 8B Instruct 2512 adalah model instruksi teks dan gambar multibahasa dengan komponen bahasa 8,4B dan encoder visual 0,4B. Model ini mendukung konteks 256k dari pembuatnya, instruksi sistem, JSON, dan pemanggilan fungsi bawaan untuk asisten serta alur dokumen.",
    "locale": "id",
    "md_url": "https://ailoot.ai/models/id/mistralai-ministral-8b-2512-u003a-batch/index.md",
    "title": "Mistral: Ministral 3 8B 2512 (batch) — Ailoot",
    "url": "https://ailoot.ai/models/id/mistralai-ministral-8b-2512-u003a-batch/"
  },
  "rawModel": {
    "about": "Ministral 3 8B Instruct 2512 adalah model berukuran menengah yang disesuaikan untuk mengikuti instruksi dalam keluarga Ministral 3 dari Mistral AI. Checkpoint yang dirilis menjalani pascapelatihan untuk tugas percakapan dan instruksi dengan presisi FP8. Model ini menggabungkan komponen bahasa dengan encoder visual, menerima teks dan gambar serta mengembalikan teks, bukan artefak gambar atau audio.\n\nArsitektur dan fitur utama\n\nPembuatnya mencantumkan model bahasa dengan 8,4 miliar parameter dan encoder visual dengan 0,4 miliar parameter. Jendela konteksnya dijelaskan sebagai 256k, dan catatan penggunaan yang dipublikasikan memakai panjang bawaan yang dikonfigurasi sebesar 262.144. Angka ini menjelaskan edisi berukuran 8B ini; anggota keluarga 3B yang lebih kecil dan 14B yang lebih besar memiliki ukuran komponen dan konfigurasi masing-masing.\n\nKemampuan visual memperluas masukan model melampaui percakapan tertulis. Gambar dokumen dapat dipasangkan dengan pertanyaan tentang bidang, paragraf, atau hubungan terlihat yang dipilih. Tangkapan layar dapat dipasangkan dengan tujuan pengguna dan permintaan untuk mengidentifikasi kontrol yang relevan. Minta pengamatan yang mendukung setiap kesimpulan ketika jawaban bergantung pada detail visual, serta pertahankan judul, label, dan satuan yang diperlukan untuk menafsirkan potongan gambar.\n\nKartu model menjelaskan pekerjaan multibahasa dalam puluhan bahasa, termasuk Inggris, Prancis, Spanyol, Jerman, Italia, Portugis, Belanda, Mandarin, Jepang, Korea, dan Arab. Kepatuhan terhadap instruksi sistem, pemanggilan fungsi bawaan, dan keluaran JSON juga disebutkan. Tetapkan bahasa akhir, peran, dan persyaratan keluaran secara eksplisit alih-alih membiarkan model menyimpulkan artefak yang dimaksud dari masukan besar.\n\nTugas dokumen, percakapan, dan agen\n\nKasus penggunaan dari pembuatnya mencakup antarmuka percakapan, asisten sehari-hari, deskripsi gambar dan dokumen, penerjemahan, pembuatan konten, dan agen khusus. Untuk asisten dokumen, berikan halaman dan tentukan informasi yang harus dikembalikan. Permintaan ekstraksi dapat menyebut label bidang, tipe yang diharapkan, dan penanganan nilai yang tidak tersedia. Jawaban yang berguna dapat memuat pengenal dokumen, nilai hasil ekstraksi, dan penjelasan singkat yang terkait dengan sumber yang terlihat.\n\nUntuk percakapan yang berlanjut, pertahankan jawaban sebelumnya yang relevan dan ajukan pertanyaan lanjutan yang terarah. Pengguna dapat terlebih dahulu meminta ringkasan dokumen, lalu menanyakan pernyataan mana yang mendukung satu kesimpulan. Ini mengubah keluaran yang diwajibkan dari gambaran umum menjadi penjelasan yang terkait dengan sumber, sambil mempertahankan materi asli dan tujuan dialog.\n\nUntuk penyuntingan multibahasa, berikan bagian teks asli, pembaca yang dituju, dan daftar istilah. Minta versi revisi yang mempertahankan nama, kondisi, dan satuan, diikuti penjelasan singkat perubahan jika berguna. Untuk pembuatan konten, tentukan audiens dan fakta yang harus muncul sebelum meminta draf pendek atau redaksi alternatif.\n\nDalam tugas agen, aplikasi menyediakan alat dan parameternya. Model dapat memilih fungsi dan menyiapkan argumen, sementara aplikasi menjalankannya serta mengembalikan hasil. Contoh fungsi dalam kartu model menggabungkan pertanyaan gambar dengan alat perhitungan. Pisahkan hasil alat dari usulan pemanggilan agar jawaban tertulis berikutnya menggunakan informasi yang benar-benar dikembalikan oleh operasi.\n\nPersiapan dan pengaturan yang direkomendasikan\n\nPembuatnya merekomendasikan instruksi sistem yang menjelaskan lingkungan, kasus penggunaan, dan cara menggunakan alat. Pastikan kumpulan alat terdefinisi dengan baik dan terbatas pada jumlah minimum yang dibutuhkan tugas. Alur pencarian kecil dapat menawarkan fungsi yang relevan dengan pertanyaan saat ini, dengan argumen wajib yang diberi nama jelas, alih-alih menyajikan kumpulan besar operasi tak terkait.\n\nUntuk penggunaan sehari-hari dan bergaya produksi, kartu model merekomendasikan temperature di bawah 0.1, dengan temperature lebih tinggi tersedia untuk eksplorasi kreatif. Perlakukan ini sebagai rekomendasi alur instruksi, bukan kontrol mode penalaran tersendiri. Keluarga ini memiliki checkpoint Base, Instruct, dan Reasoning yang berbeda; entri ini adalah edisi Instruct 2512, bukan rilis Reasoning terpisah dengan ukuran yang sama.\n\nUntuk gambar, pembuatnya merekomendasikan rasio aspek mendekati 1:1 dan menghindari masukan yang terlalu tipis atau lebar. Pangkas bila perlu sambil mempertahankan label dan konteks yang diwajibkan pertanyaan. Jika halaman memuat beberapa area yang tidak terkait, identifikasi bagian yang harus diperiksa dan hasil yang harus dikembalikan. Gambar yang terbaca dan terarah lebih berguna daripada meminta model menebak detail kecil mana dalam halaman luas yang penting.\n\nBatas konteks dan edisi\n\nRencanakan teks, gambar, percakapan, dan jawaban yang diinginkan sesuai konteks yang dikonfigurasi. Catatan penggunaan secara eksplisit memperbolehkan pengurangan panjang model yang dikonfigurasi ketika konteks yang dibutuhkan lebih sedikit, sehingga jendela penuh bukan instruksi untuk memenuhi setiap permintaan dengan seluruh materi yang tersedia. Contoh generasi 512 token dalam kartu model hanyalah pengaturan contoh, dan sumber yang dibaca tidak menetapkan batas keras panjang jawaban maksimum yang terpisah.\n\nCheckpoint FP8 Instruct, rilis Base yang telah melalui prapelatihan, dan rilis Reasoning adalah edisi yang terpisah. Pembuatnya juga menjelaskan spesialisasi dan fine-tuning sebagai kasus penggunaan. Pertahankan checkpoint bernama beserta tokenizernya saat menyiapkan percakapan, dan bedakan generasi teks dari akses repositori, eksekusi fungsi, atau tindakan lain yang disediakan aplikasi di sekelilingnya.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "capabilities": {
      "context_length": 262144,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000015",
            "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.00015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000015",
            "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,
    "formats": [
      "batches"
    ],
    "id": "mistralai/ministral-8b-2512:batch",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.015,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Envelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi.",
                "http_status": 400,
                "recovery": "Perbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Kunci API tidak valid.",
                "http_status": 401,
                "recovery": "Gunakan kunci Ailoot yang berizin.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Grup Batch tidak tersedia.",
                "http_status": 403,
                "recovery": "Periksa hak akses key/group.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Batch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak.",
                "http_status": 422,
                "recovery": "Gunakan grup berizin yang ditagih dari saldo.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Penawaran harga untuk input Batch tidak dapat dibuat.",
                "http_status": 422,
                "recovery": "Simpan respons; gunakan input keluarga API yang didokumentasikan.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Cadangan Batch tidak tersedia.",
                "http_status": 402,
                "recovery": "Selesaikan kendala penerimaan sebelum mengirim permintaan baru.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Harga metode Batch/tarif native tidak tersedia.",
                "http_status": 503,
                "recovery": "Simpan respons; jangan mengganti harga.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Rute pemasok yang tepat tidak tersedia.",
                "http_status": 503,
                "recovery": "Simpan respons untuk perbaikan rute.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Hasil asli perlu diperiksa; X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Simpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "Operasi status Batch tidak ada atau dimiliki oleh identitas lain.",
                "http_status": 404,
                "recovery": "Gunakan id asli yang persis sama dan user/key/group yang sama.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/ministral-8b-2512:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "Pertahankan JSON status asli secara lengkap, setiap result/custom_id, serta body response atau error yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penyaringan.",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "JSON inline pada results[].response.body"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/ministral-8b-2512:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/ministral-8b-2512:batch",
                  "mistralai/ministral-8b-2512"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "mistral"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "mistral"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "mistralai/ministral-8b-2512:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "mistral"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "mistral"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "mistralai/ministral-8b-2512:batch",
                              "mistralai/ministral-8b-2512"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/ministral-8b-2512:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Pemanggil dapat membaca JSONL UTF-8 aktual secara lokal ke dalam requests[]. Tidak menggunakan purpose unggahan, input_file_id, atau referensi file. Materi pelanggan yang tidak ada atau kosong menghentikan persiapan sebelum POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "requests[] inline; setiap item memiliki custom_id dan body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "body teks Chat Completions dalam envelope Batch inline yang didokumentasikan.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (jika disertakan)",
              "completion_window (jika disertakan)",
              "requests paling akhir"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "response.id aktual dari operasi create awal; user/key/group yang sama",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarif dasar token",
            "units": [
              {
                "amount": "0.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Panjang permintaan · tingkat 1",
            "units": [
              {
                "amount": "0.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"mistralai/ministral-8b-2512:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['mistralai/ministral-8b-2512:batch', 'mistralai/ministral-8b-2512']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"mistralai/ministral-8b-2512:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 0.15,
        "input": [
          "text"
        ],
        "label": "Batch",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0.15,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "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"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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.00015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000015",
                "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": "0.000015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000015",
                "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": "mistralai/ministral-8b-2512:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.015,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.15,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 0.15,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000015",
            "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.00015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000015",
            "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": "0.000015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.000000015",
            "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": "mistralai/ministral-8b-2512:batch",
        "request_model_id": "mistralai/ministral-8b-2512:batch",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Ministral 3 8B 2512 (batch)",
    "price": {
      "in": 0.15,
      "in_label": null,
      "out": 0.15,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.15,
      "sort_out": 0.15,
      "varies": true
    },
    "short": "Ministral 3 8B Instruct 2512 adalah model instruksi teks dan gambar multibahasa dengan komponen bahasa 8,4B dan encoder visual 0,4B. Model ini mendukung konteks 256k dari pembuatnya, instruksi sistem, JSON, dan pemanggilan fungsi bawaan untuk asisten serta alur dokumen."
  },
  "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": "Ministral 3 8B Instruct 2512 adalah model instruksi teks dan gambar multibahasa dengan komponen bahasa 8,4B dan encoder visual 0,4B. Model ini mendukung konteks 256k dari pembuatnya, instruksi sistem, JSON, dan pemanggilan fungsi bawaan untuk asisten serta alur dokumen.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "c7db771fc17eca8a616bb77c7ab1e6cdfb1e56f7cb5e03335a40fcf9a7b71c73",
    "renderer_sha256": "2a0471475a29000c23db326ca1e315df73dee7524f6bc2907818ee3458813f2d"
  },
  "sourceRevision": "06770984d4668f1f4533c751f8b148637ae5745c84c2f35e6a9c7d71cf0a9857"
}
