dokumentasi
Bantuan

Ralat dan had

Markdown

Kod respons, maksudnya dan tindakan yang perlu diambil. Semua ralat dalam JSON dan disertakan Request ID.

Panduan lengkap

Format ralat

Ralat diterima dalam format API yang anda panggil: objek error untuk OpenAI, {"type": "error", "error": {...}} untuk Anthropic dan error dengan medan status dan details untuk Gemini. Oleh itu, SDK mengenalinya sebagai ralat API biasa.

  • error.code dan error.reason — kelas ralat daripada jadual di bawah; kedua-duanya sama. error.type — nilai standard bagi format (contohnya, invalid_request_error atau server_error).
  • error.request_id (dalam Anthropic — request_id pada peringkat teratas), pengepala X-Request-ID dan penghujung teks mesej — pengecam permintaan.
  • Dalam Gemini, kelas terdapat dalam error.details: ErrorInfo.reason — kod yang sama dalam huruf besar (contohnya, MODEL_OVERLOADED), domain — ailoot.ai; pengecam permintaan terdapat dalam RequestInfo.requestId.
  • Dalam format Gemini, ralat 5xx yang tidak boleh dicuba semula secara automatik dan result_pending_check diterima dengan status 409 dan status ABORTED: dengan cara ini, Gemini SDK dan CLI tidak mengulanginya sendiri. Kelas ralat terdapat dalam ErrorInfo.reason (contohnya, MODEL_TIMEOUT atau RESULT_PENDING_CHECK).
  • Respons berformat OpenAI turut mengandungi medan peringkat teratas code dan message — untuk klien lama.
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Kod ralat

HTTPKelas (reason)Perkara yang berlakuTindakan
400invalid_requestPermintaan tidak sah: badan atau parameter tidak betul; model tidak menyokong medan, lampiran atau alat dalam permintaan; kunci dihantar dalam alamat Betulkan permintaan berdasarkan mesej ralat: buang medan, lampiran atau alat yang tidak disokong; hantar kunci dalam pengepala. Penolakan kerana medan, lampiran atau alat yang tidak disokong berlaku sebelum rizab — tiada caj dikenakan
400context_length_exceededPermintaan melebihi konteks modelPendekkan sejarah atau gunakan model dengan konteks lebih besar
400content_policy_violationPermintaan ditolak oleh peraturan modelUbah cara permintaan ditulis
401invalid_api_keyKunci tiada atau tidak sahPastikan kunci dihantar sepenuhnya
401api_key_disabledKunci dinyahaktifkanAktifkan kunci atau cipta kunci baharu
402insufficient_balance, insufficient_quotaBaki tersedia tidak mencukupi walaupun untuk rizab minimum (insufficient_quota — keadaan yang sama dalam bentuk yang biasa digunakan oleh OpenAI SDK)Tambah nilai baki atau kurangkan max_tokens
402api_key_quota_exhaustedJumlah had perbelanjaan kunci telah habis digunakanNaikkan had kunci dalam panel pengguna
402payment_disputedAkaun mempunyai hutang akibat pembayaran yang dipertikaikanPermintaan baharu digantung sehingga hutang dilangsaikan — hubungi sokongan
403api_key_expiredTempoh sah kunci telah tamatCipta kunci baharu
403account_inactiveAkaun anda dinyahaktifkanHubungi sokongan
403permission_deniedKunci tidak dibenarkan membuat permintaan ini (contohnya, berdasarkan IP)Semak sekatan kunci
404model_not_foundModel tersebut tidak wujudSemak ID berdasarkan /v1/models
404unsupported_endpointModel tidak berfungsi dalam format iniPilih format atau model lain
404not_foundLaluan atau objek tersebut tidak wujud (contohnya, tugasan)Semak alamat dan pengecam
409duplicate_requestOperasi dengan kunci idempotensi yang sama telah diterima dan mungkin telah selesaiSemak hasil operasi pertama, jangan hantar operasi baharu
409not_ready, video_not_readyVideo atau tugasan lain belum siapSemak status kemudian
409, 503result_pending_checkKami sedang menyemak hasil permintaan. Bagi tugasan video, ini ialah bendera result_pending_check: true dalam respons status, manakala status tugasan kekal in_progressJangan hantar semula permintaan — status akan dipaparkan dalam sejarah (GET https://ailoot.ai/api/v1/usage). Jangan cipta semula tugasan video: semak kemudian melalui GET /v1/videos/{id}
410model_retiredModel telah ditamatkan perkhidmatannyaPilih versi baharu dalam GET /v1/models
413request_too_largeBadan permintaan terlalu besarKecilkan fail atau pendekkan sejarah
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullTerlalu banyak permintaan atau permintaan serentak daripada akaun andaTunggu (pengepala Retry-After, biasanya 10 saat) dan cuba semula
429usage_limit_reachedHad perbelanjaan kunci bagi tetingkap masa telah habis digunakan (5 jam, 1 hari atau 7 hari)Tunggu sehingga tetingkap diperbaharui atau naikkan had kunci
500internal_errorRalat AilootHubungi sokongan dengan Request ID
502invalid_model_response, empty_response, incomplete_responseModel mengembalikan respons yang tidak sah, kosong atau tidak lengkapCari Request ID dalam sejarah akaun. Jika terdapat hasil atau caj di situ, pengulangan akan menghasilkan permintaan berbayar kedua. Ketiadaan rekod tidak membuktikan bahawa permintaan belum dihantar atau belum dijalankan: jangan ulang penghantaran yang statusnya tidak diketahui; hubungi sokongan dengan Request ID.
502result_not_deliveredHasil tidak dihantar akibat kesilapan Ailoot; rizab atau caj telah dipulangkanPermintaan boleh dihantar semula
503model_overloadedModel terlebih beban buat sementara waktuJika X-Should-Retry: true — cuba semula selepas bilangan saat dalam Retry-After; jika false — semak Request ID dalam sejarah terlebih dahulu
503model_unavailableModel tidak tersedia buat sementara waktuPilih model lain. Jika X-Should-Retry: true — cuba semula selepas bilangan saat dalam Retry-After; jika false — semak Request ID dalam sejarah terlebih dahulu
503service_unavailableGangguan sementara pada pihak AilootJika X-Should-Retry: true — cuba semula selepas bilangan saat dalam Retry-After; jika false — semak Request ID dalam sejarah terlebih dahulu
503charge_not_confirmedRespons tidak diberikan: caj tidak dapat disahkan; rizab dikembalikan dan tiada wang dicajJika X-Should-Retry: true — cuba semula selepas bilangan saat dalam Retry-After; jika false — semak Request ID dalam sejarah terlebih dahulu
504model_timeoutModel tidak memberikan respons dalam tempoh yang ditetapkan; hasil masih mungkin munculJangan hantar semula permintaan sebelum menyemak Request ID dalam sejarah

Kod respons model dan semakan hasil (502, 503 dan 504) kini merujuk kepada model atau permintaan: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed dan result_pending_check. Jika kod anda membandingkan error.code dengan nilai lama, gantikannya dengan kod dalam jadual; padanan antara kod lama dan baharu boleh diperoleh daripada sokongan.

Bila hendak mencuba semula permintaan

  • Semak X-Should-Retry terlebih dahulu: jika nilainya false, result_pending_check atau model_timeout jangan cuba semula secara automatik. Cari Request ID dalam sejarah panel pengguna: hasil dan caj dipaparkan di situ.
  • Percubaan semula selamat apabila X-Should-Retry: true diterima: tunggu Retry-After saat. Untuk 5xx, kod sahaja tidak mencukupi: hasil mungkin sudah wujud. Semak sejarah dalam panel pengguna terlebih dahulu atau hubungi sokongan dengan Request ID. Ini amat penting untuk imej, video, muzik dan langkah ejen yang panjang.
  • Percubaan semula tidak membantu: 400, 401, 402, 403, 404 — betulkan permintaan, kunci atau baki terlebih dahulu.

Had

Kadar dan bilangan permintaan serentak dihadkan untuk seluruh akaun anda, bukan setiap kunci secara berasingan. Jika had dilampaui, respons 429 diterima rate_limit_exceeded dengan pengepala Retry-After: 10. Jika model itu sendiri terlebih beban — 503 model_overloaded dengan Retry-After: 30. Jika anda memerlukan beban yang lebih tinggi, hubungi sokongan.

Had perbelanjaan ditetapkan pada kunci: jumlah had — 402 api_key_quota_exhausted, tetingkap 5 jam, 1 hari dan 7 hari — 429 usage_limit_reached. Maklumat lanjut — Kunci dan alamat API.

Model NVIDIA: baris gilir

Senarai model boleh diminta walaupun baki sifar; penjanaan memerlukan baki untuk rizab. Model NVIDIA (Nemotron dan model lain) menggunakan baris gilir bersama: ketika beban tinggi, respons mungkin tiba lebih lewat atau ralat “model terlebih beban buat sementara waktu” diterima dengan pengepala Retry-After — cuba semula selepas tempoh yang dinyatakan. Harga terdapat dalam katalog, dan caj dikenakan seperti model lain.

Had saiz ditentukan oleh model: konteks (bilangan token yang boleh dihantar) dan panjang maksimum respons. Had ini dinyatakan dalam katalog.

Sejarah dan perbelanjaan

Sejarah dan perbelanjaan · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Log masuk dan sesi

Masih ada soalan? Hantar Request ID dan penerangannya — kami akan membantu menyiasatnya.Hubungi sokongan