Kimi K3
Wywołaj Kimi K3 przez oficjalne API Chat Completions, Responses lub Anthropic Messages: okno kontekstu 1M tokenów, zawsze włączone rozumowanie i poziom rozumowania, który wybierasz sam.
Kimi K3 to flagowy model Moonshot AI do długofalowego programowania, agentów i pracy z wiedzą. Zawsze rozumuje przed odpowiedzią, a to, jak intensywnie, wybierasz przez reasoning_effort. Wyślij oficjalne żądanie Kimi do SeedRouter: zmień bazowy adres URL i klucz API, zachowaj treść żądania.
ID modelu
| ID modelu | Okno kontekstu | Maks. wyjście | Poziom rozumowania | Domyślny poziom rozumowania |
|---|---|---|---|---|
kimi-k3 | 1,048,576 tokenów | 1,048,576 tokenów (domyślnie 131,072) | low, high, max | max |
Wejście: tekst i obrazy. Wyjście: tekst. Aktualne ceny znajdziesz na stronie modelu.
Krótki przykład
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."}]
}'Punkty końcowe
| Format | Metoda i ścieżka | Uwierzytelnianie |
|---|---|---|
| Chat Completions | POST https://api.seedrouter.ai/v1/chat/completions | Authorization: Bearer <key> |
| Responses | POST https://api.seedrouter.ai/v1/responses | Authorization: Bearer <key> |
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> lub Authorization: Bearer <key>, plus anthropic-version |
Wszystkie trzy zwracają oficjalny format odpowiedzi Kimi, ze strumieniowaniem lub bez. Przechowuj klucz API po stronie serwera.
Parametry
Pola Chat Completions:
| Nazwa | Typ | Wymagany | Domyślnie | Uwagi |
|---|---|---|---|---|
model | string | Tak | — | kimi-k3. |
messages | object[] | Tak | — | Wiadomości tekstowe; obrazy jako części image_url (zobacz Obrazy na wejściu). |
max_completion_tokens | integer | Nie | 131072 | Do 1048576. Obejmuje tokeny rozumowania. max_tokens to przestarzała nazwa tego samego limitu. |
reasoning_effort | enum | Nie | max | low, high lub max. Każda inna wartość zwraca 400. |
stop | string or string[] | Nie | — | Do 5 sekwencji. |
response_format | object | Nie | {"type": "text"} | text, json_object lub json_schema (z json_schema.name i json_schema.schema). |
tools | object[] | Nie | — | Narzędzia typu funkcja. |
tool_choice | string or object | Nie | auto | auto i none są stosowane. required i nazwana funkcja są akceptowane, ale nie wymuszają wywołania. |
stream | boolean | Nie | false | Strumieniuje server-sent events. |
stream_options.include_usage | boolean | Nie | false | Dodaje końcowy chunk z danymi o użyciu. |
prompt_cache_options | object | Nie | {"mode": "implicit", "ttl": "5m"} | mode: implicit. ttl: 5m lub 1h. |
prompt_cache_key, safety_identifier, prediction | — | Nie | — | Akceptowane. |
logprobs, top_logprobs | — | Nie | — | Akceptowane (top_logprobs od 0 do 20), ale prawdopodobieństwa logarytmiczne nie są zwracane. |
temperature, top_p, n, presence_penalty, frequency_penalty | — | Nie | 1.0, 0.95, 1, 0, 0 | Stałe. Każda inna wartość zwraca 400, więc ich nie wysyłaj. |
Rozumowanie i poziom rozumowania
Kimi K3 zawsze rozumuje; nie da się tego wyłączyć. reasoning_effort określa, ile: max (domyślnie) do najtrudniejszej pracy, high do większości zadań, low do szybkich, prostych kroków. Rozumowanie wraca w reasoning_content, obok content. Tokeny rozumowania są naliczane jako tokeny wyjściowe i wliczają się do max_completion_tokens.
W rozmowach wieloturowych i wywołaniach narzędzi odsyłaj każdą wiadomość asystenta bez zmian, łącznie z jej reasoning_content.
Obrazy na wejściu
Kimi K3 przyjmuje obrazy jako data URI w base64. Publiczny adres URL obrazu nie jest akceptowany i zwraca 400, tak jak we własnym API Kimi.
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,<BASE64_DATA>"}},
{"type": "text", "text": "Describe this image."}
]}Cache kontekstu
Cache działa automatycznie: powtarzający się prefiks promptu jest odczytywany z cache po niższej stawce za wejście z cache. prompt_cache_options.ttl określa, jak długo zapisany prefiks pozostaje w cache: 5m (domyślnie) lub 1h; wybierz 1h, gdy odstęp między żądaniami przekracza pięć minut. usage.prompt_tokens_details.cached_tokens podaje tokeny odczytane z cache, a cache_write_tokens zapisy do cache naliczone za żądanie.
Wymiary rozliczeniowe
Aktualne stawki znajdziesz na stronie modelu. Żądanie jest rozliczane na podstawie użytych tokenów:
- tokeny wejściowe,
- tokeny wejściowe z cache (
cached_tokens), - tokeny zapisu do cache (
cache_write_tokens), - tokeny wyjściowe, w tym rozumowanie.
Ceny nie zmieniają się wraz z długością kontekstu. Opłata jest pobierana na podstawie usage raportowanego z ukończoną odpowiedzią. Żądanie, które się nie powiedzie, nie jest naliczane. Rekordy użycia konta pokazują dokładną opłatę za każde żądanie.
Wyjście
Żądanie Chat Completions bez strumieniowania zwraca:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1790585961,
"model": "kimi-k3",
"choices": [{
"index": 0,
"finish_reason": "stop",
"message": {"role": "assistant", "reasoning_content": "...", "content": "..."}
}],
"usage": {
"prompt_tokens": 90,
"completion_tokens": 57,
"total_tokens": 147,
"cached_tokens": 90,
"prompt_tokens_details": {"cached_tokens": 90, "cache_write_tokens": 0}
}
}Z "stream": true każdy chunk zawiera delta z reasoning_content lub content. Z stream_options.include_usage ostatni chunk z pustą tablicą choices przekazuje dane o użyciu przed data: [DONE].
Responses API i Codex
POST /v1/responses przyjmuje treść Responses: input, instructions, max_output_tokens, reasoning.effort (low, high, max), text.format (json_schema), tools (function i niestandardowe narzędzie apply_patch), tool_choice, stream, prompt_cache_options, prompt_cache_key i safety_identifier. Rozumowanie wraca jako element reasoning z częścią summary_text, a strumień przekazuje numerowane zdarzenia od response.created do response.completed. API jest bezstanowe: previous_response_id i conversation są ignorowane, więc wysyłaj całą rozmowę w input. Narzędzie web_search jest ignorowane.
Aby używać Kimi K3 w Codex, dodaj provider do ~/.codex/config.toml i ustaw SEEDROUTER_API_KEY:
model = "kimi-k3"
model_provider = "seedrouter"
model_context_window = 1048576
[model_providers.seedrouter]
name = "SeedRouter"
base_url = "https://api.seedrouter.ai/v1"
env_key = "SEEDROUTER_API_KEY"
wire_api = "responses"Format Anthropic Messages
Kod napisany dla Anthropic Messages API też może wywoływać Kimi K3: wyślij treść Messages na /v1/messages z "model": "kimi-k3". system, max_tokens, tools, tool_choice (auto, none) i output_config.effort (low, high, max) są stosowane, a metadata.user_id i cache_control są akceptowane. stop_sequences (do 5), tool_choice any i output_config.format są akceptowane, ale nie mają efektu. Rozumowanie wraca jako bloki thinking. Obrazy przekazujesz jako źródła base64.
Błędy
Błędy używają {"error": {"code": ..., "message": "..."}} (punkt końcowy Messages używa formatu błędów Anthropic). code to kod z wspólnego katalogu błędów. Żądania, które się nie powiodą, nie są naliczane.
Wskazówki
- Zacznij od poziomu rozumowania
highi przechodź namaxtylko przy najtrudniejszych problemach;lowpasuje do szybkich, prostych kroków. - Ustaw
max_completion_tokensna tyle wysoko, aby zmieścić zarówno rozumowanie, jak i odpowiedź: to jeden budżet na oba. - Umieść długi, ponownie używany kontekst na początku promptu, aby późniejsze żądania odczytywały go z cache, i używaj TTL
1h, gdy żądania są rozłożone w czasie.
