Убрал из беклога учёт стоимости и метрики LLM (docs)
Разные провайдеры и мониторинг запросов к LLM закрыты внешним LLM Gateway (bifrost) на сервере; для наблюдения за состоянием пока достаточно slog. Заодно поправил висячую ссылку на удалённый раздел в «Истории переходов». Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-29
@@ -121,32 +121,6 @@ qBittorrent — осознанный выход за инвариант «ист
|
||||
матча, провайдер-id), [«Улучшения UI: показывать матч»](#улучшения-ui-показывать-матч-с-записью-метабазы),
|
||||
пакет `httpapi`.
|
||||
|
||||
### Наблюдаемость: метрики и учёт стоимости LLM
|
||||
|
||||
Сейчас единственное окно в систему — `slog`. Нет быстрых ответов на
|
||||
вопросы «сколько задач висит в review», «сколько токенов и денег съело
|
||||
распознавание», «какова медиана времени ingest → done». Нужны метрики:
|
||||
эндпоинт `/metrics` (Prometheus-формат) со счётчиками загрузок по
|
||||
состояниям, длительностями стадий и расходом LLM (токены/стоимость на
|
||||
задачу).
|
||||
|
||||
**Расход LLM уже снимается с провода** — `llm.openai` парсит `usage`
|
||||
(prompt/completion/total tokens и `cost`, который отдаёт шлюз) в
|
||||
`llm.Response.Usage` и пишет в лог. Не хватает только **персистентности и
|
||||
отображения**: сохранять `usage` у попытки распознавания (`recognition`) и
|
||||
показывать в карточке загрузки + агрегатом в `/metrics`. Где провайдер не
|
||||
шлёт `cost` — считать из токенов по таблице «модель → цена» в конфиге.
|
||||
|
||||
Отдельный LLM-прокси (LiteLLM и т.п.) для этого **не нужен** и противоречит
|
||||
принципам «один бинарь» / «минимум компонентов»: подсчёт токенов уже в коде,
|
||||
а роль мульти-модельного шлюза играет используемый OpenAI-совместимый
|
||||
эндпоинт (он и возвращает `cost`); разные модели подключаются сменой
|
||||
`[llm].model` или новым типом провайдера за интерфейсом `llm.Provider`.
|
||||
|
||||
Связано: [architecture.md](specs/architecture.md) → «Логирование»,
|
||||
[recognition.md](specs/recognition.md) (провайдер LLM, `[llm].type`),
|
||||
пакеты `worker`, `llm`, `httpapi`.
|
||||
|
||||
### Ретеншн и очистка БД
|
||||
|
||||
Терминальные задачи (`done`/`cancelled`/`failed`/`reverted`), их попытки
|
||||
@@ -231,9 +205,7 @@ qBittorrent, пул LLM-вызовов и запись в SQLite спроект
|
||||
[drafts/logical-title-model.md](drafts/logical-title-model.md) §5.4 (схема
|
||||
`state_transition`, actor `worker|human|reconcile`),
|
||||
[workflow.md](specs/workflow.md) (граф состояний),
|
||||
[«Наблюдаемость: метрики»](#наблюдаемость-метрики-и-учёт-стоимости-llm)
|
||||
(длительности стадий), [database.md](specs/database.md), пакеты `worker`,
|
||||
`store`.
|
||||
[database.md](specs/database.md), пакеты `worker`, `store`.
|
||||
|
||||
### Машина состояний на go-библиотеке
|
||||
|
||||
|
||||
Reference in New Issue
Block a user