Pertanyaan umum
Pemecahan masalah
Selesaikan masalah autentikasi, model, streaming, tugas, dan batas laju dengan daftar periksa berbasis gejala.
Mulai dari gejala, lalu ikuti perbaikannya. Sebagian besar kegagalan berasal dari base URL, kunci, ID model, atau saldo.
Tabel berbasis gejala
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
401 UNAUTHORIZED | Kunci hilang, salah, dicabut, atau tidak dikirim | Kirim Authorization: Bearer $FELO_API_KEY; buat kunci baru jika dicabut |
402 INSUFFICIENT_CREDITS | Saldo tidak menutupi panggilan | Isi ulang di Console Billing |
| 404 pada setiap permintaan | Base URL menyertakan path yang sudah ditambahkan endpoint | Gunakan https://openapi.felo.ai/api/v1 untuk klien OpenAI dan https://openapi.felo.ai/api untuk klien Anthropic |
| 404 pada satu model | ID model tidak publik, atau endpoint tidak menyediakannya | Periksa ID model di halaman model dan dokumentasi endpoint |
Error 400 model atau max_tokens | Field wajib hilang, atau model tidak menerima bentuk permintaan tersebut | Tambahkan max_tokens untuk Messages; hapus field yang tidak didukung |
| 429 | Batas laju, atau batas penyedia upstream | Baca Retry-After; lihat Error, Batas, dan Percobaan Ulang |
| 5xx | Kegagalan upstream atau layanan | Coba ulang dengan backoff; sertakan request_id jika berlanjut |
| Stream terhubung tetapi tidak mengirim apa pun | Proksi menyangga respons, atau parser event mengharapkan format yang salah | Baca stream secara inkremental; nonaktifkan penyanggaan respons di proksi Anda |
| Tugas tidak pernah selesai | Endpoint polling salah, atau status terminal tidak ditangani | Polling endpoint status milik tugas itu sendiri dan berhenti pada nilai terminal |
| Panggilan alat diabaikan | Model tidak mengiklankan kemampuan tersebut | Periksa supported_parameters di katalog |
| Data API mengembalikan 404 | Prefiks /v1/beta ditambahkan dua kali | Gunakan path persis seperti yang tertulis di referensi |
Autentikasi
Kunci yang dicabut mengembalikan pesan yang menyebutkan prefiks kunci:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "API Key has been revoked (keyPrefix=...)"
}Daftar periksa:
- Header adalah
Authorization: Bearer <key>untuk Model API dan Felo APIs. - Data API juga menerima
X-API-Key: <key>. - Kunci tidak dibungkus tanda kutip, dan tidak ada baris baru di akhir dari variabel lingkungan yang disalin.
- Lingkungan yang di-deploy benar-benar memiliki variabel yang ditetapkan; kunci yang berfungsi secara lokal mungkin hilang di produksi.
- Kunci tidak dihapus atau dirotasi. Kunci yang dihapus atau dirotasi tidak dapat ditampilkan lagi; buat kunci baru.
Lihat Autentikasi untuk pembuatan kunci dan batasnya.
Jebakan base URL
| Klien | Base URL yang benar |
|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 |
| Anthropic SDK | https://openapi.felo.ai/api |
| Endpoint model mentah | https://openapi.felo.ai/api/v1/chat/completions, /responses, atau /messages |
| Data API | https://openapi.felo.ai/v1/beta |
API /v2 Felo | https://openapi.felo.ai/v2 |
Dua error umum:
- Menambahkan
/chat/completionske base URL yang sudah diperluas SDK. - Menyetel base URL Anthropic ke
https://openapi.felo.ai/api/v1. SDK menambahkan/v1/messages, sehingga permintaan menjadi/api/v1/v1/messages.
Masalah ID model
ID model adalah ID publik dari katalog, bukan nama internal penyedia upstream atau nama tampilan.
- Cari ID di halaman model atau di
GET /api/v1/models. - Konfirmasi model mendukung protokol yang Anda panggil (
supported_protocols). - Jika Anda menyematkan kanal, konfirmasi kanal tersebut dipublikasikan dan dapat dijalankan untuk model itu. Kanal yang tidak tersedia bukan fallback.
Lihat Kanal dan Routing Penyedia.
Masalah streaming
- Setel
stream: truedi isi permintaan, bukan sebagai parameter kueri. - Baca isi respons sebagai stream. Menunggu respons lengkap menghilangkan manfaat streaming.
- Beberapa proksi dan platform serverless menyangga respons. Nonaktifkan penyanggaan untuk rute yang memproksikan permintaan.
- Chat Completions menstream
choices[0].delta, bukanchoices[0].message. Konten akhir tiba dalam banyak chunk. - Stream dapat berakhir tanpa event terminal yang bersih jika koneksi terputus. Perlakukan koneksi yang terputus sebagai respons tidak lengkap.
Masalah tugas asinkron
- Polling endpoint status yang termasuk dalam keluarga tugas tersebut. Alur kerja Felo menggunakan
GET /v2/tasks/{task_id}/status; tugas video dan gambar model menggunakan endpoint generasi masing-masing. - Berhenti pada setiap status terminal, termasuk kegagalan dan kedaluwarsa, bukan hanya sukses.
- Callback video dan gambar saat ini diabaikan. Jangan menunggu webhook.
- URL hasil dapat berumur pendek. Minta URL baru dari endpoint status jika unduhan kedaluwarsa.
- Periksa tugas sebelum mengirim ulang. Mengirim ulang tugas yang sedang berjalan membuat duplikat, dan keduanya ditagih.
Lihat Tugas Asinkron.
Masalah Data API
- Pertahankan path metode persis dari referensi Data API.
- Isi permintaan bersifat spesifik per penyedia. Field yang berfungsi untuk satu penyedia belum tentu berfungsi untuk penyedia lain.
- Error penyedia dapat muncul di dalam respons 4xx dengan pesan spesifik penyedia. Catat
request_iddan isi respons.
Pengingat keamanan
- Jangan pernah menaruh kunci API di kode browser, bundel aplikasi seluler, atau repositori publik. Simpan di server dan proksikan permintaan.
- Jangan mencatat kunci lengkap. Catat prefiks jika Anda perlu mengidentifikasinya.
- Segera rotasi kunci jika mungkin telah bocor.
Sebelum menghubungi dukungan
Kumpulkan:
- Endpoint dan metode HTTP.
- Status HTTP,
code, danrequest_id. - ID model atau ID tugas.
- Stempel waktu dengan zona waktu.
- Isi permintaan minimal dengan rahasia dihapus.
Kirim ke dukungan dengan email akun. Jangan sertakan kunci API lengkap.