MVP0
This commit is contained in:
138
README.md
Normal file
138
README.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# AdsAssistant — генерация и автотестирование рекламных текстов
|
||||
|
||||
Монорепозиторий из 3 сервисов:
|
||||
|
||||
1) **agents_service** (FastAPI) — агент №1 (генерация текстов) и агент №2 (анализ/ранжирование по метрикам)
|
||||
2) **backend_django** (Django + DRF + JWT, SQLite) — хранение брифов/вариантов/тестов/результатов + Swagger
|
||||
3) **frontend** (React/Vite) — пользовательский интерфейс для создания брифа, выбора форматов и генерации текстов
|
||||
|
||||
## Возможности (MVP0)
|
||||
|
||||
- Пользователь создаёт бриф и **сам выбирает форматы**: `social_post`, `search_ad`, `email`
|
||||
- Агент №1 генерирует тексты по выбранным форматам
|
||||
- Backend сохраняет варианты и отдаёт их фронтенду
|
||||
- Swagger для backend: `http://localhost:8000/api/docs/`
|
||||
- Swagger для agents: `http://localhost:8001/docs`
|
||||
|
||||
> Модуль тестирования (создание тестов, сегменты, ручной ввод результатов, анализ) уже заложен в backend,
|
||||
> но UI для него можно расширять следующим шагом.
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт через Docker (рекомендуется)
|
||||
|
||||
### 1) Требования
|
||||
- Docker Desktop (Windows/macOS) или Docker Engine + Compose (Linux)
|
||||
|
||||
### 2) Скачивание
|
||||
Склонируйте репозиторий или распакуйте архив в папку, например `adsassistant_full_project`.
|
||||
|
||||
### 3) Настройка секретов GigaChat
|
||||
Откройте файл: `agents_service/.env` и заполните:
|
||||
|
||||
```env
|
||||
GIGACHAT_CLIENT_ID=...
|
||||
GIGACHAT_CLIENT_SECRET=...
|
||||
```
|
||||
|
||||
### 4) Запуск
|
||||
Из корня проекта:
|
||||
|
||||
```bash
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Откройте:
|
||||
- Frontend: http://localhost:5174
|
||||
- Backend Swagger: http://localhost:8000/api/docs/
|
||||
- Agents Swagger: http://localhost:8001/docs
|
||||
|
||||
---
|
||||
|
||||
## Запуск без Docker (локальная разработка)
|
||||
|
||||
### 1) Agents Service (8001)
|
||||
```bash
|
||||
cd agents_service
|
||||
python -m venv .venv
|
||||
# Windows: .venv\Scripts\activate
|
||||
pip install -r requirements.txt
|
||||
cp .env.example .env
|
||||
# заполните GIGACHAT_CLIENT_ID / GIGACHAT_CLIENT_SECRET
|
||||
python -m uvicorn src.main:app --reload --port 8001
|
||||
```
|
||||
|
||||
### 2) Django Backend (8000)
|
||||
```bash
|
||||
cd backend_django
|
||||
python -m venv .venv
|
||||
pip install -r requirements.txt
|
||||
cp .env.example .env
|
||||
python manage.py migrate
|
||||
python manage.py runserver 0.0.0.0:8000
|
||||
```
|
||||
|
||||
### 3) Frontend (5174)
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
cp .env.example .env
|
||||
npm run dev
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Первый сценарий использования
|
||||
|
||||
1) Создайте пользователя:
|
||||
- В Swagger backend: `POST /api/auth/register/`
|
||||
2) Получите JWT:
|
||||
- `POST /api/auth/token/` → `access`
|
||||
3) Во фронтенде войдите с логином/паролем
|
||||
4) Создайте бриф:
|
||||
- заполните продукт, аудиторию, выберите форматы
|
||||
5) Нажмите **«Сгенерировать тексты (Агент №1)»**
|
||||
6) Посмотрите список вариантов (ID + format + payload)
|
||||
|
||||
---
|
||||
|
||||
## Полезные адреса
|
||||
|
||||
- Frontend: `http://localhost:5174`
|
||||
- Backend API: `http://localhost:8000/api/`
|
||||
- Backend Swagger: `http://localhost:8000/api/docs/`
|
||||
- Django Admin: `http://localhost:8000/admin/` (можно создать суперпользователя локально: `python manage.py createsuperuser`)
|
||||
- Agents Swagger: `http://localhost:8001/docs`
|
||||
|
||||
---
|
||||
|
||||
## Структура репозитория
|
||||
|
||||
```text
|
||||
adsassistant_full_project/
|
||||
├── docker-compose.yml
|
||||
├── agents_service/
|
||||
├── backend_django/
|
||||
└── frontend/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Примечания
|
||||
|
||||
- SQLite база backend сохраняется в docker volume `backend_db`.
|
||||
- В Docker-сборке frontend использует `VITE_API_BASE_URL=http://localhost:8000` (см. `frontend/.env.production`).
|
||||
- Для продакшена рекомендуется:
|
||||
- вынести SQLite на PostgreSQL
|
||||
- включить HTTPS и нормальные секреты
|
||||
- добавить роль admin и отдельную админ-панель/страницы
|
||||
|
||||
|
||||
Note: frontend/public is optional; docker build does not require it.
|
||||
|
||||
|
||||
## JWT токены (время жизни)
|
||||
|
||||
В `backend_django/adsassistant_backend/adsassistant_backend/settings.py` настроено:
|
||||
- ACCESS token: 1 день
|
||||
- REFRESH token: 7 дней
|
||||
Reference in New Issue
Block a user