Mistral: Mistral Medium 3.1 (batch)
Mistral Medium 3.1 adalah model teks dan gambar untuk jawaban percakapan, pertanyaan dokumen, dan ekstraksi terstruktur. Konteks 128k dari pembuatnya serta fitur pemanggilan fungsi, predicted-output, dan prefiks yang tercantum mendukung penjelasan berbasis sumber dan alur penyuntingan terarah.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
Mistral Medium 3.1 adalah edisi multimodal Mistral AI untuk pemahaman teks dan visual. Pembuatnya menjelaskan revisi ini sebagai peningkatan nada dan performa dalam lini Medium 3. Model menerima teks dan gambar serta menghasilkan teks: penjelasan, jawaban dokumen, rekaman terstruktur, atau usulan pemanggilan fungsi. Pengenal tetap pembuatnya untuk edisi ini adalah mistral-medium-2508.
Konteks dan edisi spesifik
Halaman model mendokumentasikan jendela konteks 128k. Gunakan konteks tersebut untuk menyatukan bagian sumber terkait, bukti gambar, percakapan, dan tugas pengguna. Identifikasi peran dokumen dan pertanyaan yang harus dijawab sebelum memberikan kumpulan besar. Konteks panjang dapat mendukung perbandingan terarah sementara artefak akhir tetap berupa tabel pendek atau bagian yang direvisi.
Medium 3.1 mempertahankan spesifikasinya sendiri. Konteks 256k, arsitektur dense 128B, dan mode penalaran hibrida yang dapat dikonfigurasi yang dijelaskan untuk Medium 3.5 tidak boleh dilekatkan pada entri ini. Halaman 3.1 tidak menyediakan jumlah parameter atau angka panjang jawaban maksimum terpisah yang dapat diganti secara aman dengan angka dari model berikutnya.
Keluaran terstruktur dan fungsi
Pembuatnya mencantumkan keluaran terstruktur, pemanggilan fungsi, dan predicted outputs di antara fitur edisi ini. Untuk tugas ekstraksi terstruktur, tetapkan bidang yang diwajibkan, tipe yang diharapkan, dan penanganan informasi yang tidak ada dalam sumber. Rekaman dapat memuat pengenal dokumen, pernyataan yang diekstrak, lokasi sumbernya, dan pertanyaan yang masih tersisa. Minta rekaman saja ketika program akan mengurainya, atau pisahkan penjelasan prosa ketika seseorang harus memeriksa penafsirannya.
Dokumentasi keluaran terstruktur bersama Mistral membedakan mode JSON dari skema khusus. Mode JSON memerlukan instruksi eksplisit tentang format JSON yang diinginkan, sedangkan jalur khusus menetapkan struktur yang lebih spesifik. Ini merupakan pemformatan hasil teks, bukan modalitas konten baru atau tindakan eksternal.
Untuk fungsi, aplikasi menetapkan operasi dan argumen yang tersedia, model memilih pemanggilan yang sesuai dan menyiapkan nilai, lalu aplikasi menjalankannya. Hasilnya kemudian menjadi informasi untuk jawaban berikutnya. Asisten dokumen dapat menggunakan pencarian untuk memperoleh data referensi yang belum tersedia, tetapi hanya jika aplikasi di sekelilingnya menyediakan pencarian tersebut dan mengembalikan hasil aktualnya. Jaga usulan pemanggilan dan data yang dikembalikan tetap terkait satu sama lain.
Penyuntingan prediktif dan prefiks respons
Predicted outputs berguna ketika sebagian besar hasil yang diinginkan sudah diketahui, seperti dokumen atau berkas kode yang memerlukan penyuntingan terbatas. Berikan konten yang ada dan jelaskan perubahan secara tepat, termasuk apa yang harus tetap sama. Permintaan dapat memperbarui istilah satu bagian atau mengganti satu detail implementasi sambil mempertahankan sisa dokumen. Prediksi memuat konten keluaran yang diharapkan, bukan perubahan selesai yang diterapkan ke berkas.
Halaman model juga mencantumkan kelanjutan prefiks respons. Dalam dokumentasi percakapan pembuatnya, prefiks menyediakan awal yang diketahui bagi respons asisten, lalu generasi melanjutkannya. Awal yang diketahui dan isi yang diprediksi menyelesaikan masalah persiapan yang berbeda. Pemrosesan batch dan antarmuka agen atau percakapan juga merupakan fitur alur kerja, bukan edisi gambar, audio, atau penalaran terpisah dari Medium 3.1.
Pertanyaan dokumen dan visual
Alur document-QnA yang tercantum menggabungkan teks, struktur, dan pemformatan yang disiapkan melalui OCR dengan analisis model bahasa. Tanyakan kondisi, bagian teks, atau hubungan tertentu yang diperlukan tugas. Perbandingan dapat mengidentifikasi dokumen sumber dan meminta pernyataan bersama, pertentangan, serta detail yang belum terselesaikan, dengan lokasi sumber tetap berada di samping setiap temuan.
Panduan visual pembuatnya secara eksplisit mencakup Medium 3.1. Pertanyaan visual langsung dapat menyediakan bagan, gambar dokumen, atau tangkapan layar yang terbaca dan menanyakan bukti yang terlihat apa yang mendukung kesimpulan. Pertahankan sumbu, satuan, label, dan konteks di sekitar bidang yang dipotong. Jika beberapa gambar diberikan, identifikasi urutan dan perannya alih-alih membiarkan model menyimpulkan mana yang asli, revisi, atau referensi.
Misalnya, pasangkan persyaratan proses tertulis dengan tangkapan layar dan minta tabel kecocokan yang terlihat, perbedaan, serta pertanyaan yang memerlukan informasi tambahan. Tugas lain dapat menyediakan dua versi dokumen dan meminta bagian teks yang direvisi dengan mempertahankan kondisi bersama sambil menyelesaikan ketidakkonsistenan tertentu. Ini adalah usulan penerapan kemampuan visual, dokumen, dan penyuntingan yang terdokumentasi, dengan hasil yang diwajibkan ditentukan terlebih dahulu.
Menyiapkan artefak akhir
Berikan peran yang jelas kepada asisten, materi sumber yang harus digunakan, dan bentuk jawaban. Pisahkan aturan respons yang tetap berlaku dari dokumen yang diperiksa, serta nyatakan bahasa akhir dan istilahnya. Respons yang berguna dapat memisahkan fakta hasil ekstraksi, sumbernya, dan penafsiran, sehingga lebih mudah diperiksa daripada satu ringkasan yang digabungkan.
Hasil yang terdokumentasi tetap berupa teks. Alat eksternal, perubahan berkas, dan pemrosesan dokumen lebih lanjut merupakan bagian dari aplikasi yang terhubung dengan percakapan. Pertahankan edisi Medium 3.1 bernama dan konteks 128k-nya, lalu minta penjelasan, rekaman terstruktur, atau revisi terarah yang benar-benar dibutuhkan langkah berikutnya.
Ailoot Ultra · Batch POST /v1/batches mistralai/mistral-medium-3.1:batch
mistralai/mistral-medium-3.1:batch
mistralai/mistral-medium-3.1:batchMulai
Mistral Medium 3.1 adalah model teks dan gambar untuk jawaban percakapan, pertanyaan dokumen, dan ekstraksi terstruktur. Konteks 128k dari pembuatnya serta fitur pemanggilan fungsi, predicted-output, dan prefiks yang tercantum mendukung penjelasan berbasis sumber dan alur penyuntingan terarah.
- 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-medium-3.1: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-medium-3.1:batch, mistralai/mistral-medium-3.1 | 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.0004 / 1K token Keluaran · Token keluaran $0.002 / 1K token Masukan · Pembacaan cache $0.00004 / 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.0004 / 1K token Keluaran · Token keluaran $0.002 / 1K token Masukan · Pembacaan cache $0.00004 / 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-medium-3.1: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-medium-3.1:batch', 'mistralai/mistral-medium-3.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-medium-3.1: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-medium-3.1:batch
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · Mistral: Mistral Medium 3.1 (batch)
- Input dan hasil apa yang tersedia?
POST /v1/batches·mistralai/mistral-medium-3.1:batch:text→text- Kolom apa yang digunakan permintaan?
POST /v1/batches·mistralai/mistral-medium-3.1:batch:endpoint,model,requests,completion_window,provider- Batasan apa yang berlaku?
POST /v1/batches·mistralai/mistral-medium-3.1:batch:requests.min_items:1