This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user