Chat Completions
MarkdownOdpowiedź modelu na dialog w formacie OpenAI. Najpopularniejszy format: rozumie go niemal każdy klient.
Pełny przewodnik
https://api.ailoot.ai/v1/chat/completionscurl https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"messages": [
{"role": "user", "content": "Wyjaśnij w dwóch zdaniach, czym jest API."}
]
}' from openai import OpenAI
import os
client = OpenAI(max_retries=0,
base_url="https://api.ailoot.ai/v1",
api_key=os.environ["AILOOT_API_KEY"],
)
resp = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Wyjaśnij w dwóch zdaniach, czym jest API."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ maxRetries: 0,
baseURL: "https://api.ailoot.ai/v1",
apiKey: process.env.AILOOT_API_KEY,
});
const resp = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Wyjaśnij w dwóch zdaniach, czym jest API." }],
});
console.log(resp.choices[0].message.content);{
"id": "chatcmpl-8f2c…",
"object": "chat.completion",
"created": 1790812800,
"model": "claude-sonnet-5-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "API to ustalenia określające, jak jeden program prosi drugi o wykonanie jakiejś czynności…"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 21,
"completion_tokens": 48,
"total_tokens": 69
}
}Autoryzacja
- Authorizationheaderwymagany
Klucz w postaci
Bearer sk-…. Można też użyć nagłówkówx-api-keylubx-goog-api-key.
Treść żądania
- modelstringwymagany
ID modelu z katalogu, na przykład
claude-sonnet-5-5. Model musi obsługiwać format OpenAI Chat. - messagesarraywymagany
Historia dialogu: obiekty z
role(system,developer,user,assistant,tool) icontent— jako ciąg znaków lub tablicę części (tekst,image_url). - streambooleanopcjonalny
Odpowiedź w formacie Server-Sent Events. Domyślnie
false. Płatny tekst przychodzi w jednym bloku po obliczeniu kosztu, a nie słowo po słowie. - stream_optionsobjectopcjonalny
{"include_usage": true}— przesłać końcoweusagejako ostatnie zdarzenie strumienia. - max_tokensintegeropcjonalny
Maksymalna liczba tokenów odpowiedzi. Nowa nazwa —
max_completion_tokens. Jeśli limit nie jest podany, Ailoot ustawia 4096 (lub mniej, jeśli limit odpowiedzi modelu jest niższy; Grok ma własny limit). Dla długich odpowiedzi podaj limit jawnie, inaczej odpowiedź zakończy się po 4096 tokenach zfinish_reason: "length". Limit wchodzi do rezerwacji: im jest większy, tym więcej wolnych środków trzeba mieć na saldzie. - temperaturenumberopcjonalny
Losowość odpowiedzi, zwykle od 0 do 2. W modelach rozumujących może być ignorowana.
- top_pnumberopcjonalny
Alternatywa dla temperature: udział masy prawdopodobieństwa używany do wyboru tokenów.
- stopstring | arrayopcjonalny
Ciągi znaków, na których generowanie się zatrzyma.
- toolsarrayopcjonalny
Opisy funkcji, które model może wywołać. Format — taki jak w OpenAI:
{"type": "function", "function": {...}}. - tool_choicestring | objectopcjonalny
auto,none,requiredlub konkretna funkcja. - response_formatobjectopcjonalny
{"type": "json_object"}lub{"type": "json_schema", ...}dla odpowiedzi strukturalnej — jeśli model ją obsługuje. - reasoning_effortstringopcjonalny
Głębokość rozumowania w modelach rozumujących:
low,medium,high.
Pozostałe parametry OpenAI są przekazywane bez zmian; to twórca modelu określa, czy dany model je obsługuje.
Odpowiedź
- choices[].messageobject
Odpowiedź modelu:
content, przy wywoływaniu narzędzi —tool_calls. - choices[].finish_reasonstring
stop— odpowiedź zakończona;length— osiągnięto limitmax_tokens(taka odpowiedź nadal jest pełna i rozliczana według faktycznego zużycia);tool_calls— model wywołuje narzędzie. - usageobject
prompt_tokens,completion_tokens,total_tokens— na ich podstawie oblicza się obciążenie.