Fixtures — синтетические прайсы клиник
Сгенерированы скриптом scripts/gen_fixtures.py (seed=42, детерминированно) для отладки pipeline до выдачи реальных данных от организатора. Намеренно разнородные и «грязные».
raw/ — входные прайсы (6 форматов)
| Файл | Формат | Особенности (что тестирует) |
|---|---|---|
clinic_alpha_clean.xlsx |
Excel | Чистая таблица — быстрый путь pandas, без LLM |
clinic_beta_dirty.xlsx |
Excel | Секции-заголовки, «от 12000», KZ-названия, лишние колонки |
clinic_gamma.csv |
CSV (;) |
Смешанные RU/KZ, единицы измерения |
clinic_delta_messy.txt |
Текст | Прайс абзацем, разные разделители и валюты (тг/тенге/₸/KZT) |
clinic_epsilon_scan.png |
Картинка | Имитация фото/скана (наклон) → путь LLM-vision / OCR |
clinic_zeta_prices.pdf |
Текстовый PDF, RU/EN заголовок |
Одни и те же услуги названы по-разному между файлами (ОАК / Общий анализ крови / Қанның жалпы анализі) — это материал для канонизации и дедупликации.
normalized/golden.json — эталон нормализации (52 строки)
Оракул для TDD ETL: для каждой строки из raw/ указан canon_id, canonical_ru/kz/en, category, code, price, currency, unit, source_file. Сгенерирован тем же скриптом, что и raw → гарантированно согласован.
Справочник канонов: ../contracts/service_canon.json (15 услуг, синонимы с lang-тегами).
TODO (Фаза 0 хакатона)
api/*.json— эталонные ответы API (для MSW-моков фронта)