Text
Kimi K3.1 Pro
Natywne formaty Kimi K3.1 Pro Chat Completions, Responses i Messages. Oficjalne parametry, historia rozumowania, wyjście strukturalne, media i rozliczanie cache.
Użyj publicznego ID modelu kimi-k3.1-pro. Strona modelu udostępnia Playground i aktualne ceny. Pobierz specyfikację OpenAPI z pełnymi zagnieżdżonymi schematami żądań i odpowiedzi.
Szybki start
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"kimi-k3.1-pro",
"messages":[{"role":"user","content":"How can an idempotency key prevent a duplicate payment?"}],
"max_completion_tokens":2048,
"reasoning_effort":"low"
}'Formaty natywne
| Format | Punkt końcowy | Wymagane pola |
|---|---|---|
| Chat Completions | POST /v1/chat/completions | model, messages |
| Responses | POST /v1/responses | model, input |
| Messages | POST /v1/messages | model, messages, max_tokens |
Użyj Authorization: Bearer $SEEDROUTER_API_KEY. Messages używa też anthropic-version: 2023-06-01. Każdy format zwraca natywny JSON lub zdarzenia SSE. Responses jest bezstanowy: odtwarzaj pełną historię; previous_response_id nie jest obsługiwanym polem żądania.
Parametry żądania
Puste pola Playground są pomijane. Jawne false i zero są zachowywane tam, gdzie są poprawne. Pominięcie nie oznacza dopuszczalności null. Nieznane rozszerzenia najwyższego poziomu są odrzucane; niepoprawne oficjalne pola powodują odrzucenie żądania. Zagnieżdżone schematy narzędzi i zwrócona historia pozostają nienaruszone.
Chat Completions
| Pole | Typ | Wymagane | Domyślnie / zakres |
|---|---|---|---|
logprobs | boolean | Nie | domyślnie false |
top_logprobs | integer | Nie | 0–20; wymaga logprobs=true |
prediction | object | Nie | Pomijane, jeśli nie podano |
max_tokens | integer | Nie | 1–1048576 |
max_completion_tokens | integer | Nie | 1–1048576; domyślnie 131072 |
response_format | object | Nie | Pomijane, jeśli nie podano |
stop | union | Nie | ≤5 ciągów; ≤32 UTF-8 bytes każdy |
stream | boolean | Nie | domyślnie false |
stream_options | object | Nie | Pomijane, jeśli nie podano |
tools | array | Nie | Pomijane, jeśli nie podano |
prompt_cache_key | string | Nie | Pomijane, jeśli nie podano |
prompt_cache_options | object | Nie | Pomijane, jeśli nie podano |
safety_identifier | string | Nie | Pomijane, jeśli nie podano |
tool_choice | union | Nie | Pomijane, jeśli nie podano |
messages | array | Tak | Pomijane, jeśli nie podano |
reasoning_effort | string | Nie | low, high, max; domyślnie "max" |
model | string | Tak | kimi-k3.1-pro; domyślnie "kimi-k3.1-pro" |
temperature | number | Nie | 1 |
top_p | number | Nie | 0.95 |
n | integer | Nie | 1 |
frequency_penalty | number | Nie | 0 |
presence_penalty | number | Nie | 0 |
Responses
| Pole | Typ | Wymagane | Domyślnie / zakres |
|---|---|---|---|
model | string | Tak | kimi-k3.1-pro; domyślnie "kimi-k3.1-pro" |
input | union | Tak | Pomijane, jeśli nie podano |
instructions | string | Nie | Pomijane, jeśli nie podano |
stream | boolean | Nie | domyślnie false |
max_output_tokens | integer | Nie | 1–1048576; domyślnie 131072 |
reasoning | object | Nie | Pomijane, jeśli nie podano |
text | object | Nie | Pomijane, jeśli nie podano |
tools | array | Nie | Pomijane, jeśli nie podano |
tool_choice | object | Nie | Pomijane, jeśli nie podano |
include | array | Nie | Pomijane, jeśli nie podano |
prompt_cache_key | string | Nie | Pomijane, jeśli nie podano |
prompt_cache_options | object | Nie | Pomijane, jeśli nie podano |
safety_identifier | string | Nie | Pomijane, jeśli nie podano |
Messages
| Pole | Typ | Wymagane | Domyślnie / zakres |
|---|---|---|---|
model | string | Tak | kimi-k3.1-pro; domyślnie "kimi-k3.1-pro" |
messages | array | Tak | Pomijane, jeśli nie podano |
max_tokens | integer | Tak | 1–1048576 |
system | union | Nie | Pomijane, jeśli nie podano |
stream | boolean | Nie | domyślnie false |
stop_sequences | array | Nie | ≤5 ciągów; ≤32 UTF-8 bytes każdy |
tools | array | Nie | Pomijane, jeśli nie podano |
tool_choice | object | Nie | Pomijane, jeśli nie podano |
metadata | object | Nie | Pomijane, jeśli nie podano |
cache_control | object | Nie | Pomijane, jeśli nie podano |
output_config | object | Nie | Pomijane, jeśli nie podano |
Chat ma 22 pola najwyższego poziomu: model, pięć stałych pól próbkowania i 16 zmiennych wejść. Responses ma model i 12 wejść; Messages ma model i 10 wejść. Playground ukrywa stały model i stałe ustawienia próbkowania.
Rozumowanie i limity wyjścia
Rozumowanie jest zawsze włączone. Chat reasoning_effort, Responses reasoning.effort i Messages output_config.effort przyjmują low, high lub max; domyślnie max. Wszystkie limity wyjścia obejmują rozumowanie. Chat i Responses domyślnie mają 131 072 tokeny wyjścia, maksymalnie 1 048 576. Messages wymaga dodatniego max_tokens. Chat przyjmuje przestarzałe max_tokens; w nowych integracjach wybierz max_completion_tokens.
Okno kontekstowe wynosi 1 048 576 tokenów. Samo wejście musi się w nim zmieścić. Gdy wejście wraz z budżetem generacji przekracza okno, usługa może zmniejszyć budżet do pozostałego miejsca. Mały limit wyjścia może zatrzymać generację przed pojawieniem się widocznej odpowiedzi.
Próbkowanie Chat jest stałe: temperature:1, top_p:0.95, n:1, frequency_penalty:0, presence_penalty:0. Inne wartości są niepoprawne. Sekwencje stop dopasowują dokładny tekst i są wykluczane z odpowiedzi. Limit 32 bajtów liczy bajty UTF-8, nie znaki.
Wyjście strukturalne i przewidywanie
Chat przyjmuje response_format.type o wartości text, json_object lub json_schema. Tryb JSON wymaga też promptu proszącego o JSON. JSON Schema wymaga json_schema.name i json_schema.schema; strict domyślnie wynosi true.
Responses używa text.format z type:json_schema, schema oraz opcjonalnymi name i strict. Messages używa output_config.format z type:json_schema i schema. Stosuj Moonshot Flavored JSON Schema; nie zakładaj egzekwowania każdego ogólnego rozszerzenia JSON Schema. Weryfikuj ukończone wyjście w aplikacji.
Przewidywane wyjście Chat używa prediction:{type:"content",content:...}. Treść jest ciągiem lub częściami wyłącznie tekstowymi. Używaj tego dla w większości znanego wyjścia, np. pliku z drobną zmianą.
Narzędzia i zachowana historia rozmowy
Narzędzia Chat używają type:function z function.name i function.parameters. Opcjonalne pola obejmują description i strict (domyślnie true). Nazwy pasują do ^[a-zA-Z_][a-zA-Z0-9-_]{0,127}$. Wybór narzędzia obsługuje auto, none i required; required wymaga co najmniej jednego dostępnego narzędzia. Wymuszenie nazwanej funkcji koliduje z zawsze włączonym rozumowaniem.
Dynamiczna wiadomość narzędzi Chat to {role:"system",tools:[...]} bez content. Zachowaj te wiadomości w rozmowie. Dołącz pełną odpowiedź asystenta, w tym reasoning_content i tool_calls, a następnie zwróć każdy wynik narzędzia jako wiadomość role:tool z pasującym tool_call_id. Odpowiedzi asystenta z narzędziami mogą mieć content null. Pozostałe role wiadomości nadal wymagają content.
Responses obsługuje natywne definicje narzędzi function, namespace, niestandardowego apply_patch i web_search z tool_choice:"auto". Zwracaj elementy function_call_output lub custom_tool_call_output z pasującymi ID wywołań. Wartości include web_search_call.results i web_search_call.action.sources wpływają tylko na wyniki wyszukiwania w sieci.
Messages obsługuje natywne definicje narzędzi i obiekty wyboru z type auto, any lub none. Zachowaj bloki rozumowania asystenta i ich podpisy. Zwracaj bloki wyników narzędzi w wiadomościach użytkownika. Aplikacja weryfikuje argumenty, wykonuje własne funkcje i kontroluje działania zewnętrzne.
Chat Partial Mode ustawia partial:true tylko w ostatniej wiadomości asystenta. Messages bezpośrednio kontynuuje ostatnią wiadomość asystenta. Nie odtwarzaj historii wyłącznie z widocznej treści odpowiedzi.
Ograniczenia mediów
Chat przyjmuje bloki treści text, image_url i video_url. Użyj data URL base64 lub akceptowanych odwołań ms://; dowolne publiczne URL mediów nie są obsługiwane. Formaty obrazów: JPEG, PNG, GIF, WebP, BMP, HEIC i HEIF. Formaty wideo: MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV i 3GPP. Oficjalny poradnik określa łączny limit ciała żądania 100M bez osobnego limitu liczby obrazów. Obrazy 4K i wideo Full HD to zalecenia, nie wymagane limity.
Responses używa input_image.image_url z data URL. Messages używa źródła obrazu takiego jak {type:"base64",media_type:"image/png",data:"..."} albo type url z akceptowanym odwołaniem ms://. Osadzone obrazy Messages obsługują JPEG, PNG, GIF i WebP. Te formaty nie dziedziczą automatycznie bloku wideo Chat; używaj ich osobnych schematów.
Playground załącza osadzone obrazy. Dla bloków wideo i odwołań do plików używaj natywnych pól rozmowy lub edytora JSON. Przesyłanie i zarządzanie plikami nie wchodzą w zakres tych punktów generacji. ID pliku utworzonego na innym koncie nie musi być użyteczne.
Cache i użycie
Chat i Responses używają prompt_cache_key oraz prompt_cache_options:{mode:"implicit",ttl:"5m"}. TTL przyjmuje 5m lub 1h, domyślnie 5 minut. Messages używa najwyższego poziomu cache_control:{type:"ephemeral",ttl:"5m"} i opcjonalnego metadata.user_id. Zagnieżdżone znaczniki cache-control Messages są ignorowane. prompt_cache_breakpoint na poziomie treści jest niepoprawny.
Istniejący prefiks cache zachowuje pierwotny TTL po odświeżeniu. Żądanie innego czasu życia nie dowodzi jego zastosowania. Oficjalne nagłówki zapisu cache Chat podają faktyczne liczby dla 5 minut i 1 godziny. Responses może zwrócić zastosowane prompt_cache_options; Messages podaje oba liczniki TTL w usage.cache_creation.
| Format | Łączne wejście | Odczyt cache | Zapis cache |
|---|---|---|---|
| Chat | usage.prompt_tokens | prompt_tokens_details.cached_tokens | prompt_tokens_details.cache_write_tokens |
| Responses | usage.input_tokens | input_tokens_details.cached_tokens | input_tokens_details.cache_write_tokens |
| Messages | input_tokens + cache_read_input_tokens + cache_creation_input_tokens | cache_read_input_tokens | cache_creation_input_tokens |
Sumy wejścia Chat i Responses już zawierają odczyty i zapisy cache. Te kategorie oraz pozostałe wejście bez cache są rozłączne; nie dodawaj tokenów cache dwukrotnie. Wyjście obejmuje rozumowanie. Messages dzieli zapisy na ephemeral_5m_input_tokens i ephemeral_1h_input_tokens. Zobacz aktualne stawki; publiczne odpowiedzi generacji nie zawierają kwot opłat.
Strumieniowanie i ukończenie
Ustaw stream:true. Chat emituje fragmenty danych i [DONE]; stream_options.include_usage:true żąda końcowego fragmentu użycia. Responses używa nazwanych zdarzeń, np. response.output_text.delta, response.completed i response.incomplete. Messages używa message_start, zdarzeń bloków treści, message_delta i message_stop.
Samo zamknięte połączenie nie dowodzi ukończenia. Sprawdzaj natywne przyczyny zakończenia i status końcowy. Przerwany strumień może nie zawierać końcowego użycia. Zatrzymanie czytnika nie gwarantuje anulowania generacji.
Oficjalne źródła
Sprawdzono 25 października 2026 r.: poradnik Kimi K3.1 Pro, Chat, Responses, Messages, wizja i cache.
