> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Обзор Kimi K3.1 Pro

> Доступ к Kimi K3.1 Pro и режиму высокой скорости через официальный релей: выбор модели, запросы, совместимые с OpenAI, уровень рассуждения, потоковая передача, вызовы инструментов и параметры кэширования с тестовыми лимитами.

## Обзор

**Kimi K3.1 Pro** — модель Moonshot AI для рассуждений, разработки программного обеспечения, решения сложных задач и многоэтапных сценариев с tools. APIYI предоставляет модели официального релея `kimi-k3.1-pro` и `kimi-k3.1-pro-highspeed`. Обе модели используют один и тот же формат запросов; чтобы переключиться между ними, измените `model`.

> [!NOTE]
>
> **Начните с Pro, а затем выберите Highspeed, если вашему сценарию работы нужна меньшая задержка.** Обе модели всегда используют рассуждение, глубину которого задаёт `reasoning_effort`. У Highspeed выше цены на ввод, вывод и запись в кэш.

> [!WARNING]
>
> **Кэширование сроком на один час не прошло эту серию тестов и не указано как подтверждённая возможность.** Базовый чат, потоковая передача и вызовы tools прошли проверку. Официальные параметры и ограничения тестирования см. в разделе о кэшировании.

> **[Быстрый старт](#quick-start)**
>
> Отправьте запрос к Chat Completions с помощью OpenAI SDK или HTTP.

> **[Модели и цены](#model-selection-and-pricing)**
>
> Сравните Pro и Highspeed, включая стоимость кэширования.

> **[Рассуждение и tools](#tool-calls)**
>
> Выберите уровень рассуждения и сохраняйте историю вызовов tools.

> **[Кэширование контекста](#context-caching)**
>
> Ознакомьтесь с официальными параметрами кэша и ограничениями тестирования APIYI.

## Выбор модели и цены

Оплата обеих моделей рассчитывается по фактическому использованию tokens, а **текущие настроенные тарифы APIYI соответствуют официальным ценам**. Все указанные ниже тарифы приведены в **USD за 1 млн tokens**. Стоимость обычного ввода и вывода была проверена; тарифы на кэширование — это настроенные цены, а не стоимость кэширования, проверенная в ходе этого тестового запуска:

| Категория тарификации | `kimi-k3.1-pro` | `kimi-k3.1-pro-highspeed` |
| - | - | - |
| Обычный ввод | \$2.00 | \$4.00 |
| Вывод, включая рассуждение | \$10.00 | \$20.00 |
| Чтение кэша, настроенный тариф | \$0.20 | \$0.20 |
| Запись в кэш: 5 минут, настроенный тариф | \$2.00 | \$4.00 |
| Запись в кэш: 1 час, настроенный тариф | \$4.00 | \$8.00 |

> [!NOTE]
>
> Цены на модели соответствуют ценам официального поставщика и могут меняться. Эта таблица приведена для справки; определяющими являются данные на вкладке **Цены на модели** в верхней навигации: [Цены на модели](https://docs.apiyi.com/en/models/index.md).

| Модель | Рекомендуемое применение | Рекомендации по выбору |
| - | - | - |
| `kimi-k3.1-pro` | Разработка, рассуждение, обработка документов и пакетные задачи с tools | Выбор по умолчанию, если важнее всего стоимость |
| `kimi-k3.1-pro-highspeed` | Интерактивные агенты и рабочие процессы, требующие более быстрых ответов | Более высокая стоимость tokens в обмен на меньшую задержку |

### Фактическая стоимость с бонусами за пополнение

При пополнении, которое соответствует условиям [акции с бонусом 20%](https://docs.apiyi.com/ru/faq/recharge-promotions.md), каждая оплаченная единица дает 1,2 единицы доступного кредита. Таким образом, фактическая стоимость составляет `1 ÷ 1.2 ≈ 83.33%` от указанной цены.

Бонус увеличивает доступный баланс; указанные цены на модели остаются прежними. Условия участия, размеры бонусов и текущие условия акции проверяйте на странице акции.

## Проверки базовых возможностей

APIYI проверила следующие базовые сценарии для обеих моделей **2026-10-25 (UTC+8)**:

| Возможность | `kimi-k3.1-pro` | `kimi-k3.1-pro-highspeed` |
| - | - | - |
| Текстовый чат без потоковой передачи | Пройдено | Пройдено |
| Потоковая передача текста | Пройдено | Пройдено |
| Вывод объекта JSON | Пройдено | Пройдено |
| Вызовы функций и полный цикл передачи результата инструмента | Пройдено | Пройдено |
| Понимание изображений | Пройдено | Пройдено |
| Базовый запрос Responses | Пройдено | Пройдено |
| Базовый запрос Messages | Пройдено с явным указанием параметров выборки | Пройдено с явным указанием параметров выборки |
| Журналы тарификации стандартных входных и выходных данных | Соответствуют указанным тарифам | Соответствуют указанным тарифам |

В этом руководстве в основном используется Chat Completions. Для существующих интеграций Responses также можно использовать `POST /v1/responses`. В тесте изображений использовались данные Base64.

Базовые запросы к `POST /v1/messages` также прошли успешно. Явно задайте `top_p: 0.95` и `temperature: 1`, чтобы избежать ошибок преобразования параметров выборки по умолчанию.

> [!NOTE]
>
> В этих тестах проверялись базовые запросы, семантические результаты и списания за стандартные входные и выходные данные. Они не охватывают все параметры, максимальный размер контекстного окна и поведение при длительной работе. Срок хранения кэша и тарификацию необходимо проверять отдельно, как описано ниже.

## Быстрый старт

Используйте APIYI Token для вызова `POST /v1/chat/completions`. Начните с `reasoning_effort: "low"`, затем увеличьте его значение для задач, требующих более глубокого рассуждения.

```bash cURL theme={null}
curl https://api.apiyi.com/v1/chat/completions \
  -H "Authorization: Bearer $APIYI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3.1-pro",
    "messages": [
      {"role": "user", "content": "Explain the difference between Python dictionaries and lists, with one use case for each."}
    ],
    "reasoning_effort": "low",
    "max_completion_tokens": 8192
  }'
```

```python Python theme={null}
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["APIYI_API_KEY"],
    base_url="https://api.apiyi.com/v1",
    timeout=300,
)

response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[
        {"role": "user", "content": "Explain the difference between Python dictionaries and lists, with one use case for each."}
    ],
    reasoning_effort="low",
    max_completion_tokens=8192,
)

message = response.choices[0].message
print(message.content)
print(response.usage)
```

> [!TIP]
>
> Оставьте название модели в конфигурации. Чтобы использовать высокоскоростной режим, измените его на `kimi-k3.1-pro-highspeed` и повторно используйте остальную часть интеграции.

## Рассуждение и ключевые параметры

Обе модели **всегда используют рассуждение**. Управляйте глубиной с помощью `reasoning_effort`; не переносите переключатель `enable_thinking` из Kimi K2.5.

| Параметр | Использование |
| - | - |
| `reasoning_effort` | `low`, `high` или `max`; официальное значение по умолчанию — `max` |
| `max_completion_tokens` | Бюджет вывода для рассуждения и окончательного ответа вместе |
| `stream` | Установите значение `true` для потоковой передачи |
| `stream_options.include_usage` | Установите значение `true`, чтобы получать сведения об использовании в конце потоковой передачи |
| `tools` | Определите функции, которые будет выполнять ваше приложение |
| `prompt_cache_options` | Настройте неявное кэширование контекста и срок его действия |

> [!WARNING]
>
> Выделите достаточно `max_completion_tokens` для рассуждения и ответа. Если бюджет исчерпается во время рассуждения, окончательный ответ может быть пустым или неполным. Проверьте `finish_reason` и при необходимости увеличьте бюджет.

Официальные значения параметров сэмплирования фиксированы: `temperature=1`, `top_p=0.95`, `n=1`, `presence_penalty=0` и `frequency_penalty=0`. В примерах Chat Completions они не указаны; для Messages задайте параметры сэмплирования явно, как описано выше. Не переносите несовместимые настройки из другой модели.

### Чтение ответа

Окончательный ответ находится в `choices[0].message.content`. Рассуждение возвращается в `choices[0].message.reasoning_content`. Используйте `content` для ответа, а с `reasoning_content` работайте отдельно, если ваш интерфейс отображает его.

За токены рассуждения взимается плата по тарифу вывода. Оценивайте стоимость по `usage` ответа и журналам консоли, а не по видимой длине ответа.

## Потоковая передача

Рассуждение и текст ответа поступают в `delta.reasoning_content` и `delta.content` соответственно. В последнем фрагменте с данными об использовании массив `choices` может быть пустым, поэтому проверьте `chunk.usage` перед чтением вариантов ответа.

```python theme={null}
stream = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[{"role": "user", "content": "Design a task queue with retry handling."}],
    reasoning_effort="low",
    max_completion_tokens=8192,
    stream=True,
    stream_options={"include_usage": True},
)

for chunk in stream:
    if chunk.usage is not None:
        print("\nUsage:", chunk.usage)
    if not chunk.choices:
        continue

    delta = chunk.choices[0].delta
    reasoning = getattr(delta, "reasoning_content", None)
    if reasoning:
        # Render reasoning separately from the final answer.
        pass
    if delta.content:
        print(delta.content, end="", flush=True)
```

## Вызовы инструментов

Модель генерирует имена функций и аргументы, а ваше приложение выполняет их. Когда модель возвращает `tool_calls`, добавьте **полное сообщение ассистента**, включая `reasoning_content` и `tool_calls`, в историю. Затем добавьте каждый результат инструмента с соответствующим ему `tool_call_id` и отправьте следующий запрос.

```python theme={null}
import json

messages = [{"role": "user", "content": "Check the delivery status of order A100."}]
tools = [{
    "type": "function",
    "function": {
        "name": "get_order_status",
        "description": "Get the delivery status of an order",
        "parameters": {
            "type": "object",
            "properties": {"order_id": {"type": "string"}},
            "required": ["order_id"],
            "additionalProperties": False,
        },
    },
}]

response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=messages,
    tools=tools,
    reasoning_effort="low",
    max_completion_tokens=8192,
)
message = response.choices[0].message
messages.append(message.model_dump(exclude_none=True))

if message.tool_calls:
    for call in message.tool_calls:
        arguments = json.loads(call.function.arguments)
        # Example result; validate arguments and query your order service in production.
        result = {"order_id": arguments["order_id"], "status": "shipped"}
        messages.append({
            "role": "tool",
            "tool_call_id": call.id,
            "content": json.dumps(result),
        })

    final = client.chat.completions.create(
        model="kimi-k3.1-pro",
        messages=messages,
        tools=tools,
        reasoning_effort="low",
        max_completion_tokens=8192,
    )
    print(final.choices[0].message.content)
else:
    print(message.content)
```

> [!WARNING]
>
> Сохраняйте полное сообщение ассистента в циклах вызова инструментов. Удаление `reasoning_content` или `tool_calls` может нарушить последующие рассуждения или сопоставление результатов инструментов. Перед выполнением запрошенной операции проверяйте имена инструментов, аргументы и разрешения на выполнение.

## Кэширование контекста

Официальный механизм кэширования предназначен для повторного использования длинных системных инструкций, справочных документов и контекста кода. Сначала указывайте стабильное содержимое, а в конце — изменяющиеся вопросы.

> [!WARNING]
>
> **Кэширование на один час не прошло этот тестовый запуск и не является подтверждённой возможностью APIYI.** Обе модели тестировались с отдельными длинными префиксами для политик на 5 минут и на 1 час. Запросы выполнялись успешно, но в ответах не было эффективных счётчиков чтения из кэша или записи в кэш. Ни четыре запроса, повторённые примерно через 5,5 минуты, ни последующие повторы с короткими интервалами не показали попаданий в кэш. В логах запросов с политикой на 1 час отображались списания за обычные входные данные, а не за запись в кэш на 1 час.

Эти результаты описывают данный тестовый запуск; они не доказывают, что кэширование не поддерживается для всех запросов. Учитывайте списания за обычные входные данные, пока ваши собственные запросы не покажут использование кэша и соответствующие записи в тарификации. Параметры и поведение ниже соответствуют официальному формату.

### Выбор срока хранения кэша

В Chat Completions используется **поле запроса верхнего уровня** `prompt_cache_options`. По умолчанию срок хранения составляет 5 минут. Чтобы запросить срок хранения в 1 час:

```python theme={null}
response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[
        {"role": "system", "content": LONG_STABLE_CONTEXT},
        {"role": "user", "content": "List three key findings from the reference material."},
    ],
    reasoning_effort="low",
    max_completion_tokens=8192,
    extra_body={
        "prompt_cache_options": {"mode": "implicit", "ttl": "1h"}
    },
)
print(response.usage)
```

`LONG_STABLE_CONTEXT` обозначает длинный текст, который вы хотите использовать повторно. Оставляйте этот префикс неизменным в последующих запросах, заменяя только последний вопрос.

> [!NOTE]
>
> **Срок хранения определяется при первой записи в кэш.** Передача `ttl: "1h"` для существующего кэша на 5 минут не продлевает его срок хранения. При попадании в кэш исходный срок хранения обновляется. Сравнивайте политики, используя для каждой отдельный новый префикс.

### Как тарифицируются чтение и запись

* **Чтение из кэша:** за повторно используемые токены префикса взимается плата по тарифу чтения из кэша.
* **Запись в кэш:** за новые токены префикса, добавленные в кэш, взимается плата по тарифу записи на 5 минут или на 1 час — в зависимости от выбранного срока.
* **Обычные входные данные:** за данные вне кэшированной части взимается плата по обычному тарифу для входных данных.
* **Выходные данные:** за рассуждение и итоговый ответ взимается плата по тарифу для выходных данных.

Это официальные категории тарификации. В ходе этого тестового запуска были подтверждены списания за обычные входные и выходные данные, но не удалось подтвердить расчёты за чтение из кэша или запись в кэш. Сравнивайте ответ `usage`, поля чтения из кэша и создания кэша, а также логи тарификации в консоли; одного лишь принятия параметра недостаточно.

## Технические характеристики и советы по интеграции

| Пункт | Подробности |
| - | - |
| Идентификаторы моделей | `kimi-k3.1-pro`, `kimi-k3.1-pro-highspeed` |
| Официальное контекстное окно | 1,048,576 tokens |
| Основной эндпоинт в этом руководстве | `POST https://api.apiyi.com/v1/chat/completions` |
| Рассуждение | Всегда включено; выберите `low`, `high` или `max` с помощью `reasoning_effort` |
| Поле итогового ответа | `choices[0].message.content` |
| Поле рассуждения | `choices[0].message.reasoning_content` |
| Официальные параметры кэширования | По умолчанию — 5 минут; можно запросить 1 час; см. приведённые выше ограничения проверки |

**1. Начните с низкого уровня усилий на рассуждение**

Отправьте короткий запрос, чтобы проверить имя модели, токен и парсер ответа, прежде чем добавлять длинный контекст.

**2. Заложите бюджет на рассуждение**

Настройте `max_completion_tokens` с учётом использования и `finish_reason`. Увеличьте `reasoning_effort` для более сложных задач.

**3. Используйте потоковую передачу для длительных задач**

Обрабатывайте текст рассуждений и ответа отдельно, проверяйте итоговые данные об использовании и задавайте достаточные тайм-ауты в клиентах и прокси.

**4. Проверьте использование кэша перед масштабированием**

Повторите запросы с неизменным длинным префиксом, а затем сравните данные об использовании кэша и журналы тарификации, чтобы убедиться, что в вашем рабочем процессе есть попадания в кэш.

## FAQ

> **Что меняется при выборе «Высокая скорость»?**
>
> Обе модели используют одинаковый формат интеграции. Режим «Высокая скорость» обеспечивает меньшую задержку при более высокой стоимости токенов. Фактическая скорость зависит от длины промпта, параметра reasoning\_effort, длины ответа и текущей нагрузки; оцените её на собственных рабочих нагрузках.

> **Можно ли отключить рассуждение, как это было возможно с Kimi K2.5?**
>
> Модели K3.1 Pro всегда используют рассуждение. Выберите `reasoning_effort: "low"`, чтобы управлять дополнительными затратами, а не использовать прежний параметр `enable_thinking`.

> **Почему объём тарифицируемого вывода превышает объём видимого ответа?**
>
> В usage вывода входят токены рассуждения. Длина видимого ответа не отражает общий объём использования вывода; проверьте `usage` в ответе и журналы консоли.

> **Можно ли изменить срок действия существующего кэша на один час, задав ttl равным 1h?**
>
> Согласно официальному механизму, существующий кэш сохраняет первоначальный срок действия, поэтому для `ttl: "1h"` требуется новый префикс. Тесты APIYI не подтвердили ни хранение в течение одного часа, ни плату за запись; успешное принятие параметра не доказывает наличие поддержки.

> **Как бонус 20% при пополнении влияет на стоимость?**
>
> При пополнении, соответствующем условиям, вы получаете кредит в размере 1,2 от внесённой суммы, поэтому фактическая стоимость составляет `1 ÷ 1.2 ≈ 83.33%` от цены по прайс-листу. Условия участия см. в [условиях акции](https://docs.apiyi.com/ru/faq/recharge-promotions.md).

## Связанные документы

* [Руководство по API](https://docs.apiyi.com/ru/api-manual.md)
* [Вызов функций](https://docs.apiyi.com/ru/api-capabilities/openai/function-calling.md)
* [Ответы моделей с рассуждением](https://docs.apiyi.com/ru/api-capabilities/openai/reasoning-models.md)
* [Тарификация моделей](https://docs.apiyi.com/en/models/index.md)
* [Бонусы за пополнение](https://docs.apiyi.com/ru/faq/recharge-promotions.md)

Официальные справочные материалы: `platform.moonshot.ai/docs/guide/kimi-k3-1-pro-quickstart`, `platform.kimi.ai/docs/guide/context-caching` и `platform.moonshot.ai/docs/pricing/chat`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.