Мультимодальный Telegram бот с поддержкой текста, голоса и изображений.
- Текстовая обработка: общение через LLM (OpenRouter)
- Голосовые сообщения: распознавание речи (STT) и синтез речи (TTS)
- Работа с изображениями:
- Анализ и описание изображений
- Генерация изображений по текстовому описанию
- Модульная архитектура: легко расширяемая структура
telegram-bot-skeleton/
├── backend/
│ ├── api/ # API модули
│ │ ├── routes.py # Основные маршруты
│ │ ├── telegram_core.py # Telegram интеграция
│ │ ├── telegram_polling.py # Polling система
│ │ ├── telegram_vision.py # Обработка изображений
│ │ └── telegram_voice.py # Обработка голоса
│ ├── core/ # Ядро системы
│ ├── llm/ # LLM интеграция
│ │ └── openrouter.py # OpenRouter клиент
│ ├── memory/ # Система памяти (опционально)
│ ├── voice/ # Голосовые функции
│ │ ├── tts.py # Text-to-Speech
│ │ └── stt.py # Speech-to-Text
│ ├── vision/ # Обработка изображений
│ │ ├── image_generator.py # Генерация изображений
│ │ └── image_analyzer.py # Анализ изображений
│ ├── utils/ # Утилиты
│ ├── config.py # Конфигурация
│ └── main.py # Точка входа
├── frontend/ # Веб-интерфейс (опционально)
├── data/ # Данные
├── logs/ # Логи
├── temp/ # Временные файлы
├── requirements.txt # Зависимости
└── .env.example # Пример конфигурации
pip install -r requirements.txtСкопируйте .env.example в .env и заполните необходимые ключи:
cp .env.example .envОтредактируйте .env:
OPENROUTER_API_KEY=your_openrouter_api_key
TELEGRAM_BOT_TOKEN=your_telegram_bot_tokencd backend
python main.pyИли из корня проекта:
python -m backend.mainPOST /api/message- Отправка текстового сообщенияPOST /api/image/generate- Генерация изображенияGET /health- Проверка здоровья системы
/generate [описание]или/рисунок [описание]- Генерация изображения- Отправка текста - обычный диалог с ботом
- Отправка фото - анализ изображения
- Отправка голосового сообщения - распознавание речи
В backend/config.py можно настроить модели:
LLM_CONFIG = {
"model": "openai/gpt-oss-20b:free",
"fallback_model": "deepseek/deepseek-chat-v3.1:free",
"temperature": 0.7,
"max_tokens": 4096,
}Поддерживаются два провайдера:
- Pollinations.ai (бесплатно, по умолчанию)
- Hugging Face (требует API ключ)
- TTS: gTTS (бесплатно) или ElevenLabs (высокое качество)
- STT: SpeechRecognition (Google) или Whisper (локально)
Проект следует модульной архитектуре:
- Модули разделены по функциональности
- Каждый модуль имеет четкую ответственность
- Легко добавлять новые функции
- Создайте модуль в соответствующей папке
- Импортируйте в
telegram_polling.pyилиroutes.py - Добавьте обработку в
process_message()
- Все API ключи хранятся в
.envфайле .envдолжен быть в.gitignore- Никогда не коммитьте реальные ключи
Основные библиотеки:
fastapi- веб-фреймворкaiohttp- асинхронные HTTP запросыopenai- интеграция с OpenAI APIgtts/SpeechRecognition- голосовые функцииPillow- обработка изображений
- Проверьте
TELEGRAM_BOT_TOKENв.env - Убедитесь, что бот запущен
- Проверьте логи в
logs/bot.log
- Pollinations работает без ключа
- Для Hugging Face нужен
HF_API_KEY
- Установите
librosaиsoundfileдля конвертации аудио - Для Whisper установите
openai-whisper
MIT
Создано на основе архитектуры IKAR-ASSISTANT