Как навести порядок в расходах на LLM с помощью CPA Usage Keeper

14 авг 2026
1,141
116
3 недели

Когда гоняешь запросы в разные нейросети через шлюзы вроде CLIProxyAPI, рано или поздно наступает момент хаоса. В логах пролетают тысячи вызовов Claude, OpenAI или Gemini, а в конце месяца прилетает счет, происхождение которого трудно объяснить. Кто именно сжег квоту? Какой скрипт спамил запросами ночью? Где подскочила задержка ответов?

Автор проекта CPA Usage Keeper решил эту головную боль и выкатил отдельную панель мониторинга со встроенным хранилищем на SQLite.

CPA Usage Keeper Overview

Что под капотом

Штука работает в связке с прокси-сервером CLIProxyAPI (CPA). Сам CPA умеет маршрутизировать запросы к языковым моделям, но глубокой аналитики «из коробки» там немного. Keeper подключается к нему, забирает сырые события через Redis-очередь или HTTP, укладывает их в локальную базу SQLite и рисует аккуратный дашборд на React.

Бэкенд написан на Go. Стек получился легковесным: бинарник запускается моментально, оперативной памяти ест минимум, никаких тяжелых баз данных разворачивать не нужно.

Реклама

CPA Usage Keeper Analysis

Главные фичи

Дашборд собирает всю статистику по токенам и деньгам в реальном времени:

  • Считает потраченные токены, кэш, общую стоимость и метрики RPM/TPM. Можно фильтровать данные по конкретным моделям, источникам запросов или API-ключам.
  • Строит тепловые карты активности по часам. Сразу видно, когда нагрузка подскакивает и какие провайдеры начинают тупить с задержкой (TTFT).
  • Следит за состоянием файлов авторизации и подключенных провайдеров, умеет автоматически обновлять остаток квот в фоне.
  • Дает детальную таблицу всех запросов с возможностью выгрузки.
  • Поддерживает режим read-only для отдельных пользователей по их личному API-ключу, чтобы они видели только свой расход.

CPA Usage Keeper Auth Files

CPA Usage Keeper AI Provider

Как развернуть

Самый быстрый способ поднять связку — взять готовый Docker Compose.

services:
  cli-proxy-api:
    image: eceasy/cli-proxy-api:latest
    container_name: cli-proxy-api
    restart: unless-stopped
    ports:
      - "8317:8317"
    volumes:
      - ./cpa/config.yaml:/CLIProxyAPI/config.yaml
      - ./cpa/auths:/root/.cli-proxy-api
    networks:
      - cpa-network

  cpa-usage-keeper:
    image: ghcr.io/willxup/cpa-usage-keeper:latest
    container_name: cpa-usage-keeper
    restart: unless-stopped
    depends_on:
      - cli-proxy-api
    ports:
      - "8080:8080"
    environment:
      TZ: Europe/Moscow
      CPA_BASE_URL: http://cli-proxy-api:8317
      CPA_MANAGEMENT_KEY: your-management-key
      AUTH_ENABLED: "true"
      LOGIN_PASSWORD: strong-password-here
    volumes:
      - ./keeper:/data
    networks:
      - cpa-network

networks:
  cpa-network:
    driver: bridge

Запускается стандартно:

docker compose up -d

Если CPA уже работает на хосте или отдельном сервере, Keeper можно запустить отдельно, прописав переменные окружения CPA_BASE_URL и CPA_MANAGEMENT_KEY. Для пользователей macOS есть установка через Homebrew:

brew tap Willxup/cpa-usage-keeper
brew install cpa-usage-keeper
brew services start cpa-usage-keeper

Эксплуатация и обслуживание

Приятная деталь: автор сразу подумал про долгосрочную работу. В приложении встроен автоматический перенос старых событий. Каждую ночь в 04:30 записи старше 90 дней уходят в архивную таблицу usage_events_archive. За счет этого рабочая база не раздувается, а дашборд продолжает быстро открываться даже спустя месяцы активных тестов.

В комплекте идут автобэкапы SQLite раз в сутки и ротация логов. Для продакшена лучше спрятать Keeper за Nginx или Caddy, включив авторизацию паролем прямо в конфиге.

CPA Usage Keeper Login

Кому пригодится

Если вы держите собственный AI-шлюз для команды, пет-проектов или микросервисов, Keeper избавит от ручного разбора JSON-логов. Он закрывает простую задачу: наглядно показывает, куда уходят деньги за токены и насколько стабильно отвечают сторонние нейросети. Поднять его занимает пять минут, а польза видна сразу на первом графике.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.