API Kimi K3: jak uzyskać klucz i wykonać pierwsze wywołanie
Jak korzystać z API Kimi K3: uzyskaj klucz, wywołaj kimi-k3 w OpenAI SDK, ustaw poziom rozumowania, streamuj, wysyłaj obrazy i napraw typowe błędy na starcie.
Czytaj jako MarkdownAby wywołać Kimi K3, potrzebujesz klucza API z platformy, która go udostępnia, oraz żądania z model ustawionym na kimi-k3. Moonshot AI udostępnia go na własnej Kimi API Platform, gdzie model odblokowuje się po pierwszym doładowaniu. SeedRouter udostępnia go pod jednym kluczem, z płatnością za użycie, w oficjalnym formacie żądań: skieruj OpenAI SDK na https://api.seedrouter.ai/v1 i zachowaj swój kod.
Ten poradnik korzysta z SeedRouter; treść żądań jest taka sama jak we własnym API Kimi.
Jak uzyskać klucz API Kimi K3?
- Zaloguj się do SeedRouter i otwórz API keys.
- Utwórz klucz i skopiuj go; jest wyświetlany tylko raz.
- Doładuj środki, gdy będą potrzebne. Nowe konta zaczynają z małym darmowym saldem i nie ma subskrypcji.
Trzymaj klucz w zmiennej środowiskowej, na przykład SEEDROUTER_API_KEY, i używaj go tylko w kodzie po stronie serwera.
Jak wywołać Kimi K3 z Pythona?
Kimi K3 obsługuje format Chat Completions, więc oficjalny pakiet openai działa bez zmian:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["SEEDROUTER_API_KEY"],
base_url="https://api.seedrouter.ai/v1",
)
completion = client.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Explain context caching in one sentence."}],
)
print(completion.choices[0].message.content)Odpowiedź jest w content. Kimi K3 rozumuje przed odpowiedzią, a to rozumowanie wraca w reasoning_content tej samej wiadomości.
Jak wywołać go z Node.js lub cURL?
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.SEEDROUTER_API_KEY,
baseURL: "https://api.seedrouter.ai/v1",
});
const completion = await client.chat.completions.create({
model: "kimi-k3",
messages: [{ role: "user", content: "Explain context caching in one sentence." }],
});
console.log(completion.choices[0].message.content);curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "kimi-k3", "messages": [{"role": "user", "content": "Explain context caching in one sentence."}]}'Ten sam klucz obsługuje też Responses API (/v1/responses) i format Anthropic Messages (/v1/messages) dla kimi-k3.
Jak ustawić poziom rozumowania?
Kimi K3 zawsze rozumuje; nie da się tego wyłączyć. reasoning_effort określa, ile model myśli przed odpowiedzią:
completion = client.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Find the bug: def avg(xs): return sum(xs) / len(xs)"}],
reasoning_effort="high",
)| Wartość | Do czego |
|---|---|
low | Szybkie, proste kroki |
high | Większość programowania i analiz |
max (domyślnie) | Najtrudniejsze problemy |
Tokeny rozumowania są rozliczane jako wyjście i wliczają się do max_completion_tokens, którego wartość domyślna to 131 072, a maksymalna 1 048 576. W naszym teście na tym samym pytaniu low zużył 25 tokenów wyjścia, a max 146.
Jak streamować odpowiedź?
Dodaj stream=True. Najpierw w delta.reasoning_content przychodzi rozumowanie, potem odpowiedź w delta.content. Poproś o stream_options={"include_usage": True}, aby dostać liczbę tokenów w ostatnim fragmencie:
stream = client.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Write a haiku about latency."}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Czy mogę wysyłać obrazy?
Tak, jako data URI w base64. Kimi K3 nie przyjmuje publicznych adresów URL obrazów; jego quickstart mówi: „Vision input does not support public image URLs” (wejście wizualne nie obsługuje publicznych adresów URL obrazów):
import base64
with open("chart.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
completion = client.chat.completions.create(
model="kimi-k3",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image}"}},
{"type": "text", "text": "What does this chart show?"},
],
}],
)Jakich błędów się spodziewać?
| Błąd | Przyczyna | Rozwiązanie |
|---|---|---|
400 przy temperature, top_p, n lub karze (penalty) | Kimi K3 ma je ustalone (1,0, 0,95, 1, 0) | Pomiń je |
400 przy reasoning_effort | Wartość inna niż low, high lub max | Użyj jednej z trzech |
| 400 przy obrazie | Publiczny URL zamiast data URI | Wyślij obraz w base64 |
| 401 | Brak klucza lub błędny klucz | Sprawdź nagłówek Authorization |
Błędy zwracają {"error": {"code": ..., "message": "..."}}, a żądanie zakończone błędem nie jest rozliczane.
Najczęściej zadawane pytania
Czy API Kimi K3 jest zgodne z OpenAI?
Tak. Kimi K3 przyjmuje formaty Chat Completions i Responses, więc OpenAI SDK działa po zmianie tylko bazowego URL i modelu. Przyjmuje też format Anthropic Messages.
Czy potrzebuję konta Moonshot, aby korzystać z Kimi K3?
Nie na SeedRouter. Logujesz się do SeedRouter, tworzysz tam klucz i płacisz ze swojego salda SeedRouter.
Ile kosztuje żądanie do Kimi K3?
Jest rozliczane za tokeny wejścia i wyjścia. Poradnik cenowy Kimi K3 zawiera aktualne stawki i przykładowe wyliczenia.
Gdzie jest pełna lista parametrów?
Dokumentacja API Kimi K3 wymienia każde pole, a strona Kimi K3 ma Playground i aktualne ceny.



