This commit is contained in:
commit
46af290db3
100 files changed
+16663
No files matched your search
@@ -0,0 +1,144 @@
|
||||
📊 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
|
||||
Reference in new issue
Block a user