Przejdź do głównej treści
Kazzle AI API daje Ci jeden uwierzytelniony endpoint do wywołania dowolnego modelu, który obsługujemy. Płacisz raz, w kredytach, względem Twojej przestrzeni — bez oddzielnych kont dla OpenAI, Anthropic, Cloudflare Workers AI ani nikogo innego, do którego nas kierujemy. Wszystkie endpointy znajdują się pod /ai/* na https://api.kazzle.app i akceptują klucz API kzl_ w nagłówku Authorization. Aby dowiedzieć się, jak go utworzyć, zobacz Klucze API. Wygenerowane aplikacje Kazzle powinny również używać tego API. Utwórz klucz API Kazzle dla aplikacji, przechowuj go w vault, podłącz go jako KAZZLE_API_KEY na komponencie procesu i wywołaj https://api.kazzle.app/ai/* z tego kodu po stronie serwera. Nie pytaj użytkowników o klucze dostawcy, chyba że wyraźnie chcą używać własnego konta dostawcy.

Możliwości

EndpointModalnośćStandardowe wejścieStandardowe wyjście
POST /ai/chat/completionsCzat (tekst, streaming)Kompatybilne z OpenAI messages[]Kompatybilne z OpenAI choices[] lub strumień SSE
POST /ai/responsesResponses APIKompatybilne z OpenAI ResponsesKompatybilne z OpenAI Responses
POST /ai/images/generationsObraz{ model, prompt, size?, output_format? }{ images: [{ url? | b64?, mimeType }] }
POST /ai/audio/speechSynteza mowy{ model, text, voice?, format? }strumień bajtów audio/*
POST /ai/audio/transcriptionsTranskrypcja mowymultipart/form-data z file + model{ text }
POST /ai/video/generationsWideo (asynchroniczne){ model, prompt, ... }{ id, status, pollUrl }
GET /ai/responses/{id}Asynchroniczne pobieranieid odpowiedziwynik w kształcie dostawcy
POST /ai/gatewayBezpośrednie przekazanieDowolny Workers AI / natywny payload dostawcySurowa odpowiedź upstream
GET /ai/modelsKatalog{ models: [{ id, modality, pricing, ... }] }
GET /ai/models jest źródłem prawdy dla tego, które id modeli działają na którym endpoincie. Przeczytaj to najpierw, jeśli budujesz względem API.

Jak działa wywołanie

Każde rozliczane wywołanie przechodzi przez pięć faz. Większości z nich nie widzisz — są śledzone po stronie serwera, abyśmy mogli zwrócić pieniądze za nieudane wywołania i zgłosić dokładne użycie.
FazaCo się stało
openUtworzyliśmy zdarzenie rozliczeniowe powiązane z Twoim żądaniem, ale jeszcze nie wywołaliśmy upstream.
recordedDostawca upstream zwrócił wynik. Mamy id dziennika z Cloudflare AI Gateway. Koszt nie jest jeszcze znany.
pricedCloudflare zgłosił ostateczny koszt. Zastosowaliśmy nasz narzut i zapisaliśmy opłatę kredytową. Terminal.
failedWywołanie upstream nie powiodło się lub nie mogliśmy uzyskać kosztu po 20 próbach. Klient nie jest rozliczany. Terminal.
syncedZdarzenie priced zostało dostarczone do naszego systemu mierzenia.
Każda pomyślna odpowiedź zawiera x-kazzle-ai-billing-event-id: airesp_... — zachowaj je, jeśli chcesz później skorelować żądanie z eksportami użycia.

Rozliczenia i narzut

Rozliczamy cloudflare_cost_usd × (1 + markup). Narzut jest publikowany w Ustawienia → Rozliczenia → Ceny. Wywołania, które Cloudflare wycenił na $0 (bezpłatna warstwa Workers AI, promocje) osiągają fazę priced z zerowym kosztem i nigdy nie są rozliczane. Rezerwa: musisz mieć co najmniej $0.50 równowartości w kredytach, aby wykonać wywołanie. Zatrzymujemy to względem Twojego salda, aż wywołanie się zakończy, a następnie rozliczamy rzeczywisty koszt.

Błędy

StatusZnaczenie
401Brakujący lub nieprawidłowy klucz API kzl_.
402Niewystarczające kredyty na rezerwę. Doładuj w Ustawienia → Rozliczenia.
4xx z upstreamPrzekazane bez zmian. Treść zawiera błąd dostawcy. Klient nie jest rozliczany.
5xx z upstreamPrzekazane bez zmian. Klient nie jest rozliczany.

Przykład — generowanie obrazu

curl https://api.kazzle.app/ai/images/generations \
  -H "Authorization: Bearer kzl_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-1",
    "prompt": "a single red dot on white",
    "size": "1024x1024"
  }'
{
  "images": [
    { "url": "https://...", "mimeType": "image/png" }
  ]
}

Przykład — synteza mowy

curl https://api.kazzle.app/ai/audio/speech \
  -H "Authorization: Bearer kzl_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/tts-1","text":"hello world","voice":"alloy","format":"mp3"}' \
  --output speech.mp3

Zobacz też

  • Dokumentacja API — pełne schematy żądań/odpowiedzi dla każdego endpointu
  • Klucze API — tworzenie i używanie kluczy kzl_
  • Rozliczenia — kredyty, plany i narzut, który stosujemy