2.3 KiB
2.3 KiB
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.py2ceeb05— scanner.py: универсальный промптaf2f2a9— extractor.py: MD + obfuscator.py: новый пайплайнf5427b0— replacer.py: удалён replace_in_text2a2cc14— v3.0.0
Плюсы
- LLM точнее (нет XML-шума, только Markdown)
- Новые типы сущностей — без правки кода
- Код проще: -120 строк, -1 функция, -1 модуль (convert_pdfs_to_docx)
- Единый внутренний формат (Markdown)