# ReSekai **ReSekai** — интерактивная платформа для создания и прохождения текстовых ролевых историй с AI-персонажами. 🌐 **Демо:** [resekai.draug.me](https://resekai.draug.me) ## Возможности - 📖 **Создание историй** — описывайте сеттинг, персонажей и стартовую сцену - 🎭 **AI-персонажи** — уникальные характеры с настраиваемыми личностями - 💬 **Интерактивный чат** — общайтесь с персонажами в реальном времени (streaming) - 🎨 **Настройка креативности** — выбирайте температуру генерации (0.9–1.05) - 💾 **Сохранение прогресса** — истории хранятся локально в браузере - 📱 **Адаптивный дизайн** — работает на десктопе и мобильных устройствах ## Технологии ### Frontend - React 18 + TypeScript - Vite - CSS (без фреймворков) ### Backend - Express.js (прокси-сервер) - DeepSeek API (модель deepseek-chat V3) ## Установка ```bash # Клонировать репозиторий git clone https://git.draug.me/draug/resekai.git cd resekai # Установить зависимости npm install cd server && npm install && cd .. # Создать .env файл echo "VITE_DEEPSEEK_API_KEY=your_api_key" > .env # Запустить в режиме разработки npm run dev # Frontend (порт 5173) cd server && node index.js # Backend (порт 3001) ``` ## Структура проекта ``` src/ ├── components/ # Header, Footer ├── contexts/ # AuthContext ├── pages/ # Страницы приложения │ ├── StoriesPage # Список историй │ ├── CreateStoryPage # Создание/редактирование │ ├── GamePage # Игровой чат │ └── CharactersPage # Управление персонажами ├── services/ # API, DeepSeek, Storage └── types/ # TypeScript типы server/ └── index.js # Express прокси для DeepSeek API ``` ## Лицензия MIT import reactDom from 'eslint-plugin-react-dom' export default defineConfig([ globalIgnores(['dist']), { files: ['**/*.{ts,tsx}'], extends: [ // Other configs... // Enable lint rules for React reactX.configs['recommended-typescript'], // Enable lint rules for React DOM reactDom.configs.recommended, ], languageOptions: { parserOptions: { project: ['./tsconfig.node.json', './tsconfig.app.json'], tsconfigRootDir: import.meta.dirname, }, // other options... }, }, ]) ```