Официальные 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 — это та же настройка под старым названием.
- Значение, переданное в коде явно, важнее переменной окружения.
OPENAI_API_KEY=sk-heli-ВАШ_КЛЮЧ
OPENAI_BASE_URL=https://getheli.ru/v1Когда лучше свой HELI_API_KEY
Глобальная OPENAI_BASE_URL меняет адрес для всех программ в этом окружении. Если на той же машине есть код, который должен ходить в другой API, используйте отдельные имена и передавайте их в клиент явно:
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"],
)Как задать переменные
- 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_: такие переменные встраиваются в код для браузера, и ключ становится публичным. Ключ нужен только серверу.
Как проверить, что переменные подхватились
В 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 и Яндекс — сразу в кабинете.