Место
Self-hosted · Hetzner
Роль
Sole architect and builder
Команда
1
Стек
FastAPI · Python 3.12

Запуская два AI-продукта с одного сервера — Vera (персональный ассистент) и Stepan (Instagram-агент продаж) — повторяющейся проблемой было размножение API-ключей и невидимые затраты. AIbroker — единая управляющая плоскость: каждый LLM-вызов во всех проектах маршрутизируется через неё, с ограничениями затрат на проект, автоматическим охлаждением на 429-ых и Telegram-алертом в момент смерти ключа.

Инцидент с затратами, который сделал это необходимым

В июне 2026 года устаревший множитель затрат в LiteLLM привёл к тому, что провайдерские вызовы логировались по 1/20 реальной цены. Охранник затрат думал, что бюджет остался; его не было. Пришёл счёт на $25. AIbroker уже находился в разработке; инцидент перевёл его из «полезного эксперимента» в «требование продакшена». Брокер читает реальные USD из логов использования, а не оценки по уровню модели.

Два режима для двух проблем

Режим прокси: брокер вызывает провайдера через LiteLLM SDK, возвращает ответ, логирует затраты. Клиентский проект никогда не видит API-ключ. Режим выдачи: брокер выдаёт краткосрочную аренду ключа; клиент вызывает провайдера напрямую, сообщает об использовании при освобождении. Выдача обрабатывает провайдеров, не совместимых с OpenAI-интерфейсом.

Что работает в продакшене

LRU-aware выбор ключей избегает горячей ротации одного ключа, пока другие простаивают. Дневные и месячные ограничения затрат на проект обеспечивают бюджетную дисциплину по всем подключённым клиентам. Монитор здоровья запускается каждые 10 минут — дешевейший валидный вызов на провайдера — и немедленно отмечает мёртвые ключи с Telegram-алертом. Живая панель показывает затраты, здоровье ключей и использование по проектам.

Ссылки

← Ко всем работам