Прямой вызов OpenAI, Anthropic и Gemini API из Python и Node.js без прокси в коде и без VPN
Как разрабатывать AI-приложения, Telegram-ботов и RAG-пайплайны локально: обращаемся к api.openai.com, api.anthropic.com и Google Gemini напрямую через системный AI DNS одновременно с российскими API и банками.

При локальной разработке AI-сервисов — будь то Telegram-бот с поддержкой GPT-4o, корпоративный RAG-ассистент на Claude или сервис генерации контента на Google Gemini — российские разработчики сталкиваются с дилеммой в коде.
Прямой запрос к https://api.openai.com/v1/chat/completions, https://api.anthropic.com/v1/messages или https://generativelanguage.googleapis.com с российского IP-адреса завершается ошибкой 403 Forbidden (unsupported_country_region_territory).
Обычно эту проблему пытаются решить двумя способами, каждый из которых вредит архитектуре проекта:
- Хардкод прокси внутри кода приложения (
httpx/undici/https-proxy-agent): приходится протаскиватьPROXY_URLво все конструкторы клиентов, ловить падения при использовании высокоуровневых фреймворков (LangChain, LlamaIndex, Vercel AI SDK, Mastra), где внутренние HTTP-клиенты скрыты глубоко под капотом, и рисковать случайным коммитом прокси-учёток в Git. - Включение глобального VPN на рабочей машине: как только вы включаете системный VPN, чтобы заработал
OpenAI(), у вашего бэкенда тут же отваливаются интеграции с российским контуром — перестают проходить запросы к эквайрингу Т-Банка, ЮKassa, CloudPayments, API СДЭК, DaData, МойСклад или 1С-Битрикс.
Разберём, как избавиться от прокси-обёрток в коде и тестировать гибридные приложения (Российские API + Зарубежные LLM) одновременно с помощью TunnelHunt AI DNS.
Как работает прозрачная маршрутизация для SDK
Когда на вашем компьютере (macOS, Windows или Linux) или домашнем роутере активирован TunnelHunt AI DNS, разделение трафика происходит на сетевом уровне операционной системы до того, как Python или Node.js откроет сокет:
Ваш локальный бэкенд (FastAPI / Next.js / NestJS)
│
┌───────────────────────────┴───────────────────────────┐
│ │
▼ Вызов OpenAI / Anthropic / Gemini ▼ Вызов Т-Банк / ЮKassa / DaData
┌─────────────────────────────┐ ┌─────────────────────────────┐
│ Резолв через AI DNS (DoH) │ │ Стандартный резолв │
│ -> Маршрут через SNI-прокси │ │ -> Прямой IP провайдера РФ │
└─────────────────────────────┘ └─────────────────────────────┘
Ваш код остаётся 100% чистым и переносимым между локальной машиной и продакшен-сервером.
Быстрое сравнение: код «До» и «После»
❌ Как приходилось писать раньше (костыли с прокси в коде):
# Антипаттерн: жёсткая привязка кода к SOCKS/HTTP прокси
import httpx
from openai import AsyncOpenAI
from anthropic import AsyncAnthropic
http_client = httpx.AsyncClient(proxy="http://user:pass@1.2.3.4:8080", timeout=60.0)
openai_client = AsyncOpenAI(api_key="sk-...", http_client=http_client)
anthropic_client = AsyncAnthropic(api_key="sk-ant-...", http_client=http_client)
Если в том же проекте используется библиотека, которая сама создаёт сессию aiohttp или fetch без проброса кастомного клиента, она просто падает с 403 Forbidden.
✅ Как выглядит код с системным AI DNS:
1. Python (openai, anthropic, google-genai)
import asyncio
from openai import AsyncOpenAI
from anthropic import AsyncAnthropic
from google import genai
# Никаких прокси-клиентов, кастомных сертификатов или подмены base_url
openai = AsyncOpenAI()
anthropic = AsyncAnthropic()
gemini = genai.Client()
async def main():
# 1. Запрос к OpenAI (api.openai.com)
gpt_res = await openai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Сгенерируй JSON-схему чека 54-ФЗ"}]
)
print("OpenAI:", gpt_res.choices[0].message.content[:60])
# 2. Запрос к Anthropic Claude (api.anthropic.com)
claude_res = await anthropic.messages.create(
model="claude-3-7-sonnet-latest",
max_tokens=256,
messages=[{"role": "user", "content": "Проверь SQL-миграцию на блокировки"}]
)
print("Claude:", claude_res.content[0].text[:60])
# 3. Запрос к Google Gemini (generativelanguage.googleapis.com)
gemini_res = gemini.models.generate_content(
model="gemini-2.5-flash",
contents="Кратко опиши преимущества RFC 8484 DoH"
)
print("Gemini:", gemini_res.text[:60])
asyncio.run(main())
2. Node.js / TypeScript (Next.js App Router & Vercel AI SDK)
В современной фронтенд- и fullstack-разработке стандартом стал Vercel AI SDK (ai). Внедрить прокси внутрь серверных экшенов Next.js без переопределения глобального globalThis.fetch крайне неудобно. С AI DNS всё работает штатно:
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { anthropic } from '@ai-sdk/anthropic';
import { google } from '@ai-sdk/google';
export async function analyzeOrderWithAI(orderData: string) {
// Стандартный вызов из Next.js Server Action или Route Handler на localhost:3000
const { text } = await generateText({
model: anthropic('claude-3-7-sonnet-20250219'),
prompt: `Проанализируй заказ клиента: ${orderData}`,
});
return text;
}
Реальный кейс: локальная отладка Telegram-бота с оплатой в Т-Банке и генерацией через OpenAI
Представьте классическую задачу: вы разрабатываете бота в Telegram, который:
- Принимает вебхук от Telegram Bot API (
/webhook/telegram). - Инициирует платёж по СБП через API Т-Банка (
https://securepay.tinkoff.ru/v2/Init) и ждёт входящий вебхук об успешной оплате (/webhook/tbank). - После оплаты вызывает
api.openai.comилиapi.anthropic.comи отправляет пользователю готовый результат.
Как запустить весь этот стенд на localhost за 2 шага:
- Включите профиль AI DNS из личного кабинета app.tunnelhunt.ru/dns — теперь ваш локальный сервер может одновременно стучаться в
securepay.tinkoff.ru(напрямую с российского IP) и вapi.openai.com(через защищённый SNI-маршрут). - Откройте входящий SSH-туннель для приёма вебхуков от Telegram и банка:
ssh -p 2222 -R my-bot:80:localhost:8000 tunnelhunt.ru
Все входящие POST-запросы от банка и мессенджера приходят на https://my-bot.tunnelhunt.ru, а исходящие запросы к нейросетям улетают без единой ошибки 403 Region not supported.
Полный список поддерживаемых API-эндпоинтов для разработчиков
Встроенный матчер доменов ai-doh-server автоматически обрабатывает не только флагманские модели, но и популярные быстрые инференс-платформы:
| Провайдер | Поддерживаемые API-домены |
|---|---|
| OpenAI | api.openai.com, *.openai.com, *.oaiusercontent.com |
| Anthropic | api.anthropic.com, *.anthropic.com, *.claude.com |
| Google Gemini & Vertex | generativelanguage.googleapis.com, aiplatform.googleapis.com |
| OpenRouter | openrouter.ai, *.openrouter.ai |
| Groq (LPU Inference) | api.groq.com |
| DeepSeek & Mistral | api.deepseek.com, api.mistral.ai |
| Perplexity Sonar API | api.perplexity.ai, *.perplexity.ai |
Как проверить работу прямо из терминала
После установки профиля AI DNS выполните проверочный curl к эндпоинту моделей OpenAI или Anthropic без каких-либо флагов -x (прокси):
curl -s https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" | head -n 20
Если вместо региональной заглушки Cloudflare вы видите JSON-список моделей ("object": "list") — ваше локальное окружение полностью готово к разработке AI-продуктов.
Активировать бесплатный 24-часовой доступ к AI DNS можно в разделе app.tunnelhunt.ru/dns.
Проверьте прямой вызов OpenAI и Anthropic API
Включите системный AI DNS в личном кабинете и выполните запрос из стандартного SDK без прокси-обёрток. Ваши локальные вебхуки и российские платежные шлюзы продолжат работать напрямую.
Первый запуск: добавьте публичный SSH-ключ, запустите локальное приложение и команду SSH из статьи, затем откройте выданный HTTPS-адрес. Если ответа нет, пройдите проверку localhost и туннеля.
Free: 1 ГБ трафика в месяц, 1 туннель, сессия до 4 часов. Pro: 199 ₽/месяц, 50 ГБ, до 5 туннелей и резервирование поддомена. Компьютер, приложение и SSH-соединение должны работать; постоянный адрес сохраняет имя, а не доступность выключенного сервера.
Часто задаваемые вопросы
Нужно ли менять base_url или передавать http_client с прокси в SDK OpenAI / Anthropic?
Безопасно ли передавать API-ключи через AI DNS?
Почему этот подход удобнее при разработке ботов с оплатой через Т-Банк или ЮKassa?
Какие ещё AI API поддерживаются помимо OpenAI, Claude и Gemini?
Готовы запустить свой первый туннель?
Начните использовать TunnelHunt бесплатно уже сегодня и откройте доступ к локальному серверу всего одной командой.
Зарегистрироваться бесплатно →По теме
AI DNS для разработчиков: прямой доступ к ChatGPT, Claude и Cursor без VPN
5 ноября 2026 г.
Как работает приватный DNS-over-HTTPS (DoH) от Tunnelhunt: надёжный доступ к зарубежным AI-платформам и API без установки сторонних программ, без падения скорости и без сбоев в работе банков и российских сервисов.

Как настроить Cursor, Claude Code и Google Antigravity без VPN: решение ошибок подключения и авторизации
5 ноября 2026 г.
Почему десктопные AI-IDE и терминальные агенты выдают ошибки региона при браузерных прокси, и как системный профиль AI DNS (DoH) решает проблему для Cursor, Claude Code, Antigravity и Copilot.

Отладка AI-агентов и LLM Function Calling на localhost через Tunnelhunt
31 июля 2026 г.
Узнайте, как локально разрабатывать и тестировать AI-агентов, вызовы функций (Function/Tool Calling) и асинхронные вебхуки от LLM без деплоя на прод и с постоянными HTTPS-субдоменами.

Локальное тестирование вебхуков Т-Банка (Т-Бизнес / Эквайринг) на localhost
22 июня 2026 г.
Пошаговый гайд по отладке платежных уведомлений эквайринга Т-Банка локально. Настройка адреса уведомлений, проброс через TunnelHunt и пример проверки подписи Token на Python.