Индекс на документацията
Изтеглете пълния индекс на документацията на: https://docs.aihubmix.com/llms.txt
Използвайте този файл, за да откриете всички налични страници, преди да продължите с изследването.
Юли 2026 ръководство за Kimi K3: максимално усилие за разсъждение, история на мисленето, динамично зареждане на инструменти, структурирани изходи, автоматично кеширане, частичен префикс и входове за визуализация.

Тази статия обхваща новите параметри и бележки за употреба на Kimi K3. На AIHubMix, K3 е наличен чрез API за завършване на чат, отговори и съвместими съобщения с Claude. Вижте също: Официална документация на платформата Moonshot.
„Потвърдените“ заключения и примерни отговори в секциите идват от реални извиквания, направени на 2026-07-17 чрез API на AIHubMix (Завършвания на чат / Отговори / Съобщения).
1. Спецификации на модела в обобщение
| Артикул | Стойност |
|---|---|
| Контекстен прозорец | 1M токена |
| Максимален изход | max_completion_tokens по подразбиране е 131,072, до 1,048,576 |
| Входни модалности | Текст, изображения (за видео вход вижте официалната документация на Moonshot) |
| Режим на мислене | Включен по подразбиране; reasoning_effort поддържа само "max" |
| Последователности за спиране | stop позволява максимум 5 записа, всеки не по-дълъг от 32 байта |
Потвърдено: и двете ограничения наstopса валидирани, а превишаването на което и да е от тях връща 400; API за съобщения прилага същата валидация къмstop_sequences.
❗ Когато се достигне последователност за спиране, API за съобщения не следва семантиката на Anthropic: при тестване,stop_reasonе"end_turn"(вместо"stop_sequence"),stop_sequenceеnull, а видимият текст преди спирането може да е празен. Клиентите, които разчитат на тези две полета за откриване на отрязване, трябва да вземат под внимание.
# спиране с 6 записа / запис от 33 байта -> HTTP 400
"Невалидна заявка: масивът за спиране е твърде дълъг. Очакваше се масив с максимална дължина 5, но получи масив с дължина 6 вместо това"
"Невалидна заявка: последователността за спиране не трябва да е по-дълга от 32, но получи 33 вместо това"
2. Режим на мислене: reasoning_effort поддържа само max
Мисленето на K3 е включено по подразбиране, а reasoning_effort поддържа само едно ниво: "max".
Многообратните разговори трябва да предават историята на мисленето обратно дословно: според официалната документация на Moonshot, K3 е обучен с запазено мислене, така че в многообратните разговори предишното съобщение на асистента трябва да бъде предадено пълно и неизменено (включително съдържанието на мисленето). Липсващата история на мисленето води до нестабилно качество на изхода. Ако използвате рамка за управление на сесии или прокси слой, потвърдете, че съдържанието на мисленето се предава обратно без съкращения.
Съдържанието на мисленето се връща в полето `reasoning_content` на отговора; в многообратните разговори предавайте предишното съобщение на асистента (включително `reasoning_content`) обратно дословно.
```text theme={null}
from openai import OpenAI
client = OpenAI(
base_url="https://aihubmix.com/v1",
api_key="<AIHUBMIX_API_KEY>",
)
completion = client.chat.completions.create(
model="kimi-k3",
reasoning_effort="max",
messages=[
{"role": "user", "content": "Слимак е на дъното на 10-метров кладенец. Всеки ден се изкачва с 3 метра, но всяка нощ се плъзга назад с 2 метра. Колко дни му отнема да достигне върха?"}
],
)
print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content)
```
```text theme={null}
# Многообратен: предавайте предишното съобщение на асистента обратно дословно
messages = [
{"role": "user", "content": "Каква е столицата на Франция?"},
{"role": "assistant", "content": "Париж.", "reasoning_content": "<reasoning_content от предишния отговор>"},
{"role": "user", "content": "А населението й?"},
]
```
> **Потвърдено**: отговорът връща `reasoning_content`; след предаване на предишното съобщение на асистента (включително `reasoning_content`) обратно дословно, последващите обрати отговарят нормално.
Съдържанието на мисленето се връща като изходен елемент `reasoning`; в многообратните разговори добавете изходните елементи от предишния ход (`reasoning` + `message`) обратно в `input` дословно.
```text theme={null}
from openai import OpenAI
client = OpenAI(
base_url="https://aihubmix.com/v1",
api_key="<AIHUBMIX_API_KEY>",
)
response = client.responses.create(
model="kimi-k3",
input="Отговорете с една дума: столица на Франция",
)
# Наблюдавани типове изходни елементи: ["reasoning", "message"]; текст: "Париж"
# Многообратен: input = [първо съобщение на потребителя] + response.output + [следващо съобщение на потребителя]
# Наблюдаван втори отговор с предадени изходни елементи: "Берлин"
```
Съдържанието на мисленето се връща като местни блокове `thinking`; в многообратните разговори предавайте обратно дословно предишните блокове на асистента (включително блоковете за мислене).
```text theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="<AIHUBMIX_API_KEY>",
base_url="https://aihubmix.com"
)
response = client.messages.create(
model="kimi-k3",
max_tokens=4096,
messages=[
{"role": "user", "content": "Отговорете с една дума: столица на Франция"}
],
)
# Наблюдавани типове блокове на отговора: ["thinking", "text"]; текст: "Париж"
# Многообратен: предавайте response.content обратно дословно като съобщение на асистента
```
3. Параметрите за вземане на проби са фиксирани
Параметрите за вземане на проби на K3 са фиксирани от доставчика: temperature 1.0, top_p 0.95, n 1 и presence_penalty / frequency_penalty 0. Официалната препоръка е да се пропуснат тези параметри от заявките.
Забележка: фиксираните стойности за вземане на проби са част от официалната спецификация и не могат да бъдат валидирани от сигналите на отговора; следвайте официалната препоръка и пропуснете тези параметри.
4. Извикване на инструменти и динамично зареждане на инструменти
tools поддържа до 128 инструмента; tool_choice поддържа принуждаване и деактивиране на извиквания на инструменти. K3 също така поддържа динамично зареждане на инструменти: инжектиране на нови инструменти по време на разговора чрез полето tools на системно съобщение (съобщение с форма, специфична за API за чат).
`tool_choice` поддържа `auto` / `none` / `required`; `required` принуждава модела да извика инструмент. Динамичното зареждане на инструменти: системното съобщение за инжектиране на инструменти не носи `content`, инжектираните инструменти влизат в сила за последващи обрати, а съобщението трябва да бъде включено отново във всяка заявка.
```text theme={null}
messages = [
{"role": "system", "content": "Вие сте полезен асистент."},
{"role": "user", "content": "Здравей."},
{"role": "assistant", "content": "Здравейте, как мога да ви помогна?"},
# Инжектиране на нов инструмент по време на разговора: само поле tools, без съдържание
{
"role": "system",
"tools": [
{
"type": "function",
"function": {
"name": "get_time",
"description": "Вземете текущото време",
"parameters": {"type": "object", "properties": {}},
},
}
],
},
{"role": "user", "content": "Колко е сега?"}
]
```
```text theme={null}
# tool_choice="required" с подканата "Здравей" -> моделът е принуден да извика инструмента
"finish_reason": "tool_calls",
"tool_calls": [{"function": {"name": "get_weather", "arguments": "{\"city\":\"New York\"}"}}]
```
> **Потвърдено**: `tool_choice: "required"` принуждава извикване на инструмент дори за несвързани подканки; `"none"` потиска извиквания на инструменти; инструменти, инжектирани по време на разговора чрез системно съобщение без `content`, могат да бъдат извиквани нормално.
Определенията на инструментите използват плоска структура (`name` на най-високо ниво); принуждаването на извикване също използва `tool_choice: "required"`, а извикванията се връщат като изходни елементи `function_call`. Поддръжката за динамично зареждане на инструменти е в процес на разработка; за сега, декларирайте всички инструменти в основния параметър `tools`.
```text theme={null}
response = client.responses.create(
model="kimi-k3",
input="Здравей",
tools=[{
"type": "function",
"name": "get_weather",
"description": "Вземете времето за град",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
tool_choice="required",
)
# Наблюдаваният изход съдържа: {"type": "function_call", "name": "get_weather", "arguments": "{\"city\":\"Лондон\"}"}
```
Инструментите използват формата на Anthropic (`input_schema`); принуждавайте извикване с `tool_choice: {"type": "any"}` и деактивирайте извиквания с `{"type": "none"}`. ❗ **Официалният крайна точка на Kimi K3 за съобщения (съвместима с Anthropic) не поддържа динамично зареждане на инструменти**: при тестване, инжектираното съобщение връща 200, но инжектираният инструмент няма ефект (моделът не може да го извика). Декларирайте всички инструменти в основния параметър `tools`.
```text theme={null}
response = client.messages.create(
model="kimi-k3",
max_tokens=4096,
tools=[{
"name": "get_weather",
"description": "Вземете времето за град",
"input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
tool_choice={"type": "any"},
messages=[{"role": "user", "content": "Здравей"}],
)
# Наблюдавано: stop_reason "tool_use"; съдържанието съдържа блок за tool_use, извикващ get_weather
```
5. Структуриран изход
Структурираният изход кара модела да връща съдържание, което строго отговаря на дадена JSON схема.
`response_format` поддържа `json_schema` с режим `strict`.
```text theme={null}
completion = client.chat.completions.create(
model="kimi-k3",
messages=[
{"role": "user", "content": "Париж е столицата на Франция. Извлечете името на града."}
],
response_format={
"type": "json_schema",
"json_schema": {
"name": "extract",
"strict": True,
"schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
},
)
# Наблюдавано съдържание на отговора: {"city":"Париж"}
```
> **Потвърдено**: изходът е валиден JSON, отговарящ на схемата.
Структурираният изход се декларира чрез `text.format`.
```text theme={null}
response = client.responses.create(
model="kimi-k3",
input="Париж е столицата на Франция. Извлечете името на града.",
text={
"format": {
"type": "json_schema",
"name": "extract",
"strict": True,
"schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}
},
)
# Наблюдаван текст на изхода: {"city":"Париж"}
```
❗ **Официалният крайна точка на Kimi K3 за съобщения (съвместима с Anthropic) не поддържа структуриран изход**: полетата за структурирани изходи се игнорират безшумно — заявката връща HTTP 200 с текст с произволна форма, без грешка или известие за резервен вариант, а последващото JSON парсване ще се провали. Когато имате нужда от структуриран изход, използвайте API за завършване на чат или отговори.
6. Кеширането на контекста е автоматично
Кеширането на контекста на K3 е включено автоматично, без да са необходими параметри. Когато повторен дълъг префикс удари кеша, количеството на удара се отчита в употребата (името на полето варира в зависимост от API). Цените за кеша са на страницата на модела.
```text theme={null} # употреба на второто извикване с идентичен дълъг префикс "prompt_tokens_details": {"cached_tokens": 1536} ```
> **Потвърдено**: второто запитване с идентичен дълъг префикс отчита удара в `usage.prompt_tokens_details.cached_tokens`.
```text theme={null} # употреба на второто извикване на отговори с идентични дълги инструкции "input_tokens_details": {"cached_tokens": 1536} ``` ```text theme={null} # употреба на второто извикване на съобщения с идентичен дълъг системен подкан "cache_read_input_tokens": 1536 ```
7. partial Завършване на префикс
Завършването на префикс кара модела да продължи да генерира от даден префикс, което е подходящо за завършване на код и изход с контрол на формата.
Предайте `"partial": true` в последното съобщение на асистента.
```text theme={null}
messages = [
{"role": "user", "content": "Напишете хайку за морето."},
{"role": "assistant", "content": "Вълните се сгъват в пяна,", "partial": True},
]
# Префикс: "Вълните се сгъват в пяна," -> продължението, върнато от модела
# солта виси във въздуха—
# луната тегли прилива у дома.
```
> **Потвърдено**: генерирането продължава от дадения префикс без да го повтаря.
Предайте префикса като съобщение на асистента в края на масива `input`; не е необходим параметър `partial`.
```text theme={null}
response = client.responses.create(
model="kimi-k3",
input=[
{"role": "user", "content": "Напишете хайку за морето."},
{"role": "assistant", "content": "Вълните се сгъват в пяна,"},
],
)
# Наблюдавано продължение: "солта виси във въздуха— / луната тегли прилива у дома."
```
Същата способност се постига с родния предварителен запълващ механизъм на протокола, без параметър `partial` — предайте префикса като последно съобщение на асистента.
```text theme={null}
response = client.messages.create(
model="kimi-k3",
max_tokens=4096,
messages=[
{"role": "user", "content": "Напишете хайку за морето."},
{"role": "assistant", "content": "Вълните се сгъват в пяна,"},
],
)
# Наблюдавано продължение: "соленият вятър носи вика на чайките— / приливът тегли ..."
```
8. Вход за визуализация
Изображенията се предават като base64; форматът на съдържанието варира в зависимост от API.
```text theme={null} messages = [ { "role": "user", "content": [ {"type": "text", "text": "Какъв е доминиращият цвят на това изображение? Една дума."}, {"type": "image_url", "image_url": {"url": "data:image/png;base64,"}}, ], } ]
# Наблюдавано съдържание на отговора: "Червен" (вход: 64x64 солиден червен PNG)
```
> **Потвърдено**: входът на изображение в base64 работи и моделът правилно описва тестовото изображение.
```text theme={null} input = [ { "role": "user", "content": [ {"type": "input_text", "text": "Какъв е доминиращият цвят на това изображение? Една дума."}, {"type": "input_image", "image_url": "data:image/png;base64,"}, ], } ]
# Наблюдаван текст на изхода: "Червен"
```
```text theme={null} messages = [ { "role": "user", "content": [ {"type": "text", "text": "Какъв е доминиращият цвят на това изображение? Една дума."}, {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": ""}}, ], } ]
# Наблюдаван текст на отговора: "Червен"
```
9. Потвърдена справка: латентност и употреба на дълга задача с едно извикване
Мисленето на K3 е фиксирано на максимално ниво, така че единичните заявки за сложни задачи отнемат значително повече време в сравнение с типичните модели. Измерените данни от задача за генериране на HTML игра с един файл (една подканваща с референтно изображение, генерирана в един ход без итерация): единичната заявка отне 2,541 секунди (около 42 минути), с 74,994 токена за завършване, от които 54,486 (73%) бяха токени за мислене; крайният изход беше 1,275 реда директно изпълним код, с finish_reason stop.
Препоръки за клиентската страна:
- Настройте таймаутите на клиента на минути или по-дълго и предпочитайте стрийминг за дълги задачи;
- Оставете достатъчно пространство в
max_completion_tokens— в този случай само мисленето е консумирало 54,486 токена.
10. Матрица на поддръжка на възможности × API
Всяка клетка в таблицата по-долу беше потвърдена на 2026-07-17 чрез реални извиквания към производствените API на AIHubMix; всяка клетка показва синтаксиса на параметъра / полето за съответния API.
| Възможност | Завършвания на чат | Отговори | Съобщения |
|---|---|---|---|
| Съдържание на мисленето в отговора | ✅ reasoning_content поле |
✅ reasoning изходен елемент |
✅ thinking блок за съдържание |
| Предаване на историята на мисленето | ✅ съобщение на асистента предадено обратно дословно | ✅ изходни елементи предадени обратно дословно | ✅ блокове на съдържанието предадени обратно дословно |
| Принуждаване / деактивиране на извиквания на инструменти | ✅ tool_choice: "required" / "none" |
✅ tool_choice: "required" |
✅ {"type": "any"} / {"type": "none"} |
| Динамично зареждане на инструменти | ✅ системно съобщение с tools (без content) |
➖ Поддръжка в процес на разработка | ❗ Неподдържано на официалния крайна точка за съобщения (съвместима с Anthropic) |
| Структуриран изход | ✅ response_format (json_schema + strict) |
✅ text.format (json_schema) |
❗ Неподдържано на официалния крайна точка; полета са безшумно игнорирани (200 + текст с произволна форма) — използвайте Chat / Responses вместо това |
| Автоматично измерване на кеш-ударите | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ usage.cache_read_input_tokens |
| Завършване на префикс | ✅ "partial": true |
✅ предварително запълване на асистента | ✅ предварително запълване на асистента (родно за протокола) |
| Вход за визуализация | ✅ image_url (base64) |
✅ input_image (base64) |
✅ image блок за съдържание (base64) |
| Последователности за спиране | ✅ stop (ограничения валидирани) |
➖ Поддръжка в процес на разработка | ❗ stop_sequences ограниченията са валидирани идентично, но при удар нито stop_reason: "stop_sequence", нито стойността на stop_sequence се връща |
ЧЗВ
Кои API поддържа K3 на AIHubMix?
Завършвания на чат (/v1/chat/completions), Отговори (/v1/responses) и съвместимото API за съобщения с Claude (/v1/messages).
Може ли мисленето да бъде деактивирано или намалено?
Не. Мисленето на K3 е включено по подразбиране, а reasoning_effort поддържа само единственото ниво "max".
Защо reasoning_content трябва да бъде предадено обратно в многообратни разговори?
K3 е обучен с запазено мислене; Moonshot изисква предишното съобщение на асистента да бъде предадено обратно пълно и неизменено. Липсващата история на мисленето води до нестабилно качество на изхода.
Какви са ограниченията на параметъра stop?
Максимум 5 последователности за спиране, всяка не по-дълга от 32 байта; превишаването на което и да е ограничение връща грешка 400.
Поддържа ли API за съобщения структуриран изход?
❗ Не. Официалният крайна точка на Kimi K3 за съобщения (съвместима с Anthropic) безшумно игнорира полетата за структурирани изходи (въртайки 200 с текст с произволна форма и без грешка). За структурирани изходи, използвайте response_format на Завършвания на чат или text.format на Отговори.
Защо единичните заявки на K3 отнемат толкова много време?
Мисленето на K3 е фиксирано на максимално ниво, а токените за мислене съставляват голям дял при сложни задачи (73% от токените за завършване в измерения случай). Настройте таймаутите на клиента на минути или по-дълго и използвайте стрийминг.
За цени и статус в реално време, вижте страницата на модела Kimi K3; за повече модели, посетете галерията на модели.
Последно обновление: 2026-07-17