infra/@messenger.service/CLAUDE.md

Messenger Service

Тип: @service
Версия: 3.0.0
Статус: ready


Назначение

Универсальный сервис для работы с мессенджерами.
Обеспечивает общение ПРОЕКТОР 256 с клиентами и внутренней командой.


Возможности

Функция Описание
Telegram Боты через python-telegram-bot
WhatsApp Cloud API (официальный)
Multi-Connection Несколько ботов/номеров одновременно
STT Распознавание голоса (Whisper local/API)
TTS Синтез речи (Edge TTS бесплатно)
LLM Интеграция с OpenRouter
Files Импорт файлов в S3
Web UI Панель управления
Webhook Сервер для WhatsApp
Systemd Автозапуск как сервис
Roles Система ролей (CLIENT, AM, PM, EXECUTOR, OPERATOR)
DialogEngine Сценарии диалогов по ролям
ModeManager Переключение режимов работы

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

# 1. Установить зависимости
pip install -r requirements.txt

# 2. Настроить .env
cp .env.example .env
nano .env  # Добавить токены

# 3. Запустить
python run.py --all

Структура

@messenger.service/
├── CLAUDE.md
├── run.py                   Быстрый запуск
├── install.sh               Установка systemd
├── requirements.txt
├── .env.example
├── connections.example.yaml

├── src/
   ├── adapters/
      ├── base.py          BaseAdapter, Message
      ├── telegram.py      TelegramAdapter
      └── whatsapp.py      WhatsAppAdapter
   
   ├── voice/
      ├── stt.py           WhisperSTT (local/api)
      └── tts.py           EdgeTTS, OpenAITTS
   
   ├── files/
      └── importer.py      FileImporter  S3
   
   ├── roles.py             Role, AgentMode, UserManager
   ├── dialog_engine.py     DialogEngine (сценарии)
   ├── mode_manager.py      ModeManager (режимы)
   ├── admin_commands.py    OperatorCommands (админка)
   ├── router.py            MessageRouter, SessionManager
   ├── multi.py             MultiConnectionManager
   ├── llm_service.py       LLM интеграция
   ├── bot_service.py       BotService (главный)
   └── webhook_server.py    WhatsApp webhooks

├── web/
   ├── app.py               Web UI
   └── templates/
       └── index.html

└── systemd/
    ├── messenger.service
    ├── messenger-web.service
    └── messenger-webhook.service

Запуск

Простой запуск

# Только бот
python run.py

# Бот + Web UI
python run.py --web

# Всё (бот + web + webhook)
python run.py --all

# С голосовыми ответами
python run.py --voice

Из конфига

python run.py --config connections.yaml

Как systemd сервис

# Установка
sudo ./install.sh

# Управление
sudo systemctl start messenger
sudo systemctl enable messenger

# Логи
sudo journalctl -u messenger -f

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

.env

# Telegram
TELEGRAM_BOT_TOKEN_MAIN=123456:ABC-DEF...
TELEGRAM_BOT_TOKEN_SALES=789012:GHI-JKL...

# WhatsApp Cloud API
WHATSAPP_TOKEN=EAAxxxxxx...
WHATSAPP_PHONE_ID=123456789
WHATSAPP_VERIFY_TOKEN=my_verify_token

# LLM
OPENROUTER_API_KEY=sk-or-v1-xxx

# S3
S3_BASE_PATH=/mnt/beget-s3

connections.yaml

connections:
  - name: main_bot
    type: telegram
    token: ${TELEGRAM_BOT_TOKEN_MAIN}
    description: Основной бот
    project_id: pirotehnika
    tags: [main, sales]

  - name: support
    type: telegram
    token: ${TELEGRAM_BOT_TOKEN_SUPPORT}
    description: Бот поддержки

  - name: whatsapp_main
    type: whatsapp
    token: ${WHATSAPP_TOKEN}
    phone_id: ${WHATSAPP_PHONE_ID}

API

Python API

from src.bot_service import BotService

# Создаём сервис
bot = BotService(voice_responses=True)

# Добавляем подключения
bot.add_telegram("main", token="...")
bot.add_whatsapp("wa", token="...", phone_id="...")

# Запускаем
await bot.start()

# Отправляем сообщение
await bot.send_message("main", chat_id, "Привет!")

# Статистика
print(bot.get_stats())

Web API

Endpoint Метод Описание
/ GET Dashboard
/api/status GET Статус подключений
/api/logs GET Логи сообщений
/api/stats GET Статистика
/api/send POST Отправить сообщение
/api/connection/{name}/start POST Запустить подключение
/api/connection/{name}/stop POST Остановить

Система ролей

Роль Описание Агент
CLIENT Внешний клиент ПРОЕКТОР 256
AM Аккаунт-менеджер ПРОЕКТОР 256
PM Проект-менеджер ПРОЕКТОР
EXECUTOR Исполнитель ПРОЕКТОР
OPERATOR Оператор (полный доступ) ТЕРМИНАЛ

Режимы работы

Режим Для кого Описание
INTAKE CLIENT Первичный сбор информации
STATUS CLIENT, AM Статус проекта
CLARIFY CLIENT Уточнение деталей
REVIEW CLIENT Согласование результата
MANAGE PM Управление проектом
TASK PM, EXECUTOR Работа с задачами
REPORT PM Отчётность
ASSIST AM Помощь клиенту
COMMUNICATE AM Общение

Команды

Для всех

Для оператора


Агенты

Сервис интегрирован с агентами платформы:

Агент Роутинг Описание
ПРОЕКТОР 256 Клиенты, AM Внешняя коммуникация
ПРОЕКТОР PM, Исполнители Внутреннее управление
АРХИТЕКТОР Вопросы методологии Консультации
ТЕРМИНАЛ Оператор Системные команды

Порты

Сервис Порт Описание
Web UI 8899 Dashboard
Webhook 8080 WhatsApp webhooks

Зависимости

# Основные
httpx>=0.25.0
python-dotenv>=1.0.0
pyyaml>=6.0

# Telegram
python-telegram-bot>=20.0

# Voice
openai-whisper>=20230314   # STT local
edge-tts>=6.1.0            # TTS free

# Web UI
aiohttp>=3.9.0
aiohttp-jinja2>=1.5
jinja2>=3.1.0

Ссылки

Компонент Путь
OpenRouter коннектор infra/@openrouter.connector/
Агент ПРОЕКТОР 256 system/@projector256.agent/
Агент ПРОЕКТОР system/@projector.agent/
Сценарии диалогов architect/concept/SCENARIOS.md
Документация ролей architect/concept/ROLES.md

Версия: 3.0.0