Cara Menggunakan API Mistral Medium 3.5

Ashley Innocent

Ashley Innocent

30 April 2026

Cara Menggunakan API Mistral Medium 3.5

Mistral merilis Medium 3.5 pada 29 April 2026. ID model API adalah mistral-medium-3.5, titik akhir (endpoint) adalah https://api.mistral.ai/v1/chat/completions, dan bentuk permintaan cukup dekat dengan standar OpenAI sehingga menukar URL dasar dari penyedia lain hanya membutuhkan satu baris kode. Angka-angka utamanya adalah jendela konteks 256K, visi asli (native vision), pemanggilan fungsi (function calling), dukungan 24 bahasa, dan 77,6% pada SWE-Bench Verified; angka-angka yang menempatkannya dalam percakapan yang sama dengan GPT-5.5 dan DeepSeek V4 untuk jenis pekerjaan agen (agentic) yang padat kode yang sedang dikerjakan oleh sebagian besar tim saat ini.

Panduan ini mencakup autentikasi, setiap parameter penting, contoh Python dan Node, masukan visi, pemanggilan alat (tool calling), mode JSON, streaming, penanganan kesalahan, dan alur kerja Apidog yang menjaga biaya tetap terlihat saat Anda mengulang prompt. Untuk panduan model yang sebanding, lihat cara menggunakan API DeepSeek V4 dan cara menggunakan API GPT-5.5.

tombol

TL;DR

Apa yang Berubah di Medium 3.5

Medium 3 dikirimkan lebih awal tahun ini sebagai model teks-saja dengan konteks 128K. Medium 3.5 adalah sesuatu yang berbeda. Ini adalah model gabungan andalan pertama Mistral: mengikuti instruksi, penalaran, dan pengkodean hidup dalam satu set bobot, sehingga Anda tidak lagi memilih antara checkpoint obrolan dan checkpoint penalaran. Visi adalah bawaan (native), konteks berlipat ganda menjadi 256K, dan pemanggilan fungsi (function calling) terhubung di tingkat model alih-alih dipasang melalui antarmuka API terpisah.

Tiga angka menjadi dasar peningkatan ini. SWE-Bench Verified pada 77,6% menempatkannya dalam kategori yang sama dengan model-model frontier teratas untuk penambalan kode. τ³-Telecom pada 91,4 menempatkannya di depan sebagian besar model generalis dalam dialog agen multi-giliran. Konteks 256K mencakup seluruh basis kode berukuran sedang atau transkrip beberapa jam tanpa pemotongan. Semua ini bukan kesalahan pembulatan pemasaran; mereka secara langsung menunjukkan apakah model dapat menyelesaikan tugas Anda tanpa perlu percobaan kedua.

Pergeseran harga adalah bagian yang perlu dianggarkan. Medium 3 berada pada $0,40 per juta token masukan dan $2,00 per juta token keluaran. Medium 3.5 melonjak menjadi $1,5 untuk masukan dan $7,5 untuk keluaran, kira-kira 4x lipat. Itu adalah biaya pendekatan checkpoint gabungan (merged-checkpoint approach) ditambah visi ditambah konteks yang lebih panjang. Perlakukan Medium 3 yang lebih lama sebagai opsi throughput massal dan Medium 3.5 sebagai tingkatan “Saya membutuhkan jawaban ini segera”.

Prasyarat

Sebelum panggilan pertama, siapkan empat hal.

Ekspor kunci sekali:

export MISTRAL_API_KEY="..."

Endpoint dan autentikasi

La Plateforme Mistral mengekspos semuanya melalui satu URL dasar.

POST https://api.mistral.ai/v1/chat/completions

Autentikasi adalah token pembawa (bearer token) pada header Authorization. Permintaan minimum yang dapat dijalankan terlihat seperti ini:

curl https://api.mistral.ai/v1/chat/completions \
  -H "Authorization: Bearer $MISTRAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mistral-medium-3.5",
    "messages": [
      {"role": "user", "content": "Explain dense merged checkpoints in two sentences."}
    ]
  }'

Respons yang berhasil mengembalikan badan JSON dengan array choices, blok usage yang dipecah menjadi prompt_tokens, completion_tokens, dan total_tokens, serta id yang dapat Anda gunakan untuk pelacakan. Kegagalan mengembalikan amplop error dengan code dan message. Bentuknya sangat cocok dengan amplop OpenAI sehingga parser kesalahan apa pun yang sudah Anda miliki berfungsi tanpa modifikasi.

Parameter permintaan

Setiap bidang memetakan ke biaya atau perilaku. Berikut adalah peta untuk mistral-medium-3.5.

Parameter Tipe Nilai Catatan
model string mistral-medium-3.5 Wajib.
messages array pasangan role/content Wajib. Skema sama dengan OpenAI.
temperature float 0 sampai 1.5 Mistral merekomendasikan 0,7 untuk penggunaan umum, 0,3 untuk kode.
top_p float 0 sampai 1 Default 1,0.
max_tokens int 1 sampai batas konteks Membatasi panjang keluaran.
stream bool true atau false Mengaktifkan streaming SSE.
tools array spesifikasi alat OpenAI Pemanggilan fungsi bawaan (native function calling).
tool_choice string atau objek auto, any, none, atau alat spesifik Mengontrol penggunaan alat. Catatan: any alih-alih required.
response_format objek {"type": "json_object"} atau skema JSON Keluaran terstruktur.
random_seed int int apa pun Untuk reproduktibilitas. Catatan: bukan seed.
safe_prompt bool true atau false Menambahkan pembukaan keamanan Mistral (Mistral’s safety preamble).
presence_penalty float -2 sampai 2 Memberikan penalti pada topik yang diulang.
frequency_penalty float -2 sampai 2 Memberikan penalti pada token yang diulang.

Dua perbedaan kecil yang sering membingungkan orang saat bermigrasi dari OpenAI: tool_choice="any" berarti “memaksa panggilan alat” (OpenAI menggunakan required), dan parameter seed adalah random_seed (OpenAI menggunakan seed). Selebihnya selaras.

Klien Python

Mistral menyediakan SDK Python resmi yang sesuai dengan API secara satu-ke-satu.

import os
from mistralai import Mistral

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

response = client.chat.complete(
    model="mistral-medium-3.5",
    messages=[
        {"role": "system", "content": "Reply in code only."},
        {"role": "user", "content": "Write a Rust function that debounces events."},
    ],
    temperature=0.3,
    max_tokens=2048,
)

print("Konten:", response.choices[0].message.content)
print("Total token:", response.usage.total_tokens)
print("Estimasi biaya (USD):",
      response.usage.prompt_tokens * 1.5 / 1_000_000 +
      response.usage.completion_tokens * 7.5 / 1_000_000)

Jika Anda sudah memiliki basis kode berbentuk OpenAI, SDK Python OpenAI dapat digunakan pada endpoint Mistral dengan dua perubahan: URL dasar dan ID model.

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MISTRAL_API_KEY"],
    base_url="https://api.mistral.ai/v1",
)

response = client.chat.completions.create(
    model="mistral-medium-3.5",
    messages=[{"role": "user", "content": "Hello, Mistral."}],
)

Rute SDK OpenAI adalah jalan paling mudah bagi tim yang menjalankan kode agnostik penyedia; SDK mistralai asli adalah jalan yang mengekspos fitur-fitur khusus Mistral dengan rapi, jadi pilih berdasarkan apakah Anda berencana untuk banyak menggunakan visi dan keluaran terstruktur.

Klien Node

Pilihan dua jalur yang sama pada Node. SDK asli:

import { Mistral } from "@mistralai/mistralai";

const client = new Mistral({ apiKey: process.env.MISTRAL_API_KEY });

const response = await client.chat.complete({
  model: "mistral-medium-3.5",
  messages: [
    { role: "user", content: "Explain dense merged checkpoints in plain English." },
  ],
  temperature: 0.7,
});

console.log(response.choices[0].message.content);
console.log("Penggunaan:", response.usage);

Rute SDK OpenAI, untuk paritas dengan kode yang sudah ada:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.MISTRAL_API_KEY,
  baseURL: "https://api.mistral.ai/v1",
});

const response = await client.chat.completions.create({
  model: "mistral-medium-3.5",
  messages: [{ role: "user", content: "Hello, Mistral." }],
});

Respons streaming

Atur stream: true dan ulangi chunk SSE. Bentuknya sangat cocok dengan OpenAI, dan jejak penalaran kumulatif disisipkan ke dalam choices[].delta.content alih-alih dipisahkan ke dalam bidang samping.

stream = client.chat.stream(
    model="mistral-medium-3.5",
    messages=[{"role": "user", "content": "Stream a 300-word essay on merged checkpoints."}],
)

for chunk in stream:
    delta = chunk.data.choices[0].delta.content or ""
    print(delta, end="", flush=True)

Untuk keluaran terminal, kecepatan streaming Mistral lebih cepat daripada DeepSeek V4-Pro pada panjang prompt yang sama dan kira-kira setara dengan GPT-5.5, berdasarkan uji coba berdampingan melalui penampil respons Apidog.

Pemanggilan alat

Medium 3.5 dilengkapi dengan pemanggilan fungsi bawaan (native function calling). Fungsi yang didefinisikan dalam array tools menjadi dapat dipanggil, dan model memilih kapan untuk memanggilnya.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Return the current weather for a city.",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string"},
                "unit": {"type": "string", "enum": ["c", "f"]},
            },
            "required": ["city"],
        },
    },
}]

response = client.chat.complete(
    model="mistral-medium-3.5",
    messages=[{"role": "user", "content": "Weather in Lagos in Celsius?"}],
    tools=tools,
    tool_choice="auto",
)

tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)

Dari sana, jalankan fungsi secara lokal, tambahkan hasilnya sebagai pesan role: "tool", dan panggil API lagi untuk melanjutkan perulangan. Pola ini identik dengan loop penggunaan alat OpenAI. Kemampuan agen (agentic capability) terlihat pada skor τ³-Telecom; dalam praktiknya, itu berarti lebih sedikit langkah yang terbuang pada alur kerja multi-giliran di mana model harus memutuskan antara memanggil alat, bertanya kepada pengguna, dan menjawab secara langsung.

Mode JSON dan keluaran terstruktur

Untuk keluaran yang divalidasi skema, teruskan skema JSON di response_format.

schema = {
    "type": "json_schema",
    "json_schema": {
        "name": "release_note",
        "schema": {
            "type": "object",
            "properties": {
                "title": {"type": "string"},
                "date": {"type": "string"},
                "bullets": {"type": "array", "items": {"type": "string"}},
            },
            "required": ["title", "date", "bullets"],
            "additionalProperties": False,
        },
        "strict": True,
    },
}

response = client.chat.complete(
    model="mistral-medium-3.5",
    messages=[
        {"role": "system", "content": "Reply with a single JSON object matching the schema."},
        {"role": "user", "content": "Summarize today's Mistral Medium 3.5 release."},
    ],
    response_format=schema,
)

Mode ketat (strict mode) memberlakukan skema pada waktu dekode, jadi Anda tidak perlu menambahkan langkah parsing Pydantic atau Zod di klien; responsnya akan sesuai dengan skema atau panggilan akan gagal dengan kesalahan terstruktur. Untuk kasus gesekan rendah (lower-friction) di mana Anda hanya memerlukan JSON valid dalam bentuk apa pun, atur response_format={"type": "json_object"} dan validasi di sisi klien.

Masukan visi

Encoder visi Medium 3.5 dilatih dari awal untuk menangani ukuran gambar dan rasio aspek yang bervariasi; Anda tidak perlu mengubah ukuran apa pun sebelumnya. Teruskan konten gambar bersama teks dalam array messages.

response = client.chat.complete(
    model="mistral-medium-3.5",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What is in this image and what is it doing wrong?"},
            {"type": "image_url", "image_url": "https://example.com/diagram.png"},
        ],
    }],
)

Masukan gambar ditagih sebagai token masukan dengan tarif yang sama $1,5 per juta; jumlah token yang tepat per gambar bervariasi dengan resolusi dan dilaporkan dalam bidang usage.prompt_tokens. Untuk beban kerja gambar bervolume tinggi, catat biaya token per gambar lebih awal dan putuskan apakah akan mengompres, memotong, atau melewati bingkai sebelum melakukan penskalaan.

Buat koleksi di Apidog

Memutar ulang permintaan dari terminal menghabiskan kredit dan menyembunyikan perbedaan antar proses. Alur kerja yang bertahan dalam penggunaan nyata:

  1. Unduh Apidog dan buat proyek.
  2. Tambahkan lingkungan dengan {{MISTRAL_API_KEY}} yang disimpan sebagai variabel rahasia sehingga tidak pernah masuk ke ekspor bersama.
  3. Simpan permintaan POST ke {{BASE_URL}}/chat/completions dengan header Authorization: Bearer {{MISTRAL_API_KEY}}.
  4. Parameterisasi model, temperature, dan tool_choice sehingga Anda dapat melakukan A/B testing di berbagai varian tanpa menduplikasi permintaan.
  5. Gunakan penampil respons untuk memeriksa usage pada setiap proses. Tambahkan skrip pasca-respons kecil yang mengalikan prompt_tokens * 1.5 / 1_000_000 + completion_tokens * 7.5 / 1_000_000 sehingga biaya per panggilan muncul di samping setiap hasil.

Tim yang sudah menjalankan koleksi API DeepSeek V4 yang sesuai di Apidog dapat menduplikasinya, menukar URL dasar ke https://api.mistral.ai/v1, mengubah ID model menjadi mistral-medium-3.5, dan menjalankan prompt secara langsung di kedua penyedia dalam hitungan menit. Pola yang sama berlaku untuk membandingkan dengan GPT-5.5.

Penanganan kesalahan

Amplop kesalahan mengikuti konvensi OpenAI dengan cermat. Kode yang akan Anda temui pertama:

Kode Arti Perbaikan
400 Permintaan buruk Validasi skema JSON, terutama messages dan tools.
401 Kunci tidak valid Buat ulang di console.mistral.ai.
402 Pembayaran diperlukan Isi ulang akun atau tambahkan kartu.
403 Model tidak diizinkan Periksa cakupan proyek kunci dan ejaan ID model.
422 Parameter di luar jangkauan max_tokens melebihi konteks, atau tool_choice salah format.
429 Batas laju Mundur, lalu coba lagi dengan jitter eksponensial.
500 Kesalahan server Coba lagi sekali. Jika terulang, periksa halaman status.
503 Kelebihan beban Kembali ke Mistral Medium 3 atau tunggu 30 detik.

Bungkus panggilan dalam pembantu percobaan ulang (retry helper) yang menangani 429 dan 5xx dengan backoff eksponensial. Jangan mencoba lagi kesalahan 4xx secara otomatis; itu adalah bug logika, bukan kegagalan sementara. Penampil respons Apidog membuatnya mudah untuk menemukan payload tools yang salah format karena bidang yang bermasalah disorot dalam badan permintaan di samping kesalahan.

Pola kontrol biaya

Lonjakan harga 4x lipat dari Medium 3 ke Medium 3.5 menghukum routing yang malas. Lima pola menjaga tagihan tetap dapat diprediksi.

  1. Defaultkan ke Medium 3, eskalasikan ke Medium 3.5. Jalankan percobaan pertama yang murah di Medium 3 dan arahkan prompt sulit ke 3.5 hanya ketika percobaan murah mengembalikan kepercayaan diri rendah atau gagal dalam validator.
  2. Batasi max_tokens. Sebagian besar jawaban muat dalam 2.000 token keluaran. Jendela konteks 256K adalah untuk masukan massal, bukan keluaran massal; keluaran adalah sisi yang mahal dengan harga $7.5 per juta.
  3. Jaga prompt sistem tetap ringkas. Setiap token prompt sistem ditagih pada setiap panggilan; memangkas pembukaan 2K-token menjadi 500 token mengurangi tagihan masukan Anda sebesar 75% pada endpoint bervolume tinggi.
  4. Catat usage pada setiap panggilan. Kirim prompt_tokens, completion_tokens, dan estimasi USD per panggilan ke tumpukan observabilitas Anda. Peringatan pada lonjakan token keluaran yang tiba-tiba menangkap prompt yang menyimpang ke wilayah chain-of-thought.
  5. Gunakan visi secara selektif. Token gambar menumpuk dengan cepat. Potong ke wilayah yang relevan sebelum mengirim, dan turunkan skala ke resolusi terendah yang masih menjawab pertanyaan.

Membandingkan Medium 3.5 dengan tingkatan Mistral lainnya

Lineup Mistral per akhir April 2026:

Model Konteks Masukan $/Juta Keluaran $/Juta Visi Terbaik untuk
mistral-small 32K $0.10 $0.30 Tidak Klasifikasi bervolume tinggi, obrolan ringan
mistral-medium-3 128K $0.40 $2.00 Tidak Throughput massal, obrolan lebih panjang
mistral-medium-3.5 256K $1.5 $7.5 Ya Penalaran, kode, visi, agen
mistral-large 128K $2.00 $6.00 Terbatas Penalaran teks tingkat frontier

Medium 3.5 adalah satu-satunya tingkatan yang menggabungkan konteks panjang, visi, dan kemampuan penalaran gabungan. Tingkatan Large menawarkan kurva biaya yang berbeda (keluaran lebih murah, masukan lebih mahal) dan mengungguli 3.5 pada beberapa benchmark teks-saja; pilih berdasarkan beban kerja, bukan berdasarkan nama tingkatan.

Bermigrasi dari penyedia lain

Migrasi sebagian besar adalah perubahan URL dasar.

Dari OpenAI:

- base_url="https://api.openai.com/v1"
- model="gpt-5.5"
+ base_url="https://api.mistral.ai/v1"
+ model="mistral-medium-3.5"

Dari DeepSeek:

- base_url="https://api.deepseek.com/v1"
- model="deepseek-v4-pro"
+ base_url="https://api.mistral.ai/v1"
+ model="mistral-medium-3.5"

Dua hal yang perlu diperhatikan:

Jalankan perbedaan melalui rangkaian uji yang ada sebelum mengalihkan lalu lintas produksi. Lebih baik lagi, cerminkan lalu lintas ke Mistral dalam mode bayangan selama sehari, catat kedua respons, dan bandingkan di Apidog sebelum promosi.

Kasus penggunaan dunia nyata

Beberapa pola di mana Medium 3.5 sudah terbayar lunas:

FAQ

tombol

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.