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

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.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)