Убрал из беклога учёт стоимости и метрики 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-показывать-матч-с-записью-метабазы),
|
матча, провайдер-id), [«Улучшения UI: показывать матч»](#улучшения-ui-показывать-матч-с-записью-метабазы),
|
||||||
пакет `httpapi`.
|
пакет `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`), их попытки
|
Терминальные задачи (`done`/`cancelled`/`failed`/`reverted`), их попытки
|
||||||
@@ -231,9 +205,7 @@ qBittorrent, пул LLM-вызовов и запись в SQLite спроект
|
|||||||
[drafts/logical-title-model.md](drafts/logical-title-model.md) §5.4 (схема
|
[drafts/logical-title-model.md](drafts/logical-title-model.md) §5.4 (схема
|
||||||
`state_transition`, actor `worker|human|reconcile`),
|
`state_transition`, actor `worker|human|reconcile`),
|
||||||
[workflow.md](specs/workflow.md) (граф состояний),
|
[workflow.md](specs/workflow.md) (граф состояний),
|
||||||
[«Наблюдаемость: метрики»](#наблюдаемость-метрики-и-учёт-стоимости-llm)
|
[database.md](specs/database.md), пакеты `worker`, `store`.
|
||||||
(длительности стадий), [database.md](specs/database.md), пакеты `worker`,
|
|
||||||
`store`.
|
|
||||||
|
|
||||||
### Машина состояний на go-библиотеке
|
### Машина состояний на go-библиотеке
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user