2026-06-09 11:54:32 +03:00
2026-06-09 11:54:32 +03:00
2026-06-09 11:54:32 +03:00
2026-06-09 10:19:37 +03:00
2026-06-09 09:36:48 +03:00
2026-06-09 10:19:37 +03:00
2026-06-09 09:36:48 +03:00
2026-06-09 10:19:37 +03:00

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

Порты в .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.

S
Description
No description provided
Readme 1.2 MiB
Languages
Python 72.5%
TypeScript 22.3%
CSS 5.1%
Dockerfile 0.1%