AI-платформа для общения с LLM, работы с историей чатов, мультимодальными вложениями и расширенной безопасностью.
ReMind объединяет backend на Flask и frontend на React/Vite в единое приложение с акцентом на:
- безопасную обработку пользовательских запросов и файлов;
- удобную работу с сессиями и историей диалогов;
- потоковый ответ модели (SSE);
- готовность к production-развертыванию через Docker Compose.
Текущий статус: beta.
- Основные возможности
- Технологический стек
- Архитектура
- Быстрый старт
- Запуск в Docker
- Конфигурация окружения
- API (кратко)
- Качество и процессы
- Структура репозитория
- Известные технические ограничения
- Лицензия
- Чат с AI-моделью через
/chatс поддержкой streaming/SSE. - Управление сессиями и историями (
/sessions,/sessions/<id>/history). - Публичный/приватный доступ к чатам и share-ссылки (
/sessions/<id>/share,/c/<public_id>). - Встроенная auth-система: регистрация, вход, профиль, настройки, избранное.
- OAuth через Google (при наличии ключей).
- Безопасная загрузка файлов: валидация имени, MIME-типа и содержимого.
- Перевод текста (
/translate) и синтез речи (/synthesize). - GDPR-операции: экспорт и удаление пользовательских данных.
- Мультиязычный интерфейс (локали в
src/i18n/locales).
| Слой | Технологии |
|---|---|
| Frontend | React 19, TypeScript, Vite 7, i18next, Chart.js, D3, Mermaid |
| Backend | Python 3.11, Flask, Flask-SQLAlchemy, Flask-Session, Authlib |
| AI / Integrations | Gemini API, gTTS |
| Data / Queue | SQLite/PostgreSQL, Redis, Celery |
| Infra | Docker, Docker Compose, Nginx |
| CI | GitHub Actions (.github/workflows/ci.yml) |
graph LR
UI[React + Vite SPA] -->|HTTP / SSE| API[Flask API]
API --> AUTH[Auth & Session Layer]
API --> FILES[Secure File Pipeline]
API --> AI[AI Engine]
API --> DB[(SQLite / PostgreSQL)]
API --> REDIS[(Redis)]
REDIS --> CELERY[Celery Worker]
NGINX[Nginx Reverse Proxy] --> API
Ключевые точки входа:
app_factory.py: сборка и конфигурация Flask-приложения.routes/api.py: chat/session/media/privacy API.utils/auth.py: auth endpoints, user profile/settings.src/: клиентская SPA-часть.
git clone https://github.com/ReNothingg/ReMind.git
cd ReMindPowerShell (Windows):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
npm ci
Copy-Item .env.example .envBash (Linux/macOS):
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
npm ci
cp .env.example .envМинимум для локального запуска:
SECRET_KEYGEMINI_API_KEY(если нужен production-like AI/перевод)REDIS_URL
python main.pyBackend по умолчанию стартует на http://127.0.0.1:5000.
npm run devОбязательно задайте:
SECRET_KEYGEMINI_API_KEYDB_PASSWORD
docker compose up --buildКонтейнеры:
nginx(80/443)app(Flask)worker(Celery)db(PostgreSQL)redis(Redis)
Основные переменные (.env.example):
| Переменная | Назначение |
|---|---|
SECRET_KEY |
Ключ подписи сессий и CSRF |
GEMINI_API_KEY, GEMINI_MODEL_NAME |
AI-провайдер |
DATABASE_URL |
Подключение к базе |
REDIS_URL |
Session storage / limiter storage |
CELERY_BROKER_URL, CELERY_RESULT_BACKEND |
Очередь фоновых задач |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET |
Google OAuth |
TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY |
Cloudflare Turnstile |
CORS_ORIGINS |
Разрешенные origin'ы |
VALIDATE_USER_AGENT |
Проверка User-Agent |
ALLOW_GUEST_CHATS_SAVE |
Разрешение сохранения гостевых сессий |
| Группа | Эндпоинты |
|---|---|
| Chat | POST /chat |
| Sessions | GET/POST /sessions, GET /sessions/<id>/history, POST /sessions/<id>/share, DELETE /sessions/<id> |
| Auth/Profile | /api/auth/*, /api/user/*, /api/chat-history* |
| Tools | POST /translate, POST /synthesize, POST /get-link-metadata |
| Health | GET /health |
| Privacy | GET /api/privacy/export, POST /api/privacy/delete |
Репозиторий оформлен в production-friendly формате:
- Contributing Guide
- Security Policy
- Code of Conduct
- Support Guide
- Governance
- Pull Request Template
- Issue Templates
- CODEOWNERS
Базовые проверки в CI:
- secret pattern scan (tracked files)
- frontend lint (
npm run lint) - frontend build (
npm run build) - Python syntax check (
py_compile)
Проект распространяется под GNU AGPLv3. Подробности: LICENSE.