Вызов инструментов в GPT-6 Sol и Luna: переход на Responses
Проверяем эндпоинт, reasoning и несовместимые параметры. Пример функции только для чтения и локальная проверка запроса без платного вызова API.
Для сочетания рассуждений и вызова функций в GPT-6 Sol или Luna используйте Responses API. В текущих документах Chat Completions поддерживает функции этих моделей только при reasoning_effort: "none". Работающий текстовый запрос ещё не подтверждает корректный агентный цикл.
Руководство миграции, страницы Sol и Luna проверены 23 сентября 2026 года. Проверялись документация и локальная структура, без платного вывода или выдуманного ответа сервера.
Сначала эндпоинт
| Цель | Эндпоинт | Настройка |
|---|---|---|
| Функции Chat Completions | /v1/chat/completions | Верхний уровень reasoning_effort: "none" |
| Рассуждения с функциями | /v1/responses | reasoning: {"effort":"low"} или другое допустимое значение |
| Встроенные инструменты Responses | /v1/responses | Проверить условия конкретного инструмента |
Документация перечисляет none, low, medium, high, xhigh, max. Поле верхнего уровня нельзя просто скопировать вместо вложенного reasoning.effort. Совместимый с OpenAI шлюз не обязательно реализует все возможности Responses: маршрут проверяется отдельно.
Минимальная функция только для чтения
В Responses определение функции находится непосредственно в объекте инструмента:
{"model":"gpt-6-sol","input":"Look up the status of order EXAMPLE-001.","reasoning":{"effort":"low"},"max_output_tokens":2048,"tools":[{"type":"function","name":"lookup_order","description":"Read the status of a sample order.","parameters":{"type":"object","properties":{"order_id":{"type":"string"}},"required":["order_id"],"additionalProperties":false},"strict":true}]}
Тело объявляет чтение статуса, но не реализует функцию и не гарантирует её вызов. Приложение должно обработать вызов, проверить аргументы, выполнить разрешённое действие и вернуть результат по протоколу. Перед подключением к рабочему сервису проверьте обработку на примерах без конфиденциальных данных.
В Chat Completions функция вложена в объект function, а настройка рассуждений находится сверху. С функциями используйте none. Замена только URL без тела и обработки результатов не завершает миграцию.
Уберите несовместимые параметры
Когда рассуждения не none, руководство требует убрать temperature, top_p, top_logprobs. В Chat также уберите logprobs; в Responses — message.output_text.logprobs из include.
Проверьте значения, добавляемые обёрткой SDK, а не только свой файл. Смотрите финальное тело без ключей и чувствительных данных. Сохраняйте настоящий ответ при ошибке вместо предполагаемой строки от другой модели.
Локальная проверка
Скачайте проверяющий скрипт и пример JSON:
python3 check_request.py responses responses-example.json
Скрипт не обращается к сети. Он проверяет выбранные конфликты эндпоинта, уровня рассуждений и параметров, но не всю схему запроса, права, оплату, лимиты, поведение инструмента или реализацию поставщика. Тесты используют синтетические тела, включая заведомо неверные.
Для существующего Chat-тела сохраните очищенный от секретов файл и используйте первый аргумент chat. Не удаляйте поле вслепую, если приложение зависит от его поведения: измените интеграцию и проверьте обработку вывода.
Состояние инструмента и кэш
Сохраняйте ID вызова, возвращайте соответствующий результат и поддерживайте необходимые элементы разговора. Полный цикл описан в документации функций.
При миграции с GPT-5.5 или более ранних версий текущий гид также описывает замену prompt_cache_retention на prompt_cache_options.ttl со значением "30m". Корректный JSON сам по себе не доказывает поддержку старого поля. Условия кэша и оплату проверяйте отдельно.
Для прав доступа есть руководство по входу, для использования — тарифы Sol и Luna. Проверка формы — один этап; финальная приёмка требует правильного результата и прослеживаемого ответа.
Часто задаваемые вопросы
- Функции возможны в Chat Completions?
- По текущему руководству Sol/Luna — при reasoning_effort, равном none. Для сочетания с рассуждениями нужен Responses.
- Успех скрипта доказывает доступ к API?
- Нет. Скрипт не отправляет запрос и не проверяет права, оплату или результат модели.
- Можно оставить temperature с рассуждениями?
- Текущее руководство требует убрать temperature, top_p и top_logprobs при значении не none, а также проверить logprobs соответствующего эндпоинта.


