Ikhtisar
Agent-First API LemonData memperkaya respons kesalahan dengan petunjuk terstruktur yang dapat diurai dan ditindaklanjuti langsung oleh agen AI — tanpa pencarian web, tanpa mencari dokumentasi, tanpa tebak-tebakan. Setiap respons kesalahan menyertakan field opsional sepertidid_you_mean, suggestions, hint, retryable, dan retry_after di dalam objek error standar. Field-field ini kompatibel ke belakang — klien yang tidak menggunakannya tidak akan melihat perbedaan.
Bidang Petunjuk Kesalahan
Semua field petunjuk adalah ekstensi opsional di dalam objekerror:
| Field | Type | Description |
|---|---|---|
did_you_mean | string | Nama model yang paling mirip |
suggestions | array | Model yang direkomendasikan beserta metadata |
alternatives | array | Model alternatif yang saat ini tersedia |
hint | string | Panduan langkah selanjutnya yang dapat dibaca manusia/agen |
retryable | boolean | Apakah mengulang permintaan yang sama mungkin berhasil |
retry_after | number | Detik yang harus ditunggu sebelum mengulang |
balance_usd | number | Saldo akun saat ini dalam USD |
estimated_cost_usd | number | Estimasi biaya dari permintaan yang gagal |
Contoh Kode Kesalahan
model_not_found (400)
Ketika nama model tidak cocok dengan model aktif manapun:did_you_mean menggunakan:
- Pemetaan alias statis (dari data kesalahan produksi)
- Pencocokan string ternormalisasi (menghapus tanda hubung, tidak sensitif huruf)
- Pencocokan jarak edit (ambang ≤ 3)
did_you_mean, suggestions, dan hint, lalu coba ulang dengan model publik yang didukung.
insufficient_balance (402)
Saat saldo akun terlalu rendah untuk estimasi biaya:suggestions berisi model yang lebih murah daripada estimasi biaya yang dapat dipilih oleh agen.
all_channels_failed (503)
Ketika semua saluran hulu untuk sebuah model tidak tersedia:retryable bernilai false ketika alasannya adalah no_channels (tidak ada saluran yang dikonfigurasi untuk model ini). Nilainya true hanya untuk kegagalan sementara seperti trip circuit breaker atau kehabisan kuota.rate_limit_exceeded (429)
retry_after dihitung dari waktu reset jendela batas laju yang sebenarnya.
Endpoint yang kompatibel dengan OpenAI menggunakan tipe kesalahan publik stabil LemonData seperti
rate_limit_exceeded, upstream_error, dan all_channels_failed. Endpoint yang kompatibel dengan Anthropic dan Gemini menggunakan bentuk respons asli mereka sendiri.context_length_exceeded (400)
Ketika input melebihi jendela konteks model (kesalahan hulu, diperkaya dengan petunjuk):Header Endpoint Native
Saat Anda memanggil/v1/chat/completions dengan model yang memiliki endpoint native (Anthropic atau Gemini), respons sukses menyertakan header optimisasi:
| Penyedia Model | Endpoint yang Disarankan | Manfaat |
|---|---|---|
| Anthropic (Claude) | /v1/messages | Tanpa konversi format, pemikiran diperpanjang, caching prompt |
| Google (Gemini) | /v1beta/gemini | Tanpa konversi format, grounding, pengaturan keamanan |
| OpenAI | — | Chat completions sudah merupakan format native |
Peningkatan /v1/models
/v1/models sekarang membawa metadata rekomendasi non-chat yang dapat digunakan agen sebelum mereka memanggil endpoint image, video, music, 3D, TTS, STT, embedding, rerank, atau translation.
| Field | Values | Description |
|---|---|---|
category | chat, image, video, audio, tts, stt, 3d, embedding, rerank | Jenis model |
pricing_unit | per_token, per_image, per_second, per_request | Cara model ditagihkan |
cache_pricing | object or null | Hanya dikembalikan saat model punya harga prompt cache upstream khusus model. Diskon semantic cache platform saja tidak lagi muncul sendiri di list. |
agent_preferences.<scene> | object | Snapshot rekomendasi non-chat yang hanya dikembalikan pada GET /v1/models?recommended_for=<scene> |
recommended_for ada, agent_preferences diturunkan dari snapshot tingkat keberhasilan 24 jam yang di-cache:
- Jendela: 24 jam
- Snapshot cache: stale-while-revalidate
status = "ready"berarti model memiliki sampel terbaru yang cukup untuk berpartisipasi dalam perankinganstatus = "insufficient_samples"berarti model tetap terlihat tetapi tidak diperingkat di atas model yang memiliki skor
Penyaringan Kategori
Penemuan Rekomendasi
Untuk alur kerja non-chat, agen harus mengambil daftar singkat rekomendasi saat ini terlebih dahulu:recommended_for yang valid adalah:
imagevideomusic3dttssttembeddingreranktranslation
category dan recommended_for keduanya ada, keduanya harus cocok secara tepat.
Alur agen yang direkomendasikan:
GET /v1/models?recommended_for=<scene>- Pilih model pertama dengan
agent_preferences.<scene>.status == "ready" - Panggil endpoint secara eksplisit dengan
model=<selected> - Untuk kesalahan sementara saja, coba ulang dengan model
readyberikutnya
llms.txt
Ringkasan API yang dapat dibaca mesin tersedia di:- Template panggilan pertama dengan contoh yang bekerja
- Nama model umum (dihasilkan secara dinamis dari data penggunaan)
- Semua 12 endpoint API
- Parameter filter untuk penemuan model
- Panduan penanganan kesalahan
llms.txt sebelum panggilan API pertama mereka biasanya dapat berhasil pada percobaan pertama.
Penggunaan dalam Kode Agen
Python (OpenAI SDK)
JavaScript (OpenAI SDK)
Prinsip Desain
Gagal cepat, berikan informasi
Kesalahan dikembalikan segera dengan semua data yang dibutuhkan agen untuk mengoreksi diri.
Tanpa pengalihan otomatis
API tidak pernah diam-diam menggantikan model dengan model lain. Agen yang memutuskan.
Saran berbasis data
Semua rekomendasi berasal dari data produksi, bukan daftar yang dikodekan statis.
Kompatibel ke belakang
Semua field petunjuk bersifat opsional. Klien yang ada tidak melihat perbedaan.