Skip to content

newfpv/AiBiographer

Repository files navigation

📖 AI Biographer — Архитектор Цифровых Судеб

Превращайте гигабайты хаотичных чатов в структурированные досье, хронологии и психологические портреты.

AI Biographer — это мощный инструмент для анализа дампов переписки Telegram. Система «проглатывает» экспорт чатов (JSON/ZIP), пропускает их через многоуровневый конвейер нейросетей Google Gemini и выдает на выходе детальную биографию человека: от его привычек и работы до хронологии ключевых событий жизни.


🚀 Основные возможности

  • ⚡️ Многоэтапный AI-конвейер: * Этап 1: Извлечение «сырых» фактов (работа, хобби, имущество, события с датами).
    • Этап 2: Умное сжатие и удаление дубликатов.
    • Этап 3: Рекурсивная компрессия для создания финального досье.
  • 🌐 Веб-загрузчик (Web Uploader): Telegram ограничивает файлы до 20 МБ. Встроенный Flask-сервер позволяет загружать дампы любого размера через браузер с прогресс-баром.
  • 🔄 Бесконечный пул ключей: Система динамической ротации API-ключей Gemini. Если один ключ ловит лимит (Error 429), бот мгновенно переключается на следующий без остановки процесса.
  • 🛡 Вайтлист и Админка: Доступ к боту только по белому списку. Удобная админ-панель для управления пользователями прямо в чате.
  • 📦 Docker-Native: Полная изоляция и быстрый запуск одной командой.

🧠 Техническая архитектура

Проект спроектирован для обработки огромных массивов данных (сотни тысяч сообщений) без потери контекста.

Умная ротация и Fallback моделей

В ai_manager.py реализована логика «выживания»:

  1. Key Rotation: Использование нескольких ключей Gemini одновременно.
  2. Model Fallback: Если модель gemini-2.0-flash недоступна, система автоматически пробует gemini-1.5-flash и другие доступные версии из списка.
  3. Smart Cooldown: Ключи, получившие временный бан от Google, уходят в «сон», а затем возвращаются в ротацию.

Обработка данных (Data Pipeline)

  • Парсинг: Скрипт поддерживает как полные дампы аккаунтов, так и экспорт отдельных чатов.
  • Чанкинг: Переписка разбивается на умные блоки по времени (годы, кварталы, месяцы), чтобы Gemini не теряла нить событий.

🛠 Установка и запуск

1. Подготовка .env

Создай файл .env в корне проекта и заполни его:

TG_BOT_TOKEN=твой_токен_от_BotFather
ADMIN_ID=твой_телеграм_id
API_KEYS=ключ_1,ключ_2,ключ_3
BASE_URL=https://твой-домен.com
LOCAL_DATA_DIR=/app/data

2. Запуск через Docker

Система автоматически поднимет бота и веб-сервер для загрузки файлов:

docker compose up -d --build

📋 Инструкция по использованию

  1. Загрузка: Напиши боту /start. Если твой файл больше 20 МБ, используй кнопку «Загрузить через веб».
  2. Настройка: Бот проанализирует имена в чате. Ты можешь переименовать участников для более точного анализа (например, «Мама», «Босс»).
  3. Лимиты: Выбери объем сообщений на один блок анализа (по умолчанию 2000–5000).
  4. Выбор цели: Укажи, на кого именно составлять биографию.
  5. Результат: Бот начнет пошаговую генерацию. По завершении этапов ты получишь текстовые файлы с отчетами.

⚙️ Стек технологий

  • Язык: Python 3.10
  • Бот-фреймворк: pyTelegramBotAPI
  • Веб-часть: Flask
  • Нейросеть: Google Gemini (Generative AI)
  • Контейнеризация: Docker & Docker Compose

⚠️ Безопасность и конфиденциальность

Бот работает локально внутри твоего Docker-контейнера. Все файлы дампов и сгенерированные биографии хранятся в папке /data и автоматически удаляются после завершения сессии. Проект не передает данные третьим лицам, кроме API Google Gemini для анализа.


📄 Лицензия

Распространяется под лицензией GPLv3. Используй с умом и во благо.

About

Это идеальный инструмент для тех, кто хочет вспомнить «как это было» или быстро составить профиль на человека по его сообщениям.

Resources

License

Stars

Watchers

Forks

Contributors