ChatGPT-бот в консоли

Первые шаги – вызываем модель ChatGPT через API

Содержание курса

🔹 Как получить API-ключ OpenAI

Пошаговая инструкция для OpenAI, прокси, работа с переменными окружения а также советы при невозможности пополнить счет

  1. Зарегистрируйтесь на platform.openai.com

    💡 Обратите внимание, это не то-же самое что chatgpt.com
  2. В ходе регистрации вам необходимо будет создать "Свою организацию" и создать свой первый API key

  3. Скопируйте его (это длинный код из символов начинающийся на sk-...) и сохраните в надежном месте.

    💡 Не публикуйте и не передавайте этот ключ его компрометация грозит потерей средств
  4. Ваш API key показывается только один раз — если потеряете, придется создавать новый.

    💡 Для создания нового ключа в своём профиле вверху необходимо нажать шестерёнку (settings), далее в левом меню перейти в раздел API Keys, и нажать на кнопку Create new secret key

API OpenAI работает по модели pay-as-you-go (оплата за реальные запросы). Если средства на счету закончились, запросы с этим ключом начнут возвращать ошибки (insufficient_quota или payment_required). К сожалению, использовать OpenAI дальше без пополнения баланса невозможно: отправка запросов требует действующего баланса. Для продолжения работы можно:

  • Воспользоваться бесплатными/демо-моделями через сторонние сервисы, например openrouter.ai (см. ниже).

  • Подключить российские либо open source альтернативы, если OpenAI недоступен.

 

🔸Прокси — альтернатива для работы из заблокированных регионов, таких как Россия

Для пользователей из РФ: прямой доступ к OpenAI часто невозможен из-за блокировки. Альтернатива — прокси, работающий по аналогичному API, но с другим базовым URL. После регистрации на платформе прокси получите ключ (sk-...), его использование аналогично OpenAI.

Работа через прокси не требует пополнения OpenAI напрямую — баланс и тарифы зависят от прокси. Если средства кончились на прокси, сервис перестанет отправлять ваши запросы, и понадобится либо пополнить счет, либо переключиться на бесплатные альтернативы.

Если вы будете использовать прокси, важно, чтобы все запросы библиотеки openai шли на нужный URL. Библиотека openai не знает про ваш прокси, но мы можем ей указать базовый адрес API. В коде (при каждом запуске) мы пропишем:

import os
from dotenv import load_dotenv
load_dotenv()

openai.api_key = os.getenv("OPENAI_API_KEY")
openai.api_base = os.getenv("OPENAI_API_BASE", "https://api.openai.com/v1")

Таким образом, если переменная окружения определена (например, равна https://api.your-proxy.com/v1), то SDK отправит запросы туда. Если вы оставили OPENAI_API_BASE пустым (для прямого OpenAI), используется стандартный адрес.

 

🔸Бесплатные альтернативы:

  • openrouter.ai:

    • OpenRouter предлагает десятки бесплатных моделей (Llama, DeepSeek, Qwen, Kimi и др.) с единым доступом через API, по OpenAI-совместимому интерфейсу. Это отличный вариант для тестов и обучения без затрат. Качество моделей варьируется, но большинство показывает хорошие результаты, отзывы пользователей положительные.

    • Вы можете зарегистрироваться и использовать их аналогично OpenAI, указав новый ключ и endpoint. Часть моделей требует достаточно простых шагов для получения бесплатного доступа.

  • Gigachat от Сбера:

    • Gigachain — это набор библиотек для интеграции моделей GigaChat (от Сбера) с LangChain, LangGraph, LangChain4j и другими фреймворками. Вы получите доступ к Gigachat API через собственный ключ, инструкции есть в репозитории GitHub, интеграция поддерживает Python, JS, Java.

    • Для доступа потребуется регистрация и получение API-ключа в кабинете Сбер/Гигачат.
      Бесплатные варианты бывают, но обычно есть ограничения.

💡 Инструкция для интеграции, примеры и информация о ключах доступны в открытых репозиториях и документации.

 

🔸Переменные окружения для хранения секретных ключей и настроек

⚠️ Никогда не сохраняйте ключи прямо в коде - используйте переменные окружения

Временный способ — задать переменную через терминал:

  • Linux/Mac: export OPENAI_API_KEY="вашключ"
  • Windows: set OPENAI_API_KEY="вашключ"

Но удобнее использовать файл .env в корне проекта:

OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OPENAI_API_BASE=https://api.your_proxy/v1

💡 OPENAI_API_BASE не нужен, если работаете с оригинальным OpenAI

⚠️ Фаил.env должен быть в списке .gitignore, чтобы ключи не попали в общий доступ.

Для Python рекомендуем пакет python-dotenv:

import os
from dotenv import load_dotenv
load_dotenv()

openai.api_key = os.getenv("OPENAI_API_KEY")
openai.api_base = os.getenv("OPENAI_API_BASE")

Этот код автоматически берёт в корне проекта в котором он запущен фаил .env и достаёт из него необходимую информацию. Убедится в этом можно запустив

  •  echo $OPENAI_API_KEY (Linux/Mac)

  • echo %OPENAI_API_KEY% (Windows CMD)

  • либо тест через Python

 

🔸Ответы на популярные вопросы

API нужно генерировать по кнопке Authorize?

  • Нет, обычно окно Authorize используется для ввода уже полученного API-ключа (вам нужно сначала сгенерировать ключ на платформе OpenAI, прокси, Gigachat и только потом вставить сюда). Сама кнопка Authorize в интерфейсах Swagger/OpenAPI не генерирует ключ, она просто позволяет выполнить запросы с вашими ключами в заголовке.

Что делать, если счет не пополняется?

  • Если пополнить баланс невозможно — используйте бесплатные платформы, что-то из предложенного выше или open source локальные модели.

  • В ряде случаев ограничения на бесплатный доступ будут по количеству запросов или скорости.

  • Подключение новых сервисов не требует изменения основной логики, достаточно сменить переменные окружения и endpoint.

⚠️  Совет: Если ключ скомпрометирован, немедленно его замените. При работе с внешними прокси и моделями всегда проверяйте, что сервис надежен и его политика хранения ключей соответствует требованиям безопасности

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.