self-hosted llm gateway — openai-compatible, virtual keys, fallback, policies

Один эндпоинт. Все модели. Ваш сервер.

LAPA принимает запрос по OpenAI-совместимому API и маршрутизирует его к DeepSeek, Claude, GPT, Gemini, GLM, Qwen или локальной модели. Клиент получает виртуальный ключ — реальные ключи провайдеров не покидают сервер.

7 провайдеров, 20+ моделей, 1 эндпоинт, 0 ключей провайдеров у клиента.

Что доступно сейчас — сравнение

модельдля чегоконтекствыводвход$ вход / вывод
deepseek-v4-flashосновная: быстрая, недорогая, понимает картинки1M384kтекст, изображения0.30 / 1.20
deepseek-v4-proсложные задачи и рассуждения, медленнее1M384kтекст1.32 / 3.96
gemini-3.1-flash-liteсамая дешёвая; лимит 15 запросов в минуту1M64kтекст, изображения, аудио, видео, PDF0.25 / 1.50
gemini-3.5-flashаудио и видео на вход; временами перегружена у Google1M64kтекст, изображения, аудио, видео, PDF1.50 / 9.00

Цены — за 1M токенов по прайс-листам вендоров, DeepSeek вне пика вдвое дешевле. Claude, GPT и остальные модели — по запросу, полный список ниже.

Возможности

Единый эндпоинт
OpenAI-совместимый /api/v1: chat completions, стриминг, список моделей. Смена модели — одна строка в запросе, код клиента не меняется.
Виртуальные ключи
Каждому клиенту — свой sk-…. Реальные ключи провайдеров хранятся только на сервере и наружу не выдаются. Ротация — из кабинета.
Бюджеты и лимиты
Бюджет и лимит запросов на каждый ключ. Разрешённый набор моделей — тоже на уровне ключа. Превышение — отказ, а не счёт в конце месяца.
Fallback-цепочки
Ошибка провайдера, перегрузка или исчерпанная квота — запрос уходит на следующую модель в цепочке. Клиент получает ответ, а не 5xx.
Учёт и статистика
Расход по ключам и моделям, число запросов, токены. Клиент видит свою статистику в кабинете, без доступа к чужим данным.
Политики доступа
Правила на уровне ключа: фильтр prompt-injection, запрет тем, часовые окна доступа. Проверка до отправки запроса в модель.
Агенты и инструменты
Tool calling и агентные сценарии. OpenCode подключается как один провайдер со всеми моделями. Мультимодальность — изображения на вход. Водяной знак в сгенерированном коде.
Self-hosted
Ваша инфраструктура, ваши данные. Кэш ответов, стриминг, HTTPS. Никаких посредников между вами и провайдером.

Модели и провайдеры

Поддерживаются облачные и локальные бэкенды. Доступный набор моделей задаётся на ключе; актуальный список — GET /api/v1/models.

DeepSeek
V4.1 Flash — основная, vision, 1M ctx. V4 Pro — reasoning.
Anthropic
Claude Fable 5.1 — frontier. Opus 5, Sonnet 5, Haiku 4.5.
OpenAI
GPT-6 Astra — новое. GPT-5.6: sol, terra, luna.
Google
Gemini 3.8 Flash — новое, 1M ctx. 3.1 Pro, 3.5 Flash.
Z.AI
GLM-5.3 — open weights. GLM-5.3 Flash — vision, video.
Qwen
Qwen3.8 Max, Qwen3.8 Flash, Omni Flash — audio, video.
Local
Ollama, vLLM, LM Studio: Qwen 3.8, GLM-5.3, Llama — любой OpenAI-совместимый бэкенд.

Параметры и цены по данным вендоров.

провайдерmodelконтекствыводвход$ вход$ вывод
DeepSeekdeepseek-v4-flash1M384kтекст, изображения0.301.20
DeepSeekdeepseek-v4-pro1M384kтекст1.323.96
Googlegemini-3.1-flash-lite1M64kтекст, изображения, аудио, видео, PDF0.251.50
Googlegemini-3.5-flash1M64kтекст, изображения, аудио, видео, PDF1.509.00
Googlegemini-3.8-flash1M64kтекст, изображения, аудио, видео, PDF0.753.75
Anthropicclaude-fable-5-11M128kтекст, изображения, PDF10.0050.00
Anthropicclaude-opus-51M128kтекст, изображения, PDF5.0025.00
Anthropicclaude-sonnet-51M128kтекст, изображения, PDF2.0010.00
Anthropicclaude-haiku-4-5200kтекст, изображения, PDF1.005.00
OpenAIgpt-6-astra1M128kтекст, изображения10.0050.00
OpenAIgpt-5.61M128kтекст, изображения4.0020.00
OpenAIgpt-5.6-luna1M128kтекст, изображения0.201.20
Z.AIglm-5.31M128kтекст1.404.40
Z.AIglm-5.3-flash1M128kтекст, изображения, видео, файлы0.150.50
Локальноlocal-llamaзависит от бэкенда

Контекст и вывод — в токенах, цены — за 1M токенов без кэша по прайс-листам вендоров на 22.09.2026. DeepSeek — пиковый тариф, вне пика вдвое дешевле. Gemini 3.8 Flash — цена до 31.12.2026. Qwen3.8 (Max, Flash, Omni) роутер поддерживает, но открытых характеристик у вендора нет — добавим при подключении.

Быстрый старт

Получите виртуальный ключ и работайте с LAPA как с обычным OpenAI API — меняется только base_url. Три варианта: curl, Python, OpenCode.

curlпроверить, что ключ работает

curl https://lapa.interforum.su/api/v1/chat/completions \
  -H "Authorization: Bearer $LAPA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"Привет"}]}'

pythonopenai sdk

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://lapa.interforum.su/api/v1",
    api_key=os.environ["LAPA_API_KEY"],
)
r = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "Привет"}],
)
print(r.choices[0].message.content)

opencodeагент с доступом ко всем моделям

// ~/.config/opencode/opencode.jsonc — один провайдер, много моделей
{
  "provider": {
    "lapa": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LAPA",
      "options": {
        "baseURL": "https://lapa.interforum.su/api/v1",
        "apiKey": "{env:LAPA_API_KEY}"
      },
      "models": {
        "deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
        "deepseek-v4-pro":   { "name": "DeepSeek V4 Pro" },
        "gemini-3.5-flash":  { "name": "Gemini 3.5 Flash" }
      }
    }
  },
  "model": "lapa/deepseek-v4-flash"
}

Доступ

Нужен ключ, отдельная модель или интеграция? Напишите — подключим.