Документация API go2llm

Open WebUI со своим API: подключение go2llm

Open WebUI подключается к любому серверу, который реализует OpenAI-совместимый API. Для go2llm достаточно одного подключения с URL https://go2llm.tech/v1 и ключом gk_sk_… — либо через интерфейс (Settings → Admin → Connections), либо через переменные окружения OPENAI_API_BASE_URL и OPENAI_API_KEY в docker-compose.yaml. После этого в селекторе моделей появятся Claude, GPT, Gemini, DeepSeek и Qwen.

Проверено живым запросом: нет. Инструкция составлена по документации Open WebUI. Если что-то не сходится — напишите в @go2llm_support, поправим. Живым запросом у go2llm проверены только Claude Code и OpenCode. Open WebUI относится к классу «клиент со своим base URL» — по документации Open WebUI такой режим поддерживается штатно.

Источник документации: Open WebUI — OpenAI-Compatible, Environment Variable Configuration.

Дата публикации: 11 сентября 2026.

Что понадобится

  1. Развёрнутый Open WebUI (Docker или любой другой способ) и права администратора в нём.
  2. Ключ go2llm с префиксом gk_sk_. При регистрации начисляется $1, минимальное пополнение — $1, оплата рублями через СБП или криптой.
  3. Base URL: https://go2llm.tech/v1.
  4. Понимание, что каталог go2llm отдаётся открыто: curl https://go2llm.tech/v1/models. Это важно — именно этот эндпоинт Open WebUI дёргает при проверке подключения.

Пошаговая настройка

Способ А. Через интерфейс (быстрее)

  1. Откройте Open WebUI в браузере под учётной записью администратора.
  2. Перейдите в Settings → Admin → Connections и найдите список Manage OpenAI API Connections.
  3. Нажмите ➕ Add Connection.
  4. Заполните два поля:
  • URL: https://go2llm.tech/v1
  • API Key: ваш ключ gk_sk_…
  1. Нажмите Save.

Open WebUI при добавлении подключения проверяет его вызовом /models со стандартным Bearer-токеном. У go2llm эндпоинт /v1/models реализован и отдаётся даже без ключа, поэтому проверка должна пройти и список моделей (сейчас их 65) подтянется автоматически.

Если вы не хотите видеть в селекторе все модели (сейчас их 65) — в настройках подключения есть поле Model IDs (Filter): впишите нужный ID и нажмите +, повторите для каждой модели, затем сохраните. Повторный ввод того же ID Open WebUI отклоняет сообщением «Model ID is already added», пробелы по краям обрезает сам.

У каждого подключения есть toggle switch — можно выключить go2llm, не удаляя настройку.

Способ Б. Через переменные окружения

Open WebUI читает конфигурацию из окружения. Релевантные переменные по документации:

ПеременнаяТипЧто делает
ENABLE_OPENAI_APIbool, по умолчанию TrueВключает OpenAI-совместимые API. При False список моделей пустеет
OPENAI_API_BASE_URLstr, по умолчанию https://api.openai.com/v1Адрес одного OpenAI-совместимого эндпоинта
OPENAI_API_KEYstrКлюч для него
OPENAI_API_BASE_URLSstrНесколько адресов через точку с запятой ;
OPENAI_API_KEYSstrНесколько ключей через точку с запятой ;

Все они помечены в документации Open WebUI как ConfigVar — то есть значение сохраняется в базе Open WebUI и при последующих запусках берётся оттуда, а не из окружения.

Один провайдер:

OPENAI_API_BASE_URL=https://go2llm.tech/v1
OPENAI_API_KEY=gk_sk_ВАШ_КЛЮЧ

go2llm рядом с локальной моделью — разделитель именно ;, порядок URL и ключей должен совпадать:

OPENAI_API_BASE_URLS=https://go2llm.tech/v1;http://host.docker.internal:11434/v1
OPENAI_API_KEYS=gk_sk_ВАШ_КЛЮЧ;ollama

Способ В. Полный docker-compose.yaml

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    environment:
      - 'ENABLE_OPENAI_API=True'
      - 'OPENAI_API_BASE_URL=https://go2llm.tech/v1'
      - 'OPENAI_API_KEY=${GO2LLM_API_KEY}'
      - 'WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}'
    extra_hosts:
      - host.docker.internal:host-gateway
    restart: unless-stopped

volumes:
  open-webui: {}

Рядом положите .env:

GO2LLM_API_KEY=gk_sk_ВАШ_КЛЮЧ
WEBUI_SECRET_KEY=длинная-случайная-строка

Запуск: docker compose up -d, интерфейс на http://localhost:3000.

Проверка, что заработало

Сначала убедитесь, что ключ живой, и заодно посмотрите, что именно увидит Open WebUI при проверке подключения:

curl https://go2llm.tech/v1/models

Ожидаемый результат: HTTP 200 и JSON со списком опубликованных моделей, их модальностями и эндпоинтами. Затем полноценный запрос:

curl https://go2llm.tech/v1/chat/completions \
  -H "Authorization: Bearer gk_sk_ВАШ_КЛЮЧ" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":120,"messages":[{"role":"user","content":"Ответь одним словом: работает"}]}'

Ожидаемый результат: HTTP 200, choices[0].message.content = «работает», в блоке usage — cost_usd с фактической стоимостью.

В самом Open WebUI: создайте новый чат, выберите модель claude-sonnet-5 и отправьте «Ответь одним словом: работает». Ответ должен прийти стримом. Если модели нет в селекторе — идите в Settings → Admin → Connections и проверьте, не выключен ли toggle у подключения.

Какую модель выбрать

Open WebUI — это чат-интерфейс, а не кодинг-агент: кэш здесь работает слабее, чем у агентов, и основную стоимость даёт выход. Актуальные ставки по каждой модели — на странице цен и в GET /api/pricing.

МодельДля какого сценария
claude-sonnet-5Универсальный чат и длинные разборы
claude-haiku-4-5Быстрые ответы для команды
gpt-5.6-lunaМассовый чат для большого числа пользователей
deepseek-v4-flashСамый дешёвый вариант в каталоге
glm-5.3-flashЧерновые ответы, суммаризация
gemini-3.8-flashДлинный контекст

Полный прайс на все модели (сейчас их 65) — go2llm.tech/pricing.

Если не работает

  • 401 no-key. Ключ пустой или подставился не тот. При использовании OPENAI_API_BASE_URLS порядок ключей в OPENAI_API_KEYS должен точно соответствовать порядку URL.
  • Подключение добавлено, а моделей нет. Проверьте ENABLE_OPENAI_API — при False документация Open WebUI прямо пишет, что список моделей пустеет.
  • 404 model_not_found. В Model IDs (Filter) вписан ID, которого нет в каталоге. Сверьтесь с curl https://go2llm.tech/v1/models.
  • 400 unsupported_content_type. Пользователь приложил в чат картинку или PDF. Текстовые эндпоинты go2llm бинарь не принимают. Для картинок у go2llm отдельный эндпоинт /v1/images/generations, и он требует заголовок Idempotency-Key.
  • 402 insufficient_balance. Общий баланс закончился. Баланс не уходит ниже нуля — шлюз резервирует оценочную стоимость до вызова и списывает фактическую.
  • 429 rate_limit. Лимит 20 RPM на ключ. Если Open WebUI обслуживает команду, один общий ключ упирается в этот лимит быстрее всего — заведите несколько ключей и разложите их через OPENAI_API_BASE_URLS / OPENAI_API_KEYS.

Разбор кодов — go2llm.tech/docs/errors.

FAQ

Переменные окружения перестали применяться после первого запуска — почему? Потому что OPENAI_API_BASE_URL и OPENAI_API_KEY помечены в документации Open WebUI как ConfigVar: значение уходит в базу при первом старте, дальше правится в Settings → Admin → Connections. Менять его в docker-compose.yaml после этого бесполезно.

Можно ли раздать доступ команде без раздачи ключа? Да, это основной сценарий Open WebUI: ключ go2llm знает только администратор, пользователи заходят по своим учёткам Open WebUI. На ключ при этом можно поставить квоту в долларах, список разрешённых моделей и срок действия.

Работает ли генерация картинок через go2llm в Open WebUI? У go2llm опубликован /v1/images/generations с моделями gpt-image-2, nano-banana-2, nano-banana-pro, gemini-3.1-flash-image, grok-imagine-image, и он требует обязательный заголовок Idempotency-Key (8–128 печатных ASCII). Пробрасывает ли Open WebUI этот заголовок в настройках Image Generation — мы живым запросом не проверяли и не утверждаем ни что это работает, ни что не работает. Если запрос уйдёт без Idempotency-Key, go2llm его отклонит. Надёжный вариант на сегодня — вызывать /v1/images/generations напрямую, задав заголовок самостоятельно.

Что дальше

Подключение кодинг-агентов и редакторов — в хабе go2llm.tech/docs/coding-tools. Эндпоинты, лимиты и приватность — go2llm.tech/docs.

Получить ключ и сделать первый запрос за 3 минуты →