Архитектура и сборка контекста
5.1Экспорт и очистка чатов WhatsApp
ШУМ НА ВХОДЕ · ГАЛЛЮЦИНАЦИИ НА ВЫХОДЕ
Модель галлюцинирует, когда ей скармливают шум: служебные метки, уведомления о шифровании, заглушки «медиа пропущено». Сырой экспорт чата нужно превратить в чистый токенизированный диалог.
- Экспорт: в WhatsApp откройте чат → меню → «Экспорт чата» → Без медиафайлов. Придёт файл
_chat.txt. - Очистка одной командой: убирает метки времени, уведомление о сквозном шифровании и заглушки медиа, собирая монолитный Markdown.
perl -CSDA -ne 'next if /end-to-end encrypted|сквозным шифрованием/;
s/^\[\d{2}\.\d{2}\.\d{2},\s\d{2}:\d{2}:\d{2}\]\s//;
s/<Media omitted>|<медиафайл пропущен>//g;
print;' _chat.txt > clean.md
Синтетический пример строки до очистки: [05.11.26, 14:22:31] Клиент A: пришлите счёт <Media omitted> → после: Клиент A: пришлите счёт. Перед отправкой в ИИ удалите из диалога персональные данные людей, которые не давали согласия.
5.2Выгрузка Telegram-каналов и рабочих групп
TELEGRAM DESKTOP · MACHINE-READABLE
- Экспорт: Telegram Desktop → ⋮ →
Export chat history→ формат Machine-readable JSON (или TXT), без медиа для текстового контекста. - Фильтрация: из рабочей группы вытащите только сигнал — решения, ТЗ, правки — отбросив флуд, стикеры и «ок». Для JSON это один проход скриптом по полю
text.
jq -r '.messages[] | select(.text != "") | "\(.from): \(.text)"' result.json \ | grep -viE '^[^:]+: (ок|ok|\+|да|нет)$' > telegram_clean.txt
5.3Упаковка кодовой базы и документации
REPOMIX · FILES-TO-PROMPT · XML-АРХИТЕКТУРА
50 файлов проекта превращаются в один структурированный документ CLI-утилитой — модель видит весь контекст сразу, а не по кусочку.
npx repomix --style xml --output project.xml . # альтернатива: pipx run files-to-prompt ./src --cxml -o project.xml
Собранный контекст заворачивается в XML-скелет промпта — чёткие границы секций снижают галлюцинации:
<system_role> кто модель и как отвечает </system_role> <project_rules> стек, стиль, запреты </project_rules> <client_context> очищенные диалоги из 5.1–5.2 </client_context> <codebase> project.xml из 5.3 </codebase> <task> одна конкретная задача </task>
Правило: один чистый контекст — один ответ без галлюцинаций. Мусор на входе дешевле убрать скриптом, чем вычищать из ответа модели.