Переменные окружения для Heli: OPENAI_BASE_URL и OPENAI_API_KEY

Официальные SDK OpenAI берут ключ и адрес API из переменных окружения, если они не переданы в коде явно. Поэтому многие программы можно переключить на Heli без правки кода — достаточно задать две переменные. Ключ sk-heli- создаётся во вкладке «Ключи» после регистрации на getheli.ru.

Стандартные переменные

  • Python (openai) и Node.js (openai) читают OPENAI_API_KEY и OPENAI_BASE_URL: клиент OpenAI() без аргументов пойдёт в Heli.
  • Go (openai-go) и Rust (async-openai) тоже берут адрес из OPENAI_BASE_URL.
  • В LangChain и старых примерах встречается имя OPENAI_API_BASE — это та же настройка под старым названием.
  • Значение, переданное в коде явно, важнее переменной окружения.
code
OPENAI_API_KEY=sk-heli-ВАШ_КЛЮЧ
OPENAI_BASE_URL=https://getheli.ru/v1

Когда лучше свой HELI_API_KEY

Глобальная OPENAI_BASE_URL меняет адрес для всех программ в этом окружении. Если на той же машине есть код, который должен ходить в другой API, используйте отдельные имена и передавайте их в клиент явно:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url=os.environ.get("HELI_BASE_URL", "https://getheli.ru/v1"),
    api_key=os.environ["HELI_API_KEY"],
)

Python SDK + Heli

Как задать переменные

  • Linux и macOS: export OPENAI_BASE_URL=https://getheli.ru/v1 в shell или в профиле.
  • Windows PowerShell: $env:OPENAI_BASE_URL="https://getheli.ru/v1" для текущей сессии; для постоянного значения — переменные среды в настройках системы.
  • Docker Compose: env_file: .env или блок environment в сервисе.
  • Локальная разработка: файл .env и python-dotenv или встроенная загрузка .env в вашем фреймворке.

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

  • Адрес без /v1 — запросы уходят не на тот путь и возвращают 404.
  • Кавычки или пробел в значении из .env — ключ не проходит проверку и возвращается 401.
  • Файл .env попал в git. Добавьте его в .gitignore, а утёкший ключ отзовите во вкладке «Ключи» и создайте новый.
  • Ключ в переменной с префиксом NEXT_PUBLIC_ или VITE_: такие переменные встраиваются в код для браузера, и ключ становится публичным. Ключ нужен только серверу.

Безопасность API-ключа

Ошибка 401

Node.js + Heli

Как проверить, что переменные подхватились

В Python выведите client.base_url, в Node.js — client.baseURL: там будет фактический адрес, который использует SDK. Частая ловушка в macOS: приложения и IDE, запущенные из Dock, не читают переменные из .zshrc, поэтому программа в терминале работает, а та же программа из IDE ходит по старому адресу. В таком случае задайте переменные в настройках запуска IDE или в файле .env проекта. В Docker проверьте переменные внутри контейнера командой docker compose exec app env.

Попробуйте Heli

Ключ sk-heli- появляется после подтверждения почты. Через Google и Яндекс — сразу в кабинете.

Документация API · Модели и цены

Читайте также