Как вставить API-ключ OpenAI: создание, настройка и проверка

В этой статье

«Вставить API-ключ OpenAI» обычно означает не добавить строку в исходник, а передать секрет приложению через окружение. Ключ создаётся в API project, а программа читает его из переменной OPENAI_API_KEY. Такой маршрут подходит и для локального скрипта, и для серверной интеграции: секрет остаётся вне кода и не уезжает в Git вместе с проектом.

Где создать ключ OpenAI API

Откройте платформу API и выберите нужный project. В настройках проекта найдите раздел API Keys, затем создайте новый secret key. Названия пунктов могут немного отличаться, но принцип тот же: ключ относится к конкретному API project, а не к паролю от ChatGPT и не к самой подписке ChatGPT.

Права создания и использования зависят от роли в проекте и выбранных permissions. Поэтому отсутствие кнопки создания или отказ при запросе не означает, что переменная окружения настроена неправильно: сначала проверьте, что вы работаете в нужном project и у вашей учётной записи есть необходимые права. Общие правила управления проектами описаны в документации OpenAI по API projects.

Сохраните созданный секрет в менеджере паролей и не вставляйте его в статью, скриншот, браузерный JavaScript, мобильное приложение, репозиторий или команду, которую потом отправите коллеге. Эти правила хранения и ротации ключей собраны в рекомендациях OpenAI по безопасности API-ключей. Если понадобится отдельный зарубежный цифровой сервис, его оплату можно подобрать в каталоге Amber Market; каталог не создаёт ключ OpenAI API и не пополняет API project, поэтому техническая настройка всё равно выполняется в платформе OpenAI. Наличие, условия и итоговую стоимость проверяйте на карточке перед заказом.

Как задать OPENAI_API_KEY в Windows

В PowerShell задайте переменную для текущего окна терминала:

$env:OPENAI_API_KEY = "вставьте-секрет-сюда"

Это значение будет доступно процессам, запущенным из этого окна. Для постоянной пользовательской переменной используйте:

[Environment]::SetEnvironmentVariable(
  "OPENAI_API_KEY",
  "вставьте-секрет-сюда",
  "User"
)

После этого закройте PowerShell и откройте новое окно. Уже запущенный терминал не подхватит изменение автоматически — это одна из самых частых причин ошибки «ключ не найден».

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

if ($env:OPENAI_API_KEY) {
  "OPENAI_API_KEY задан"
} else {
  "OPENAI_API_KEY не найден"
}

Не используйте для диагностики команду, которая печатает $env:OPENAI_API_KEY: значение может попасть в запись терминала, историю или скриншот.

Как задать ключ в macOS и Linux

В оболочке bash или zsh временная настройка выглядит так:

export OPENAI_API_KEY='вставьте-секрет-сюда'

Она действует в текущем окне и дочерних процессах. Если переменная должна загружаться при открытии оболочки, добавьте экспорт в подходящий файл профиля, например ~/.zshrc или ~/.bashrc, а затем перечитайте его:

source ~/.zshrc

Для серверов предпочтительнее штатное хранилище секретов или защищённая конфигурация менеджера процессов. Файл .env допустим для локальной разработки, если он добавлен в .gitignore и не загружается в репозиторий. Перед публикацией проверьте, что секрет не оказался в исходниках, Docker-образе, логах CI или переменных фронтенд-сборки.

Проверка наличия без раскрытия значения:

if [ -n "$OPENAI_API_KEY" ]; then
  echo "OPENAI_API_KEY задан"
else
  echo "OPENAI_API_KEY не найден"
fi

Проверка из Python

Сначала убедитесь, что приложение действительно читает окружение, а не ожидает ключ в другой настройке:

import os

api_key = os.environ.get("OPENAI_API_KEY")
if not api_key:
    raise RuntimeError("OPENAI_API_KEY не задан")

print("Ключ найден, значение не выводится")

Затем выполните минимальную проверку API через официальный SDK:

from openai import OpenAI

client = OpenAI()  # SDK берёт OPENAI_API_KEY из окружения
response = client.responses.create(
    model="доступная-вашему-project-модель",
    input="Ответь одним словом: готово",
)

print(response.output_text)

Установите SDK способом, принятым в вашем проекте, и подставьте модель, к которой у project есть доступ. Не копируйте секрет в OpenAI(api_key="...") в исходнике: проверка должна подтверждать настройку окружения, а не приучать проект к хранению ключа в коде. Актуальный пример потока настройки и первого запроса есть в Developer quickstart.

Проверка из Node.js

В Node.js сначала проверьте переменную:

const apiKey = process.env.OPENAI_API_KEY;

if (!apiKey) {
  throw new Error("OPENAI_API_KEY не задан");
}

console.log("Ключ найден, значение не выводится");

Если проект использует официальный SDK, клиент также может взять ключ из окружения автоматически:

import OpenAI from "openai";

const client = new OpenAI();
const response = await client.responses.create({
  model: "доступная-вашему-project-модель",
  input: "Ответь одним словом: готово",
});

console.log(response.output_text);

Запускайте такой код на локальной машине или на сервере под вашим контролем. Браузерный JavaScript и мобильное приложение контролируются пользователем устройства, поэтому помещённый туда API-ключ можно извлечь. Для клиентского приложения нужен серверный слой, который хранит секрет и сам обращается к API.

Если ключ не работает

Сначала разделите две проверки: видит ли процесс переменную и принимает ли запрос API. Если переменная не найдена, откройте новое окно терминала, проверьте имя OPENAI_API_KEY посимвольно и убедитесь, что приложение запускается из того же окружения. IDE, служба, Docker-контейнер и терминал могут иметь разные наборы переменных.

Если переменная найдена, но запрос завершается ошибкой, проверьте четыре границы системы:

  • ключ создан в том API project, к которому относится запрос;
  • у ключа и вашей роли есть нужные permissions;
  • указанная модель доступна этому project;
  • в проекте настроены необходимые платёжные условия и нет ограничения, связанного с биллингом.

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

Что делать при утечке

Если ключ попал в Git, браузер, мобильный пакет, лог или скриншот, считайте его скомпрометированным. Отзовите его или выпустите замену в настройках API project, затем обновите секрет в окружении приложения и повторите проверку. Удаление строки из последнего коммита не возвращает безопасность: значение могло остаться в истории, кеше CI или уже быть скопировано.

Итоговая схема короткая: создать ключ в нужном API project, передать его как OPENAI_API_KEY, открыть новое окружение, проверить наличие переменной без печати значения и выполнить минимальный запрос доступной модели. «Вставить ключ» — это настройка границы между секретом и процессом приложения, а не публикация секрета внутри программы.

Источники

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