SkipOneAI:基于 RAG 与本地 LLM 的 Telegram 数字分身智能体
Awoowe123/SkipOneAI
SkipOneAI 是一个运行在 Telegram 账号上的自主 AI 智能体,通过 RAG 系统学习用户真实消息,模仿其语言风格与每个联系人对话,全部推理经 LM Studio 本地完成。
Автономный AI-агент для Telegram
Цифровой двойник, полностью имитирующий стиль общения владельца аккаунта
Возможности · Архитектура · Быстрый старт · Инструменты · Распознавание речи · Docker
О проекте
SkipOneAI — автономный Telegram-агент, работающий от имени вашего аккаунта. Агент обучается на ваших реальных сообщениях через RAG-систему (Retrieval-Augmented Generation) и ведёт переписку вашим стилем — включая сленг, манеру шутить и уровень формальности для каждого контакта.
Все вычисления выполняются локально через LM Studio. Никакие данные не покидают вашу машину.
Ключевые особенности
| Компонент | Описание |
|---|---|
| Цифровой клон | RAG-система имитации стиля. Обучается на реальных сообщениях, адаптируется к каждому собеседнику |
| Локальная LLM | Полная приватность. GLM-4, DeepSeek, Llama и любые модели через LM Studio |
| Распознавание речи | Faster Whisper с GPU-ускорением. Два режима: голосовые и песни (двухпроходная система) |
| Tool-Use | 9 инструментов: веб-поиск, терминал, браузер, файловые операции, GIF, стикеры, саммаризация |
| Человекоподобие | Задержки, имитация набора, пропуск сообщений, опечатки, стикер-реакции |
| Маршрутизация | LLM Router выбирает модель под задачу. Master Classifier классифицирует запрос за один вызов |
| Извлечение вокала | Docker: BS-Roformer, Demucs v4, MDX23C для отделения голоса от музыки |
| Контакты | Автоанализ отношений через LLM. Bio-досье после 50+ сообщений |
| Контроль доступа | Белый список контактов, привилегии владельца через BOT_OWNER_ID |
Архитектура
src/
├── main.py # Точка входа
├── config.py # Конфигурация (.env)
├── core/
│ ├── telegram_client.py # Telethon-клиент
│ ├── event_processor.py # Главный пайплайн обработки сообщений
│ ├── llm_interface.py # Интерфейс к LM Studio (OpenAI-compatible API)
│ ├── llm_router.py # Мульти-модельная маршрутизация
│ ├── master_classifier.py # Unified-классификатор (анализ + роутинг за 1 вызов)
│ ├── model_manager.py # Мониторинг производительности и авто-перезагрузка
│ ├── asr_manager.py # Faster Whisper ASR (CUDA/CPU)
│ ├── command_parser.py # Парсер команд
│ ├── context_manager.py # XML-сериализация контекста
│ ├── permissions.py # Контроль доступа (белый список)
│ └── sticker_manager.py # Индексация и отправка стикеров
├── personality/
│ ├── database.py # Векторная БД (SQLite + embeddings)
│ ├── analyzer.py # Анализатор стиля сообщений
│ └── contacts_manager.py # CRM контактов с auto-bio
├── behavior/
│ ├── human_simulator.py # Задержки, опечатки, пропуски
│ └── proactive_agent.py # Проактивные сообщения
├── tools/
│ ├── tools_manager.py # Реестр и диспетчер инструментов
│ ├── web_search.py # Веб-поиск (DuckDuckGo)
│ ├── browser.py # Браузер (Playwright)
│ ├── terminal.py # Терминал (sandboxed)
│ ├── file_ops.py # Файловые операции
│ ├── gif_sender.py # GIF
│ ├── message_search.py # Поиск по истории
│ ├── contact_info.py # Информация о контактах
│ └── summarizer.py # Саммаризация чата
└── utils/
├── logging_config.py # Логирование
└── transcription_utils.py # Очистка транскрипций
Быстрый старт
Предварительные требования
- Python 3.10+
- LM Studio
- Telegram API credentials
Установка
git clone https://github.com/YOUR_USERNAME/SkipOneAI.git cd SkipOneAI python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # Linux/macOS pip install -r requirements.txt
Конфигурация
copy .env.example .env # Windows # cp .env.example .env # Linux/macOS
Заполните .env:
TELEGRAM_API_ID=your_api_id TELEGRAM_API_HASH=your_api_hash TELEGRAM_PHONE=+79991234567 BOT_OWNER_ID=your_telegram_id_here OLLAMA_BASE_URL=http://localhost:1234 OLLAMA_MODEL=glm-4-9b-chat
Настройка LM Studio
- Скачайте и установите LM Studio
- Загрузите модель (рекомендуется GLM-4 9B Chat или GLM-4.7V Flash)
- Перейдите в Local Server → Start Server (порт 1234)
Инициализация базы данных
python scripts/populate_database.py # готовые примеры python scripts/collect_messages.py # или сбор ваших сообщений
Запуск
python -m src.main
При первом запуске потребуется SMS-код для авторизации в Telegram.
Инструменты
| Инструмент | Описание |
|---|---|
search_web |
Поиск в интернете (курсы валют, погода, новости) |
search_messages |
Поиск по истории сообщений |
summarize_chat |
Выжимка последних сообщений |
send_gif |
Отправка GIF-анимаций |
get_contact_info |
Информация о контакте |
open_browser |
Страницы в Playwright с JS |
run_terminal |
Выполнение команд (sandboxed) |
read_file / write_file |
Чтение и запись файлов |
download_file / send_file |
Скачивание и отправка файлов |
Распознавание речи
Встроенная система на базе Faster Whisper (deepdml/faster-whisper-large-v3-turbo-ct2).
Режим «Голосовое»
beam_size=1, vad_filter=True, condition_on_previous_text=False
Режим «Песня»
Двухпроходная система:
- Первый проход —
beam_size=5, без VAD, промпт для сложной лирики - Повторный проход (при < 2 сегментов или < 10 символов) —
beam_size=1, альтернативный промпт
Постобработка
- Очистка артефактов транскрипции
- Фильтрация по чёрному списку
Извлечение вокала (Docker)
cd docker ./extract_vocals.sh "song.mp3" bs-roformer # лучшее качество ./extract_vocals.sh "song.mp3" demucs # быстрый ./extract_vocals.sh "song.mp3" mdx23c # баланс
Docker
cd docker
docker-compose build
docker-compose run --rm gigaam python gigaam_production.py /audio/song.mp3Для GPU-ускорения требуется NVIDIA Container Toolkit.
Команды
| Команда | Описание |
|---|---|
/help |
Список команд |
/bio Имя: описание |
Создать bio контакта |
/bio analyze @username |
Автоанализ отношений через LLM |
/bio show @username |
Показать bio |
/bio list |
Список контактов |
/style |
Текущий анализ стиля |
/style update |
Обновить анализ |
/reset |
Сбросить контекст |
/load_stickers |
Загрузить стикеры |
Безопасность
- Не публикуйте
.env— он содержит ваши credentials - Файлы сессии (
data/session/) дают полный доступ к аккаунту - Все данные хранятся локально
BOT_OWNER_IDопределяет владельца — убедитесь, что указан ваш ID
Лицензия
MIT
来源:GitHub · github.com
