/ai/* на https://api.kazzle.app и принимают API-ключ kzl_ в заголовке Authorization. Инструкции по созданию ключа см. в разделе API keys.
Созданные приложения Kazzle должны использовать этот API. Создайте API-ключ Kazzle для приложения, сохраните его в хранилище, установите как KAZZLE_API_KEY на компоненте процесса и вызывайте https://api.kazzle.app/ai/* из серверного кода. Не просите у пользователей ключи провайдеров, если они явно не хотят использовать свой аккаунт.
Возможности
| Endpoint | Модальность | Стандартный ввод | Стандартный вывод |
|---|---|---|---|
POST /ai/chat/completions | Чат (текст, потоковая передача) | OpenAI-совместимый messages[] | OpenAI-совместимый choices[] или SSE поток |
POST /ai/responses | Responses API | OpenAI Responses-совместимый | OpenAI Responses-совместимый |
POST /ai/images/generations | Изображение | { model, prompt, size?, output_format? } | { images: [{ url? | b64?, mimeType }] } |
POST /ai/audio/speech | Синтез речи | { model, text, voice?, format? } | audio/* поток байтов |
POST /ai/audio/transcriptions | Распознавание речи | multipart/form-data с file + model | { text } |
POST /ai/video/generations | Видео (асинхронно) | { model, prompt, ... } | { id, status, pollUrl } |
GET /ai/responses/{id} | Асинхронный опрос | id ответа | результат в формате провайдера |
POST /ai/gateway | Прямой проход | Любой Workers AI / нативный payload провайдера | Прямой ответ провайдера |
GET /ai/models | Каталог | — | { models: [{ id, modality, pricing, ... }] } |
GET /ai/models — источник истины для того, какие id моделей работают на каких endpoints. Прочитайте его в первую очередь, если разрабатываете против API.
Как работает вызов
Каждый платный вызов проходит пять фаз. Вы не видите большинство из них — они отслеживаются на сервере, чтобы мы могли возвращать средства за неудачные вызовы и сообщать точное использование.| Фаза | Что произошло |
|---|---|
open | Мы создали событие биллинга, привязанное к вашему запросу, но еще не вызвали провайдера. |
recorded | Провайдер ответил. У нас есть id логирования от Cloudflare AI Gateway. Стоимость еще не известна. |
priced | Cloudflare сообщил финальную стоимость. Мы применили наценку и записали списание кредитов. Финальное. |
failed | Вызов провайдера не удался или мы не смогли получить стоимость после 20 повторов. Клиент не заряжается. Финальное. |
synced | Событие с ценой доставлено в нашу систему учета. |
x-kazzle-ai-billing-event-id: airesp_... — сохраните его, если хотите позже сопоставить запрос с экспортом использования.
Биллинг и наценка
Мы беремcloudflare_cost_usd × (1 + markup). Наценка опубликована в Settings → Billing → Pricing. Вызовы, которые Cloudflare оценил в $0 (бесплатный уровень Workers AI, промо), достигают фазы priced с нулевой стоимостью и никогда не списываются.
Резерв: вам нужно как минимум $0.50 эквивалента в кредитах для вызова. Мы удерживаем это против вашего баланса до завершения вызова, затем рассчитываем фактическую стоимость.
Ошибки
| Статус | Значение |
|---|---|
401 | Отсутствует или неверный API-ключ kzl_. |
402 | Недостаточно кредитов для резерва. Пополните в Settings → Billing. |
4xx от провайдера | Перенаправлено как есть. Тело содержит ошибку провайдера. Клиент не заряжается. |
5xx от провайдера | Перенаправлено как есть. Клиент не заряжается. |
Пример — генерация изображения
Пример — синтез речи
См. также
- API Reference — полные схемы запросов/ответов для каждого endpoint
- API keys — создание и использование ключей
kzl_ - Billing — кредиты, планы и наценка, которую мы применяем