
Создаете ли вы чат-бота с ИИ или добавляете в приложение диалоговые функции, важно понимать, как ИИ обрабатывает разговоры. Chat Completion API позволяет это сделать, соединяя приложения с моделями ИИ для генерации релевантных, похожих на человеческие ответов. Благодаря интеграции с Python, потоковой передаче и вызову инструментов разработчики могут создавать более интерактивные приложения. Разберем, как это работает и используется, а также как поставщики вроде Kimi API поддерживают гибкую разработку с ИИ.
Что такое Chat Completions API
Chat Completions API — это интерфейс, который позволяет приложениям отправлять модели ИИ последовательность сообщений и получать ответ ассистента; он поддерживает как однократные, так и многошаговые диалоги. Например, с помощью Kimi K3.1 Pro можно получить ответ на вопрос о декораторах Python, а затем задать уточняющий вопрос:
Первый запрос: Отправьте сообщение пользователя: «Что такое декоратор Python?» Kimi вернет сообщение ассистента с объяснением этого понятия.
Второй запрос: Чтобы продолжить диалог, отправьте предыдущее сообщение пользователя, полное сообщение ассистента от Kimi и новое сообщение пользователя: «Можете привести пример?»
Массив messages передает контекст, необходимый для каждого запроса. Три ключевых решения в его устройстве сделали этот интерфейс широко распространенным:
История под управлением приложения: Приложения управляют историей диалога и включают релевантный контекст в каждый запрос, предоставляя разработчикам контроль над тем, что видит модель.
Распространенные роли сообщений: К распространенным ролям относятся
system(инструкции),user(ввод),assistant(вывод модели, возвращаемый для контекста многоэтапного диалога) иtool(результаты вызова функций). Вместе они позволяют задавать инструкции, вести диалог и взаимодействовать с инструментами.Гибкие возможности: В зависимости от поддержки модели интерфейс может работать с потоковой передачей, вызовом инструментов, визуальными входными данными и структурированными ответами. Kimi K3.1 Pro поддерживает эти возможности.
Как использовать API Chat Completions с Kimi
В следующих примерах используются Kimi K3.1 Pro и Python SDK OpenAI. Они показывают, как настроить клиент, отправлять запросы, обрабатывать ответы и реализовать вызов инструментов:
Быстрый старт: вызов Kimi с помощью Python SDK OpenAI
Установите Python SDK OpenAI:
Задайте ключ Kimi API как переменную окружения:
Ключ OpenAI API не требуется. Python SDK OpenAI выступает в роли клиентской библиотеки, а ваш ключ Kimi API и базовый URL аутентифицируют запросы и направляют их в Kimi.
Инициализируйте клиент и отправьте первый запрос:
В этом примере используется международная конечная точка API Kimi. Официальные инструкции по настройке и сведения о модели см. в руководстве по быстрому старту Kimi K3.1 Pro.
Основные параметры
Эти параметры охватывают основные доступные настройки при вызове Kimi K3.1 Pro через API Chat Completions:
| Параметр | Назначение |
|---|---|
model | Указывает ID модели, например kimi-k3.1-pro. |
messages | Передает сообщения диалога, включая предыдущие сообщения пользователя и ответы ассистента. Поддерживает текстовый и мультимодальный контент. |
reasoning_effort | Управляет глубиной рассуждений. Принимает значения low, high или max (по умолчанию). |
max_completion_tokens | Задает максимальный бюджет генерации, включая токены рассуждений и токены финального ответа. Входные токены учитываются отдельно, но суммарное количество входных и сгенерированных токенов должно укладываться в контекстное окно модели. |
stream | Установите значение true, чтобы получать ответ постепенно, а не ждать завершения генерации. |
tools | Определяет функции, которые модель может запросить для выполнения приложением. |
response_format | Управляет форматированием вывода. Поддерживает json_object для режима JSON и json_schema для структурированного вывода с ограничениями схемы. |
Примечание: Kimi K3.1 Pro использует фиксированные настройки семплирования. Не добавляйте temperature и top_p в запросы. Подробнее о параметрах и поддерживаемых значениях см. в справочнике API Chat Completions.
Чтение ответа
После успешного запроса основные поля ответа доступны через возвращенный объект завершения:
choices[0].message— содержит ответ ассистента, включаяcontentилиtool_calls, если модель запрашивает вызов функции.choices[0].finish_reason— указывает причину остановки генерации, напримерstop,lengthилиtool_calls.usage— содержит сведения об использовании token, включая количество входных, выходных и, при наличии, кэшированных token.
Для простого текстового ответа прочитайте choices[0].message.content. Если модель возвращает tool_calls, вашему приложению нужно выполнить запрошенные функции и отправить их результаты в последующем запросе.
Пример потоковой передачи
Установите stream=True, чтобы получать ответ Kimi постепенно, частями. В следующем примере повторно используется настроенный выше client, а итоговый ответ выводится по мере поступления:
Kimi K3.1 Pro возвращает содержимое рассуждений отдельно от итогового ответа. В этом примере выводится только delta.content, поэтому отображается итоговый ответ без обработки отдельного поля reasoning_content.
Кратко о вызове инструментов
Вызов инструментов позволяет Kimi запрашивать внешние функции, когда задача требует информации или действий за пределами собственного ответа модели. Например, если пользователь спрашивает: «Стоит ли сегодня взять зонт в Токио?», Kimi может запросить функцию get_weather, чтобы получить прогноз.
Процесс состоит из трех шагов:
Объявите функцию: определите
get_weatherи ожидаемые ею аргументы в параметреtools.Выполните инструмент: Kimi возвращает запись
tool_callsс именем функции и аргументами. Ваше приложение выполняет соответствующую функцию и получает данные о погоде.Отправьте результат обратно: добавьте в диалог полное сообщение ассистента Kimi и результат работы инструмента (с соответствующим
tool_call_id), затем снова вызовите Kimi, чтобы сформировать ответ для пользователя.
В следующем примере повторно используется настроенный выше client. Перед запуском убедитесь, что вы реализовали функцию get_weather(city), которая возвращает сериализуемые в JSON данные о погоде. Эту функцию выполняет ваше приложение, а не Kimi.
Здесь get_weather() обозначает функцию, реализованную вашим приложением, а не функцию, выполняемую непосредственно Kimi. Kimi решает, когда ее запросить, и передает аргументы; фактическую операцию выполняет ваше приложение и возвращает результат.
В рабочей среде реализуйте цикл, который обрабатывает каждый вызов инструмента, добавляет соответствующие результаты в диалог и отправляет обновленные сообщения обратно в Kimi. Повторяйте этот цикл, пока модель не вернет окончательный ответ без запроса дополнительных инструментов.
Почему «совместимость с OpenAI» важна при выборе провайдера
Многие провайдеры поддерживают формат OpenAI Chat Completions, что позволяет разработчикам повторно использовать знакомые SDK и структуры запросов. Обычно для перехода достаточно обновить базовый URL, ключ API и ID модели, а затем проверить поддерживаемые параметры и обработку ответов. Сравнивая провайдеров, учитывайте следующие факторы:
Точность совместимости: убедитесь, что потоковая передача, вызов инструментов, структурированные ответы и отчетность
usageработают так, как ожидает ваше приложение. Совместимость с одним и тем же форматом API не гарантирует одинаковую поддержку функций и поведение ответов у разных провайдеров.Качество модели для ваших задач: сочетание используемых языков и типы задач важнее универсальных бенчмарков.
Контекстное окно: модели с длинным контекстом могут упростить некоторые процессы работы с документами, обрабатывая больше исходного материала за один запрос.
Механика ценообразования: кэширование и скидки за пакетную обработку часто важнее заявленной цены за token.
Широта экосистемы: дополнительные совместимые конечные точки, такие как Responses и Anthropic Messages, могут дать больше возможностей для интеграции и гибкости по мере развития вашего приложения.
Kimi API: заметный провайдер, совместимый с OpenAI
Kimi API, разработанный Moonshot AI, стоит рассмотреть, если вы ищете провайдера, совместимого с OpenAI, особенно для приложений на китайском языке, обработки длинных документов и агентов для программирования. Он сочетает привычные шаблоны интеграции API с возможностями Kimi для работы с длинным контекстом и рассуждений.
Полная совместимость
Если ваше приложение уже использует Python SDK OpenAI, вы можете интегрировать Kimi, не переписывая весь процесс обработки запросов. Достаточно обновить конфигурацию API, включая base_url, api_key и идентификатор модели, сохранив привычный интерфейс Chat Completions.
Например, следующий код считывает локальный отчет из report.txt, отправляет его содержимое в Kimi K3.1 Pro для создания краткого изложения и передает сгенерированный ответ в потоковом режиме:
Здесь client повторно использует клиент Kimi, инициализированный ранее с вашим ключом API, полученным из переменной окружения. Выберите базовый URL в соответствии с вашим регионом: https://api.moonshot.ai/v1 для международной платформы или https://api.moonshot.cn/v1 для пользователей, обращающихся к API в материковом Китае.
Этот подход позволяет сохранить существующий рабочий процесс с OpenAI SDK и использовать модели Kimi для таких задач, как создание кратких изложений документов и других приложений на базе API.
Чем выделяется Kimi
Флагманская модель с контекстным окном в 1 млн token: Kimi K3.1 Pro поддерживает контекстное окно до 1 млн token и нативное визуальное понимание. Разработчики могут работать с обширными кодовыми базами, документами объемом с книгу и изображениями в рамках одного процесса, поэтому модель подходит для сложных рассуждений, программирования и мультимодальных приложений.
Гибкая оптимизация затрат: Kimi API поддерживает автоматическое кэширование контекста для повторяющихся префиксов запросов и выполнение через Batch API для масштабных задач, не требующих ответов в реальном времени. Стоимость кэширования и цены Batch зависят от модели и применимых правил тарификации. Актуальные тарифы и сведения об оплате смотрите в официальных ценах Kimi API.
Совместимость с различными экосистемами API: Kimi предоставляет совместимые с OpenAI конечные точки Chat Completions и Responses API, а также конечную точку, совместимую с Anthropic Messages. Разработчики могут интегрировать Kimi K3.1 Pro в существующие процессы с помощью привычных SDK и форматов API, внося корректировки в зависимости от конечной точки и поддерживаемых функций.
Заключение
Начать работу с Chat Completions API просто: настройте учетные данные API, отправьте запрос и получите сгенерированный ответ из choices[0].message.content. Когда первый вызов API заработает, вы сможете расширить интеграцию в соответствии с потребностями приложения, добавив многоходовые диалоги, потоковую передачу ответов или вызов инструментов. Готовы разрабатывать с Kimi? Получите ключ Kimi API и начните отправлять запросы к API.
Вопросы и ответы
messages и возвращает ответы через массив choices. Responses API использует более гибкую структуру ввода и вывода, поддерживающую разные типы контента и взаимодействие с инструментами. Управление состоянием диалога зависит от поставщика. При использовании Responses API от Kimi приложения должны включать в каждый запрос релевантную историю диалога, а не полагаться на связывание по ID ответа.base_url — на конечную точку API Kimi, api_key — на ваш ключ Kimi API, а model — на ID поддерживаемой модели Kimi. Затем протестируйте интеграцию, чтобы убедиться, что поддерживаются параметры и функции, от которых зависит ваше приложение, например потоковая передача и вызов инструментов.



