feat(admin): честная длительность прогона + добор эмбеддингов
Разбор итогов массовой заливки показал в отладке «среднюю длительность прогона» в 2.8 часа там, где парсинг занимал 50 секунд: started_at пишется в момент постановки в очередь, а очередь из 173 источников разбирается часами. Теперь момент реального старта пишется отдельно (run_started_at, миграция 006), а схема отдаёт обе величины — сколько ждал очереди и сколько работал. Плюс scripts/ops/reembed_missing.py: документ попадает в корпус сразу, а вектор для L3 считает отдельная задача; когда worker-gpu или Ollama недоступны, эти задачи теряются и документ остаётся невидимым для семантического поиска. Скрипт находит faiss_id IS NULL и переотправляет пачками (dry-run по умолчанию) — сейчас таких 23 101 из 177 147. Документация: актуальные цифры корпуса, дубли при повторном прогоне, лимит OpenAlex, и главное — гипервизор .254 зафиксирован в DR-HA как самая широкая единая точка отказа (брокер, эмбеддинги, секреты и прокси на одном железе; подтверждено аварией 28.08). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -81,7 +81,10 @@
|
||||
`last_run_id` — ссылка на последний прогон.
|
||||
- **parse_runs** — прогоны заливки: стадия, счётчики (`target/fetched/processed/
|
||||
added/duplicates/skipped/failed`), `cancel_requested`, `heartbeat_at`, журнал
|
||||
событий (JSON). Из них админка рисует шкалу загрузки, см. §12.
|
||||
событий (JSON). Тайминги раздельные: `started_at` — постановка в очередь,
|
||||
`run_started_at` — реальный старт работы воркером (при массовом запуске между
|
||||
ними часы ожидания), `finished_at` — конец. Из них админка рисует шкалу
|
||||
загрузки, см. §12.
|
||||
- **staged_works** — пользовательские загрузки на модерацию перед добавлением в корпус.
|
||||
- **admin_sessions** — одноразовые коды входа в админку.
|
||||
|
||||
@@ -226,6 +229,12 @@ Identity (Universal Auth) и генерирует `.env` заново (`infisica
|
||||
`VECTOR_BACKEND`).
|
||||
- **Бюджет времени прогона** (`PARSER_TIME_BUDGET_S`, по умолчанию 1500с) —
|
||||
защита от краш-лупа по `consumer_timeout` RabbitMQ, см. [DR-HA.md](DR-HA.md) §6.
|
||||
- **Добор эмбеддингов** — [`scripts/ops/reembed_missing.py`](../scripts/ops/reembed_missing.py):
|
||||
документ попадает в корпус сразу, а вектор для L3 считает отдельная задача
|
||||
`gpu.embed_documents`; если worker-gpu или Ollama были недоступны, эти задачи
|
||||
теряются и документ остаётся невидимым для семантического поиска. Скрипт
|
||||
находит `faiss_id IS NULL` и переотправляет задачи пачками (dry-run по
|
||||
умолчанию). Покрытие видно в панели отладки.
|
||||
|
||||
## 13. Безопасность
|
||||
|
||||
|
||||
Reference in New Issue
Block a user