Прокси-сервер подписки
Прокси-сервер подписки — это локальный HTTP-сервер, который позволяет внешним приложениям — OpenViking, Karakeep, Open WebUI и любым другим, поддерживающим OpenAI-совместимые чат-завершения — использовать вашу подписку, управляемую через VibeOS, в качестве LLM-конечной точки. Прокси-сервер автоматически подставляет правильные учётные данные (и обновляет их), так что приложению никогда не нужен статический API-ключ.
Это отличается от API-сервера:
| API-сервер | Прокси-сервер подписки | |
|---|---|---|
| Что предоставляет | Вашего агента (полный набор инструментов, память, навыки) | Прямой вывод модели |
| Сценарий использования | «Использовать VibeOS как чат-бэкенд» | «Использовать мою подписку Portal из другого приложения» |
| Аутентификация | Ваш API_SERVER_KEY | Любой bearer-токен (прокси подставляет настоящий) |
| Вызовы инструментов | Да — агент запускает инструменты | Нет — только сквозная передача |
Используйте API-сервер, когда вам нужен агент в качестве бэкенда. Используйте прокси, когда вам нужна только модель через вашу подписку.
Быстрый старт
1. Войдите в своего провайдера (однократно)
vibeos portal
Эта команда открывает браузер для OAuth-авторизации Nous Portal. VibeOS сохраняет
refresh-токен в ~/.vibeos/auth.json — там же хранятся все логины провайдеров VibeOS.
2. Запустите прокси
vibeos proxy start
Запуск прокси VibeOS для Nous Portal
Слушает на: http://127.0.0.1:8645/v1
Перенаправляет на: (определяется для каждого запроса из вашей подписки)
Используйте любой bearer-токен в клиенте — прокси подставит ваши настоящие учётные данные.
Оставьте эту команду работающей на переднем плане. Используйте tmux, nohup или systemd,
если хотите, чтобы она пережила выход из системы.
3. Настройте ваше приложение
Любое OpenAI-совместимое приложение настраивается одинаково:
Base URL: http://127.0.0.1:8645/v1
API key: любой (например, «sk-unused»)
Model: VibeOS-4-70B # или VibeOS-4.3-36B, VibeOS-4-405B
Прокси-сервер игнорирует заголовок Authorization от вашего приложения и подставляет
ваши настоящие учётные данные Portal в исходящий запрос. Обновление происходит
автоматически, когда срок действия токена приближается к истечению.
Доступные провайдеры
vibeos proxy providers
В настоящее время доступны: nous (Nous Portal) и xai (xAI / Grok). Другие
OAuth-провайдеры могут быть добавлены путём реализации интерфейса UpstreamAdapter
в vibeos_cli/proxy/adapters/.
Проверка статуса
vibeos proxy status
Прокси-адаптеры VibeOS для вышестоящих сервисов
[nous ] Nous Portal — готов (bearer истекает 2026-05-15T06:43:21Z)
Если вы видите not logged in, выполните vibeos portal. Если вы видите
credentials need attention, ваш refresh-токен был отозван (редко —
происходит, если вы вышли из веб-интерфейса Portal) — просто повторно выполните
vibeos portal.
Разрешённые пути
Прокси-сервер передаёт только те пути, которые обслуживает вышестоящий сервис. Для Nous Portal:
| Путь | Назначение |
|---|---|
/v1/chat/completions | Чат-завершения (потоковые и непотоковые) |
/v1/completions | Устаревшие текстовые завершения |
/v1/embeddings | Эмбеддинги |
/v1/models | Список моделей |
Другие пути (/v1/images/generations, /v1/audio/speech и т.д.) возвращают
404 с понятным сообщением об ошибке, указывающим на разрешённые пути. Это предотвращает
утечку странных запросов от случайных клиентов к вышестоящему сервису.
Настройка OpenViking для использования Portal
OpenViking — это контекстная
база данных, которой требуется LLM-провайдер для VLM (модели зрения/языка,
используемой для извлечения воспоминаний) и модели эмбеддингов. С помощью прокси вы можете
направить её vlm.api_base на ваш локальный прокси:
Отредактируйте ~/.openviking/ov.conf:
{
"vlm": {
"provider": "openai",
"model": "VibeOS-4-70B",
"api_base": "http://127.0.0.1:8645/v1",
"api_key": "unused-proxy-attaches-real-creds"
}
}
Затем запустите прокси в одном терминале вместе с openviking-server:
# Терминал 1
vibeos proxy start
# Терминал 2
openviking-server
Теперь вызовы VLM от OpenViking проходят через вашу подписку Portal. Для
модели эмбеддингов по-прежнему нужен свой провайдер — Portal обслуживает
/v1/embeddings, но выбор модели зависит от вашего тарифа;
проверьте portal.nousresearch.com/models.
Настройка Karakeep (или любого приложения для закладок/суммаризации)
Karakeep принимает OpenAI-совместимый API для суммаризации закладок. В его конфигурации:
# Karakeep .env
OPENAI_API_BASE_URL=http://127.0.0.1:8645/v1
OPENAI_API_KEY=any-non-empty-string
INFERENCE_TEXT_MODEL=VibeOS-4-70B
Такая же схема работает для Open WebUI, LobeChat, NextChat или любого другого OpenAI-совместимого клиента.
Доступ по локальной сети
По умолчанию прокси-сервер привязывается к 127.0.0.1 (только локальный хост). Чтобы
разрешить другим машинам в вашей сети использовать его:
vibeos proxy start --host 0.0.0.0 --port 8645
⚠ Имейте в виду: любой в вашей сети теперь может использовать вашу подписку Portal. У прокси-сервера нет собственной аутентификации — он принимает любой bearer-токен. Используйте брандмауэр, VPN или обратный прокси с надлежащей аутентификацией, если открываете доступ за пределы доверенной сети.
Лимиты запросов
Лимиты RPM/TPM вашего тарифа Portal действуют для всего прокси-сервера. Прокси-сервер не распределяет и не объединяет запросы — это один bearer-токен с полной квотой вашей подписки. Следите за использованием на portal.nousresearch.com.
Архитектура
Прокси-сервер намеренно минималистичен. На каждый запрос:
- Получение
POST /v1/chat/completionsот вашего приложения - Получение текущих учётных данных адаптера (обновление, если срок истекает)
- Пересылка тела запроса без изменений с заголовком
Authorization: Bearer<minted-key>` - Потоковая передача ответа без изменений (SSE сохраняется)
Никаких преобразований. Никакого логирования тел запросов. Никакого цикла агента. Прокси-сервер — это просто сквозная передача с подстановкой учётных данных.
Будущее: больше OAuth-провайдеров
Система адаптеров является подключаемой. Добавление нового провайдера (например,
HuggingFace, чат-конечной точки GitHub Copilot, Anthropic через OAuth)
требует реализации UpstreamAdapter в
vibeos_cli/proxy/adapters/<provider>.py и его регистрации в
adapters/__init__.py. Провайдеры, несовместимые с OpenAI на уровне
протокола (например, Anthropic Messages API), потребуют
слой преобразования, что выходит за рамки текущей архитектуры.