2.2 KiB
2.2 KiB
План v3 — универсальная архитектура (2026-07-12)
Цель
Убрать жёсткую привязку к фиксированному списку типов сущностей. Перейти на Markdown как внутренний формат.
Изменения по модулям
1. scanner.py — универсальный LLM-промпт
- Убрать список типов из промпта
- LLM сама называет типы (snake_case)
value— verbatim из текста
2. generators/ — fallback-генератор
- Новый
fallback.py: character-class preserving замена __init__.py: добавить в ENTITY_GENERATORSobfuscator.py: использовать fallback для неизвестных типов
3. extractor.py — единый MD-пайплайн
- DOCX → MD (python-docx: стили, форматирование)
- PDF → MD (pdfplumber: текст + таблицы)
- TXT → как есть
- Убрать convert_pdfs_to_docx (не нужен)
- Убрать хранение docx-объектов
4. replacer.py — упростить
apply_replacements(text)— уже естьreplace_in_docx(doc, mapping)— сохранить как утилиту для DOCX-выхода- Удалить
replace_in_text()(заменяется на apply_replacements)
5. obfuscator.py — обновить пайплайн
- Pass 1: extract MD → scan_regex + scan_llm_ner
- Pass 2: apply_replacements к MD
- Опционально: replace_in_docx к оригинальному DOCX
6. api_bp.py — output_format
- Параметр
output_format: "md" | "docx"(по умолчанию md)
7. .doc — потом
- Добавим convert_doc_to_docx через LibreOffice отдельно
Порядок реализации
generators/fallback.py+ обновить__init__.pyscanner.py— новый промптextractor.py— MD-конвертацияreplacer.py— упроститьobfuscator.py— новый пайплайнapi_bp.py— output_format- Проверить всё → commit