📊 Multi-LLM Orchestrator v0.7.0: подсчёт токенов и мониторинг через Prometheus
На этой неделе вышел релиз v0.7.0 — завершена фаза observability. Теперь библиотека автоматически считает токены, оценивает стоимость запросов и экспортирует метрики в Prometheus. Всё работает из коробки.
Предыдущие релизы:
🔢 Автоматический подсчёт токенов
Библиотека автоматически считает токены для каждого запроса — и для prompt, и для completion. Используется tiktoken с fallback на оценку по словам.
from orchestrator import Router
from orchestrator.providers import GigaChatProvider, ProviderConfig
router = Router()
router.add_provider(GigaChatProvider(ProviderConfig(
name="gigachat",
api_key="your_key",
model="GigaChat",
verify_ssl=False
)))
# Токены считаются автоматически
response = await router.route("Напиши стихотворение про Python")
# Получаем статистику
metrics = router.get_metrics()
print(f"Total tokens: {metrics['gigachat'].total_tokens}")
print(f" Prompt: {metrics['gigachat'].total_prompt_tokens}")
print(f" Completion: {metrics['gigachat'].total_completion_tokens}")Результат:
Total tokens: 75
Prompt: 20
Completion: 55💰 Оценка стоимости запросов
Расчёт стоимости в реальном времени. Цены настраиваются в pricing.py (фиксированные значения для демонстрации — для production рекомендуется настроить под свои тарифы).
Результаты тестов с реальными провайдерами:
GigaChat: 75 tokens → ₽0.0750
YandexGPT: 105 tokens → ₽0.1575
Streaming: 342 tokens → ₽0.3420
📈 Интеграция с Prometheus
HTTP-эндпоинт /metrics в формате Prometheus. Метрики обновляются в реальном времени и готовы для scraping.
# Запускаем metrics server
await router.start_metrics_server(port=9090)
# Делаем запросы
await router.route("Привет!")
# Метрики доступны: http://localhost:9090/metricsЭкспортируемые метрики:
llm_requests_total— количество запросовllm_request_latency_seconds— histogram латентностиllm_tokens_total— токены (prompt/completion)llm_cost_total— стоимость в RUBllm_provider_health— health status (0-1)
Готово для визуализации с Grafana.
🏗️ Архитектура

✅ Тестирование на реальных провайдерах
Все функции протестированы с production API и реальными ключами:
Подсчёт токенов:
✅ GigaChat — 75 токенов, ₽0.0750 (стихотворение про Python)
✅ YandexGPT — 105 токенов, ₽0.1575 (объяснение ML концепции)
Streaming-режим:
✅ GigaChat — 342 токена, ₽0.3420 (генерация длинного текста)
Prometheus endpoint:
✅ HTTP /metrics — корректный формат, все метрики экспортируются
Качество кода: 203 теста • 81% покрытие • mypy strict без ошибок
📦 Установка
pip install multi-llm-orchestrator==0.7.0Новые зависимости: prometheus-client, tiktoken, aiohttp
🎯 Планы на v0.8.0
В следующей версии планируется добавить:
Динамическое обновление цен — автоматическое получение актуальных тарифов через API провайдеров
Provider-specific tokenizers — нативные токенизаторы для GigaChat и YandexGPT (вместо универсального tiktoken)
Расширенная аналитика латентности — percentiles p50, p95, p99 для детального анализа производительности
Cost analytics — уведомления о превышении бюджета, детальная разбивка расходов по моделям
Prometheus Pushgateway — поддержка push-модели для serverless окружений
Если используете библиотеку — пишите в комментариях, какие функции нужны вам!
🔗 Ссылки










