В этой статье
Если ответ модели должен получать ваш скрипт, сайт или бот, нужен OpenAI API. Программа отправляет входные данные и получает объект ответа; дальше ваш код решает, что показать пользователю. Для первого текстового запроса удобно использовать Responses API и официальный Python SDK.
«API ChatGPT» часто называют именно этот способ интеграции. При этом ChatGPT и API имеют отдельные системы оплаты: подписка в интерфейсе чата не оплачивает запросы программы. Это различие закреплено в справке OpenAI о биллинге.
Amber Market — сервис для оплаты зарубежных сервисов. Подписка ChatGPT из магазина и баланс OpenAI API — разные покупки; не подменяйте одно другим.
Что подготовить для первого запроса
Нужны Python, доступ к проекту на API-платформе OpenAI, его API-ключ и доступная проекту модель. Создание ключа и установка SDK описаны в Developer quickstart. Ключ относится к API-проекту: пароль от ChatGPT вместо него не подходит.
Работайте в отдельной локальной папке. Для Windows PowerShell можно создать окружение и установить пакет без изменения системного Python:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install openai
Команды создают .venv в текущей папке. Если у вас уже есть окружение проекта, используйте его Python. Официальный пакет называется openai.
Минимальный Python-клиент
Сохраните код как first_request.py. Он просит ключ без отображения ввода и получает точный ID модели от вас. Скопируйте ID модели, доступной вашему API-проекту; название тарифного плана вроде Plus здесь не подходит.
from getpass import getpass
from openai import OpenAI
model_id = input("Model ID: ").strip()
if not model_id:
raise SystemExit("Укажите ID доступной модели.")
api_key = getpass("OpenAI API key: ").strip()
if not api_key:
raise SystemExit("API-ключ не введён.")
client = OpenAI(api_key=api_key)
response = client.responses.create(
model=model_id,
input="Объясни назначение HTTP одним коротким предложением.",
)
print("Response ID:", response.id)
print("Status:", response.status)
if response.output_text:
print(response.output_text)
else:
print("Текстовый ответ отсутствует; проверьте статус ответа.")
Запустите его в той же папке:
.\.venv\Scripts\python.exe first_request.py
Здесь model задаёт модель, а input — запрос. Метод responses.create возвращает структурированный ответ; output_text в SDK позволяет получить его текстовую часть. Контракт описан в справочнике Responses API.
Не вставляйте API-ключ прямо в исходник или в клиентский JavaScript сайта. В этом локальном примере он вводится при запуске. Для приложения выберите хранение секрета в окружении или менеджере секретов на стороне, которой вы управляете.
По каким признакам запрос сработал
Сначала проверьте, что программа дошла до строк Response ID и Status. Затем посмотрите текст: он должен отвечать на ваш вопрос, но точная формулировка не обязана повторяться при каждом запуске. Транспортный успех и качество ответа проверяются отдельно.
Если появляется ModuleNotFoundError: No module named 'openai', обычно код запущен другим Python, чем тот, куда установлен пакет. Используйте один и тот же путь .venv\Scripts\python.exe для установки и запуска.
Если ошибка пришла от API, посмотрите её тип и сообщение: проверьте ключ проекта, доступ к указанной модели и состояние API-биллинга. Покупка Plus в такой ситуации не является способом пополнить API. Не отправляйте секретный ключ вместе со скриншотом ошибки.
Как встроить это в приложение
На следующем шаге вынесите вызов в функцию, которая принимает текст и возвращает результат или понятную ошибку. Уже после этого подключайте форму сайта или обработчик сообщения бота. Так вы сможете отдельно проверить, работает ли запрос к модели, не путая его со сбоем кнопки или доставкой сообщения.
Для реального сервиса дополнительно определите допустимую длину входа, обработку ожидания, стоимость запросов и то, какие данные разрешено отправлять. Первый ответ подтверждает подключение; готовое приложение требует ещё и правил работы вокруг него.