Heli

← Блог

Как подключить OpenAI API в России: оплата в рублях и настройка в Python, n8n и LangChain

Если вы пишете скрипты на Python, собираете AI-агентов или автоматизируете процессы, вам нужен стабильный доступ к LLM. Стандарт индустрии — OpenAI API, но для команд из РФ прямая работа с ним упирается в оплату и сеть. Ниже — как получить тот же developer experience через Heli: меняете base_url на https://getheli.ru/v1 и платите за токены картой РФ или по счёту.

Почему старые схемы работы с OpenAI API ломаются

Разработчики и небольшие продуктовые команды часто проходят один и тот же путь, когда пытаются встроить генеративные модели в продукт:

  1. Оплата. Виртуальные карты зарубежных банков берут высокую комиссию за пополнение и регулярно блокируются антифродом OpenAI. Для коммерческого продукта и легального B2B (ИП или ООО) такой расход не провести по бухгалтерии.
  2. Серые прокси и реселлеры. Доступ через безымянные боты и самописные шлюзы падает под нагрузкой, обрывает длинные ответы и не даёт гарантий, куда попадают промпты.
  3. Блокировки по IP. Прямые запросы к api.openai.com с российских адресов часто заканчиваются 403. Свой зарубежный прокси — отдельные расходы и поддержка.

Рабочая схема проще: один OpenAI-compatible endpoint, рублёвый баланс, без VPN и без криптобиржи для пополнения.

Heli как drop-in замена: base URL

Heli — AI API gateway в спецификации OpenAI. Библиотеки, официальные SDK и no-code платформы, которые умеют ходить в ChatGPT, работают без переписывания бизнес-логики. Меняются два параметра:

  • API Key: ключ из кабинета, формат sk-heli-…
  • Base URL: https://getheli.ru/v1 вместо https://api.openai.com/v1

Через тот же ключ доступны модели OpenAI (openai/gpt-4.1, openai/gpt-4.1-mini) и сотни других моделей каталога — Claude, DeepSeek, Llama, Gemini. Вы отправляете обычный JSON, Heli маршрутизирует запрос и возвращает ответ в том же формате.

Как это устроено на практике — в статье ChatGPT API без VPN.

Типичные ошибки при настройке base URL

  • Забытый суффикс /v1. Адрес https://getheli.ru отправит запрос на /chat/completions и вернёт 404. Нужен полный путь https://getheli.ru/v1.
  • Лишний слэш в конце. Пишите https://getheli.ru/v1 без / на конце, чтобы не получить /v1//chat/completions.
  • Глобальное переопределение в Python. В openai до 1.0.0 писали openai.api_base. В 1.0.0+ передавайте base_url в конструктор OpenAI(...).

Быстрый старт: от ключа sk-heli- до первого запроса

1. Получение ключа

Зайдите на getheli.ru и войдите через Google, Яндекс или email. Первый ключ в кабинете называется «Ключ» и начинается с sk-heli-. Через Google и Яндекс он уже в кабинете; по email — после подтверждения почты.

2. Пополнение баланса 1 к 1

Баланс пополняется в рублях: 1000 ₽ оплачено — 1000 ₽ на счёте. Отдельной комиссии за пополнение нет, подписки нет — списание только за фактические токены. Способы в кабинете: карта или СБП через Робокассу и счёт для ИП и ООО. Актуальные цены в рублях — в каталоге моделей, не в этой статье.

Если баланс на нуле, API возвращает 402 Payment Required. В долг запросы не уходят. Подробности оплаты — в /docs/payment.

Переменные окружения

Не вшивайте ключ в исходники и не коммитьте его. Файл .env (и строка в .gitignore):

HELI_API_KEY=sk-heli-ваш-ключ

В Python python-dotenv: load_dotenv(), затем os.environ.get("HELI_API_KEY").

Чеклист запуска

  1. Аккаунт создан, баланс пополнен.
  2. Ключ лежит в .env, не в репозитории.
  3. base_url равен https://getheli.ru/v1.
  4. Слаг модели совпадает с каталогом, без опечаток.
  5. Тестовый запрос через cURL или короткий скрипт прошёл.

Примеры интеграции

Проверка через cURL

VPN не нужен: запрос идёт на getheli.ru с вашего провайдера.

curl https://getheli.ru/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-heli-ВАШ_КЛЮЧ" \
  -d '{
    "model": "openai/gpt-4.1-mini",
    "messages": [
      {"role": "system", "content": "Ты полезный AI-ассистент."},
      {"role": "user", "content": "Напиши функцию на Python для вычисления факториала."}
    ]
  }'

Python (официальный openai SDK)

import os
from openai import OpenAI

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

response = client.chat.completions.create(
    model="openai/gpt-4.1",
    messages=[
        {"role": "system", "content": "Отвечай коротко и технично."},
        {"role": "user", "content": "Что такое drop-in replacement?"},
    ],
)

print(response.choices[0].message.content)

LangChain

langchain-openai принимает кастомный endpoint. Класс ChatOpenAI с подменой base_url принимает любой слаг из каталога Heli.

import os
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

llm = ChatOpenAI(
    model="openai/gpt-4.1",
    api_key=os.environ.get("HELI_API_KEY"),
    base_url="https://getheli.ru/v1",
    max_tokens=500,
)

message = HumanMessage(content="Объясни концепцию RAG для новичка.")
response = llm.invoke([message])

print(response.content)

n8n

  1. Добавьте узел OpenAI.
  2. В Credential to connect with создайте новые доступы.
  3. В поле API Key вставьте sk-heli-….
  4. В Base URL (иногда спрятан в Advanced Settings) укажите https://getheli.ru/v1.
  5. Сохраните credential. Запросы узла идут через Heli и списывают рублёвый баланс.

Тот же принцип для редактора кода — в гайде настройка Cursor.

Слаги моделей

Модель меняется строкой model. Берите точный слаг из каталога — короткий псевдоним вроде claude API не примет.

  • openai/gpt-4.1 — сложные рассуждения, function calling и JSON-режим.
  • openai/gpt-4.1-mini — классификация, простой парсинг и маршрутизация. Дешевле старшей модели; цифры — на /models.
  • anthropic/claude-sonnet-4 — код и связный русский текст. Подробнее — Claude API в России.
  • deepseek/deepseek-chat — бюджетный вариант для больших объёмов текста, математики и кода.

Ключи, статистика и оплата для бизнеса

Именованные ключи

Один баланс на аккаунт и несколько именованных ключей: локальная разработка, production на Python, автоматизации в n8n. Скомпрометированный ключ отзывается в кабинете, остальные продолжают работать. Отозванный ключ можно возобновить или удалить.

Статистика

В кабинете по каждому ключу видно:

  • Расход за сегодня, за месяц и за всё время.
  • Какая модель сколько входных и выходных токенов съела и во сколько рублей это обошлось.
  • Время запросов — чтобы видеть пики.

На витрине цены округляются вверх до 0,5 ₽. С баланса списывается точная стоимость запроса по объёму промпта и ответа.

Telegram Mini App

Остаток, статистика за день и отзыв ключа доступны в Telegram Mini App — тот же кабинет с телефона.

Счёт для ИП и ООО

Баланс можно пополнить по счёту от лица ИП или ООО. После зачисления оплаты на email из формы счёта или кабинета может уйти акт оказанных услуг в PDF. ЭДО и УПД стандартная оферта не обещает — условия в разделе услуг и оплаты и в статье API по счёту для юрлиц.

Что дальше

Форматы запросов и параметры — в документации. Зарегистрируйтесь на getheli.ru, возьмите ключ sk-heli- и укажите base URL https://getheli.ru/v1.

Попробуйте Heli

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

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

Частые вопросы

Нужен ли VPN для работы с API Heli?
Нет. Эндпоинт https://getheli.ru/v1 доступен с российских IP. Скрипты, серверы в дата-центрах РФ и облачные функции ходят напрямую, без прокси.
Как рассчитывается стоимость токенов?
Оплата pay-as-you-go: только фактическое использование. Цена зависит от модели. Актуальные цены в рублях за 1 миллион входных и выходных токенов — на странице /models.
Могу ли я использовать другие модели, кроме OpenAI?
Да. Тот же base URL и тот же ключ открывают модели Anthropic, Google, DeepSeek и других провайдеров из каталога. Меняется параметр model. Подробнее — в статье про Claude API в России.
Поддерживается ли потоковая передача ответов (streaming)?
Да. Параметр stream=true возвращает ответ чанками по мере генерации, в том же формате, что и Chat Completions.
Что будет, если провайдер недоступен или модель ошиблась?
Heli прозрачно передаёт ошибку провайдера, чтобы клиент мог повторить запрос. За запрос, который завершился ошибкой на стороне провайдера, баланс не списывается. Содержание ответа формирует провайдер модели.
Что произойдёт, если баланс опустится до нуля?
API вернёт HTTP 402 Payment Required. Запросы в долг не исполняются. После пополнения они снова обрабатываются.
Есть ли лимиты на количество запросов?
Лимиты зависят от модели и нагрузки у провайдера. Для разработки, n8n и небольших продуктовых команд их обычно хватает. Конкретные цифры в этой статье не фиксируются.
Где найти примеры кода и параметры?
Форматы запросов и параметры собраны в документации /docs.

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