Перейти к основному содержимому

Прокси-сервер подписки

Прокси-сервер подписки — это локальный 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.

Архитектура​

Прокси-сервер намеренно минималистичен. На каждый запрос:

  1. Получение POST /v1/chat/completions от вашего приложения
  2. Получение текущих учётных данных адаптера (обновление, если срок истекает)
  3. Пересылка тела запроса без изменений с заголовком Authorization: Bearer <minted-key>`
  4. Потоковая передача ответа без изменений (SSE сохраняется)

Никаких преобразований. Никакого логирования тел запросов. Никакого цикла агента. Прокси-сервер — это просто сквозная передача с подстановкой учётных данных.

Будущее: больше OAuth-провайдеров​

Система адаптеров является подключаемой. Добавление нового провайдера (например, HuggingFace, чат-конечной точки GitHub Copilot, Anthropic через OAuth) требует реализации UpstreamAdapter в vibeos_cli/proxy/adapters/&lt;provider&gt;.py и его регистрации в adapters/__init__.py. Провайдеры, несовместимые с OpenAI на уровне протокола (например, Anthropic Messages API), потребуют слой преобразования, что выходит за рамки текущей архитектуры.