Lompat ke konten
Intura

Referensi

Error

Setiap exception yang dimunculkan intura_ai, kapan masing-masing terjadi, dan apa yang perlu dilakukan. predict pada model yang sudah dimuat tidak memunculkan satu pun.

Satu kelas dasar

Semua yang dimunculkan paket ini turunan dari InturaError, jadi Anda cukup menangkap satu kelas:

python
from intura_ai import Intura, InturaError

try:
    model = Intura().models.load("chat-commerce-intent-id")
except InturaError as exc:
    print(f"Could not get the model: {exc}")

Hanya panggilan API dan unduhan yang memunculkannya. Begitu model dimuat, predict tidak memunculkan satu pun dari daftar ini, karena ia berjalan di proses Anda.

Yang akan Anda temui

ExceptionKapan
MissingAPIKeyUnduhan dibutuhkan dan tidak ada kunci yang diatur
AuthenticationErrorKunci salah atau sudah dicabut
NotFoundModel yang bukan milik Anda, atau versi yang tidak ada
RateLimitedTerlalu banyak panggilan dalam waktu singkat. Dicoba ulang otomatis lebih dulu, dan retry_after menyebut kapan mencoba lagi
TransferErrorCloud Storage menolak atau memutus sebuah berkas. Tidak ada yang masuk cache, jadi aman dicoba ulang
APIConnectionError / APITimeoutErrorAPI tidak bisa dihubungi. Model yang sudah ada di cache tetap bisa dimuat

Setiap pesan menjelaskan apa yang perlu dilakukan, bukan hanya apa yang salah. MissingAPIKey, misalnya, menunjukkan kedua cara mengatur kunci dan menautkan ke halaman akun Anda.

Anggota keluarga lainnya

Setiap error yang dijawab API dengan kode status adalah APIError. Ia membawa status_code, message (teks yang ditulis layanan), dan request_id, string yang perlu Anda sebutkan saat meminta bantuan.

ExceptionStatusKapan
InvalidRequest400Permintaan tidak bisa dibaca
AuthenticationError401Tanpa kunci, kunci tidak dikenal, atau kunci yang dicabut
PermissionDenied403Kunci valid yang tidak boleh melakukan ini
NotFound404Model yang bukan milik Anda, versi yang tidak ada, atau base_url yang sudah berisi path
InvalidParameters422Ada nilai yang salah; pesannya menyebut field-nya
RateLimited429Terlalu banyak panggilan terlalu cepat
ServerError5xxLayanan gagal. Dicoba ulang otomatis sebelum sampai ke Anda

APIConnectionError (dan subkelasnya APITimeoutError) serta TransferError bukan APIError: layanan tidak pernah menjawab, atau berkasnya datang dari Cloud Storage, bukan dari Intura. TransferError juga punya status_code, yaitu milik bucket.

Percobaan ulang

Klien mencoba ulang error koneksi, timeout, dan respons 408, 429, 500, 502, 503, dan 504 untuk Anda, hingga max_retries kali (default 2), dengan jeda di antaranya (selama yang diminta Retry-After layanan, jika dikirim). Melihat RateLimited atau ServerError berarti percobaan ulang itu sudah habis. Permintaan yang ditolak karena isinya tidak pernah dicoba ulang. Lihat Konfigurasi untuk mengubah jumlahnya.

Error di luar keluarga ini

ExceptionKapan
FileNotFoundErrorLocalModel.load(path) diberi folder yang bukan model hasil unduhan
ValueErrorload diberi version= dan refresh=True sekaligus, atau slug atau versi yang tidak valid
TypeErrorpredict diberi selain str, atau predict_batch diberi satu str

Tetap jalan saat API tidak bisa dihubungi

Model yang sudah ada di cache bisa dimuat tanpa API. Jika meminta versi terbaru gagal, kembali ke versi terbaru yang sudah Anda punya:

python
from intura_ai import APIConnectionError, Intura

client = Intura()
try:
    model = client.models.load("chat-commerce-intent-id", refresh=True)
except APIConnectionError:
    model = client.models.load("chat-commerce-intent-id")   # the newest cached version