AITunnel Ru

Подключение API AITunnel

Один адрес и один ключ вместо VPN и зарубежной карты: SDK OpenAI работают без изменений, стриминг, вызов инструментов и веб-поиск поддерживаются.

Пример подключения на Python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.aitunnel.ru/v1/",
    api_key="sk-aitunnel-…",
)
resp = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "…"}],
)
В существующем коде меняются только адрес и ключ

Что можно вызвать по API

Все пути доступны на одном адресе и с одним ключом

  • chat/completionsответы текстовых моделей в формате OpenAI
  • responsesформат Responses API OpenAI
  • messagesнативный формат Anthropic для Claude
  • images/generationsгенерация и правка картинок
  • videosгенерация видео
  • audio/speechсинтез речи из текста
  • audio/transcriptionsраспознавание речи из аудиофайла
  • embeddingsвекторы текста для поиска и RAG
  • rerankсортировка документов по запросу
  • moderationsпроверка текста модерацией
  • batchesпакетные запросы со скидкой 50 % и ответом в течение 24 часов

Что поменять в коде для подключения

В коде меняются две строки: base URL и ключ. Адрес запросов https://api.aitunnel.ru/v1, ключ передаётся в заголовке Authorization: Bearer sk-aitunnel-… и создаётся в разделе «Ключи» кабинета. SDK OpenAI работают без изменений.

Стриминг, вызов инструментов, структурированный вывод, токены рассуждений и веб-поиск поддерживаются. Параметр max_tokens сохраняет смысл: по нему резервируется стоимость запроса.

Первый запрос проверьте в песочнице кабинета, ответ там виден без запуска кода. Запросы с сервера вне России тоже проходят, прокси не нужен.

Подключаете инструменты разработки — начните с Claude Code: там достаточно вписать base URL и ключ.

Как работают ключи, бюджеты и защита данных

У каждого ключа AITunnel свой бюджет и свой период сброса. Заведите отдельный ключ для каждого сервиса и окружения: когда один ключ расходует лимит, остальные продолжают работать.

Лимитов на число запросов в минуту нет, расход ограничен только балансом ключа. Персональные данные в запросах можно маскировать: в настройках кабинета включается маскирование PII и выбираются пресеты.

Среди провайдеров есть модели с нулевым хранением данных (ZDR), их выбирают в настройках. Сами запросы не хранятся, AITunnel работает как транзит между вашим кодом и провайдером.

Что даёт распознавание речи и embeddings

Эндпоинт audio/transcriptions распознаёт речь 26 моделями. За минуту аудио Whisper 1 стоит 1,2 ₽, GPT Transcribe 0,9 ₽, Scribe V2 0,73 ₽, Whisper Large V3 Turbo 0,04 ₽.

Для векторного представления текста доступны 25 моделей embeddings. За 1 млн токенов Text Embedding 3 Small стоит 4 ₽, GigaChat Embeddings 2 24 ₽, Text Embedding 3 Large 26 ₽, Gemini Embedding 2 40 ₽. Остальные модели и их цены смотрите в каталоге.

Embeddings вместе с rerank собирают поиск по своим документам: первый эндпоинт превращает тексты и запрос в векторы, второй сортирует выдачу по близости.

Почему запрос может не доходить

У части российских провайдеров интернета сеть api.aitunnel.ru блокируется. Симптомы: таймаут соединения, Connection reset, Failed to fetch.

Зеркало https://ru-api.aitunnel.ru/v1 использует те же ключи, пути, модели и цены, в коде меняется только адрес. Зеркало на один сетевой переход медленнее, поэтому переключайтесь на него только при ошибках соединения.

Вопросы про API AITunnel

Работает ли AITunnel с LangChain и другими библиотеками под OpenAI?

Да. Любая библиотека, которая принимает base URL, подключается сменой адреса и ключа. Для LangChain есть гайд подключения.

Можно ли держать отдельные ключи для разработки и продакшена?

Да, у каждого ключа свой бюджет, поэтому окружения не влияют друг на друга.

Как узнать остаток баланса из кода?

GET-запрос на https://api.aitunnel.ru/v1/aitunnel/balance возвращает остаток. Ещё остаток и стоимость приходят в каждом ответе, в полях usage.balance и usage.cost_rub.

Есть ли ограничение на частоту запросов?

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