This commit is contained in:
2026-06-09 09:36:48 +03:00
parent 8247b7116f
commit f0fda693d8
49 changed files with 5503 additions and 1 deletions
+92 -1
View File
@@ -1,2 +1,93 @@
# Home_assistant
# Home AI Assistant
Домашний ИИ-ассистент с REST API, веб-интерфейсом и помидоро-таймером. LLM — OpenRouter (по умолчанию DeepSeek).
## Возможности (MVP)
- Чат с потоковыми ответами (SSE)
- Управление помидоро из чата через tool calling
- REST API для внешних клиентов (Telegram-бот, мобильное приложение)
- Веб-морда: вкладки «Чат» и «Помидоро»
## Быстрый старт
### 1. Настройка окружения
```bash
cp .env.example .env
```
Заполните в `.env`:
```env
OPENROUTER_API_KEY=sk-or-v1-...
PORT=8080
```
### 2. Запуск через Docker
```bash
docker compose up --build
```
- Backend API: http://localhost:8080
- Web UI: http://localhost:3000
- Healthcheck: http://localhost:8080/api/v1/health
### 3. Локальная разработка
**Backend:**
```bash
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8080
```
**Frontend:**
```bash
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`.