Skip to content

Умный Telegram бот с искусственным интеллектом, долговременной памятью и уникальной личностью. Бот запоминает пользователей, анализирует их характер, поддерживает контекстные диалоги и имеет встроенный планировщик сообщений.

License

Notifications You must be signed in to change notification settings

R0D10Nq/BydlanBot

Repository files navigation

🤖 Smart Telegram Bot with AI Memory

Умный Telegram бот с искусственным интеллектом, долговременной памятью и уникальной личностью. Бот запоминает пользователей, анализирует их характер, поддерживает контекстные диалоги и имеет встроенный планировщик сообщений.

✨ Особенности

🧠 Искусственный интеллект

  • Интеграция с LM Studio для локальных LLM моделей
  • Уникальная личность "Димон" - разработчик с района
  • Контекстные ответы с учетом истории общения
  • Адаптивное поведение в зависимости от типа сообщения

💾 Система памяти

  • Векторная память с использованием sentence-transformers
  • SQLite база данных для долговременного хранения
  • Профили пользователей с анализом характера и интересов
  • Умный контекст с поиском релевантных воспоминаний

👥 Анализ пользователей

  • Отслеживание взаимодействий и построение отношений
  • Анализ тональности сообщений
  • Определение интересов и технических предпочтений
  • Система уровней отношений: незнакомец → знакомый → приятель → братан

Планировщик сообщений

  • Автоматические утренние приветствия (8:00 МСК)
  • Вечерние прощания (17:00 МСК)
  • Поддержка рабочих дней (пн-пт)
  • Специальные сообщения для пятницы

🔧 Технические возможности

  • Асинхронная архитектура
  • Система кулдаунов с учетом отношений
  • Автоматическая очистка старых данных
  • Поддержка топиков в Telegram группах
  • Детальное логирование на русском языке

Продвинутые фичи:

  • Local LLM integration (LM Studio)
  • Vector memory system с sentence-transformers
  • User profiling с анализом характера
  • Contextual conversations с долговременной памятью
  • Scheduling system для автоматических сообщений

🚀 Быстрый старт

Предварительные требования

  1. Python 3.8+
  2. LM Studio с запущенной моделью
  3. Telegram Bot Token (получить у @BotFather)

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/R0D10Nq/BydlanBot.git
cd BydlanBot
  1. Установите зависимости:
pip install -r requirements.txt
  1. Настройте конфигурацию:
cp .env.example .env
# Отредактируйте .env файл своими данными
  1. Запустите LM Studio:

    • Скачайте и установите LM Studio
    • Загрузите совместимую модель (рекомендуется 7B-13B параметров)
    • Запустите локальный сервер на порту 1234
  2. Запустите бота:

python bot.py

⚙️ Конфигурация

Основные настройки (.env)

# Telegram
TELEGRAM_BOT_TOKEN=your_bot_token_here
CHAT_ID=-1001234567890              # ID группы/чата
FLOOD_TOPIC_ID=675                  # ID топика (опционально)

# LM Studio
LM_STUDIO_URL=http://localhost:1234
MODEL_NAME=your_model_name

# Поведение бота
MAX_TOKENS=2048                     # Максимум токенов в ответе
CONTEXT_WINDOW=250                  # Размер окна контекста
MAX_PARALLEL=4                      # Параллельные запросы
COOLDOWN=2                          # Кулдаун между ответами (сек)

# Планировщик
ENABLE_SCHEDULE=true                # Включить планировщик
MORNING_TIME=08:00                  # Время утреннего приветствия
EVENING_TIME=17:00                  # Время вечернего прощания
TIMEZONE=Europe/Moscow              # Часовой пояс

Получение Chat ID

  1. Добавьте бота в группу
  2. Отправьте сообщение в группу
  3. Перейдите по ссылке: https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
  4. Найдите "chat":{"id":-1001234567890} в ответе

🎯 Команды бота

  • /start - Приветствие и информация о боте
  • /status - Подробный статус системы и статистика
  • /memory - Показать что бот помнит о пользователе
  • /schedule_test - Тест планировщика сообщений

🏗️ Архитектура

Основные компоненты

SmartBot/
├── 🧠 AdvancedContextManager    # Управление памятью и контекстом
├── 🔍 MessageAnalyzer          # Анализ необходимости ответа
├── 📝 PromptGenerator           # Генерация промптов для LLM
├── ⏰ ScheduledMessages         # Планировщик сообщений
├── 💾 DatabaseManager          # Работа с SQLite
└── 🔤 VectorMemory             # Векторный поиск

База данных

  • messages - История сообщений с метаданными
  • user_profiles - Профили пользователей с характеристиками

Система памяти

  1. Краткосрочная - Последние N сообщений в памяти
  2. Векторная - Семантический поиск по эмбеддингам
  3. Долговременная - SQLite база с полной историей

🎭 Личность бота

Димон - 28-летний фулл-стек разработчик с уникальным характером:

  • 🏠 Живет в частном доме, работает удаленно
  • 💻 Эксперт в JS/TS, React, Node.js, Python, Django
  • 🗣️ Говорит пацанским языком с техническими терминами
  • 🤝 Адаптируется под каждого пользователя
  • 💪 Помогает с кодом, но по-своему

🔧 Разработка

Структура кода

# Основные классы
class SmartBot:           # Главный класс бота
class BotConfig:          # Конфигурация
class Message:            # Модель сообщения
class UserProfile:        # Профиль пользователя

# Системы
class VectorMemory:       # Векторная память
class DatabaseManager:   # База данных
class MessageAnalyzer:   # Анализ сообщений
class PromptGenerator:   # Генерация промптов

Добавление новых функций

  1. Новая команда:
async def my_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Мой ответ")

# Регистрация
app.add_handler(CommandHandler("mycommand", my_command))
  1. Новый анализатор сообщений:
# В MessageAnalyzer.should_respond()
if "мой_триггер" in message_lower:
    return True, "my_reason"

📊 Мониторинг

Бот ведет подробные логи:

🚀 Запуск бота
🔍 Проверка зависимостей
✅ LM Studio доступен
💬 Отвечаю пользователю: direct_mention
🧠 Загружено 150 сообщений из БД
⏰ Планировщик сообщений активен

🐛 Решение проблем

Частые ошибки

  1. "Conflict: terminated by other getUpdates request"

    • Остановите все запущенные экземпляры бота
    • Проверьте диспетчер задач
  2. "LM Studio недоступен"

    • Убедитесь что LM Studio запущен
    • Проверьте URL и порт в конфигурации
  3. "SentenceTransformers не найден"

    pip install sentence-transformers
  4. Бот не отвечает в группе

    • Проверьте правильность CHAT_ID и FLOOD_TOPIC_ID
    • Убедитесь что бот добавлен в группу как администратор

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции
  3. Внесите изменения
  4. Добавьте тесты (если применимо)
  5. Создайте Pull Request

📄 Лицензия

MIT License - используйте как хотите, но укажите авторство.

🙏 Благодарности

📞 Поддержка

Если у вас есть вопросы или предложения:

  • Создайте Issue в GitHub
  • Опишите проблему максимально подробно
  • Приложите логи если возможно

Сделано с ❤️ для сообщества разработчиков

About

Умный Telegram бот с искусственным интеллектом, долговременной памятью и уникальной личностью. Бот запоминает пользователей, анализирует их характер, поддерживает контекстные диалоги и имеет встроенный планировщик сообщений.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published