Claude Opus 5.5 jest już dostępny w SeedRouter

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 Markdown

Aby 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?

  1. Zaloguj się do SeedRouter i otwórz API keys.
  2. Utwórz klucz i skopiuj go; jest wyświetlany tylko raz.
  3. 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
lowSzybkie, proste kroki
highWię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łądPrzyczynaRozwią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_effortWartość inna niż low, high lub maxUżyj jednej z trzech
400 przy obraziePubliczny URL zamiast data URIWyślij obraz w base64
401Brak klucza lub błędny kluczSprawdź 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.

Powiązane poradniki