GPT API: как отправить первый запрос из Python

В этой статье

GPT API позволяет программе обращаться к моделям OpenAI: передавать задание и получать ответ для дальнейшей обработки. Это подходит, например, для подготовки черновиков по данным из вашей системы. Первый шаг — настроить ключ и отправить небольшой запрос через Responses API. Официальный quickstart.

Подписка ChatGPT Plus не оплачивает использование API: у него отдельный биллинг. Перед запуском проверьте доступ к API и биллинг своего проекта. Разъяснение OpenAI.

Ниже — учебный пример по текущей документации. Его синтаксис проверен; запрос к платному API не выполнялся. Ответ и доступность модели проверьте в своём проекте.

Подготовьте Python и ключ

Используйте Python 3.10 или новее: это минимальная версия, указанная в актуальном репозитории библиотеки OpenAI. Установите SDK командой:

python -m pip install --upgrade openai

Проверьте установленную версию:

python -c "import openai; print(openai.__version__)"

Текущая библиотека поддерживает client.responses.create() и поле response.output_text. Документация Python SDK.

Создайте ключ в своём проекте на платформе OpenAI и передайте его программе через переменную окружения OPENAI_API_KEY. SDK читает её автоматически. Создание и настройка ключа.

Не вставляйте ключ в исходный код и не отправляйте его в браузер вместе с JavaScript сайта. Для веб-приложения запрос к OpenAI выполняет ваш сервер. Рекомендации по хранению ключей.

В Windows откройте свойства системы → дополнительные параметры → переменные среды. В пользовательских переменных создайте OPENAI_API_KEY, вставьте ключ в значение и откройте новый терминал. Настройка Windows. В macOS/Linux задайте переменную в используемой оболочке по инструкции quickstart.

Перед запуском можно проверить наличие переменной, не выводя её значение:

python -c "import os; print('Ключ задан' if os.getenv('OPENAI_API_KEY') else 'Ключ не задан')"

Если выводится «Ключ не задан», проверьте окружение именно того терминала, из которого запускаете программу. Наличие ключа в другом окне или редакторе ещё не означает, что этот процесс его видит.

Создайте файл с запросом

Сохраните следующий код как example.py. В качестве модели указана gpt-6-astra, используемая в официальном quickstart на 9 сентября 2026 года. Для своего проекта проверьте доступность и стоимость выбранной модели; само наличие имени в примере не даёт доступа к ней. Пример OpenAI.

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input=(
        "Напиши короткий черновик уведомления клиенту на русском. "
        "Факты: заказ 418 собран; самовывоз доступен с 12 сентября; "
        "время выдачи ещё не согласовано. "
        "Попроси клиента выбрать удобное время. "
        "Не добавляй адрес, скидку или обещание доставки."
    ),
)

print(response.output_text)

Запустите из папки с файлом:

python example.py

input содержит задание и исходные факты, model выбирает модель, а output_text возвращает текстовую часть ответа. Здесь нет отправки письма клиенту: программа печатает черновик в терминал.

Проверьте результат по исходным данным

Не сравнивайте ответ с одной заранее придуманной формулировкой. В этом примере важнее проверить условия:

Что проверить Правильное содержание Ошибка, которую нужно заметить
Номер Заказ 418 Другой номер или пропуск, мешающий понять заказ
Статус Собран «Уже доставлен»
Дата Самовывоз с 12 сентября «До 12 сентября»
Следующее действие Клиент выбирает время Выдуманное время выдачи
Неизвестные сведения Адрес и скидка не добавлены Адрес магазина, которого нет во входе

Это контрольные критерии для учебных данных, а не отчёт о полученном ответе. Если нарушено условие, уточните задание и повторите проверку. Для будущей автоматизации соберите несколько случаев: известное время, неизвестное время, отменённый заказ. Перед отправкой реальным клиентам определите, какие ошибки должен остановить код, а какие проверяет человек.

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

Если запрос завершился ошибкой

Читайте не только HTTP-статус, но и сообщение с кодом причины. Официальный справочник ошибок.

Ситуация Что проверить
401 Правильный ли ключ, не отозван ли он, есть ли у него нужные права и принадлежность проекту
429 из-за частоты запросов Снизьте темп; учитывайте Retry-After, если сервер его вернул
429 с credit_balance_exhausted В организации закончились предоплаченные средства; повтор без изменения биллинга не поможет
429 с project_spend_limit_exceeded Достигнут лимит расходов проекта; разберитесь с бюджетом до новых запросов
500 или временная перегрузка Повторите позже с ограниченным числом попыток; при устойчивой ошибке проверьте статус сервиса

Не запускайте бесконечный повтор при любой ошибке. У нехватки средств и временного ограничения скорости разные решения.

Как перейти от примера к своей задаче

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

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

Проверить детали

Источники материала

Функции и условия сервисов меняются. Дата сверки указана в начале статьи. Как подготовлен материал

Есть следующая задача?Ещё по теме «Работа с API» →