Коротко

На Python вы создаёте клиента, отправляете сообщение и читаете текст из ответа. Ключ берётся из переменной окружения, а не пишется в коде.

Лучший способ понять API это собрать простой пример. Здесь мы покажем короткий код на Python, разберём ответ и обработку ошибок. Если вы ещё не читали основы запроса к API, начните с них, так будет понятнее.

Подготовка

Сначала установите официальную библиотеку и задайте ключ в переменной окружения. В коде ключ читается так:

import os

apikey = os.environ.get("OPENAIAPI_KEY")

Никогда не пишите настоящий ключ в файле. Подробнее про это в материале про безопасное хранение ключа.

  1. Установите официальную Python-библиотеку.
  2. Задайте переменную OPENAIAPIKEY.
  3. Импортируйте модуль os для чтения ключа.

Простой запрос

Идея простая. Вы создаёте клиента с ключом, затем отправляете сообщение и указываете модель. Условно это выглядит так:

from openai import OpenAI

client = OpenAI(apikey=os.environ.get("OPENAIAPI_KEY"))

# дальше вызов с вашим текстом и именем модели из docs

Реальные имена методов и моделей смотрите в официальной документации, они могут меняться. Длину текста проще оценить, если знать, как считаются токены.

Что такое модель

Модель это конкретная версия нейросети, которую вы вызываете. У каждой свои возможности и цена, поэтому имя модели берут из документации, а не из памяти.

Обработка ответа

Ответ приходит как объект с данными. Из него вы достаёте текст, например response.choices[0].message.content, и используете в своей программе.

Полезно проверять, что ответ вообще пришёл, и обрабатывать ошибки. О сбоях из-за частых запросов мы рассказали в материале про лимиты запросов.

  • Достаньте текст из поля ответа.
  • Проверьте, что ответ не пустой.
  • Поймайте ошибки сети и лимитов.

Почему важна проверка

Если не проверить ответ, программа решит, что текст есть, и упадёт на пустом значении. Одна короткая проверка экономит много времени на отладке.

Совет. Всегда смотрите, что ответ не пустой, прежде чем что то с ним делать. Это самая дешёвая защита от сбоев.

Обработка ошибок по шагам

Сетевые сбои и лимиты это норма, а не редкость. Поэтому код стоит обернуть в проверку ошибок. Простой каркас как обычный текст:

try: ответ = вызов_модели(текст)

except Exception as e: print("Ошибка:", e)

Так программа не падает на первой же ошибке, а показывает понятное сообщение. При ошибке лимита добавьте паузу и повтор, как описано в материале про лимиты.

  • Оберните вызов в try и except.
  • Покажите понятное сообщение об ошибке.
  • Для лимитов добавьте паузу и повтор.
  • Ограничьте число повторов, чтобы не зациклиться.

Куда двигаться дальше

Когда простой запрос работает, можно собрать небольшое приложение. Пример на Flask-приложении с AI мы разобрали отдельно, там тот же запрос живёт внутри одного эндпоинта и принимает текст от пользователя.

Вернуться к общему обзору и другим материалам можно через раздел про API. Дальше полезно научиться считать расход и держать его под контролем, чтобы счёт не вырос неожиданно при росте числа запросов.

Соберите всё в один файл

Когда части понятны, объедините их в один маленький скрипт. Запустите его, проверьте ответ и только потом усложняйте код.

Чего избегать

Главная ошибка новичков это настоящий ключ прямо в коде. Вторая это код без проверки ответа: программа думает, что текст есть, а его нет, и падает.

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

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

Шаги простого скрипта

ШагЧто делаем
Импорт Подключаем библиотеку и os
Ключ Читаем из переменной окружения
Запрос Отправляем сообщение и модель
Ответ Достаём текст из поля content

Сколько времени на части примера (простая иллюстрация)

Это простая иллюстрация для наглядности, а не реальный замер.

Логика простого скрипта

Простой процесс от ключа до ответа.

Чеклист

  • Установить официальную библиотеку.
  • Задать ключ через переменную окружения.
  • Указать модель из документации.
  • Достать текст из ответа.
  • Добавить обработку ошибок.
  • Проверить ответ на пустоту.
  • Ограничить число повторов при сбое.

Частые ошибки

  • Вписать настоящий ключ прямо в код.
  • Не проверять, что ответ пришёл.
  • Игнорировать ошибки сети и лимитов.
  • Копировать код без понимания.
  • Брать имена методов из устаревших примеров.

Частые вопросы

Через переменную окружения, например api_key = os.environ.get("OPENAI_API_KEY"). Так настоящий ключ не попадёт в код.

В официальной документации OpenAI. Имена методов и моделей могут меняться, поэтому сверяйтесь с docs.

Ответ это объект с данными. Текст обычно лежит в поле content, например response.choices[0].message.content.

Проверяйте ответ перед использованием. Если текста нет, покажите сообщение и при необходимости повторите запрос.

Оберните вызов в try и except. При ошибке лимита сделайте паузу и повторите запрос, ограничив число попыток.

Это удобно. Отдельное виртуальное окружение для Python помогает не смешивать библиотеки разных проектов.

Источники

Мы опираемся на официальную документацию. Цены и состав моделей могут меняться, проверяйте важные факты по первоисточникам.