Веб-интерфейс с умным медиаплеером, чат-ботом на основе Google Gemini и системой дистанционного управления (пультом ДУ) с голосовым вводом.
Полная документация доступна на GitHub Pages:
- 📖 Руководство пользователя — установка, использование плеера, голосовое управление, Telegram Mini App
- 💻 Руководство разработчика — архитектура, разработка, деплойment
- 🔌 API Reference — все endpoints и плагины
- 🤖 AI-ассистент — Google Gemini для чатов и рекомендаций
- 🎬 Умный медиаплеер — воспроизведение с синхронизацией между устройствами
- 📡 Пульт ДУ — голосовое управление через Speech-to-Text и Text-to-Speech
- 📱 Telegram Mini App — удалённое управление из Telegram
- 📁 Управление торрентами — интеграция с qBittorrent
- 🧠 RAG поиск — векторный поиск по медиатеке
- 🧩 Плагины — расширяемая архитектура
В чате реализован полностью потоковый вывод (Streaming) ответов ИИ и промежуточных шагов выполнения инструментов:
- Эксклюзивный RAG-маршрут: Запросы, классифицированные как относящиеся к поиску медиа, направляются строго в
RAGPlugin. Это гарантирует использование контекста локальной базы данных (media.db) и исключает прямые запросы к модели без знаний о вашей медиатеке. - Интерактивные статусы: Во время выполнения цепочки инструментов (Function Calling) бэкенд транслирует статус выполнения прямо в интерфейс через Server-Sent Events (SSE), например:
⚙️ Вызов функции search_media(...). - Финальный стриминг: Найденные фильмы RAG-плагин встраивает в контекст модели, после чего рекомендация мгновенно печатается на экране.
- Интерактивные карточки фильмов: Если модель возвращает структурированную карточку фильма/сериала (в формате JSON), интерфейсы (и веб-плеер, и пульт ДУ) автоматически парсят её и отрисовывают как премиальный виджет с рейтингами (IMDb, Кинопоиск), описанием, жанрами и интерактивной кнопкой «Запустить фильм» для мгновенного воспроизведения.
- Голосовой ассистент (TTS): Пульт ДУ озвучивает найденные рекомендации голосом через Web Speech API, отфильтровывая JSON-теги и зачитывая только текстовое резюме.
┌─────────────────────────────────────────────────────────────┐
│ Web Interface │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ User Player │ │ Remote Control│ │ Telegram │ │
│ │ │ │ │ │ Mini App │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────────────┴─────────────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ FastAPI Server│ │
│ └────────┬────────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ │ │ │
│┌───▼────┐ ┌────▼──────┐ ┌───▼────┐ │
││ AI │ │ Media │ │ Torrent│ │
││ Gemini │ │ Organizer │ │QBittorrent│ │
│└────────┘ └───────────┘ └──────────┘ │
└──────────────────────────────────────────────────────────────┘
- Python 3.10+
- Google Gemini API Key
- Node.js 18+ (для MCP сервера, опционально)
# Клонирование репозитория
git clone https://github.com/hypo69/mediteka.git
cd mediteka
# Установка зависимостей
pip install -r requirements.txt
# Настройка переменных окружения
cp .env.example .env
# Отредактируйте .env файл
# Запуск сервера
python main.py| Интерфейс | URL | Описание |
|---|---|---|
| Плеер | /user |
Основной плеер с чатом AI |
| Пульт ДУ | /rc |
Управление голосом + TTS |
| Telegram | /tgmini |
Telegram Mini App |
| Админка | /admin |
Управление медиатекой |
- Backend: Python 3.10+, FastAPI, Uvicorn
- AI: Google Gemini, RAG
- Database: SQLite, JSON storage
- Frontend: HTML5, CSS3, JavaScript (Vanilla)
- Media: qBittorrent, TMDB API
- Deployment: Docker, GitHub Pages (docs)
См. Руководство разработчика для:
- Архитектуры проекта
- Настройки окружения
- Создания плагинов
- Деплойment
MIT © 2026 hypo69\n[ci] trigger docs build