Files
adsassistant/README.md
2026-03-05 06:55:42 +03:00

139 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 дней