---
title: "AI Proxy: единая точка доступа к OpenAI, Anthropic, Gemini | tuk-tuk.online"
nav_title: "AI Proxy"
url: https://docs.tuk-tuk.online/ai/ai-proxy
markdown: https://docs.tuk-tuk.online/ai/ai-proxy.md
section: "AI-ассистенты"
description: "AI Proxy принимает запросы бэкенда tuk-tuk.online и проксирует их к OpenAI, Anthropic, Gemini, Mistral и DeepSeek. Защита заголовком x-proxy-secret, переменные AI_PROXY_URL, AI_PROXY_SECRET, PROXY_SECRET, диагностика."
keywords: ["AI proxy", "Railway proxy", "AI_PROXY_URL", "AI_PROXY_SECRET", "OpenAI proxy", "Anthropic proxy", "Gemini proxy", "Mistral proxy", "DeepSeek proxy"]
lang: ru
product: tuk-tuk.online
app: https://lk.tuk-tuk.online
api_base: https://back.tuk-tuk.online
---

> [!AI] Кратко
> AI Proxy: отдельный сервис tuk-tuk.online, через который бэкенд отправляет запросы к OpenAI, Anthropic, Gemini, Mistral и DeepSeek. Авторизация по заголовку x-proxy-secret; без AI_PROXY_URL бэкенд ходит к провайдерам напрямую.
>
> - Маршруты: /openai, /anthropic, /gemini, /mistral, /deepseek.
> - Переменные прокси: PORT (по умолчанию 3100), PROXY_SECRET.
> - Переменные бэкенда: AI_PROXY_URL, AI_PROXY_SECRET (равен PROXY_SECRET).
> - Прокси удаляет заголовок x-proxy-secret перед запросом во внешний API.
> - Проверка: GET /health на прокси; 403 означает несовпадение секретов.
>
> Связанные страницы: https://docs.tuk-tuk.online/ai, https://docs.tuk-tuk.online/ai/providers, https://docs.tuk-tuk.online/ai/assistants, https://docs.tuk-tuk.online/integrations

# AI Proxy

AI Proxy: отдельный сервис, который принимает запросы бэкенда и проксирует их к AI-провайдерам. Все AI-запросы выходят из одной точки, авторизация между бэкендом и прокси идёт по общему секрету.

## Когда это нужно

- Единый egress для всех AI-запросов.
- Централизованная защита по заголовку `x-proxy-secret`.
- Стабильная маршрутизация к разным провайдерам из одной конфигурации бэкенда.

Если `AI_PROXY_URL` не задан, бэкенд отправляет запросы напрямую провайдерам.

## Маршруты

| Префикс | Провайдер | Целевой API |
|---|---|---|
| `/openai` | OpenAI | `https://api.openai.com` |
| `/anthropic` | Anthropic | `https://api.anthropic.com` |
| `/gemini` | Google Gemini | `https://generativelanguage.googleapis.com` |
| `/mistral` | Mistral | `https://api.mistral.ai` |
| `/deepseek` | DeepSeek | `https://api.deepseek.com` |

Перед отправкой во внешний API прокси удаляет внутренний заголовок `x-proxy-secret`.

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

### `apps/ai-proxy`

| Переменная | Назначение |
|---|---|
| `PORT` | Порт сервиса, по умолчанию `3100` |
| `PROXY_SECRET` | Общий секрет для авторизации запросов от бэкенда |

### `apps/backend`

| Переменная | Назначение |
|---|---|
| `AI_PROXY_URL` | Базовый URL прокси, например `https://your-ai-proxy.up.railway.app` |
| `AI_PROXY_SECRET` | Тот же секрет, что и `PROXY_SECRET` |

## Проверить, что работает

1. Откройте health-эндпоинт прокси: `GET /health` должен ответить успешно.
2. Сверьте `AI_PROXY_SECRET` бэкенда и `PROXY_SECRET` прокси: значения совпадают.
3. Выполните тестовый AI-запрос через ассистента: в логах нет `403 Forbidden` от прокси.

## Частые проблемы

| Симптом | Причина | Решение |
|---|---|---|
| 403 от прокси | Не совпадают `AI_PROXY_SECRET` и `PROXY_SECRET` | Синхронизируйте секреты в бэкенде и ai-proxy |
| Запросы идут мимо прокси | Не задан `AI_PROXY_URL` | Укажите URL в env бэкенда |
| Нет ответа провайдера | Ошибка API-ключа у выбранного провайдера | Проверьте ключ в [провайдерах AI](https://docs.tuk-tuk.online/ai/providers) |
