stream: true и опишите инструменты, которые выполняет ваше приложение, в формате выбранного API. Поддержка потоков и вызова инструментов зависит от модели. Прежде чем использовать эти возможности в приложении, проверьте небольшой запрос с вашим Model ID.
Подготовка
Сначала выполните обычный текстовый запрос по примерам SDK. Скопируйте точный Model ID из каталога моделей для нужного протокола. Критерии проверки описаны в руководстве по выбору модели. Установитеopenai и anthropic в виртуальное окружение Python вашего проекта, затем замените заполнители в том же терминале:
max_tokens или max_output_tokens проверьте лимит выходных токенов модели.
Потоковая выдача текста
В потоковом режиме сервер передаёт события server-sent events (SSE) в одном HTTP-ответе. Отдельное событие SSE не обязательно содержит законченное предложение или полный JSON-объект аргументов.
SDK разбирает формат SSE. Примеры выводят текстовые фрагменты и сведения о завершении; в приложении также обрабатывайте события ошибок.
- Chat Completions
- Responses
- Messages
Опишите инструмент погоды для каждого протокола
Модель запрашивает вызов функции, а ваше приложение проверяет аргументы, выполняет функцию и возвращает результат. В примерах функцияget_weather принимает аргумент location и возвращает фиксированные демонстрационные данные, а не текущую погоду. Подключать погодный сервис или получать дополнительный ключ не нужно.
Поддержка зависит от модели и протокола. Проверьте небольшой запрос с инструментом для вашего Model ID, даже если обычный текст уже работает. Объявление инструмента не включает поиск или другие инструменты, выполняемые на стороне поставщика.
Выполните вызов и верните результат
Эти примеры без потоковой выдачи показывают один цикл вызова инструмента, чтобы вы могли изучить аргументы целиком. Каждый пример обрабатывает все вызовы из первого ответа и отправляет один последующий запрос. Для более длинного агентного сценария задайте ограничение числа итераций и условие остановки.- Chat Completions
- Responses
- Messages
output, включая элементы рассуждений, если они вернулись. Для Messages сохраняйте блоки содержимого и их порядок. Привязывайте результаты к полученным идентификаторам вызовов, не создавайте новые ID.
Частые вопросы
Можно ли выполнять инструмент по мере поступления аргументов?
Соберите фрагменты по индексу вызова или ID элемента, затем разберите и проверьте полные аргументы. Неполный JSON может не разбираться. Прежде чем объединять потоки и инструменты, запустите примеры без потоковой выдачи выше.Почему текст работает, а инструменты — нет?
Поддержка зависит от модели и протокола. Проверьте небольшой вызов инструмента с вашим Model ID. Сверьте схему инструмента, полученные аргументы, ID результата и порядок сообщений. О типизированной проверке JSON читайте в FAQ по структурированному выводу.Нужно ли повторять запрос, если поток прервался?
Перед повтором проверьте запись запроса. Разрыв соединения не показывает, успел ли запрос завершиться. Повтор создаёт новую попытку; он не должен повторно выполнять уже совершённое действие инструмента. См. ошибки и правила повторов.См. также
- Настройка SDK и авторизация
- Обзор API
- Лимит выходных токенов
- Структурированный JSON и Pydantic
- Настройка тайм-аутов
- Ошибки и ограничения

