Jawapan ringkas: jangan bertukar daripada Claude kepada GPT untuk setiap permintaan yang gagal. 401 bermaksud pengesahan mesti diperbetulkan, dan 404 berkaitan laluan bermaksud URL atau endpoint mesti dibetulkan. 429 atau 5xx sementara boleh dicuba semula dengan backoff; jika percubaan semula terhad masih gagal, model sandaran yang serasi boleh mengambil alih.
Terdapat satu pengecualian penting: respons 500 dengan error.code: invalid_request masih merupakan masalah permintaan. Mencuba semula—atau menghantar payload rosak yang sama kepada model lain—hanya menyembunyikan pepijat.
Artikel ini telah disahkan pada August 20, 2026 terhadap dokumentasi CometAPI tentang ralat, percubaan semula, URL asas, had kadar, dan model fallback. Ia hanya merangkumi klasifikasi ralat. Untuk reka bentuk laluan, kelayakan penyedia, dan failover berbilang lapisan, gunakan tutorial model fallback lengkap dan panduan fallback teknikal.
Mulakan dengan Keputusan Cuba Semula atau Gagal
| Status | Kebiasaannya bermaksud | Cuba semula? | Sandaran? | Tindakan pertama |
|---|---|---|---|---|
| 401 | Kunci hilang atau tidak sah | Tidak | Tidak | Betulkan bearer token |
| 404 | Laluan atau endpoint salah | Tidak | Tidak | Semak URL asas dan laluan |
| 429 | Had kadar atau tepu | Ya | Selepas percubaan terhad | Backoff dengan jitter |
| 500 + invalid_request | Permintaan terbentuk salah | Tidak | Tidak | Betulkan payload |
| 500/503/504/524 | Kegagalan platform atau penyedia sementara | Ya | Selepas percubaan terhad | Simpan ID permintaan |
Soalan praktikalnya bukan “Adakah Claude gagal?” tetapi “Bolehkah model lain berjaya tanpa mengubah bahagian permintaan yang tidak sah?” Ralat pengesahan dan laluan menjejaskan sambungan itu sendiri, jadi menukar model tidak boleh menyelesaikannya. Kegagalan kapasiti dan pelayan sementara mungkin khusus laluan, jadi sandaran boleh membantu.
Baca Ralat Sebelum Anda Menukar Model
Gunakan status HTTP bersama error.code dan error.message. Banyak kegagalan CometAPI menggunakan sampul seperti ini:
{
"error": {
"message": "human-readable detail and request id",
"type": "comet_api_error",
"param": "problematic_parameter_or_empty",
"code": "error_code_or_empty"
}
}
Jangan klasifikasikan hanya berdasarkan digit pertama kod status. 500 masih boleh membawa invalid_request, sementara laluan CometAPI yang salah mungkin memulangkan penghalaan semula atau HTML dan bukannya 404 JSON yang bersih.
401 Unauthorized: Hentikan dan Betulkan Pengesahan
401 biasanya bermaksud kunci API hilang, tersalah bentuk, tamat tempoh, atau dimuat dari persekitaran yang salah. Pengepala mestilah:
Authorization: Bearer $COMETAPI_KEY
Jangan cuba semula dan jangan tukar model. Kedua-dua laluan menggunakan pengesahan rosak yang sama. Semak sama ada perkhidmatan yang dikerahkan memuatkan rahsia lama, sama ada ruang kosong ditambah pada kunci, dan sama ada permintaan sampai ke persekitaran yang dimaksudkan. Putar atau muat semula kunci hanya melalui proses pengurusan rahsia anda.
404 Not Found: Betulkan URL Sebelum Sandaran
Untuk permintaan serasi OpenAI, gunakan URL asas ini dengan tepat:
https://api.cometapi.com/v1
/v1 yang hilang, segmen laluan berganda, atau endpoint yang salah boleh menghasilkan 404, penghalaan semula, respons HTML, atau ralat penghurai SDK. Nyahdayakan pengikutan penghalaan semula automatik semasa menyahpepijat dan sahkan laluan permintaan akhir terhadap rujukan API.
Jika respons dengan jelas menyatakan model tidak tersedia atau tidak ditemui, sahkan ID model dalam CometAPI Models API semasa. Jangan anggap setiap 404 sebagai ketidaktersediaan model. Tambah sandaran khusus model hanya selepas anda menangkap dan menguji isyarat tersebut.
429 Too Many Requests: Backoff Sebelum Anda Failover
429 boleh dicuba semula. Gunakan backoff eksponen dengan jitter, kurangkan kebersamaan lonjakan, dan ukur laluan mana yang tepu. Percubaan semula segera daripada setiap pekerja boleh menukar had kadar singkat menjadi lonjakan trafik yang lebih besar.
Selepas bilangan percubaan semula kecil yang terhad, sandaran boleh sesuai apabila model seterusnya menyokong input yang sama, kontrak output, dan keupayaan yang diperlukan. Sandaran tidak percuma: ia menambah kependaman dan boleh menukar kos atau tingkah laku, jadi rekodkan kekerapan ia digunakan.
Ralat 5xx: Semak Kod, Kemudian Cuba Semula
500, 503, 504, dan 524 lazimnya mewakili kegagalan platform, penyedia, atau kelas tamat masa. Simpan ID permintaan, endpoint, model, dan cap masa, kemudian cuba semula dengan backoff. Jika kegagalan sementara yang sama melepasi bajet percubaan semula, beralih ke laluan serasi seterusnya.
Tetapi periksa badan terlebih dahulu. Apabila 500 mengandungi error.code: invalid_request atau invalid_request_error, betulkan badan permintaan dan hanya cuba semula selepas ia berubah. Punca biasa termasuk medan messages yang hilang atau parameter khusus penyedia yang endpoint terpilih tidak menerima.
Gunakan Satu Polisi Kecil dalam Kod
Contoh Python ini mengekalkan percubaan semula dan sandaran dalam aplikasi. Ia menggunakan satu kunci CometAPI, URL asas serasi OpenAI, dan pemboleh ubah persekitaran untuk ID model Claude dan GPT semasa. Ia hanya mencuba semula kegagalan sementara, kemudian menukar model selepas bajet percubaan semula habis.
import os, random, time
from openai import APIError, OpenAI
client = OpenAI(
api_key=os.environ["COMETAPI_KEY"],
base_url="https://api.cometapi.com/v1",
max_retries=0,
)
MODELS = [os.environ["CLAUDE_MODEL"], os.environ["GPT_MODEL"]]
RETRYABLE = {429, 500, 503, 504, 524}
def complete(messages):
for model in MODELS:
for attempt in range(3):
try:
response = client.chat.completions.create(model=model, messages=messages)
return response.choices[0].message.content
except APIError as error:
status = getattr(error, "status_code", None)
code = getattr(error, "code", None)
if status in {401, 404} or code in {
"invalid_request", "invalid_request_error"
}:
raise
if status not in RETRYABLE:
raise
if attempt < 2:
time.sleep(2**attempt + random.random())
continue
break
raise RuntimeError("No configured route completed.")
print(complete([{"role": "user", "content": "Summarize this ticket."}]))
Percubaan semula automatik SDK dilumpuhkan supaya aplikasi memiliki bajet percubaan semula dan sandaran keseluruhan. Tanpa kawalan itu, percubaan semula SDK ditambah percubaan semula aplikasi boleh menggandakan panggilan dan melengahkan respons akhir.
Uji Polisi Tanpa Meneka
| Isyarat disimulasikan | Keputusan yang dijangka | Perkara yang tidak boleh berlaku |
|---|---|---|
| 401 | Naikkan serta-merta | Tiada cuba semula dan tiada panggilan GPT |
| 404 | Naikkan serta-merta | Tiada sandaran yang menyorokkan laluan buruk |
| 429 | Backoff, kemudian sandaran | Tiada ribut cuba semula serta-merta |
| 500 + invalid_request | Naikkan serta-merta | Tiada pendua permintaan rosak |
| 503/504/524 | Backoff, kemudian sandaran | Tiada rantaian laluan tanpa had |
Ini ialah ujian polisi, bukan dakwaan tentang kebolehpercayaan penyedia langsung. Dalam peringkat staging, suntik status dan badan ralat ke dalam pengelas, sahkan bilangan dan tertib panggilan, dan pastikan ralat akhir anda masih merangkumi konteks permintaan asal.
Bila Fallback Claude-ke-GPT Sebenarnya Selamat
Menukar keluarga model hanya selamat apabila kedua-dua laluan dapat memenuhi kontrak aplikasi yang sama. Normalkan medan permintaan dan respons, uji output berstruktur atau tingkah laku alat pada kedua-dua model, dan sahkan sebarang keupayaan imej, dokumen, konteks, atau penaakulan yang diperlukan sebelum membolehkan laluan.
Fallback juga harus menghormati kesan sampingan. Jika laluan pertama sudah mencetuskan alat, menulis data, atau menstrim respons separa, mengulangi permintaan penuh secara membuta tuli boleh menggandakan tindakan atau mengelirukan pengguna. Sambung semula dari titik semak atau kembalikan kegagalan terkawal sebaliknya.
Semakan Produksi yang Mengekalkan Percubaan Semula Terhad
- Tetapkan satu bajet kependaman keseluruhan. Kira setiap percubaan semula dan percubaan sandaran terhadap tarikh akhir yang sama.
- Hadkan percubaan semula. Gunakan backoff dengan jitter dan hentikan selepas had kecil yang dikonfigurasikan.
- Kawal kebersamaan. Kurangkan lonjakan sebelum permintaan meninggalkan aplikasi.
- Tambah pemutus litar. Hentikan sementara panggilan ke laluan yang berulang kali gagal.
- Log keputusan. Tangkap status, kod ralat, ID permintaan, model, percubaan, kelewatan, dan sebab sandaran tanpa menyimpan rahsia.
- Jejaki kadar sandaran. Peningkatan berterusan ialah isyarat operasi, bukan metrik kejayaan biasa.
Soalan Lazim
Perlukah 401 pernah mencetuskan model fallback?
Tidak. Betulkan atau muat semula kunci API. Model lain yang dipanggil melalui kelayakan tidak sah yang sama akan gagal atas sebab yang sama.
Perlukah 404 mencetuskan sandaran?
Tidak secara lalai. Mula-mula betulkan URL asas atau endpoint. Hanya isyarat model-tidak-tersedia yang disahkan secara berasingan patut dimasukkan ke dalam pengelas sandaran.
Berapa kali patut saya cuba semula 429?
Gunakan had kecil yang ditakrifkan aplikasi yang sesuai dengan bajet kependaman berorientasikan pengguna. Backoff dengan jitter dan kurangkan kebersamaan; jangan cuba semula serta-merta atau tanpa had.
Adakah semua ralat 5xx boleh dicuba semula?
Tidak. Respons 500, 503, 504, dan 524 sementara ialah calon percubaan semula, tetapi 500 dengan invalid_request harus gagal keras sehingga payload diperbetulkan.
Bolehkah Claude dan GPT menggunakan permintaan yang sama tanpa perubahan?
Hanya untuk medan bersama yang telah diuji oleh aplikasi anda. Parameter khusus penyedia, format alat, output berstruktur, dan input multimodal mungkin memerlukan penyesuai. Perubahan ID model semata-mata tidak membuktikan keserasian.
Di mana pelaksanaan fallback penuh?
Lihat How to Build Robust LLM Model Fallback Strategies untuk seni bina yang lebih luas, dan panduan model fallback CometAPI untuk butiran pelaksanaan.
Jadikan Pengelas Ralat sebagai Penjaga Pintu
Fallback automatik berguna apabila ia sempit dan boleh diperhatikan. Biarkan ralat pengesahan, laluan, dan permintaan-terbentuk-salah gagal dengan jelas. Cuba semula had kadar dan kegagalan pelayan sementara dengan backoff, kemudian beralih ke laluan serasi hanya selepas bajet percubaan semula habis. Polisi itu menukar sandaran menjadi kawalan kebolehpercayaan dan bukannya cara untuk menyembunyikan pepijat konfigurasi.
