Files
admin 46af290db3
Build and Push Docker Images / build-and-push (push) Failing after 3m33s
initial commit
2026-11-07 16:39:43 +03:00

145 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
📊 Writer IDE — Summary проекта
🎯 Видение проекта
Локально-ориентированное веб-приложение (IDE для писателей), объединяющее rich-text редактирование, структурированное управление сюжетом и бесшовную интеграцию AI-ассистента для генерации, редактуры и анализа текста.
🛠️ Технологический стек
Frontend: Next.js 14+ (App Router), TypeScript, Tailwind CSS, Tiptap (редактор), Zustand (state management)
Backend: FastAPI (Python), Pydantic, Uvicorn
AI Интеграция: Ollama (локально), OpenRouter API (облачные модели)
Разработка: Zed IDE + AI-агенты (Qwen 2.5 Coder 7b/32b через OpenRouter)
✅ Что уже сделано (Этап 1: Фундамент)
Задача
Статус
Что реализовано
1.1 Инициализация Frontend
✅ Выполнено
Next.js + Tailwind + Tiptap + Zustand установлены
1.2 Zustand Store
✅ Выполнено
appStore.ts с управлением документами (id, title, content, type)
1.3 Layout (3 колонки)
✅ Выполнено
FileExplorer (слева), StoryExplorer (посередине), Editor (справа)
1.4 Tiptap Editor
✅ Выполнено
Rich-text редактор с расширениями: TextStyle, Color, Underline, Blockquote, интеграция с Zustand
1.5 Toolbar
✅ Выполнено
Панель форматирования: Bold, Italic, Underline, Quote, Color picker, Clear formatting, Font family, Font size
1.6 Backend инициализация
✅ Выполнено
FastAPI с CORS, health check endpoint, структура папок (routers, services, models)
1.7 Frontend-Backend интеграция
✅ Выполнено
API endpoints для документов, автосохранение с debounce, персистентность данных
Итог Этапа 1: Рабочее приложение с rich-text редактором, трехколоночным интерфейсом и синхронизацией с backend.
🟡 Что планируется (Этап 2: AI Интеграция)
Задача
Статус
Что будет реализовано
2.1 Backend AI сервис
⏳ Готово к началу
LLMRouter для Ollama и OpenRouter, эндпоинт /api/ai/generate
2.2 Система пресетов
⏳ Ожидает
Пресеты: Creative Draft (temp 0.85), Editor (temp 0.3), Brainstorm (temp 1.0)
2.3 Frontend AI клиент
⏳ Ожидает
Типизированный API клиент ai-api.ts для вызова генерации
2.4 Inline AI меню
⏳ Ожидает
Всплывающее меню при выделении текста с действиями: Переписать, Расширить, Упростить
2.5 Diff view
⏳ Ожидает
Визуальное сравнение оригинального текста и AI-предложения с кнопками Accept/Reject
2.6 Интеграция AI действий
⏳ Ожидает
Связывание AIMenu + AIDiffView + API для полноценного AI-редактирования
Цель Этапа 2: Пользователь может выделить текст, выбрать AI действие, увидеть предпросмотр изменений в diff view и принять/отклонить.
🟠 Что планируется (Этап 3: Контекст и Story Bible)
Автоматическое извлечение сущностей (персонажи, локации) из текста
Панель Story Bible для управления контекстом
Умная подача контекста в промпты для консистентности повествования
Фоновый агент для обновления Story Bible при сохранении глав
🔴 Что планируется (Этап 4: Экспорт)
Экспорт в PDF с форматированием (шрифты, отступы, оглавление)
Экспорт в EPUB/FB2 для читалок
Генерация иллюстраций (опционально)
🎯 Ключевые архитектурные решения
Local First: Данные пользователя хранятся локально (backend как прокси к файловой системе)
AI Router: Абстракция над Ollama и OpenRouter для гибкого переключения между локальными и облачными моделями
Presets System: Жесткое разделение параметров генерации в зависимости от задачи (творчество vs анализ)
Inline AI: AI-действия не прерывают поток писателя (встроенные меню, diff view вместо чата)
Type Safety: Строгая типизация на frontend (TypeScript) и backend (Pydantic)
📁 Структура проекта
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
🚀 Следующий шаг (завтра)
Задача 2.1: Backend AI сервис
Модель: qwen/qwen-2.5-coder-32b-instruct (через OpenRouter)
Что сделать: Создать backend/services/llm_router.py с поддержкой Ollama и OpenRouter
Критерий успеха: Эндпоинт POST /api/ai/generate принимает промпт и возвращает сгенерированный текст
💡 Важные заметки
Python 3.14 на сервере — используем пакеты без жестких версий в requirements.txt
Zed IDE вместо VS Code для экономии памяти (16 GB RAM)
Для разработки используем OpenRouter (Qwen 2.5 Coder), для тестирования функционала — локальную Ollama