Kimi K3: Быстрый старт для работы с длинным контекстом через API

Kimi K3: Быстрый старт для работы с длинным контекстом через API

Kimi K3 доступен через серверный API Novita AI с идентификатором модели moonshotai/kimi-k3, эндпоинтом чата, совместимым с OpenAI, окном контекста на 1 048 576 токенов и максимальным объемом вывода в 1 048 576 токенов, указанными на странице модели. Этот краткий гайд покажет, как аутентифицироваться, отправить первый запрос, разобрать ответ и спланировать тарификацию токенов Kimi K3, прежде чем подключать его к более крупному приложению.

Когда использовать этот гайд

Используйте это руководство, когда хотите протестировать Kimi K3 из приложения, которое уже «понимает» формат API OpenAI. Это практическая отправная точка для рабочих процессов в области программной инженерии с длинным контекстом, анализа документов, исследований и рассуждений, где запрос может содержать значительно больше контекста, чем типичный промпт в чате.

Страница модели Kimi K3 на Novita описывает модель с 2,8 триллионами параметров, нативным пониманием изображений и окном контекста в 1M токенов. Там же указаны ввод текста, изображений и видео с выводом текста, а также серверный доступ, структурированный вывод, рассуждения и вызов функций. Воспринимайте это как возможности для проверки вашей предполагаемой формы запроса, а не как гарантию, что каждая функция SDK OpenAI ведет себя одинаково для разных моделей.

Это не сравнительный бенчмарк. Цель — получить один аутентифицированный запрос, а затем предоставить достаточно операционных деталей, чтобы вы могли решить, подходит ли Kimi K3 для вашей задачи.

Шаг 1: Получите ключ API Novita

Создайте или выберите аккаунт Novita AI, откройте настройки ключа API и создайте ключ для использования на стороне сервера. По возможности не храните ключ в клиентских сборках, публичных репозиториях, блокнотах, доступных за пределами вашей команды, и в истории командной оболочки.

Установите ключ как переменную окружения перед запуском любого из примеров:

export NOVITA_API_KEY="your_api_key_here"

Используйте проектный или временный ключ, если это поддерживается настройками вашего аккаунта. Меняйте ключ после публичной демонстрации или при любом подозрении на компрометацию.

Шаг 2: Подтвердите идентификатор модели и эндпоинт

Держите детали подключения вместе, чтобы отображаемое имя случайно не заменило фактический идентификатор модели:

Поле Значение
Идентификатор модели moonshotai/kimi-k3
Базовый URL https://api.novita.ai/openai/v1
Эндпоинт чата https://api.novita.ai/openai/v1/chat/completions
Окно контекста 1 048 576 токенов
Максимальный объем вывода 1 048 576 токенов
Возможности ввода Текст, изображение, видео
Возможность вывода Текст
Тип доступа Серверный API

Страница модели Kimi K3 является источником истины для получения информации о доступности, текущих лимитах, возможностях и ценах. Перепроверьте ее перед развертыванием, так как конфигурации моделей и цены могут меняться.

Шаг 3: Отправьте свой первый запрос

Начните с короткого текстового запроса. Небольшой промпт упрощает отделение проблем аутентификации или маршрутизации от проблем на уровне самого промпта приложения.

Например, попросите Kimi K3 вернуть короткий чек-лист для реализации:

Перечисли три самых больших риска при добавлении повторных попыток в стриминговый API-клиент. Верни по одному предложению на каждый риск.

Начните со скромного значения max_tokens. Большой лимит вывода полезен только после того, как базовый запрос, разбор ответа и обработка ошибок заработают корректно.

Шаг 4: Прочитайте ответ

В ответе, совместимом с OpenAI, текст ассистента находится в choices[0].message.content для стандартного нестримингового завершения чата. Сохраняйте метаданные ответа и поля использования в своем приложении, если вам нужна трассировка запросов или учет затрат.

Для промышленной интеграции записывайте как минимум:

  • Идентификатор модели и временную метку запроса.
  • Идентификатор запроса провайдера, если он возвращается клиентом или в заголовках ответа.
  • Использование токенов промпта и завершения.
  • Количество повторных попыток и HTTP-статус.
  • Использовался ли только текст или мультимодальный контент.

Как только первый вызов будет успешным, протестируйте промпты, похожие на вашу реальную нагрузку: длинные исходные файлы, несколько документов, схему инструмента или контракт со структурированным ответом. Успешный короткий промпт подтверждает связь, а не качество продакшена.

Шаг 5: Проверьте цены, лимиты и распространенные ошибки

На странице модели Novita указаны цены для серверного доступа: $3 за миллион входных токенов, $0.30 за миллион токенов из кэша и $15 за миллион выходных токенов для Kimi K3. В вашу оценку должны входить обе стороны запроса, повторные попытки и объем контекста, который вы отправляете многократно.

На странице также указаны уровни частоты запросов:

Уровень Запросов в минуту Токенов в минуту
T1 30 50 000 000
T2 100 50 000 000
T3 1 000 50 000 000
T4 3 000 50 000 000
T5 6 000 50 000 000

Применимый уровень зависит от вашего аккаунта. Не рассматривайте таблицу как обещание, что каждый проект начинается с T1 или что любая нагрузка может использовать максимальную отображаемую скорость.

Распространенные ошибки при первой интеграции включают:

  • Отсутствие заголовка Authorization: Bearer или установка неправильной переменной окружения.
  • Отправка kimi-k3 или маркетингового названия вместо moonshotai/kimi-k3.
  • Использование https://api.novita.ai/openai в качестве базового URL SDK, когда клиент ожидает версионированный путь .../openai/v1.
  • Отправка тела запроса, которое не является валидным JSON.
  • Установка лимита вывода, превышающего возможности вашего приложения по хранению или обработке.
  • Предположение, что мультимодальное тело запроса идентично для всех SDK или семейств моделей.

Пример на Python

Установите Python-клиент OpenAI в вашей среде, затем запустите этот пример с установленной переменной NOVITA_API_KEY:

pip install openai
import os

from openai import OpenAI


client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai/v1",
)

response = client.chat.completions.create(
    model="moonshotai/kimi-k3",
    messages=[
        {
            "role": "system",
            "content": "You are a concise engineering assistant.",
        },
        {
            "role": "user",
            "content": "List three risks when adding retries to a streaming API client.",
        },
    ],
    temperature=0.2,
    max_tokens=300,
)

print(response.choices[0].message.content)

Пример намеренно использует короткое завершение. Увеличивайте бюджет контекста и вывода только после того, как добавите тайм-аут, повторные попытки, логирование и отслеживание использования, соответствующие вашему приложению.

Пример cURL

Тот же запрос можно протестировать без SDK:

payload='{
  "model": "moonshotai/kimi-k3",
  "messages": [
    {
      "role": "system",
      "content": "You are a concise engineering assistant."
    },
    {
      "role": "user",
      "content": "List three risks when adding retries to a streaming API client."
    }
  ],
  "temperature": 0.2,
  "max_tokens": 300
}'

curl --request POST "https://api.novita.ai/openai/v1/chat/completions" \
  --header "Authorization: Bearer $NOVITA_API_KEY" \
  --header "Content-Type: application/json" \
  --data "$payload"

Ключевые параметры

Параметр Что он контролирует Разумное первое значение
model Размещенная модель, отвечающая на запрос moonshotai/kimi-k3
messages Системные, пользовательские и ассистентские реплики диалога Одно системное и одно пользовательское сообщение
temperature Вариативность вывода 0.2 для повторяемых тестов
max_tokens Максимальный генерируемый вывод 300, затем осознанно увеличивайте
stream Приходит ли вывод инкрементально Оставьте отключенным при отладке
tools Определения функций, доступных модели Добавляйте после того, как заработает базовый чат
response_format Требования к структурированному выводу Проверьте возвращаемый JSON перед использованием

Для ввода изображений или видео перед добавлением в приложение подтвердите текущий формат запроса в документации модели и API. Надписи о возможностях на странице модели не заменяют тестирование точной структуры контента, используемой вашей клиентской библиотекой.

Устранение неполадок

Сбой аутентификации

Проверьте, что NOVITA_API_KEY установлена в том же процессе, который выполняет запрос. Убедитесь, что в заголовке используется Bearer, а не параметр запроса или другое имя учетных данных.

Модель не найдена

Используйте точный идентификатор moonshotai/kimi-k3. Отображаемое имя модели не является допустимой заменой для идентификатора модели в API.

Запрос отклонен

Уменьшите значения промпта и max_tokens, проверьте тело JSON на валидность и убедитесь, что эндпоинт — /openai/v1/chat/completions. Если запрос использует изображения, видео, инструменты или структурированный вывод, удалите эти поля и добавляйте их по одному.

Запросы медленные или ограничены по частоте

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

Неполный ответ

Проверьте причину завершения и данные об использовании. Маленькое значение max_tokens может оборвать длинный ответ; его увеличение также увеличивает объем вывода, за который ваше приложение может платить и который должно обрабатывать.

Часто задаваемые вопросы

Какой идентификатор модели отправлять для Kimi K3?

Отправляйте moonshotai/kimi-k3 в поле model.

Какой эндпоинт использует клиент OpenAI?

Установите базовый URL SDK в значение https://api.novita.ai/openai/v1. Запрос на завершение чата отправляется на https://api.novita.ai/openai/v1/chat/completions.

Насколько велико окно контекста Kimi K3?

На странице модели Novita указано окно контекста в 1 048 576 токенов и максимальный объем вывода в 1 048 576 токенов. Перед развертыванием проверьте страницу на наличие обновлений.

Бесплатно ли вызывать Kimi K3?

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

Стоит ли начинать с мультимодального запроса?

Нет. Начните с небольшого текстового запроса, чтобы аутентификация, выбор эндпоинта, разбор ответа и обработка ошибок были легко проверяемы. Добавляйте мультимодальные входные данные после того, как этот путь станет стабильным.

Рекомендуемые статьи

Источники