ChatGPT API: первый запрос к OpenAI и проверка ответа
Первый запрос к OpenAI Responses API на Python: ввод ключа, учебный отзыв, проверка статуса и смысла ответа, ошибки доступа и следующий тест.
Хочешь, чтобы приложение само превращало отзыв пользователя в короткую сводку? Для этого нужен программный запрос к модели. Его часто ищут как «ChatGPT API», хотя в примере ниже мы работаем с OpenAI API через Responses — отдельно от переписки в ChatGPT.
Сделаем один запрос на учебном отзыве. Результат — текстовая сводка, статус ответа и данные об использовании. Это техническое упражнение для первого подключения, а не готовая массовая обработка клиентских данных.
1. Проверь доступ к API
Открой официальный quickstart, перейди из него в API Dashboard и выбери свой проект. Для запуска нужен API-ключ проекта и доступная оплата использования API. Не считай наличие подписки в чате доказательством, что конкретный API-проект готов принимать запросы.
Посмотри доступные модели и актуальные тарифы API. Не обещай команде «бесплатную интеграцию» до проверки условий аккаунта. В коде ниже использована модель gpt-6-astra из актуального quickstart; это пример подключения, а не рекомендация самой экономичной модели для массовой обработки.
Создай ключ для своего проекта. Храни его у себя и не вставляй в публичную страницу, клиентский JavaScript или репозиторий. В упражнении ключ вводится скрыто в терминале и используется только текущим процессом.
2. Подготовь отдельную папку
Для примера нужен Python 3. Команды ниже рассчитаны на macOS/Linux. Открой терминал и выполни:
mkdir -p ~/openai-feedback-lab
cd ~/openai-feedback-lab
python3 -m venv .venv
source .venv/bin/activate
python -m pip install openai
Виртуальное окружение держит библиотеку примера отдельно от других проектов. Если python3 не найден, сначала установи Python принятым в своей среде способом. На Windows команды активации окружения отличаются; не копируй строку source в PowerShell.
Создай файл first_request.py в этой папке. Для работы достаточно обычного текстового редактора. Расширение должно быть .py, а не .py.txt.
3. Отправь один учебный отзыв
Скопируй код целиком:
import getpass
from openai import OpenAI, APIConnectionError, APIStatusError
key = getpass.getpass("API-ключ OpenAI: ").strip()
if not key:
raise SystemExit("Ключ не введён. Запрос не отправлен.")
client = OpenAI(api_key=key, max_retries=0, timeout=60.0)
try:
response = client.responses.create(
model="gpt-6-astra",
max_output_tokens=1200,
instructions=(
"Составь краткую сводку отзыва на русском: проблема, "
"последствие, вопрос для уточнения. Используй только вход. "
"Не обещай исправление и не придумывай причины ошибки."
),
input=(
"Учебный отзыв F-01: после экспорта отчёта я не вижу, "
"готов ли файл. Нажимаю кнопку ещё раз, появляются "
"два одинаковых отчёта."
),
)
except APIStatusError as exc:
raise SystemExit(f"Ошибка API: HTTP {exc.status_code}. Проверь доступ и квоту.")
except APIConnectionError:
raise SystemExit("Не удалось связаться с API. Проверь соединение.")
print("Статус:", response.status)
if response.status != "completed":
raise SystemExit("Ответ не завершён. Не используй его как готовую сводку.")
if not response.output_text.strip():
raise SystemExit("Текст ответа отсутствует. Нужна отдельная проверка.")
print(response.output_text)
print("Использование:", response.usage)
Запусти python first_request.py. Вставь ключ, когда терминал попросит его, и нажми Enter. Символы при скрытом вводе не отображаются. Код не сохраняет ключ в файл. Каждый новый запуск выполняет новый запрос, который может расходовать API-бюджет.
max_output_tokens ограничивает выход, но не гарантирует, что ответ успеет завершиться. Поэтому скрипт проверяет статус. Автоматические повторы отключены: в первой пробе проще понимать, сколько запросов ты инициировал.
4. Проверь смысл, а не только успешный статус
Ожидается сводка примерно такого содержания: пользователь не видит готовность файла, повторный клик приводит к дубликатам, стоит уточнить, когда и где показывается статус. Формулировка может отличаться.
| Контроль | Что должно сохраниться |
|---|---|
| Проблема | Неясна готовность выгрузки |
| Последствие | Повторный клик и два отчёта |
| Неизвестное | Причина поведения не установлена |
| Границы | Нет обещанного срока исправления |
HTTP-успех и завершённый ответ подтверждают технический проход. Они не доказывают, что модель верно поняла задачу. Если сводка обвиняет сеть или сервер, хотя этого нет в отзыве, уточни инструкцию и повтори на другом учебном примере.
5. Разделяй ошибки доступа и качества
При 401 начни с проверки ключа и проекта. При 429 проверь квоту, биллинг и ограничения частоты: один код может сопровождать разные причины. При отсутствии доступа к модели выбери доступную своему проекту модель по официальному каталогу. Подробности — в справочнике ошибок OpenAI.
Не запускай запрос десятки раз подряд в надежде, что ошибка оплаты исчезнет. При сетевом таймауте также не считай, что сервер гарантированно ничего не обработал. Сначала выясни причину, затем повторяй осознанно.
Моя рекомендация: раздели приёмку интеграции на два вопроса: «получили ли ответ?» и «можно ли его использовать?». Второй часто важнее для продукта.
6. Подготовь следующий небольшой тест
До обработки реальных отзывов добавь три случая: короткая жалоба, текст без проблемы и противоречивое описание. Для каждого запиши ожидаемое поведение. Если планируешь сохранять поля автоматически, следующим шагом изучи структурированный вывод, а не извлекай данные из произвольного текста по случайным разделителям.
Сохрани модель, версию запроса, вход и проверенный результат. Использование токенов из ответа пригодится для оценки расходов вместе с действующим тарифом. Для первого пилота важнее понятная стоимость принятого результата, чем минимальная цена одного вызова.
Проверка материала: документация сверена 4 октября 2026 года; синтаксис Python проверен без обращения к API. Платный запрос и качество ответа модели в этом упражнении не тестировались.
Для следующих шагов есть пример Claude API и курс AI-агенты.
Собери своего ИИ-агента и проверь результат
«AI Agents: от vibe coding к AI-команде»: desktop agents, MCP, skills, evals и harness. Отдельные воркшопы — от подключения инструментов до контроля качества.
7 практических воркшопов · записи · вопросы автору в чате
Посмотреть программу курса ↗