Mistral: Mistral Small 4 (batch)
Mistral Small 4 adalah model teks dan gambar hibrida dengan kemampuan instruksi, penalaran, dan pemrograman. Rilis mixture-of-experts 119B-nya mengaktifkan 6,5B parameter per token dan mendukung konteks 256k dari pembuatnya, upaya penalaran yang dapat dipilih, JSON, dan pemanggilan fungsi.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
Mistral Small 4 menggabungkan kepatuhan instruksi umum, penalaran, dan pemrograman dalam satu model multimodal. Pembuatnya menjelaskan model ini sebagai penyatuan keluarga Instruct, penalaran Magistral, dan pemrograman Devstral. Model menerima teks dan gambar serta mengembalikan teks, dengan pemanggilan fungsi dan keluaran JSON tersedia untuk aplikasi berbantuan alat.
Arsitektur dan fitur utama
Rilis ini memiliki total 119 miliar parameter dan mengaktifkan 6,5 miliar per token. Arsitektur mixture-of-experts-nya memuat 128 pakar, dengan 4 aktif, dan pembuatnya mendokumentasikan jendela konteks 256k. Jumlah parameter aktif dan jumlah pakar menjelaskan bagaimana model disusun; keduanya berbeda dari jumlah konten teks atau gambar yang disertakan dalam satu tugas.
Model menyediakan fungsi instruksi dan penalaran dalam checkpoint yang sama. Pembuatnya juga menyebut kemampuan visual, kepatuhan prompt sistem, dan dukungan multibahasa untuk puluhan bahasa, termasuk Inggris, Prancis, Spanyol, Jerman, Italia, Portugis, Belanda, Mandarin, Jepang, Korea, dan Arab. Dengan demikian, instruksi teks dapat menanyakan gambar atau menggabungkan persyaratan tertulis dengan bukti yang terlihat, dengan jawaban dikembalikan sebagai teks.
Tugas visual dapat menyediakan halaman dokumen dan meminta nilai yang relevan dengan kondisi tertentu. Pastikan label dan satuan terbaca serta nyatakan apakah hasil harus mempertahankan redaksi asli, merangkumnya, atau membandingkannya dengan sumber lain. Tugas antarmuka dapat memasangkan tangkapan layar dengan tujuan pengguna dan meminta kontrol relevan yang terlihat serta bukti yang mendukung usulan langkah berikutnya.
Memilih mode instruksi atau penalaran
Kartu yang dirilis mendokumentasikan upaya penalaran none untuk jawaban bergaya instruksi yang langsung, dan high untuk penalaran, dengan high direkomendasikan bagi prompt kompleks. Pilihan dilakukan per permintaan dalam model Small 4 yang sama. Klasifikasi biasa atau penulisan ulang singkat dapat memiliki kontrak jawaban berbeda dari masalah matematika, visual, atau pemrograman yang memerlukan penjelasan mendalam.
Pembuatnya merekomendasikan temperature 0.7 untuk upaya penalaran high. Untuk none, dokumentasinya menetapkan temperature antara 0.0 dan 0.7 sesuai tugas. Pengaturan ini menjelaskan mode yang terdokumentasi dan tidak menjadikan upaya penalaran sebagai jaminan hasil yang benar. Tetapkan asumsi, bentuk keluaran, dan materi sumber yang relevan sebelum memilih seberapa banyak penalaran yang diperlukan tugas.
Untuk soal yang diselesaikan dengan langkah-langkah, berikan kondisi lengkap dan minta langkah beralasan yang penting diikuti ekspresi akhir. Untuk tugas kode, berikan persyaratan, fungsi yang terdampak, dan masukan konkret; minta usulan implementasi secara terpisah dari penjelasan dan contohnya. Demonstrasi penggunaan dari pembuatnya mencakup kepatuhan instruksi, alat perhitungan yang diterapkan pada gambar, dan penalaran visual, yang menunjukkan bagaimana teks dan bukti visual dapat masuk ke tugas yang berbeda ini.
Pemrograman, dokumen, dan alat
Model ini ditempatkan untuk eksplorasi basis kode dan agen rekayasa perangkat lunak, asisten umum, pemahaman dokumen, serta riset. Permintaan agen pemrograman dapat menyebut modul yang harus diubah, antarmuka yang harus dipertahankan, dan perilaku yang seharusnya dihasilkan. Berikan sumber dan bukti kegagalan yang relevan. Model dapat mengusulkan operasi berikutnya atau perubahan kode, sementara aplikasi menyediakan akses repositori, eksekusi, dan umpan balik.
Untuk ekstraksi dokumen, identifikasi bidang yang diwajibkan dan cara merepresentasikan informasi yang tidak tersedia. Rekaman yang berguna dapat memisahkan pengenal dokumen, pernyataan sumber, persyaratan yang ditafsirkan, dan pertanyaan yang belum terjawab. Kartu layanan pembuatnya mencantumkan keluaran terstruktur khusus dan tanya jawab dokumen; yang terakhir menggunakan pemrosesan dokumen dan OCR untuk menyiapkan teks serta struktur sebelum analisis model bahasa. Pertanyaan gambar langsung dan alur dokumen berbantuan OCR harus mempertahankan persiapan masukan masing-masing.
Pemanggilan fungsi memerlukan alat yang dijelaskan dengan jelas. Model memilih fungsi dan membuat argumen; aplikasi menjalankan operasi dan mengembalikan hasilnya untuk jawaban berikutnya. Logika yang sama berlaku baik tugasnya berupa pencarian, perhitungan, maupun operasi pemrograman. Pemformatan JSON menata jawaban, sedangkan pemanggilan alat meminta tindakan eksternal; keduanya tidak boleh diperlakukan sebagai hasil yang dapat dipertukarkan.
Kartu layanan juga mencantumkan predicted outputs, prefiks respons, pemrosesan batch, dan percakapan agen. Predicted outputs berguna ketika dokumen atau berkas kode harus dihasilkan ulang dengan perubahan terbatas dan sisa kontennya sudah diketahui. Tentukan penyuntingan dan materi yang harus dipertahankan. Kelanjutan prefiks menggunakan awal respons yang sudah diketahui, sedangkan pemrosesan batch berkaitan dengan pengiriman pekerjaan, bukan mode penalaran tambahan.
Batas konteks dan edisi
Rencanakan tugas tertulis, materi visual, percakapan, dan jawaban yang diinginkan sesuai konteks 256k yang terdokumentasi. Contoh penggunaan yang dirilis mengonfigurasi konteks 262.144 token, sedangkan contoh generasi 1.024 token bukan kapasitas keluaran maksimum tersendiri. Sumber yang dibaca tidak memberikan batas keras panjang jawaban yang mandiri untuk menggantikan panjang tugas yang dipilih.
Small 4 memiliki arsitektur mixture-of-experts 119B dan mode hibridanya sendiri. Model ini tidak boleh mewarisi arsitektur dense 128B Medium 3.5 atau edisi Instruct dan Reasoning terpisah milik Ministral 3. Pembuatnya juga merilis artefak terkuantisasi dan speculative-decoding yang berbeda; itu merupakan artefak penerapan terpisah, bukan modalitas konten berbeda. Pertahankan rilis Small 4 bernama dan mode yang diminta untuk penjelasan aktual, rekaman terstruktur, atau hasil kode.
Ailoot Ultra · Batch POST /v1/batches mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batchMulai
Mistral Small 4 adalah model teks dan gambar hibrida dengan kemampuan instruksi, penalaran, dan pemrograman. Rilis mixture-of-experts 119B-nya mengaktifkan 6,5B parameter per token dan mendukung konteks 256k dari pembuatnya, upaya penalaran yang dapat dipilih, JSON, dan pemanggilan fungsi.
- Masukan yang diterima
- Teks
- Hasil
- Teks
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Batch POST /v1/batches
- Masukan
text- Keluaran
text- Format keluaran
- JSON inline pada results[].response.body
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolomendpoint | Jenisstring | PersyaratanWajib | Nilai & batasan /v1/chat/completions | Bawaan— |
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan mistralai/mistral-small-2603:batch | Bawaan— |
Kolomrequests | Jenisbatch_item[] | PersyaratanWajib | Nilai & batasan Item minimum: 1 | Bawaan— |
Kolomrequests[].custom_id | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomrequests[].body.messages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomcompletion_window | Jenisstring | PersyaratanOpsional | Nilai & batasan 24h | Bawaan— |
Kolomprovider | Jenisobject|null | PersyaratanOpsional | Nilai & batasan | Bawaan— |
Kolomrequests[].body.model | Jenisstring | PersyaratanOpsional | Nilai & batasan mistralai/mistral-small-2603:batch, mistralai/mistral-small-2603 | Bawaan— |
Kolomprovider.only | Jenisstring[] | PersyaratanOpsional | Nilai & batasan mistral | Bawaan— |
Kolomprovider.allow_fallbacks | Jenisboolean|null | PersyaratanOpsional | Nilai & batasan false, null | Bawaan— |
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakendpoint, model, requests |
Parametermaterial_types | Kontraktext |
Parameterrepresentation | Kontrakrequests[] inline; setiap item memiliki custom_id dan body |
Parameterrequest_endpoint_profile | Kontrak/v1/chat/completions |
Parameterfile_material | KontrakPemanggil 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. |
Parameterserialization_order | Kontrakendpoint, model, provider (jika disertakan), completion_window (jika disertakan), requests paling akhir |
Parameteroptional_controls | Kontrakprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | Kontrakbody teks Chat Completions dalam envelope Batch inline yang didokumentasikan. |
Siklus hidup: asynchronous
GET /v1/batches/{operation_id} · response.id aktual dari operasi create awal; user/key/group yang sama
Paket
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
- Harga cache eksplisit
- Tidak diaktifkan Saat cache eksplisit diminta
Tarif Ailoot
Harga menurut konfigurasi
Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.
| Konfigurasi | Jadwal tarif | Token konteks, lebih dari | Token konteks, hingga dan termasuk | Biaya |
|---|---|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Token konteks, lebih dari— | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.00015 / 1K token Keluaran · Token keluaran $0.0006 / 1K token Masukan · Pembacaan cache $0.000015 / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiPanjang permintaan · tingkat 1 | Jadwal tarif— | Token konteks, lebih dari0 | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.00015 / 1K token Keluaran · Token keluaran $0.0006 / 1K token Masukan · Pembacaan cache $0.000015 / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
Contoh permintaan
Ailoot Ultra · Batch
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"mistralai/mistral-small-2603:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['mistralai/mistral-small-2603:batch', 'mistralai/mistral-small-2603']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-small-2603:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
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")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Terima dan simpan hasil
Ailoot Ultra · Batch
JSON inline pada results[].response.body
GET /v1/batches/{operation_id}
Periksa status tugas
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Simpan semua hasil yang selesai
Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.
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.
Jika respons asli perlu diperiksa
Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui.
Kolom respons
| Kolom | Jenis |
|---|---|
Kolomresults[].custom_id | Jenisstring |
Kolomresults[].response.body.choices[].message.content | Jenisstring|null |
Kolomresults[].error | Jenisobject|null |
Kolomusage | Jenisobject|null |
Kolomid | Jenisstring |
Kolommodel | Jenisstring |
Kolomendpoint | Jenisstring |
Kolomstatus | Jenisstring |
Kolomrequest_counts | Jenisobject |
Kolomresults[].id | Jenisstring |
Kolomresults[].response.status_code | Jenisinteger |
Kolomresults[].response.request_id | Jenisstring |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiEnvelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi. | Langkah berikutnyaPerbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun. |
Respons401 · authentication_error | KondisiKunci API tidak valid. | Langkah berikutnyaGunakan kunci Ailoot yang berizin. |
Respons403 · permission_error | KondisiGrup Batch tidak tersedia. | Langkah berikutnyaPeriksa hak akses key/group. |
Respons422 · invalid_request_error | KondisiBatch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak. | Langkah berikutnyaGunakan grup berizin yang ditagih dari saldo. |
Respons422 · price_unavailable | KondisiPenawaran harga untuk input Batch tidak dapat dibuat. | Langkah berikutnyaSimpan respons; gunakan input keluarga API yang didokumentasikan. |
Respons402 · billing_error | KondisiCadangan Batch tidak tersedia. | Langkah berikutnyaSelesaikan kendala penerimaan sebelum mengirim permintaan baru. |
Respons503 · price_unavailable | KondisiHarga metode Batch/tarif native tidak tersedia. | Langkah berikutnyaSimpan respons; jangan mengganti harga. |
Respons503 · api_error | KondisiRute pemasok yang tepat tidak tersedia. | Langkah berikutnyaSimpan respons untuk perbaikan rute. |
Respons503 · result_pending_check | KondisiHasil asli perlu diperiksa; X-Should-Retry:false. | Langkah berikutnyaSimpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli. |
Respons404 · not_found | KondisiOperasi status Batch tidak ada atau dimiliki oleh identitas lain. | Langkah berikutnyaGunakan id asli yang persis sama dan user/key/group yang sama. |
Alias
Alias model
Ailoot Ultra mistralai/mistral-small-2603:batch
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · Mistral: Mistral Small 4 (batch)
- Input dan hasil apa yang tersedia?
POST /v1/batches·mistralai/mistral-small-2603:batch:text→text- Kolom apa yang digunakan permintaan?
POST /v1/batches·mistralai/mistral-small-2603:batch:endpoint,model,requests,completion_window,provider- Batasan apa yang berlaku?
POST /v1/batches·mistralai/mistral-small-2603:batch:requests.min_items:1