feat: конвейер ingest→SQLite, API на БД, фронт сравнения цен
- etl/pipeline.py — extract→normalize→validate→SQLite, дедуп партнёров, версии цен, отчёт качества
- api/main.py — 7 эндпоинтов на SQLite; ядро /services/{id}/partners (сравнение)
- web/index.html — одностраничный фронт (палитра Nomad): поиск, сравнение, дашборд, unmatched
- загрузчик справочника: уникальный service_id
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
"""Запуск конвейера на архиве: data/raw → SQLite + отчёт о качестве.
|
||||
|
||||
Флаг --vision включает добор трудных PDF через Gemini Vision (медленно).
|
||||
"""
|
||||
import json
|
||||
import sys
|
||||
from datetime import date
|
||||
from pathlib import Path
|
||||
|
||||
REPO = Path(__file__).resolve().parents[1]
|
||||
sys.path.insert(0, str(REPO))
|
||||
|
||||
from etl.normalize.embedding import GeminiEmbedder
|
||||
from etl.pipeline import run
|
||||
|
||||
summary = run(
|
||||
data_dir=str(REPO / "data/raw"),
|
||||
db_path=str(REPO / "data/medarchive.db"),
|
||||
dict_path=str(REPO / "data/reference/dictionary.xlsx"),
|
||||
embedder=GeminiEmbedder(),
|
||||
use_vision="--vision" in sys.argv,
|
||||
today=date(2026, 6, 26),
|
||||
)
|
||||
(REPO / "data/quality_report.json").write_text(
|
||||
json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8"
|
||||
)
|
||||
print(json.dumps(summary, ensure_ascii=False, indent=2))
|
||||
Reference in New Issue
Block a user