В этой статье
«Вставить 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, открыть новое окружение, проверить наличие переменной без печати значения и выполнить минимальный запрос доступной модели. «Вставить ключ» — это настройка границы между секретом и процессом приложения, а не публикация секрета внутри программы.
Источники
- Managing projects in the API platformOpenAI Help Center
- Best Practices for API Key SafetyOpenAI Help Center
- Developer quickstartOpenAI