Files
medtech-hackathon/pyproject.toml
T
admins 1de66eaa85 feat(etl): нормализация на Gemini-эмбеддингах (API), Vision подключён
- эмбеддинги переведены с локального torch на Gemini API (лёгкий контейнер)
  GeminiEmbedder: gemini-embedding-001, 768d, RETRIEVAL query/document
- фильтр настоящих названий: коды/числа не уходят в сопоставление
- порог косинуса 0.70 → ~73% автонормализации (цель ТЗ ≥70%), остальное в unmatched
- Vision (gemini-2.5-flash, новый SDK) подключён в диспетчер для скан/нулевых PDF;
  проверено: Клиника 5 — 34 чистые позиции со страницы
- зависимости: убран torch/sentence-transformers, добавлен google-genai+numpy

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 17:17:06 +05:00

28 lines
1.2 KiB
TOML

[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", # нечёткое сопоставление
"numpy>=2.0", # векторные операции при сопоставлении
"google-genai>=1.0", # Gemini Vision + эмбеддинги (API, без локального torch)
]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"] # стиль, ошибки, импорты, апгрейды, баги