AdsAssistant — генерация и автотестирование рекламных текстов
Монорепозиторий из 3 сервисов:
- agents_service (FastAPI) — агент №1 (генерация текстов) и агент №2 (анализ/ранжирование по метрикам)
- backend_django (Django + DRF + JWT, SQLite) — хранение брифов/вариантов/тестов/результатов + Swagger
- frontend (React/Vite) — пользовательский интерфейс для создания брифа, выбора форматов и генерации текстов
Возможности (MVP0)
- Пользователь создаёт бриф и сам выбирает форматы:
social_post,search_ad,email - Агент №1 генерирует тексты по выбранным форматам
- Backend сохраняет варианты и отдаёт их фронтенду
- Swagger для backend:
http://localhost:8000/api/docs/ - Swagger для agents:
http://localhost:8001/docs
Быстрый старт через Docker (рекомендуется)
1) Требования
- Docker Desktop (Windows/macOS) или Docker Engine + Compose (Linux)
2) Скачивание
Склонируйте репозиторий или распакуйте архив в папку, например adsassistant_full_project.
3) Настройка секретов GigaChat
Откройте файл: agents_service/.env и заполните:
GIGACHAT_CLIENT_ID=...
GIGACHAT_CLIENT_SECRET=...
4) Запуск
Из корня проекта:
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)
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)
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)
cd frontend
npm install
cp .env.example .env
npm run dev
Первый сценарий использования
- Создайте пользователя:
- В Swagger backend:
POST /api/auth/register/
- В Swagger backend:
- Получите JWT:
POST /api/auth/token/→access
- Во фронтенде войдите с логином/паролем
- Создайте бриф:
- заполните продукт, аудиторию, выберите форматы
- Нажмите «Сгенерировать тексты (Агент №1)»
- Посмотрите список вариантов (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
Структура репозитория
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 дней
Description
Languages
TypeScript
52.4%
Python
38.7%
CSS
7.5%
Dockerfile
0.9%
HTML
0.5%