Cara ia berfungsi
MarkdownPerkara yang berlaku kepada permintaan antara program anda dan model.
Panduan lengkap
Anda menghantar permintaan kepada Ailoot API seperti menghantarnya terus kepada OpenAI, Anthropic atau Google. Ailoot memeriksa kunci dan baki, menghantar permintaan kepada model, mengembalikan respons dalam format yang sama dan mengenakan caj berdasarkan penggunaan sebenar.
Satu kunci — tiga format
Format ditentukan oleh laluan permintaan, bukan model. Model Claude yang sama boleh dipanggil melalui OpenAI Chat, OpenAI Responses atau Anthropic Messages — respons diterima dalam format laluan yang anda panggil.
| Format | Laluan | Penggunanya |
|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, kebanyakan aplikasi sembang dan penyunting, n8n, LangChain |
| OpenAI Responses | /v1/responses | Codex CLI, OpenAI Agents SDK, versi baharu SDK |
| Anthropic Messages | /v1/messages | Claude Code, Anthropic SDK, Zed, Cline |
| Gemini | /v1beta/models/{model}:generateContent | Gemini CLI, Google GenAI SDK |
Bayaran: rizab dan satu caj
- Sebelum permintaan teks baharu dihantar, Ailoot merizabkan anggaran kos input dan respons lazim dengan mengambil kira had (
max_tokens) dan syarat model berkenaan. Jika rizab tidak dapat ditampung oleh baki tersedia atau had kunci, had yang dihantar hanya boleh dikurangkan bagi model dan kaedah yang benar-benar mematuhinya; had itu mesti sekurang-kurangnya 256 token dan juga memenuhi minimum respons yang ditetapkan. Bagi output imej, video dan audio, rizab kos penuh hasil dikekalkan. - Selepas respons — satu caj berdasarkan penggunaan sebenar. Rizab yang tidak digunakan dikembalikan ke baki serta-merta.
- Jika kos respons melebihi rizab, perbezaannya diambil daripada baki tersedia. Baki tidak pernah menjadi negatif.
- Jika wang tidak mencukupi walaupun untuk rizab minimum, permintaan tidak dihantar: anda menerima ralat 402 yang jelas dan tiada caj dikenakan.
- Ralat tanpa hasil tidak dicaj.
Butiran dan contoh pengiraan terdapat pada halaman Rizab dan caj.
Ralat dengan Request ID
Setiap respons diberikan pengecam permintaan: dalam pengepala X-Request-ID dan dalam mesej ralat. Ralat diterima sebagai JSON mengikut format yang anda panggil, maka SDK mengenalinya dengan betul. Jika berlaku masalah, hantar Request ID kepada sokongan — dengan itu, kami dapat mencari permintaan dalam seminit.
{
"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. …"
}Penstriman dan masa tamat
Respons penstriman (stream: true) menggunakan Server-Sent Events. Ailoot menghantar respons teks berbayar selepas kos dikira. Oleh itu, dengan stream: true format kekal sebagai penstriman (SSE), tetapi teks diterima sebagai satu blok apabila model selesai, bukan perkataan demi perkataan. Jika respons mengambil masa lebih kurang 15 saat atau lebih, aliran Chat Completions, Responses dan Messages terlebih dahulu menghantar baris status tambahan : ping (kira-kira setiap 10 saat), kemudian baris : ailoot-charged-usd … dengan amaun caj, diikuti data itu sendiri. SDK mengabaikan baris tersebut.
Dalam format Gemini, tiada baris status tambahan: respons :streamGenerateContent diterima sepenuhnya selepas pengiraan. Untuk model penaakulan, tetapkan masa tamat klien dengan margin yang mencukupi: beberapa minit adalah normal.
Pengepala respons
X-Request-ID diterima dalam setiap respons. Ailoot menambah pengepala lain pada respons teks berbayar:
| Pengepala | Kandungannya |
|---|---|
X-Request-ID | Pengecam permintaan — diperlukan oleh sokongan |
X-Ailoot-Charged-USD | Amaun yang dicaj untuk permintaan ini, dalam dolar |
X-Ailoot-Output-Tokens | Bilangan token respons yang dibayar |
X-Ailoot-Max-Tokens-Capped | Had respons selepas dikurangkan kerana baki tidak mencukupi untuk rizab penuh |
X-Ailoot-Notice-Code, X-Ailoot-Notice | Penjelasan jika respons berhenti pada had panjang |
Jika aliran sudah bermula dengan baris status tambahan, maklumat ini dihantar sebagai baris komen sebelum data, bukan sebagai pengepala.
Cache prompt
Jika model menyokong cache, awalan panjang yang dihantar semula (arahan sistem, dokumen) mungkin lebih murah. Harga pembacaan dan penulisan cache dipaparkan dalam kad model dalam katalog. Pembangun model menentukan sama ada cache digunakan; Ailoot tidak menjaminnya.