Initial commit: VoIdeaAI - voice-first AI idea assistant

This commit is contained in:
2026-05-13 12:51:42 +03:00
commit 688d043dad
421 changed files with 47915 additions and 0 deletions
+467
View File
@@ -0,0 +1,467 @@
# Block 0: Rules & Conventions — VoIdea
Конституция проекта VoIdea. Применяется ко всем блокам.
Если в специфичном блоке нет явного описания ситуации — решение принимается по правилам Block 0.
---
## 1. Code Style Standards
**Python (PEP8 + автоматизация):**
- Кодировка UTF-8, отступы 4 пробела
- Максимальная длина строки: 88 символов (
uff format / lack)
- Именование: переменные/функции — snake_case, классы — PascalCase, константы — UPPER_SNAKE_CASE
- Аннотации типов — обязательны для аргументов и возвращаемых значений всех функций
- Строки: двойные кавычки " для данных, одинарные ' для docstrings
- Импорты: stdlib → third-party → local (алфавитный порядок внутри групп). Абсолютные импорты, относительные запрещены
- Пробелы: вокруг операторов, не внутри скобок
**SQL:**
- Ключевые слова — UPPERCASE (SELECT, FROM, WHERE)
- Имена таблиц и полей — snake_case
- Сложные запросы разбивать на строки, выравнивать JOIN и WHERE
**Оптимальный размер файла:**
- Если файл маршрутов/контроллеров превышает 500 строк — разбить на модули
**JavaScript/TypeScript (Web/PWA):**
- Formatter: Prettier (100 символов)
- Linter: ESLint с правилами irbnb +
eact
- Типы: strict TypeScript, any запрещён
- Импорты: абсолютные через @/ alias
- Стили: Tailwind CSS
- Состояние: zustand или RTK
- Асинхронность: sync/await вместо .then()
---
## 2. Documentation
- Docstrings: Google-формат для всех публичных классов, функций, методов
- TODO/FIXME: с указанием причины и планируемого срока. # TODO(#TASK-N): причина
- Предупреждения о рисках: если код затрагивает безопасность, производительность или совместимость
- README.md: в каждой папке pp/* — краткое описание файлов внутри
---
## 3. Naming Conventions
**Переменные окружения:**
`
PROJECT_NAME=VoIdea
PROJECT_VERSION=X.Y.Z
PROJECT_ENV=local|development|staging|production
SERVER_HOST=X.X.X.X
SERVER_PORT=8020
SERVER_EXTERNAL_URL=http://X.X.X.X:8020
DB_HOST=localhost
DB_PORT=5432
DB_NAME=voidea
DB_USER=voidea
DB_PASS=
REDIS_HOST=localhost
REDIS_PORT=6379
AI_YANDEX_KEY=
AI_GIGACHAT_KEY=
AI_FALLBACK_MODEL=yandex_gpt
AI_TIMEOUT=10
OAUTH_YANDEX_ID=
OAUTH_YANDEX_SECRET=
OAUTH_GOOGLE_ID=
OAUTH_GOOGLE_SECRET=
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
`
**Индексы БД:**
`
ix_tablename_column
uq_tablename_column
fk_tablename_column
`
**Ветки Git:**
`
main → стабильная, продакшен
develop → интеграция фич
feature/* → новая функция
hotfix/* → срочное исправление
release/* → подготовка релиза
`
**Миграции Alembic:**
`
{действие}_{таблица}
`
---
## 4. Git & Versioning
### 4.1 Формат
SemVer: MAJOR.MINOR.PATCH
### 4.2 CHANGELOG
Формат: единый файл CHANGELOG.md с разделами по MINOR-версисиям
Новый файл создаётся при смене X (major) или Y (minor):
`
CHANGELOG/
├── v1.0.md # 1.0.0 → 1.0.n (патчи добавляются в этот файл)
├── v1.1.md # 1.1.0 → 1.1.n (новый файл)
└── v2.0.md # 2.0.0 → ...
`
### 4.3 Conventional Commits
`
<тип>[optional scope]: <описание>
`
- eat: новая функция → MINOR
- ix: исправление → PATCH
- BREAKING: в теле коммита → MAJOR
- docs,
efactor, est, chore: не влияют на версию
### 4.4 Agent Versioning
Агенты версионируются независимо от проекта по SemVer (A.B.C).
**Правила бампа:**
- **A (major)**: breaking change в публичном интерфейсе агента
- **B (minor)**: новая capability (метод, роль, prompt)
- **C (patch)**: внутренние правки без изменения поведения
**Механика:**
- Каждый агент после `run()` вычисляет SHA256 checksum своего файла
- Сравнивает с `AgentConfig.checksum` в БД
- Не совпал → авто-бамп patch, запись в `CHANGELOG/agents/<name>.md`
- EvolutionAgent управляет minor/major бампами
**Формат changelog:**
```markdown
CHANGELOG/agents/
├── doc_agent.md
├── audit_agent.md
└── ...
```
---
## 5. Code Review
- Обязателен для всех PR в main и develop
- Минимум 1 апрув от admin/owner
- Чеклист ревью:
- [ ] Нет секретов в коде
- [ ] Нет сырых Exception в API ответах
- [ ] Есть тесты (или TODO с причиной)
- [ ] docs/blocks/*.md обновлён
- [ ] ADR создан при архитектурных изменениях
---
## 6. Definition of Done (DoD)
- [ ] Код написан (соответствует стилю §1)
- [ ] Линт проходит (
uff check — 0 errors)
- [ ] Тесты написаны (минимум 1 smoke)
- [ ] Тесты проходят (pytest — green)
- [ ] Документация блока обновлена
- [ ] .env.example обновлён (если новая переменная)
- [ ] Миграция написана (если менялась БД)
---
## 7. Architecture (SOLID + слоистая)
**Слои (зависимости только внутрь):**
`
API → Services → Integrations → Data Layer → Core
`
**SOLID:**
- S: каждый блок — одна доменная область
- O: новые интеграции — новые классы
- L: сервисы подчиняются общему интерфейсу
- I: сервис принимает только нужные зависимости
- D: API зависит от абстракции Service
---
## 8. Error Handling
| Слой | Действие |
|------|---------|
| API | HTTPException с detail и status_code |
| Services | Бизнес-исключения без HTTP-статусов |
| Integrations | ry/except с fallback |
| DB | Ошибки БД не всплывают выше |
| WebUI | Flash-сообщение пользователю |
---
## 9. Security Base
- .env — всегда в .gitignore
- JWT: алгоритм HS256, expire = 60 минут, refresh = 30 дней
- Пароли: bcrypt через passlib
- Pydantic валидация на всех входах
- RBAC: роли user, dmin, owner
---
## 10. Logging Standards
**Формат строки лога:**
`
[ISO8601] [LEVEL] [component] message key=val
2026-05-10T14:30:00.000Z INFO [auth] User logged in user_id=abc
`
**Уровни по слоям:**
| Слой | DEBUG | INFO | WARNING | ERROR |
|------|-------|------|---------|-------|
| API | Параметры | Request | — | 5xx |
| Service | Входные | Операция | Превышен лимит | Ошибка БД |
| Integration | Raw ответ | Успех | Timeout | Внешний API |
**Запрещено:** f-строки в logger. Только %s (lazy evaluation).
**Разрешено:** f-строки в logging_service.log().
---
## 11. Sensitive Data Policy
**Никогда не логировать:**
- Пароли (даже хэш)
- JWT токены
- API keys и секреты
- Email в открытом виде (логировать user_id)
**Маскировать в логах:**
- Email: u***@mail.ru
- IP: 195.208.*.*
---
## 12. Third-party Call Fallback Pattern
`
1. Попытка (timeout: 10s)
2. Успех → return data
3. Таймаут → retry 1 (через 2s)
4. Таймаут → retry 2 (через 5s)
5. 4xx → WARNING, return None/fallback
6. 5xx → ERROR, retry → если снова 5xx → return None/fallback
7. Все retry исчерпаны → CRITICAL в SystemLog, возврат fallback
`
---
## 13. Performance Budgets
| Метрика | Лимит (p95) |
|---------|-------------|
| API response (без GPT) | < 500ms |
| DB query (одиночный) | < 100ms |
| DB query (агрегатный) | < 300ms |
| GPT call | < 5s (иначе fallback) |
| WebUI page load | < 2s |
---
## 14. Data Retention Policy
| Данные | Срок хранения |
|--------|---------------|
| SystemLog | 90 дней |
| SecurityEvent | 1 год |
| Notification | 30 дней |
| PaymentTransaction | 5 лет |
| User data | До удаления + 30 дней |
| Session (JWT) | 24 часа |
---
## 15. Dependency Management
- **patch**: в любой момент (bugfix, security)
- **minor**: не чаще 1 раза в спринт
- **major**: только с полным регрессом
---
## 16. Async/Sync Decision Matrix
| Сценарий | Механизм |
|----------|----------|
| GET-запросы, CRUD | sync (await) |
| Отправка email | Celery async |
| GPT вызовы | Celery async |
| Бэкапы | Celery async |
| WebSocket / SSE | Не используется |
---
## 17. Architecture Decision Records (ADR)
Любое значимое архитектурное решение фиксируется в docs/adr/NNN-title.md.
Формат:
`markdown
# ADR-001: Название решения
Статус: принято
Контекст: описание проблемы
Решение: что выбрано
Последствия: плюсы и минусы
`
---
## 18. Tooling
| Инструмент | Назначение |
|------------|------------|
| ruff | Линтер (E, F, W, I, N, UP) |
| ruff format | Форматтер (line-length=88) |
| mypy | Type checker |
| pytest | Тесты (asyncio_mode=auto) |
| pre-commit | Хуки (ruff, ruff-format, trailing-whitespace) |
---
## 19. AI Agents (11 ролей)
| Роль | Провайдер | Описание |
|------|-----------|----------|
| Координатор | Yandex GPT | Управляет диалогом, обобщает результаты |
| Организатор задач | Yandex GPT | Разбивает идею на шаги |
| Бизнес-аналитик | Yandex GPT | Оценивает ROI, сроки, аудиторию |
| Юрист | GigaChat | Проверяет соответствие законам РФ |
| Финансовый консультант | Yandex GPT | Составляет смету, прогноз доходов |
| Архитектор решений | Yandex GPT | Проектирует архитектуру |
| Тестировщик | Yandex GPT | Составляет тест-кейсы |
| UI-дизайнер | Yandex GPT | Прорабатывает интерфейс |
| SMM-специалист | Yandex GPT | Планирует продвижение |
| Лайф-коуч | Yandex GPT | Помогает ставить цели |
| Эксперт по доступности | Yandex GPT | Проверяет инклюзивность |
**Промпты хранятся в:** docs/agent_prompts.yaml (TDC)
---
## 20. System Agents (11 агентов)
| Агент | Назначение |
|-------|-----------|
| DocAgent | Документация, комментарии, Runbook |
| AuditAgent | Соблюдение правил, прогресс проекта |
| SecurityAgent | Безопасность, уязвимости, 152-ФЗ |
| SpecAgent | Спецификации, версионирование **проекта**, CHANGELOG |
| ObserverAgent | Наблюдение за пользователями, генерация идей |
| QATesterAgent | Функциональное тестирование, временные аккаунты |
| FixAgent | Исправление багов, анализ логов |
| UITestAgent | Визуальное тестирование |
| RolloutAgent | Постепенное развёртывание (3→1%→5%→15%→100%) |
| EvolutionAgent | Саморазвитие и **версионирование агентов** |
| BacklogAgent | Управление отложенными задачами |
**Триггеры запуска:**
- Автоматически: pre-commit, push, daily cron
- Вручную: кнопка в админ-панели
---
## 21. Design System
Единый источник истины: docs/design-system/tokens.json
| Файл | Назначение |
|------|------------|
| tokens.json | Единый источник (JSON) |
| tokens.yaml | YAML версия для документации |
| generators/*.py | Генераторы для платформ (CSS, Swift, Kotlin) |
**Темы:** system (auto), dark, light
**Форматы:** CSS Variables, Swift, Kotlin XML
---
## 22. Testing Standards
- Модульные тесты — в ests/unit/
- Интеграционные тесты — в ests/integration/
- E2E сценарии — в docs/specs/e2e/
- Минимум: 1 smoke-тест на endpoint
- Фикстуры: conftest.py в корне ests/
---
## 23. Migration Policy
- Alembic, async, одна миграция на одно изменение
- Обратно совместимы (без breaking changes)
- Название: {revision}_{action}_{table}.py
---
## 24. API Version Lifecycle
`
Текущая: /api/v1/* — стабильная
Deprecation: 3 месяца после выхода новой версии
Отключение: 410 Gone
`
---
## 25. Module Public API Convention
__init__.py содержит ТОЛЬКО публичный API модуля:
`python
from app.models.user import User
__all__ = ["User", ...]
`
---
## 26. Project Glossary
Глоссарий: docs/blocks/GLOSSARY.md
| Термин | Значение |
|--------|----------|
| Idea | Основная сущность проекта (записанная пользователем) |
| Agent | ИИ-агент для анализа идей (11 ролей) |
| System Agent | Автоматический агент для поддержки проекта (11 штук) |
| Backlog | Система отложенных задач/идей |
| Rollout | Постепенное развёртывание |
| Design Tokens | Единый источник стилей |
---
## 27. OAuth & Auth
**Провайдеры:**
- Email + пароль (классика)
- Яндекс OAuth
- Google OAuth
- Apple OAuth (отложено)
**Схема:** Один пользователь = один провайдер (нельзя привязать Google если уже есть Яндекс)
---
## 28. Car Integration (Roadmap)
ГУ автомобиля — изучить и добавить в будущем:
- Android Auto / Apple CarPlay
- Bluetooth HID
- Подключение кнопок руля
+16
View File
@@ -0,0 +1,16 @@
FROM node:20-alpine AS frontend-builder
WORKDIR /build
COPY webui/package*.json ./
RUN npm ci
COPY webui/ .
RUN npm run build
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
COPY --from=frontend-builder /build/dist /app/webui/dist
RUN mkdir -p /app/logs
EXPOSE 8020
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8020"]
+312
View File
@@ -0,0 +1,312 @@
# VoIdea — План реализации
**Версия:** 1.0.0
**Дата:** 2026-05-10
**Статус:** Черновик
---
## Содержание
1. [Обзор проекта](#1-обзор-проекта)
2. [Фазы разработки](#2-фазы-разработки)
3. [Детальный план по блокам](#3-детальный-план-по-блокам)
4. [Агенты](#4-агенты)
5. [Инфраструктура](#5-инфраструктура)
6. [Приоритеты](#6-приоритеты)
---
## 1. Обзор проекта
### Описание
**VoIdea** — гибридное приложение (мобильное + веб) для фиксации и проработки идей с помощью группового ИИ-анализа.
### Ключевые требования
- Работа в условиях нестабильного интернета или оффлайн
- Максимальная защита данных пользователя
- Гибкий выбор ИИ-моделей (локальных и облачных)
- Синхронизация данных между устройствами через VPS
### Технологический стек
| Компонент | Технология |
|-----------|------------|
| Backend | Python FastAPI |
| Database | PostgreSQL |
| Cache/Queue | Redis + Celery |
| Frontend | React + TypeScript + Tailwind CSS (PWA) |
| Mobile | iOS/Android (параллельно с вебом) |
| Server | VPS Ubuntu, Port 8020 |
---
## 2. Фазы разработки
`
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 1: FOUNDATION ║
║ (2-3 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ 00-rules.md — Адаптация правил VoIdea ║
║ ✓ 01-core — Конфиги, модели, base классы ║
║ ✓ 02-data — PostgreSQL миграции, модели БД ║
║ ✓ 08-devops — CI/CD, контейнеры ║
║ ✓ PROJECT_GUIDE.md — Корневой файл ║
╚═══════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 2: API & AUTH ║
║ (2-3 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ 03-api — Endpoints (users, ideas, agents) ║
║ ✓ OAuth — Яндекс, Google ║
║ ✓ JWT — Аутентификация ║
║ ✓ 05-services — Бизнес-логика ║
╚═══════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 3: AI AGENTS ║
║ (3-4 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ 05-bis-ai-agents — Спецификация агентов ║
║ ✓ app/agents/ — Код 11 агентов ║
║ ✓ Prompt templates — agent_prompts.yaml ║
║ ✓ Fallback chain — Yandex → GigaChat → error ║
║ ✓ SpecAgent, EvolutionAgent ║
╚═══════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 4: FRONTEND ║
║ (3-4 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ 04-webui — React/Tailwind приложение ║
║ ✓ Design system — 3 темы (system/dark/light) ║
║ ✓ PWA — Service Worker, оффлайн ║
║ ✓ Hotkeys — Настраиваемые горячие клавиши ║
║ ✓ Admin panel — Управление, логи, статусы агентов ║
╚═══════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 5: INTEGRATION ║
║ (2-3 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ 05-ter-voice — Web Speech API, Whisper ║
║ ✓ 05-quater-sync — Синхронизация устройств ║
║ ✓ 06-security — Шифрование, SecurityAgent ║
║ ✓ Backlog заметки — rate limiting (позже) ║
╚═══════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 6: TESTING & AGENTS ║
║ (2-3 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ 07-testing — Методология тестирования ║
║ ✓ QATesterAgent — Функциональное тестирование ║
║ ✓ FixAgent — Исправление багов ║
║ ✓ UITestAgent — Визуальное тестирование ║
║ ✓ ObserverAgent — Наблюдение за пользователями ║
║ ✓ RolloutAgent — Постепенное развёртывание ║
║ ✓ AuditAgent, BacklogAgent, DocAgent, SecurityAgent ║
╚═══════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════╗
║ ФАЗА 7: DEPLOYMENT ║
║ (1-2 недели) ║
╠═══════════════════════════════════════════════════════════════════╣
║ ✓ Установка на VPS: Ubuntu + PostgreSQL + Redis + Nginx ║
║ ✓ SSL (Let's Encrypt) — после получения домена ║
║ ✓ Постепенное развёртывание: 3→1%→5%→15%→100% ║
║ ✓ Runbook, мониторинг ║
╚═══════════════════════════════════════════════════════════════════╝
`
---
## 3. Детальный план по блокам
### Block 0: Rules & Conventions
- [x] Адаптация под VoIdea
- [ ] Интеграция с AI-агентами
- [ ] Автоматическое обновление при изменениях
### Block 1: Core
- [ ] pp/core/config.py — Конфигурация из переменных окружения
- [ ] pp/core/base.py — Базовые классы (BaseModel, BaseService)
- [ ] pp/core/exceptions.py — Исключения приложения
- [ ] pp/core/dependencies.py — FastAPI dependencies
- [ ] pp/core/security.py — JWT, password hashing
### Block 2: Data
- [ ] pp/models/user.py — Модель пользователя
- [ ] pp/models/idea.py — Модель идеи
- [ ] pp/models/agent.py — Настройки агентов
- [ ] pp/models/backlog.py — Отложенные задачи
- [ ] pp/models/log.py — Логи
- [ ] Миграции Alembic
### Block 3: API
- [ ] /api/v1/auth/ — Авторизация, OAuth
- [ ] /api/v1/users/ — CRUD пользователей
- [ ] /api/v1/ideas/ — CRUD идей
- [ ] /api/v1/agents/ — Управление агентами
- [ ] /api/v1/sync/ — Синхронизация
- [ ] /api/v1/admin/ — Админ-панель
### Block 4: WebUI
- [ ] React приложение (Vite)
- [ ] Tailwind CSS + дизайн-система
- [ ] Компоненты: IdeaCard, AgentPanel, SettingsPage, AdminPanel
- [ ] PWA: Service Worker, IndexedDB
- [ ] Hotkeys система
- [ ] Темы: system/dark/light
### Block 5: Services
- [ ] pp/services/idea_service.py — Логика идей
- [ ] pp/services/agent_service.py — Работа с ИИ-агентами
- [ ] pp/services/sync_service.py — Синхронизация
- [ ] pp/services/notification_service.py — Email уведомления
- [ ] pp/services/logging_service.py — Логирование
### Block 5-bis: AI Agents
- [ ] Унифицированный интерфейс pp/integrations/ai/base.py
- [ ] Yandex GPT интеграция
- [ ] GigaChat интеграция
- [ ] Fallback chain
- [ ] 11 ролей с промптами
### Block 5-ter: Voice
- [ ] Web Speech API integration
- [ ] Whisper API (опционально)
- [ ] Оффлайн режим (Vosk — roadmap)
### Block 5-quater: Sync
- [ ] Кросс-платформенная синхронизация
- [ ] Brotli сжатие
- [ ] Разрешение конфликтов
- [ ] Очередь задач (Celery)
### Block 6: Security
- [ ] AES-256 шифрование (roadmap)
- [ ] SecurityAgent
- [ ] Rate limiting
- [ ] WAF правила
### Block 7: Testing
- [ ] Методология
- [ ] QATesterAgent
- [ ] FixAgent
- [ ] UITestAgent
### Block 8: DevOps
- [ ] Docker (для VPS)
- [ ] CI/CD (GitHub Actions)
- [ ] Мониторинг
- [ ] Бэкапы
---
## 4. Агенты
### Системные агенты (11)
| Агент | Файл | Статус |
|-------|------|--------|
| DocAgent | pp/agents/doc_agent.py | Roadmap |
| AuditAgent | pp/agents/audit_agent.py | Roadmap |
| SecurityAgent | pp/agents/security_agent.py | Roadmap |
| SpecAgent | pp/agents/spec_agent.py | Roadmap |
| ObserverAgent | pp/agents/observer_agent.py | Roadmap |
| QATesterAgent | pp/agents/qa_tester_agent.py | Roadmap |
| FixAgent | pp/agents/fix_agent.py | Roadmap |
| UITestAgent | pp/agents/ui_test_agent.py | Roadmap |
| RolloutAgent | pp/agents/rollout_agent.py | Roadmap |
| EvolutionAgent | pp/agents/evolution_agent.py | Roadmap |
| BacklogAgent | pp/agents/backlog_agent.py | Roadmap |
### ИИ-агенты (11 ролей)
| Роль | Промпт | Статус |
|------|--------|--------|
| Координатор | ✓ | |
| Организатор задач | ✓ | |
| Бизнес-аналитик | ✓ | |
| Юрист | ✓ | |
| Финансовый консультант | ✓ | |
| Архитектор решений | ✓ | |
| Тестировщик | ✓ | |
| UI-дизайнер | ✓ | |
| SMM-специалист | ✓ | |
| Лайф-коуч | ✓ | |
| Эксперт по доступности | ✓ | |
---
## 5. Инфраструктура
### Локальная разработка (Windows)
`
Python 3.12+
PostgreSQL (установлен локально)
Redis (Windows compatible)
`
### VPS (Ubuntu)
`
Server: 0.0.0.0:8020 (временно IP:8020)
PostgreSQL: localhost:5432
Redis: localhost:6379
Nginx: порт 80/443 (после домена)
SSL: Let's Encrypt (после домена)
`
---
## 6. Приоритеты
### Критический путь (MVP)
1. Block 0 (Rules) — завершён
2. Block 1 (Core) — начать сразу
3. Block 2 (Data) — модели БД
4. Block 3 (API) — базовые endpoints
5. Block 5 (Services + AI) — ядро функционала
6. Block 4 (WebUI) — интерфейс
### Roadmap (после MVP)
- Мобильные приложения (iOS/Android)
- Car integration (ГУ автомобиля)
- Локальные ИИ-модели
- Расширенная аналитика
---
## Чеклист начала работ
- [ ] Установить PostgreSQL локально
- [ ] Создать виртуальное окружение Python
- [ ] Настроить requirements.txt
- [ ] Запустить Block 1: Core
- [ ] Проверить работу API
---
*Документ создан: 2026-05-10*
*Обновляется системными агентами автоматически*
+41
View File
@@ -0,0 +1,41 @@
services:
app:
build: .
ports:
- "8020:8020"
env_file: .env
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
volumes:
- ./logs:/app/logs
worker:
build: .
command: celery -A app.tasks worker -l info
env_file: .env
depends_on:
- db
- redis
db:
image: postgres:14
environment:
POSTGRES_DB: voidea
POSTGRES_USER: voidea
POSTGRES_PASSWORD: ${DB_PASS}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U voidea"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7
volumes:
pgdata:
+300
View File
@@ -0,0 +1,300 @@
**Роль:** ты — старший архитектор ПО и продуктовый аналитик с опытом в создании гибридных ИИ-систем и кросс-платформенных приложений. Твоя задача — подготовить детальный план реализации приложения «Голос Идеи» (торговое название Voidea) с учётом требований безопасности, мультиплатформенности и отказоустойчивости. Проект будет реализован в OpenCode.
**Цель:** создать гибридное приложение (мобильное + веб) для фиксации и проработки идей с помощью группового ИИ-анализа. Приложение должно:
- работать в условиях нестабильного интернета или его полного отсутствия;
- обеспечивать максимальную защиту данных пользователя;
- предоставлять гибкий выбор ИИ-моделей (локальных и облачных);
- синхронизировать данные между устройствами через VPS с доменом voidea.ru.
#### Ключевые требования
1. **Гибридная архитектура:** приоритет локальных вычислений с возможностью подключения платных облачных моделей.
2. **Отказоустойчивость:** автоматическое переключение на резервные модели при сбоях, работа в оффлайн-режиме.
3. **Безопасность:** шифрование AES-256, минимизация данных, контроль доступа.
4. **Мультиплатформенность:** поддержка iOS, Android, веб-версии (PWA).
5. **Гибкость настройки:** пользователь может выбирать модели для каждой роли ИИ-агента.
6. **Централизованная синхронизация:** использование VPS с доменом voidea.ru для хранения зашифрованных данных и управления API.
#### Функциональные блоки для реализации
**1. Модуль голосового ввода**
- распознавание речи в реальном времени (онлайн и оффлайн);
- поддержка локальных моделей распознавания;
- сжатие аудио перед отправкой в облако (опционально).
**2. Модуль управления ИИ-агентами**
- унифицированный интерфейс для всех моделей (локальных и облачных);
- цепочка приоритетов для выбора модели (основная платная → резервная платная → локальная по умолчанию → минимальная локальная);
- механизм автоматического переключения при сбоях;
- очередь отложенных задач (до 100 запросов, срок хранения — 7 дней).
**3. Модуль синхронизации**
- кросс-платформенная синхронизация (iOS, Android, веб);
- алгоритм разрешения конфликтов (сохранение обеих версий при одновременном редактировании);
- выборочная синхронизация (пользователь может отключить передачу аудиозаписей);
- сжатие данных перед отправкой (алгоритм Brotli).
**4. Модуль безопасности**
- шифрование AES-256 на устройстве и в облаке;
- TLS 1.3 при передаче данных;
- двухфакторная аутентификация (2FA) для доступа к API-ключам;
- биометрическая аутентификация (Face ID/Touch ID);
- политика хранения данных (голосовые записи — 1/7/30 дней по выбору пользователя).
**5. Пользовательский интерфейс**
- **мобильные приложения** (iOS/Android): основной интерфейс для голосового ввода, работы в офлайн и с локальными ИИ-моделями;
- **веб-версия** (PWA): просмотр и редактирование заметок на ПК, управление настройками, синхронизация;
- раздел **«Настройки ИИ-агентов»**: таблица ролей с выпадающими списками моделей, индикатор статуса подключения, кнопка «Тест модели», переключатель «Автовыбор лучшей модели»;
- раздел **«Очередь запросов»**: просмотр и управление отложенными задачами;
- панель уведомлений с настройками каналов (push, email, Telegram) и режимом «тихих часов».
#### Роли ИИ-агентов и их промпты
|Роль|Задача|Пример промта для ИИ|
|---|---|---|
|**Координатор**|Управляет диалогом, распределяет задачи, обобщает результаты|«Ты — координатор. Запусти обсуждение идеи с агентами, следи за логикой, обобщи результаты в структурированный текст. Отвечай кратко»|
|**Организатор задач**|Разбивает идею на шаги, выстраивает план реализации|«Разбей идею на 5–7 последовательных шагов. Для каждого укажи срок (часы/дни) и ответственного (если применимо)»|
|**Бизнес-аналитик**|Оценивает идею с точки зрения бизнес-показателей|«Оцени идею по критериям: ROI (%), срок окупаемости (месяцы), целевая аудитория (тыс. чел.), конкурентные преимущества. Кратко обоснуй»|
|**Юрист**|Проверяет на соответствие законам РФ, выявляет риски|«Проанализируй идею на соответствие законодательству РФ (44-ФЗ, 152-ФЗ и т.д.). Укажи потенциальные риски и способы их минимизации»|
|**Финансовый консультант**|Рассчитывает бюджет, прогнозирует доходы|«Составь смету реализации идеи: разработка, маркетинг, поддержка. Прогнозируй доход за год. Укажи точку безубыточности»|
|**Архитектор решений**|Проектирует архитектуру системы|«Предложи 2 варианта архитектуры для реализации идеи (монолит/микросервисы). Укажи технологии (БД, бэкенд, фронтенд). Оцени сложность»|
|**Тестировщик**|Предлагает сценарии тестирования|«Составь 5–10 тест-кейсов для проверки идеи. Укажи позитивные и негативные сценарии. Предложи инструменты автоматизации»|
|**UI-дизайнер**|Прорабатывает внешний вид интерфейса|«Опиши 2 варианта дизайна главного экрана для идеи. Укажи цвета, шрифты, расположение элементов. Обоснуй выбор с точки зрения UX»|
|**SMM-специалист**|Планирует продвижение в соцсетях|«Составь контент-план на месяц для продвижения идеи. Укажи платформы (ВК, Telegram и т.п.), форматы постов, хештеги, частоту публикаций»|
|**Лайф-коуч**|Помогает ставить личные цели|«Помоги сформулировать цель по SMART на основе идеи. Разбей на квартальные этапы. Предложи метрики прогресса»|
|**Эксперт по доступности**|Проверяет решения на инклюзивность|«Проанализируй идею с точки зрения доступности для людей с ОВЗ (слабовидящие, глухие и т.д.). Предложи доработки для соответствия WCAG 2.1»|
#### ИИ-модели для использования
**Бесплатные (локальные или с открытым API):** Llama 3, Mistral 7B, CodeLlama, OpenHermes 2.5, Phi-3, Yandex GPT (бесплатный тариф), Google Gemma, Qwen 2, DeepSeek, GigaChat.
**Платные (требуют API-ключа):** OpenAI GPT-4 Turbo, Anthropic Claude 3 Opus, Google Gemini Pro 1.5, Microsoft Copilot, Cohere Command R+, Perplexity AI, Yandex GPT Pro.
#### Архитектура системы
```
Пользовательские устройства (iOS, Android, браузер)
↓ (HTTPS через TLS 1.3)
Домен voidea.ru (DNS-запись указывает на VPS)
VPS-сервер (бэкенд + API)
├── База данных (PostgreSQL/MongoDB) — зашифрованные заметки, настройки
├── API-шлюз — обработка запросов от клиентов
├── Модуль синхронизации — разрешение конфликтов, очередь задач
└── Веб-интерфейс (React/Vue) — PWA для ПК
└── Статические файлы (HTML, CSS, JS)
```
**Компоненты VPS:**
- бэкенд-сервер (Node.js, Python FastAPI, Go);
- база данных (PostgreSQL с шифрованием);
- веб-сервер (Nginx/Apache) для статических файлов веб-версии;
- SSL-сертификат (Lets Encrypt) для HTTPS;
- система резервного копирования (ежедневно в облако);
- мониторинг (Uptime Robot, Prometheus).
---
### Общий план пошаговой реализации
**Этап 1. Исследование и проектирование**
- анализ аналогов и конкурентов;
- проектирование архитектуры системы;
- выбор стека технологий;
- разработка UI/UX-прототипа;
- составление детального ТЗ.
**Этап 2. Разработка MVP**
- реализация модуля голосового ввода (с поддержкой оффлайн);
- создание базового модуля управления ИИ-агентами (поддержка 2–3 бесплатных моделей);
- разработка модуля синхронизации (базовая версия);
- внедрение основных функций безопасности (шифрование, авторизация);
- сборка прототипа интерфейса для мобильных платформ и веб-версии.
**Этап 3. Расширение функционала**
- добавление всех ролей ИИ-агентов;
- интеграция платных моделей через API;
- реализация механизма резервирования и очереди отложенных задач;
- доработка модуля синхронизации (алгоритм разрешения конфликтов);
- улучшение интерфейса (настройки ИИ, очередь запросов, уведомления).
**Этап 4. Тестирование и оптимизация**
- юнит-тесты для каждого модуля;
- нагрузочное тестирование (проверка работы при 100+ одновременных пользователей);
- тестирование сценариев отказа (отключение интернета, сбои API);
- оптимизация производительности (квантование моделей, сжатие данных);
- сбор обратной связи от тестовой группы.
### Этап 5. Запуск и поддержка (постоянно)
**1. Релиз бета-версии (ограниченный круг пользователей)**
* запуск закрытой бета-версии для тестовой группы (50–100 первых пользователей);
* настройка системы сбора обратной связи (встроенные формы, чат поддержки);
* развёртывание мониторинга ошибок и производительности (Sentry, Prometheus + Grafana);
* подготовка документации для бета-тестеров: руководство пользователя, FAQ, контакты поддержки;
* настройка A/B-тестирования ключевых функций (например, сравнение разных алгоритмов синхронизации).
**2. Мониторинг стабильности и производительности**
* отслеживание ключевых метрик:
* время ответа сервера (целевое: < 500 мс);
* доступность API (целевое: 99,9 % uptime);
* скорость распознавания речи (онлайн/офлайн);
* время обработки запросов ИИ-агентами;
* потребление памяти и CPU на мобильных устройствах;
* мониторинг ошибок в реальном времени (логирование без персональных данных);
* анализ нагрузки на VPS (CPU, RAM, дисковое пространство, трафик);
* автоматическое оповещение команды при превышении пороговых значений (например, задержка ответа > 2 с).
**3. Сбор и анализ обратной связи**
* проведение опросов пользователей (NPS, оценка удобства интерфейса);
* анализ сценариев использования (какие функции востребованы, какие — нет);
* сбор предложений по улучшению функционала;
* выявление «узких мест» (сложные настройки, непонятные уведомления);
* создание публичного roadmap с приоритетами на основе отзывов.
**4. Итеративные обновления**
* выпуск патчей для исправления критических ошибок (в течение 24 часов);
* регулярные обновления (каждые 2–4 недели):
* добавление новых ИИ-моделей;
* улучшение алгоритмов синхронизации;
* оптимизация производительности;
* расширение списка ролей ИИ-агентов;
* внедрение фич из roadmap (по приоритету).
**5. Техническая поддержка**
* организация каналов поддержки:
* чат в приложении;
* Telegram-бот для быстрых вопросов;
* email для сложных запросов;
* база знаний (FAQ, видеоуроки, инструкции);
* SLA (соглашение об уровне обслуживания):
* ответ на запрос — в течение 4 часов;
* решение критической ошибки — в течение 24 часов.
**6. Безопасность и соответствие нормам**
* регулярный аудит безопасности (ежеквартально):
* проверка SSL-сертификатов;
* тестирование на уязвимости (OWASP Top 10);
* анализ логов на подозрительную активность;
* обновление политик конфиденциальности и пользовательского соглашения;
* обеспечение соответствия 152-ФЗ (защита персональных данных в РФ);
* резервное копирование данных (ежедневно, хранение копий 30 дней).
**7. Масштабирование инфраструктуры**
* мониторинг ресурсов VPS:
* при достижении 80 % загрузки — апгрейд сервера или переход на кластер;
* оптимизация базы данных:
* индексация часто запрашиваемых полей;
* архивирование старых заметок (старше 1 года);
* кэширование «горячих» данных (Redis/Memcached);
* балансировка нагрузки между серверами (при росте аудитории).
**8. Маркетинг и рост аудитории**
* запуск открытой бета-версии (регистрация через voidea.ru);
* продвижение в соцсетях (Telegram, VK, YouTube):
* кейсы пользователей («Как Voidea помог реализовать идею»);
* обзоры функционала;
* партнёрства с сообществами разработчиков, стартапов, фрилансеров;
* реферальная программа (бонусы за приглашение друзей);
* участие в профильных конференциях и хакатонах.
**9. Монетизация (поэтапное внедрение)**
* freemium-модель:
* базовый функционал — бесплатно (локальные модели, ограниченная синхронизация);
* премиум-тариф — доступ к платным ИИ-моделям, расширенная синхронизация, приоритетная поддержка;
* корпоративные тарифы (для команд):
* совместный доступ к заметкам;
* админ-панель управления пользователями;
* кастомные роли ИИ-агентов.
**10. Долгосрочное развитие**
* интеграция с внешними сервисами:
* Trello, Notion, Jira (экспорт задач);
* Google Calendar (напоминания);
* Miro (визуализация идей);
* развитие голосового интерфейса:
* поддержка многоязычного ввода;
* распознавание акцентов;
* исследование новых ИИ-технологий (например, мультимодальные модели);
* локализация приложения на другие языки (английский, испанский и т.д.).
---
### Ключевые показатели успеха (KPI) для этапа запуска и поддержки
* **активные пользователи:** 1 000+ MAU через 3 месяца после открытого релиза;
* **удержание:** 40 % пользователей возвращаются в приложение 2+ раза в неделю;
* **оценка в магазинах:** ≥ 4,5 звезды в App Store и Google Play;
* **NPS:** ≥ 50 (индекс лояльности);
* **время решения проблемы:** среднее время ответа поддержки ≤ 4 часов;
* **стабильность:** uptime API ≥ 99,9 %;
* **безопасность:** отсутствие утечек данных за период эксплуатации.