Cara menguji API yang kompatibel dengan OpenAI
Panduan production: Cara menguji API yang kompatibel dengan OpenAI. Panduan ini memuat artefak deterministik, batas kegagalan, kontrol rollout, dan sumber terverifikasi.
Panduan production: Cara menguji API yang kompatibel dengan OpenAI. Panduan ini memuat artefak deterministik, batas kegagalan, kontrol rollout, dan sumber terverifikasi.
Keputusan lebih dahulu
Cara menguji API yang kompatibel dengan OpenAI adalah kontrak production yang eksplisit, bukan perubahan terpisah. Tetapkan sukses, gagal terminal, dan rollback sebelum memindahkan traffic; artefak memisahkan bukti dari asumsi.
Mulai dari text, buktikan stream dengan kasus deterministik, dan jadikan errors sebagai release gate.
Artefak yang dapat digunakan ulang
Satu baris hanya lolos bila buktinya berasal dari request, jendela pengujian, atau versi konfigurasi yang sama.
| Checkpoint | Bukti yang disimpan | Syarat lulus |
|---|---|---|
text |
non-stream_response,finish_state,empty_and_Unicode_input |
Nilai dipertahankan dan dibandingkan tepat di batas wire. |
stream |
SSE_event_order,terminal_marker,usage_placement,disconnect |
Record menghubungkan request logis dan attempt tertentu. |
tools |
single_and_parallel_calls,argument_schema,call_correlation |
Record menghubungkan request logis dan attempt tertentu. |
schema |
valid_object,refusal,truncation,unsupported_keyword |
Batas eksplisit dan gagal tertutup saat terlampaui. |
usage |
input,output,cache_read/write,missing_categories |
Reserve, observasi, dan nilai final cocok di ledger persisten. |
errors |
401,403,429,499,5xx_outer_and_embedded_failures |
Owner, sumber, tanggal, dan batas tercatat. |
Contoh terhitung
Contoh memakai data sintetis dan deterministik. Ganti dengan nilai workload yang ditinjau; jangan masukkan secret atau data pelanggan.
corpus_version: 1
cases:
- id: text/non_stream_zero_values
request: { stream: false, temperature: 0 }
assert: [http_status, response_shape, explicit_zero_preserved]
- id: stream/disconnect
action: cancel_after_first_content_delta
assert: [client_cancelled, upstream_cancelled, terminal_state_recorded]
- id: tools/two_calls
assert: [stable_call_ids, arguments_validated, results_correlated]
- id: errors/rate_limit
assert: [status_429, retry_after_parsed, attempt_budget_respected]
Prosedur implementasi
- Bekukan request, response, konfigurasi, dan baseline observasi.
- Jalankan kasus positif deterministik dan simpan hasil lengkap.
- Jalankan kasus negatif atau batas pasangannya.
- Hubungkan semua attempt ke satu request ID logis dan catat waktu, status akhir, serta usage tanpa konten sensitif.
- Rollout hanya ke kohort terbatas dengan kondisi berhenti.
- Baca ulang state persisten dan perilaku publik; rollback bila invariant gagal.
Mode kegagalan
Kegagalan berikut membatalkan hasil meski HTTP luar tampak berhasil:
- Satu response teks dianggap bukti kompatibilitas lengkap.
- Nilai
0ataufalseeksplisit hilang saat serialisasi. - Satu field praktis dibaca sementara output bertipe, tool, penolakan, atau hasil parsial hilang.
- Retry tanpa attempt budget memperbesar beban.
Batas Modelflare
Modelflare memusatkan routing kompatibel OpenAI, key, group, usage, dan penanganan gagal, tetapi rute terkonfigurasi bukan bukti semua kemampuan provider. Verifikasi model dan channel lewat protokol native, pertahankan nol eksplisit, dan gunakan settlement persisten sebagai kebenaran billing.
Gunakan panduan induk untuk batas keputusan dan dokumentasi untuk konfigurasi client terkini.
Checklist sebelum publikasi
- Jawab pertanyaan utama sebelum latar belakang.
- Tetapkan owner untuk setiap field, state, metric, dan formula.
- Gunakan identifier sintetis saja.
- Pertahankan struktur, kode, batas, dan peringatan di semua bahasa.
- Periksa ulang kontrak, dukungan, dan harga pada T-1; pindahkan tanggal jika fakta berubah.
- Sebelum waktunya, keluarkan dari public API, rute, dan sitemap.
Sumber dan tanggal verifikasi
Sumber diperiksa pada 2026-08-07 dan tidak membuktikan rute yang belum diuji.