Это не очередной «полезный ассистент» для погоды. Это полноценный участник чата с характером, памятью и собственным мнением.
Бот построен на гибридной архитектуре. Он умеет работать через OpenRouter (или любой OpenAI-compatible API), искать информацию в интернете через Tavily, а при проблемах автоматически переключаться на бесплатные ключи Google Gemini.
Бот больше не привязан жестко к одной нейросети. В конфиге можно указать любой BASE_URL.
- Хотите DeepSeek за копейки? Пожалуйста.
- Есть доступ к Mistral или OpenAI? Легко.
- Хотите поднять Ollama локально? Тоже будет работать.
- По умолчанию настроен на OpenRouter (агрегатор нейросетей).
Малыш не галлюцинирует курсами валют за 2021 год. Если вы спросите про новости или цены, он полезет в интернет.
- Провайдеры: Поддержка Tavily (рекомендуется, 1000 бесплатных запросов/мес) или Perplexity (через API).
- Каскадная система: Если Tavily не настроен или упал, бот автоматически переключится на нативный поиск Google.
Чтобы не разориться на платных API, бот разделяет задачи между моделями:
- Logic Model (Дешевая):
Gemma-2-9b/Gemma-3-27b. Работает в фоне, анализирует контекст, решает, нужно ли отвечать, ставит реакции. Стоит копейки. - Smart Model (Умная):
Gemini 3 Flash/GPT-4o. Генерирует финальные ответы и шутки. - Search Model:
Perplexity Sonar(опционально) или Tavily API.
Если у вас закончились деньги на OpenRouter или упал API, бот не отключится. Он автоматически перейдет на резервный канал — нативные ключи Google Gemini (если вы их указали).
- Учет времени: Бот запоминает город пользователя из переписки. Если спросить «Сколько время?», он ответит с учетом вашего часового пояса, зная, что сервер находится в другом месте.
- Репутация: Бот ведет досье на каждого участника (0-100 баллов). Копить доверие сложно (+1..+3 за позитив), а терять легко (-5..-10 за негатив к боту). При этом бот не снижает репутацию, если вы ругаетесь с кем-то другим — только за негатив лично в его адрес.
- Голосовые: Бот транскрибирует голосовые сообщения (используя Google API бесплатно).
- Vision: Понимает, что изображено на картинках.
Требуется Node.js 18+.
git clone https://github.com/Veta-one/sych-bot.git
cd sych-bot
npm installСоздайте файл .env в корне. В проекте нет сложной базы данных, всё хранится в JSON-файлах в папке /data.
Минимальный конфиг:
TELEGRAM_BOT_TOKEN=ваш_токен_от_botfather
ADMIN_USER_ID=ваш_id_телеграм
# Основной API (OpenRouter, DeepSeek, Mistral)
AI_API_KEY=sk-or-v1-......
# Поиск (Tavily - бесплатно и быстро)
TAVILY_API_KEY=tvly-......
SEARCH_PROVIDER=tavily
# Резерв (и обработка голосовых)
GOOGLE_GEMINI_API_KEY=AIzaSyD...Полный список настроек и примеры подключения к разным API смотрите в файле .env.example.
Локально:
node src/index.jsНа сервере (через PM2):
npm install -g pm2
pm2 start src/index.js --name "malysh-bot"
pm2 save- Текст: Просто общайтесь. Бот ответит, если его триггернуть (имя "Малыш") или если он решит, что это уместно.
Малыш напомни [текст]— поставит напоминание.Малыш кто я?— расскажет ваше досье.Малыш кинь монетку— орел/решка./start— справка.
/ban @username— Забанить пользователя (бот перестанет его видеть)./ban— Показать список последних активных (чтобы забанить спамера без юзернейма)./unban ID— Разбанить.Малыш стата— Показать подробную статистику расхода токенов по провайдерам (API / Search / Native)./mute— Включить режим тишины в чате.
/src/core— Логика поведения и промпты./src/services—ai.js(вся работа с нейросетями) иstorage.js(файловая БД)./data— Здесь хранятся базыdb.jsonиprofiles.json. Добавьте эту папку в бэкапы.