94735fd540ad2d3645fa5793f9c5605b1ffba316
Home AI Assistant
Домашний ИИ-ассистент с REST API, веб-интерфейсом и помидоро-таймером. LLM — OpenRouter (по умолчанию DeepSeek).
Возможности (MVP)
- Чат с потоковыми ответами (SSE)
- Управление помидоро из чата через tool calling
- REST API для внешних клиентов (Telegram-бот, мобильное приложение)
- Веб-морда: вкладки «Чат» и «Помидоро»
Быстрый старт
1. Настройка окружения
cp .env.example .env
Заполните в .env:
OPENROUTER_API_KEY=sk-or-v1-...
BACKEND_PORT=8080
FRONTEND_PORT=3080
Если порт занят (например, 3000 уже используется Gitea), смените FRONTEND_PORT на свободный.
2. Запуск через Docker
docker compose up --build
- Backend API: http://localhost:${BACKEND_PORT:-8080}
- Web UI: http://localhost:${FRONTEND_PORT:-3080}
- Healthcheck: http://localhost:8080/api/v1/health
Порты в .env:
| Переменная | По умолчанию | Назначение |
|---|---|---|
BACKEND_PORT |
8080 | API с хоста |
FRONTEND_PORT |
3080 | Веб-морда с хоста |
VITE_DEV_PORT |
5173 | Frontend при npm run dev |
TAIGA_PORT |
9000 | Taiga (фаза 2) |
GITEA_PORT |
3000 | Gitea HTTP (фаза 2) |
GITEA_SSH_PORT |
222 | Gitea SSH (фаза 2) |
QDRANT_PORT |
6333 | Qdrant HTTP (фаза 3) |
3. Локальная разработка
Backend:
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8080
Frontend:
cd frontend
npm install
npm run dev
Vite dev-server: http://localhost:5173 (проксирует /api на backend).
REST API
| Method | Path | Описание |
|---|---|---|
| GET | /api/v1/health |
Healthcheck |
| POST | /api/v1/chat/sessions |
Создать чат-сессию |
| GET | /api/v1/chat/sessions |
Список сессий |
| GET | /api/v1/chat/sessions/{id} |
История сообщений |
| POST | /api/v1/chat/sessions/{id}/messages |
Отправить сообщение (SSE) |
| DELETE | /api/v1/chat/sessions/{id} |
Удалить сессию |
| GET | /api/v1/pomodoro/status |
Статус таймера |
| POST | /api/v1/pomodoro/start |
Старт {duration_min, task_note} |
| POST | /api/v1/pomodoro/pause |
Пауза |
| POST | /api/v1/pomodoro/resume |
Продолжить |
| POST | /api/v1/pomodoro/stop |
Стоп {result, completed} |
| GET | /api/v1/pomodoro/history |
История сессий |
Структура проекта
backend/ FastAPI, OpenRouter, SQLite, помидоро
frontend/ React + Vite, чат и таймер
data/ SQLite БД (создаётся автоматически)
Следующие фазы
- Интеграция Taiga + Gitea (project-agent внутри проекта)
- RAG с Qdrant для документов
- Проактивные чаты по расписанию
- Фитнес-трекер
Модель
По умолчанию: deepseek/deepseek-chat через OpenRouter. Альтернатива для болтовни: google/gemini-2.0-flash.
Description
Languages
Python
72.5%
TypeScript
22.3%
CSS
5.1%
Dockerfile
0.1%