89 lines
3.0 KiB
Markdown
89 lines
3.0 KiB
Markdown
# 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...
|
|
},
|
|
},
|
|
])
|
|
```
|