feat: Фаза 0 — каркас, контракты, загрузчик справочника
- db/migrations/001_init.sql — схема (4 сущности, prices jsonb, pgvector/pg_trgm) - contracts/models.py — общие модели (RawRow, ParsedDocument, MatchResult, *Out) - etl/dictionary.py — загрузчик справочника (1281 услуга, нормализация) - api/main.py — FastAPI: 7 эндпоинтов ТЗ + /stats (контракт) - infra/ — docker-compose (pg+pgvector, api, web), Caddyfile - scripts/proof/phase0_proof.py — проверка каскада на реальных данных (35% без эмбеддингов) - data/ в .gitignore: данные клиник в публичный репо не коммитятся Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
[project]
|
||||
name = "medarchive"
|
||||
version = "0.1.0"
|
||||
description = "Автоматическая обработка архива прайсов клиник-партнёров и база услуг с ценами"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = [
|
||||
"fastapi>=0.115",
|
||||
"uvicorn[standard]>=0.32",
|
||||
"pydantic>=2.9",
|
||||
"psycopg[binary]>=3.2",
|
||||
"python-multipart>=0.0.12", # загрузка ZIP-архива
|
||||
"openpyxl>=3.1", # xlsx
|
||||
"xlrd>=2.0", # старый xls
|
||||
"python-docx>=1.1", # docx (+ принятие правок)
|
||||
"pdfplumber>=0.11", # PDF с текстовым слоем
|
||||
"pymupdf>=1.24", # рендер страниц для Vision
|
||||
"rapidfuzz>=3.10", # нечёткое сопоставление
|
||||
"sentence-transformers>=3.3", # многоязычные эмбеддинги
|
||||
"google-generativeai>=0.8", # Gemini Vision
|
||||
]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 100
|
||||
target-version = "py312"
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["E", "F", "I", "UP", "B"] # стиль, ошибки, импорты, апгрейды, баги
|
||||
Reference in New Issue
Block a user