2026-03-05 10:32:05 +03:00
2026-03-05 10:30:13 +03:00
2026-03-05 06:55:42 +03:00
2026-03-05 06:55:42 +03:00
2026-03-05 06:55:42 +03:00
2026-03-05 10:32:05 +03:00

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

Быстрый старт через 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

Откройте:


Запуск без 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

Первый сценарий использования

  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

Структура репозитория

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
No description provided
Readme 73 KiB
Languages
TypeScript 52.4%
Python 38.7%
CSS 7.5%
Dockerfile 0.9%
HTML 0.5%