Files
drhider/History/2026-07-12-v3-plan.md
2026-07-12 09:09:54 +04:00

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_GENERATORS
  • obfuscator.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 отдельно

Порядок реализации

  1. generators/fallback.py + обновить __init__.py
  2. scanner.py — новый промпт
  3. extractor.py — MD-конвертация
  4. replacer.py — упростить
  5. obfuscator.py — новый пайплайн
  6. api_bp.py — output_format
  7. Проверить всё → commit