Responses API vs. Chat Completions

Bandingkan format permintaan, streaming, alat, dan kompatibilitas penyedia sebelum memilih Responses API atau Chat Completions untuk aplikasi AI.

Responses API vs. Chat Completions

Responses API dan Chat Completions sama-sama mengirim prompt ke model bahasa, tetapi keduanya menyusun input, output, alat, dan streaming dengan cara yang berbeda. Pilihan di antara keduanya harus dimulai dari kontrak klien dan model—bukan dari anggapan bahwa endpoint yang lebih baru otomatis berfungsi untuk setiap penyedia.

Aturan keputusan paling singkat:

  • Gunakan Responses API untuk agen coding atau aplikasi yang sudah mengharapkan item Responses, event alat, dan siklus streaming Responses.
  • Gunakan Chat Completions untuk klien chat yang kompatibel secara luas dan untuk keluarga penyedia yang menyediakan model bergaya OpenAI melalui penerusan mentah Chat Completions.

Selalu verifikasi format API yang didukung model pilihan Anda di Model & Harga.

Perbandingan protokol

Pertanyaan Responses API Chat Completions
Bentuk input utama input dan item input bertipe Array messages
Model output Item output dan event bertipe Pilihan pesan asisten dan delta
Streaming Stream event Responses Stream chunk Chat Completions
Aktivitas alat Item panggilan alat dan output alat bertipe Panggilan alat yang melekat pada pesan asisten
Paling sesuai untuk Agen, alat coding, dan aplikasi native Responses Klien chat dan penyedia kompatibel OpenAI yang didukung secara luas
Portabilitas model Hanya model yang terverifikasi untuk Responses Hanya model yang terverifikasi untuk Chat Completions

Tabel ini menggambarkan kontrak di tingkat wire. Tabel ini tidak menyiratkan bahwa Modelflare mengonversi setiap fitur penyedia antara kedua format.

Kapan Responses API lebih sesuai

Pilih /v1/responses jika klien sudah memperlakukan satu eksekusi model sebagai rangkaian item bertipe, bukan satu pesan asisten. Pola ini umum pada agen coding yang perlu membedakan teks yang terlihat, ringkasan penalaran, argumen fungsi, input alat kustom, dan event lainnya.

Permintaan minimal terlihat seperti ini:

curl -sS https://modelflare.dev/v1/responses \
  -H "Authorization: Bearer $MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "input": "List the three checks to make before an API migration.",
    "stream": true
  }'

Streaming Responses harus divalidasi secara menyeluruh, dari ujung ke ujung. Klien yang memahami chunk Chat Completions tetapi tidak memahami event Responses dapat terhubung dengan sukses, namun tetap gagal menampilkan output yang berguna.

Kapan Chat Completions lebih aman

Pilih /v1/chat/completions jika aplikasi dibangun di sekitar pesan system, user, assistant, dan tool, atau jika keluarga penyedia yang dipilih mendokumentasikan endpoint Chat Completions yang kompatibel dengan OpenAI.

curl -sS https://modelflare.dev/v1/chat/completions \
  -H "Authorization: Bearer $MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_CHAT_MODEL",
    "messages": [
      {"role": "system", "content": "Answer concisely."},
      {"role": "user", "content": "What should an API health check verify?"}
    ],
    "stream": true
  }'

Untuk keluarga penyedia non-OpenAI, Modelflare dapat menyediakan penerusan mentah Chat Completions sehingga kolom permintaan privat, seperti kontrol penalaran atau pencarian khusus penyedia, sampai ke penyedia layanan tanpa perubahan. Perilaku ini sengaja dibuat lebih sempit daripada klaim kompatibilitas Responses penuh.

Jangan memilih hanya berdasarkan nama model

Ada tiga pemeriksaan terpisah yang wajib dilakukan:

  1. Kunci API dapat mengakses model. Akses bergantung pada kunci dan grup model yang tersedia.
  2. Model mendukung endpoint. Model yang muncul di /v1/models tidak otomatis valid untuk kedua format permintaan.
  3. Klien memahami stream. Event Responses dan chunk Chat Completions adalah kontrak klien yang berbeda.

Jika salah satu pemeriksaan ini gagal, mengganti path endpoint saja dapat mengubah error kompatibilitas yang jelas menjadi respons kosong atau respons yang hanya tampil sebagian.

Migrasi alat dan output terstruktur

Sebelum memindahkan integrasi yang sudah ada:

  • bandingkan skema definisi alat yang digunakan klien;
  • verifikasi cara ID panggilan alat dan output alat dikembalikan;
  • pertahankan nilai opsional yang eksplisit, alih-alih membuang 0 atau false;
  • periksa apakah penyedia memerlukan kolom privat yang harus diteruskan tanpa perubahan;
  • uji respons yang hanya berisi alat dan mungkin tidak memuat delta teks yang terlihat;
  • pastikan cara klien mendeteksi penyelesaian dan penggunaan.

Prompt yang sama menghasilkan teks yang mirip bukanlah uji protokol yang memadai. Uji yang sebenarnya harus mencakup fitur yang diandalkan aplikasi.

Alur pemilihan yang praktis

  1. Buka Model & Harga, lalu pilih model dan grup.
  2. Pastikan format API yang didukung.
  3. Ikuti panduan khusus klien di Dokumentasi Modelflare jika tersedia.
  4. Kirim satu permintaan non-streaming.
  5. Kirim satu permintaan streaming.
  6. Uji alat atau output terstruktur.
  7. Tinjau permintaan tersebut di log penggunaan untuk melihat status, waktu, penggunaan token, dan biaya.

Responses API bukan pengganti universal untuk Chat Completions, dan Chat Completions juga tidak usang. Format yang tepat adalah format yang didukung bersama oleh klien, model yang dipilih, dan kontrak penyedia layanan.

Setelah memilih format, gunakan Panduan streaming API AI untuk mengimplementasikan parser event, metrik waktu, pembatalan, dan kebijakan batas waktu.