Files
drhider/History/2026-07-12-v3-done.md
T
naeel 84ae7439f5
Deploy drhider / validate (push) Waiting to run
History: v3.0.0 завершён
2026-07-12 09:15:13 +04:00

46 lines
2.3 KiB
Markdown

# v3.0.0 — универсальная архитектура (2026-07-12)
Переход на Markdown-пайплайн + универсальное LLM-обнаружение.
## Что изменилось
### 1. `generators/fallback.py` — новый
Character-class preserving замена для неизвестных типов сущностей.
Цифры→цифры, буквы→буквы, спецсимволы→без изменений.
### 2. `scanner.py` — универсальный LLM-промпт
- Убран жёсткий список типов (person, company, address, passport)
- LLM САМА придумывает тип (snake_case) — person_name, contract_number, employee_id...
- Если тип не совпадает с известными — fallback-генератор
- Промпт на английском (LLM точнее)
### 3. `extractor.py` — Markdown-пайплайн
- `docx_to_markdown()`: DOCX → MD (Heading → #, Bold → **, таблицы → |...|)
- `pdf_to_markdown()`: PDF → MD (текст + таблицы, без форматирования)
- `extract_text()` возвращает только str (без docx-объектов)
- Удалён `convert_pdfs_to_docx()` (PDF → MD напрямую)
### 4. `replacer.py` — упрощён
- Удалён `replace_in_text()` (заменён на `apply_replacements()` + `.encode()`)
- Оставлен `replace_in_docx()` для будущего DOCX-выхода
### 5. `obfuscator.py` — новый пайплайн
- Pass 1: extract MD → scan_regex + scan_llm_ner
- Pass 2: apply_replacements к MD → .md файлы
- Нет docx-объектов, нет convert_pdfs_to_docx
## Коммиты
- `579f9c8` — generators: fallback.py
- `2ceeb05` — scanner.py: универсальный промпт
- `af2f2a9` — extractor.py: MD + obfuscator.py: новый пайплайн
- `f5427b0` — replacer.py: удалён replace_in_text
- `2a2cc14` — v3.0.0
## Плюсы
- LLM точнее (нет XML-шума, только Markdown)
- Новые типы сущностей — без правки кода
- Код проще: -120 строк, -1 функция, -1 модуль (convert_pdfs_to_docx)
- Единый внутренний формат (Markdown)