MenuReferencja API

Referencja API

API działa w formacie OpenAI pod https://ai.geraikita.com/v1 i w formacie Anthropic pod https://ai.geraikita.com. Wszystkie body zapytań i odpowiedzi są w formacie JSON (UTF-8).

EndpointFunkcja
POST /v1/chat/completionsChat w formacie OpenAI (ze streamem i bez)
POST /v1/messagesMessages w formacie Anthropic (ze streamem i bez)
POST /v1/messages/count_tokensLiczenie tokenów promptu w formacie Anthropic — bezpłatne
GET /v1/modelsLista dostępnych modeli
POST /v1/images/generationsGeneruje obrazy z promptu tekstowego, rozliczane za obraz — zobacz Generowanie obrazów
Obecnie dostępne są tylko powyższe endpointy. Inne endpointy OpenAI (np. /v1/responses, /v1/embeddings) nie są jeszcze obsługiwane.

Chat completions (OpenAI)

POSThttps://ai.geraikita.com/v1/chat/completions

Generuje odpowiedź na podstawie listy wiadomości. Nagłówki: Authorization: Bearer gk-… i Content-Type: application/json.

Body zapytania

ParametrTypOpis
modelstringWymagany. Id modelu dokładnie takie jak na liście modeli, bez prefiksu.
messagesarrayWymagany. Uporządkowana tablica wiadomości; każda wiadomość zawiera role i content. Co najmniej jedna wiadomość.
streambooleantrue, aby otrzymywać odpowiedź stopniowo przez Server-Sent Events.
max_tokensintegerLimit tokenów odpowiedzi. Jeśli saldo nie wystarcza na żądaną wartość, serwer może ją automatycznie obniżyć.
temperature, top_p, stop—Przekazywane do modelu bez zmian. Obsługa i zakres wartości zależą od modelu.
tools, tool_choicearray / objectWywoływanie funkcji (tool calling) w formacie OpenAI, przekazywane do modeli, które je obsługują.

Przykładowe zapytanie

curl https://ai.geraikita.com/v1/chat/completions \
  -H "Authorization: Bearer gk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Cześć!"}]
  }'

Przykładowa odpowiedź

200 OK · application/json
{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "model": "claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "…" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 12, "completion_tokens": 9, "total_tokens": 21 }
}

Obiekt usage zawiera liczbę tokenów, na podstawie której naliczana jest opłata — zobacz Cennik i rozliczenia.

Messages (Anthropic)

POSThttps://ai.geraikita.com/v1/messages

Natywny endpoint Anthropic dla SDK Anthropic i Claude Code CLI. Base URL w kliencie = https://ai.geraikita.com (bez /v1).

Nagłówki

NagłówekWartośćOpis
x-api-keygk-…Twój klucz API gk- (akceptowany jest też Authorization: Bearer).
anthropic-version2023-06-01Wersja API Anthropic; wysyłana automatycznie przez SDK.
content-typeapplication/json—

Body zapytania

ParametrTypOpis
modelstringWymagany. Id modelu dokładnie takie jak na liście modeli, bez prefiksu.
messagesarrayWymagany. Tablica wiadomości w formacie Anthropic, co najmniej jedna wiadomość.
max_tokensintegerLimit tokenów odpowiedzi (wymagany w formacie Anthropic).
systemstring / arrayInstrukcja systemowa (opcjonalna).
streambooleantrue, aby otrzymywać odpowiedź stopniowo przez Server-Sent Events.

Przykładowe zapytanie

curl https://ai.geraikita.com/v1/messages \
  -H "x-api-key: gk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Cześć!"}]
  }'

Chcesz policzyć tokeny przed wysłaniem? POST https://ai.geraikita.com/v1/messages/count_tokens przyjmuje to samo body i jest bezpłatne.

Lista modeli

GEThttps://ai.geraikita.com/v1/models

Zwraca listę id modeli, które można podać w polu model. Przy wywołaniu kluczem ograniczonym allowlistą widoczne są tylko dozwolone modele. Z nagłówkiem x-api-key lub anthropic-version odpowiedź ma format Anthropic.

curl https://ai.geraikita.com/v1/models \
  -H "Authorization: Bearer gk-xxxxxxxx"

Streaming (SSE)

Przy "stream": true odpowiedź jest wysyłana jako text/event-stream. Serwer od razu wysyła nagłówki, a w czasie oczekiwania co 10 sekund linię komentarza keepalive : ka, aby połączenie nie zostało uznane za martwe. Ustaw całkowity timeout aplikacji na co najmniej 300 sekund.

text/event-stream
data: {"choices":[{"index":0,"delta":{"content":"Ha"}}]}

: ka

data: {"choices":[{"index":0,"delta":{"content":"lo!"}}]}

data: [DONE]
  • Format OpenAI: każdy fragment to linia data: z JSON-em zawierającym choices[].delta, a strumień kończy się na data: [DONE].
  • Format Anthropic: zdarzenia message_start, content_block_delta, …, message_stop, tak jak w API Anthropic.
  • Ignoruj linie zaczynające się od dwukropka (:) — to keepalive, a nie dane. Przewodniki dla poszczególnych narzędzi znajdziesz w Ustawieniach narzędzi agentowych.