7.6 KiB
MyStar: Автономный ИИ-компаньон (Self-Hosted)
MyStar — это продвинутый, полностью локальный ИИ-бот-компаньон для Telegram, созданный на базе Python, Ollama, SD.Next и Whisper.
В отличие от простых чат-ботов, MyStar обладает "живой" личностью с долговременной памятью, симуляцией биологических циклов, мультимодальным восприятием (зрение/слух) и автономным поведением.
🚀 Ключевые возможности
🧠 1. Динамическая личность и мышление
- Модульный промптинг:
SYSTEM_PROMPTсобирается динамически "на лету". В зависимости от контекста, в базовый промпт внедряются различные модули личности. - Долговременная память (LTM): Бот использует систему "Дневника" (SQLite). Он не просто скармливает всю историю чата в LLM. Вместо этого он внедряет:
[Базовая Персона] + [Саммари LTM] + [Недавний контекст]. - Фоновое "мышление": Когда вы неактивны, фоновый процесс (
run_memory_summarization) анализирует недавние диалоги, извлекает ключевые факты о вас (хобби, проблемы, планы) и сохраняет их в базу данных LTM.
💖 2. Отношения и биологические состояния
- Развитие отношений: Бот поддерживает три стадии: Незнакомец, Друг и Возлюбленная.
- Авто-прогрессия: Бот автоматически распознает романтические намерения и повышает статус отношений.
- Симуляция 28-дневного цикла: Бот отслеживает симулированный цикл, который влияет на её настроение и директивы промпта:
- Период (Дни 1-7): Она может быть капризной, требовать утешения и будет отказываться от NSFW-взаимодействий.
- Овуляция (Дни 12-16): Она становится более кокетливой, уверенной в себе и ласковой.
👁️ 3. Мультимодальное восприятие ("Сенсоры")
- Зрение (Распознавание изображений): Вы можете отправлять боту фотографии. Она "видит" их и комментирует естественным образом.
- Слух (Голосовые сообщения): Интегрированный OpenAI Whisper позволяет боту слушать ваши голосовые заметки и отвечать на них текстом.
- Понимание контекста: Она определяет ваш рабочий график и уважает ваше время (избегая отвлекающих факторов в рабочие часы).
💬 4. Продвинутое взаимодействие и визуал
- Спонтанные сообщения от ИИ: Никаких жестко прописанных шаблонов. Если вы давно не писали, она сгенерирует уникальное, контекстно-зависимое сообщение, чтобы узнать, как у вас дела.
- Высококачественная генерация изображений:
- Работает на базе SD.Next и модели ✨ JANKU Trained + NoobAI + RouWei Illustrious XL ✨ для топовой аниме-эстетики.
- SFW по умолчанию: Генерирует милые/уютные селфи на основе контекста разговора.
- Контекстный NSFW: Генерация откровенного контента строго ограничена (требует статуса 'Lover', конкретного запроса пользователя и подходящего времени/состояния).
🛠️ Технический стек
- Python 3.10+
- Ollama: Локальный бэкенд для LLM.
- SD.Next: Продвинутый WebUI для Stable Diffusion.
- FFmpeg: Обработка аудио для Whisper.
📦 Инструкция по установке
Шаг 1: Установка и настройка Ollama
- Скачайте Ollama:
- Стандартная версия: Скачайте с официального сайта.
- Для неподдерживаемых видеокарт AMD: Если у вас старая или неподдерживаемая карта Radeon, используйте этот форк: Ollama for AMD.
- Загрузите модель:
Откройте терминал и загрузите модель, используемую в конфиге (по умолчанию
gemma3:12b):ollama pull gemma3:12b
Шаг 2: Установка и настройка SD.Next
- Установите SD.Next: Клонируйте и установите репозиторий от vladmandic/sdnext.
- Скачайте чекпоинт (модель): Скачайте модель ✨ JANKU Trained + NoobAI + RouWei Illustrious XL ✨.
- Настройка:
- Поместите скачанную модель в папку
models/Stable-diffusionвнутри вашей директории SD.Next. - Запустите SD.Next с включенным флагом API:
./webui.sh --api --debug # Или на Windows: webui.bat --api --debug
- Поместите скачанную модель в папку
Шаг 3: Установка бота
-
Клонируйте этот репозиторий:
git clone [https://git.maxo.one/Maxo/MyStar.git](https://git.maxo.one/Maxo/MyStar.git) cd MyStar -
Установите зависимости Python:
pip install python-telegram-bot python-telegram-bot[job-queue] openai-whisper requests(Примечание: Для работы Whisper в вашей системе также должен быть установлен
ffmpegи добавлен в системный путь). -
Настройка окружения: Установите токен вашего Telegram-бота как переменную окружения (или отредактируйте строку
TELEGRAM_BOT_TOKENпрямо в скрипте, хотя это не рекомендуется с точки зрения безопасности).export TELEGRAM_BOT_TOKEN="ваш_токен_телеграм_бота" -
Запуск бота:
python MyStarRU.py
📄 Лицензия
MIT License. См. файл LICENSE для подробностей.