🛠 Установка и настройка окружения
Установка рассчитана на работу в среде Windows через терминал (PowerShell).
1. Установка Python и базовых библиотек
PowerShell
winget install Python.Python.3.14
# После установки обязательно перезагрузи ПК или перезапусти терминал
pip install groq openai requests Pillow beautifulsoup4
2. Настройка API-ключей (OCR)
Модуль распознавания текста (OCR) требует ключ от облачного провайдера. Проще всего прописать его прямо в переменные среды пользователя:
PowerShell
[Environment]::SetEnvironmentVariable("GROQ_API_KEY", "твой_ключ_здесь", "User")
Альтернатива: прописать ключи напрямую в файле config/settings.ini в секции [API_KEYS].

Загрузчики (Downloaders)
Загрузчики собирают сырые данные с форума, сохраняют их в атомарные jsonl-базы и (если нужно) выкачивают/распознают картинки.
themeDownloader.py
Скачивает одну конкретную тему форума. Умеет докачивать новые посты при повторном запуске.
Настройки в settings.ini ([GENERAL]):
thread_url: Ссылка на тему.
target_username: Фильтр по автору.
download_files / download_images: Включает скачивание прикрепленных файлов и картинок (True/False).
ocr_jpg: Включает ИИ-распознавание текста на скачанных картинках (True/False).
userDownloader.py
Скачивает абсолютно все сообщения конкретного пользователя (и созданные им темы, и ответы в чужих). Не качает физические файлы (только сохраняет их названия для контекста).
Настройки в settings.ini ([USER_DOWNLOADER]):
user_url: Ссылка на профиль ИЛИ прямая поисковая ссылка для закрытых профилей (например,
https://borrelioz.com/forum/search/member?user_id=1137).

Конвертеры (Converters)
Берут сырые jsonl-базы, восстанавливают хронологию и превращают их в красивые, оптимизированные txt-файлы для скармливания нейросетям.
theme_convert.py
Конвертирует скачанную базу одной темы.
Настройки в settings.ini ([GENERAL]):
Опирается на thread_url и target_username, чтобы найти правильную папку вида downloads/ID_Username.
single_file: Создавать ли единый огромный файл Имя_all.txt (True/False).
chunk: Включает автоматическую нарезку на части для ИИ с маленьким окном контекста (True/False).
chunk_max_size_kb: Максимальный размер одного куска в килобайтах (например, 120).
user_convert.py
Собирает архив пользователя (десятки разных файлов) в единую хронологическую ленту сообщений.
Настройки в settings.ini ([USER_DOWNLOADER] & [GENERAL]):
Использует user_url, чтобы на лету узнать имя пользователя и найти папку archive_Имя.
Параметры single_file, chunk и chunk_max_size_kb работают точно так же, как и для тем.

Вспомогательные модули (Ядро)
Эти скрипты не нужно запускать вручную (кроме cutter.py), они работают "под капотом".
converter.py: Сердце конвейера конвертации. Загружает JSONL, сортирует все посты по дате ISO 8601, безопасно извлекает названия вложений (как строк, так и словарей), подшивает результаты OCR и генерирует AI-разметку.
ai_ocr_module.py: Мощный движок работы с изображениями. Автоматически сжимает картинки до 1000px для экономии трафика и отправляет их в LLM (Groq, Gemini, Ollama). Умеет элегантно обрабатывать Rate Limits (ошибки 429), ставя парсер на паузу.
cutter.py: Ручной инструмент для экстренной нарезки готовых мега-файлов. Если файл получился слишком большим (например, 5 МБ), скрипт аккуратно разрежет его на части, не разрывая сообщения посередине (ищет разделители ====== и шапки тем).

Типичный сценарий работы (От форума до аналитики)
Допустим, стоит задача собрать все сообщения конкретного участника форума (с темой аналогично), чтобы проанализировать историю его болезни, отследить изменения позиции во времени или составить поведенческий портрет.
Шаг 1. Настройка цели
Открываем файл конфигурации config/settings.ini. Чтобы избежать проблем с приватностью и скрытыми профилями, в секцию [USER_DOWNLOADER] вставляем прямую ссылку на поиск по ID нужного пользователя:
[USER_DOWNLOADER]
user_url =
https://borrelioz.com/forum/search/member?user_id=1137
Шаг 2. Сбор сырых данных (Парсинг)
В терминале запускаем загрузчик:
PowerShell
python userDownloader.py
Скрипт сам обратится к поиску, узнает точное имя пользователя (например, umni), найдет все созданные им темы и все ответы в чужих ветках. Данные будут аккуратно сложены в формате JSONL в новую папку downloads/archive_umni.
Шаг 3. Хронологическая сборка (Конвертация)
Сразу после завершения скачивания запускаем конвертер:
PowerShell
python user_convert.py
Ядро программы прочитает все разрозненные файлы базы данных, отсортирует сообщения в строгом хронологическом порядке (от самого старого к самому новому), добавит красивые заголовки тем и выдаст готовый файл umni_all.txt.
Шаг 4. ИИ-анализ (Финальный этап)
Берем готовый текстовый документ и загружаем его в аналитическую LLM (для объемных файлов отлично подойдет NotebookLM). База идеально оптимизирована для нейросетей, поэтому теперь можно писать глубокие промпты:
«Проанализируй все посты этого пользователя и сделай выжимку назначенных ему схем лечения».
«Оцени поведение участника, уровень его аргументации и логику рассуждений в спорах с другими людьми».
«Как менялось мнение пользователя об антибиотиках на протяжении этих двух лет?»
Промт для NotebookLM лежит в файле config\prompts\notebook-lm.txt