Skip to content

PSLSP/AI-Competitor-Monitor

Repository files navigation

🔍 Мониторинг конкурентов - AI Ассистент

Профессиональное веб-приложение и desktop-клиент для комплексного анализа конкурентной среды с использованием искусственного интеллекта

Python FastAPI OpenAI PyQt6 License

📑 Содержание


📖 О проекте

Мониторинг конкурентов — это полнофункциональное приложение для анализа конкурентной среды, которое помогает бизнесу получать структурированную аналитику о конкурентах. Приложение использует передовые технологии искусственного интеллекта для анализа текстов, изображений и веб-сайтов конкурентов.

✨ Ключевые возможности

  • 🤖 AI-анализ текста — глубокий анализ текстового контента конкурентов
  • 🖼️ Анализ изображений — оценка визуального стиля, маркетинговых материалов и упаковки
  • 🌐 Автоматический парсинг сайтов — извлечение и анализ контента конкурентов
  • 📊 Расширенные метрики — комплексная оценка по множеству параметров
  • 📋 История запросов — сохранение и просмотр всех анализов
  • 💻 Desktop приложение — нативное приложение для Windows
  • 🌐 Веб-интерфейс — современный и интуитивный веб-клиент

🎯 Основные функции

1. Анализ текста конкурента

Анализирует текстовый контент конкурентов (описания продуктов, рекламные тексты, контент сайтов) и предоставляет:

  • Сильные стороны — что делает конкурента успешным
  • ⚠️ Слабые стороны — уязвимости и недостатки
  • Уникальные предложения — отличительные особенности
  • 💡 Рекомендации — практические советы по улучшению
  • 📊 Расширенные метрики:
    • Оценка дизайна (0-10)
    • Уровень доверия (0-10)
    • Восприятие зрелости AI (0-10)
    • Ясность ценностного предложения (0-10)
    • Готовность к enterprise (0-10)
    • Риск AI washing (0-10)
    • Области фокуса автоматизации
    • Целевые лица, принимающие решения
    • Потенциал анимации с рекомендуемыми элементами
  • 📝 Общее резюме — краткое изложение анализа

2. Анализ изображений

Анализирует визуальные материалы конкурентов (баннеры, скриншоты сайтов, упаковку товаров) и предоставляет:

  • 🖼️ Детальное описание — что изображено на картинке
  • 💡 Маркетинговые инсайты — ключевые находки
  • Оценка визуального стиля (0-10) с детальным анализом
  • 📊 Все расширенные метрики (как в анализе текста)
  • 📋 Рекомендации по улучшению визуального контента

3. Парсинг и анализ сайтов

Автоматически извлекает и анализирует контент сайтов конкурентов:

  • 🌐 Автоматический парсинг — извлечение title, H1, первого абзаца
  • 📸 Скриншот страницы — визуальное представление сайта
  • 🤖 AI-анализ — комплексный анализ на основе извлечённого контента и скриншота
  • 📊 Все метрики и оценки — полный анализ как при работе с текстом

4. История запросов

  • 📋 Сохранение анализов — последние 10 запросов сохраняются автоматически
  • 🔍 Просмотр истории — быстрый доступ к предыдущим анализам
  • 📊 Полные данные — возможность просмотреть полный анализ из истории
  • 🗑️ Очистка истории — управление сохранёнными данными

🖼️ Скриншоты интерфейса

📸 Добавление скриншотов: Для добавления скриншотов разместите изображения в папке docs/screenshots/ с указанными именами. Подробные инструкции: docs/screenshots/README.md

Веб-интерфейс

Главная страница - Анализ текста

Анализ текста Интерфейс для анализа текстового контента конкурентов с примером заполненного текста

Анализ изображений

Анализ изображений Загрузка и анализ визуальных материалов через drag & drop или выбор файла

Парсинг сайта

Парсинг сайта Автоматический парсинг и анализ веб-сайтов конкурентов

Результаты анализа

Результаты Детальные результаты анализа с расширенными метриками, оценками и рекомендациями

История запросов

История История всех выполненных анализов с возможностью просмотра полных результатов

Desktop приложение

Главное окно

Desktop главное Главное окно desktop приложения с нативным интерфейсом Windows

Результаты в desktop версии

Desktop результаты Отображение результатов анализа в desktop приложении


🚀 Быстрый старт

Предварительные требования

  • Python 3.11+ (скачать)
  • OpenAI API ключ или ProxyAPI ключ
  • Google Chrome (для парсинга сайтов через Selenium)
  • Интернет-соединение

Установка

1. Клонирование репозитория

git clone https://github.com/pslsp/competitor-monitor.git
cd competitor-monitor

2. Создание виртуального окружения

Windows:

python -m venv venv
venv\Scripts\activate

Linux/Mac:

python3 -m venv venv
source venv/bin/activate

3. Установка зависимостей

pip install -r requirements.txt

4. Настройка переменных окружения

Создайте файл .env в корне проекта на основе env.example.txt:

# ProxyAPI (OpenAI-совместимый API для России)
PROXY_API_KEY=your_proxy_api_key_here

# Модели OpenAI (опционально, есть значения по умолчанию)
OPENAI_MODEL=gpt-4o-mini
OPENAI_VISION_MODEL=gpt-4o-mini

Важно: Если вы используете стандартный OpenAI API, измените proxy_api_base_url в backend/config.py на https://api.openai.com/v1

5. Запуск приложения

Вариант 1: Через run.py (рекомендуется)

python run.py

Вариант 2: Через uvicorn напрямую

uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000

Приложение будет доступно по адресу: http://localhost:8000


💻 Desktop приложение

Проект включает полнофункциональное desktop приложение на PyQt6 для Windows.

Установка и запуск

cd desktop
pip install -r requirements.txt
python main.py

Сборка .exe файла

cd desktop
python build.py

Готовый .exe файл будет в папке desktop/dist/CompetitorMonitor.exe

Подробная документация по desktop приложению: desktop/README.md


📁 Структура проекта

competitor-monitor/
├── backend/                    # Backend приложение
│   ├── __init__.py
│   ├── main.py                 # FastAPI приложение и эндпоинты
│   ├── config.py               # Конфигурация и настройки
│   ├── models/                 # Pydantic модели
│   │   ├── __init__.py
│   │   └── schemas.py          # Схемы данных для API
│   └── services/               # Бизнес-логика
│       ├── __init__.py
│       ├── openai_service.py   # Работа с OpenAI/ProxyAPI
│       ├── parser_service.py    # Парсинг веб-страниц (Selenium)
│       └── history_service.py   # Управление историей запросов
│
├── frontend/                   # Веб-интерфейс
│   ├── index.html              # Главная страница
│   ├── styles.css              # Стили (тёмная тема)
│   └── app.js                  # JavaScript логика
│
├── desktop/                    # Desktop приложение
│   ├── main.py                 # PyQt6 приложение
│   ├── api_client.py           # API клиент
│   ├── styles.py               # Стили интерфейса
│   ├── build.py                # Скрипт сборки .exe
│   ├── requirements.txt        # Зависимости desktop приложения
│   └── README.md               # Документация desktop приложения
│
├── data/                       # Тестовые данные (опционально)
│   └── *.png, *.pdf            # Примеры изображений и документов
│
├── requirements.txt            # Python зависимости
├── env.example.txt              # Пример .env файла
├── run.py                      # Скрипт запуска приложения
├── history.json                 # Файл истории (создаётся автоматически)
├── README.md                    # Этот файл
└── docs.md                      # Документация API

🔧 Технологический стек

Backend

  • FastAPI — современный веб-фреймворк для Python
  • Uvicorn — ASGI сервер
  • Pydantic — валидация данных и настройки
  • OpenAI API / ProxyAPI — работа с AI моделями
  • Selenium — автоматизация браузера для парсинга
  • BeautifulSoup4 — парсинг HTML
  • httpx — асинхронные HTTP запросы

Frontend

  • Vanilla JavaScript — без фреймворков, чистый JS
  • CSS3 — современные стили с тёмной темой
  • HTML5 — семантическая разметка

Desktop

  • PyQt6 — кроссплатформенный GUI фреймворк
  • PyInstaller — упаковка в .exe файл

AI & ML

  • OpenAI GPT-4o-mini — модель для анализа текста
  • OpenAI Vision API — анализ изображений

📚 API Документация

После запуска сервера доступна интерактивная документация:

Основные эндпоинты

POST /analyze_text

Анализ текста конкурента

Запрос:

{
  "text": "Текст для анализа..."
}

Ответ:

{
  "success": true,
  "analysis": {
    "strengths": ["..."],
    "weaknesses": ["..."],
    "unique_offers": ["..."],
    "design_score": 8,
    "trust_level": 7,
    "ai_maturity_perception": 6,
    "value_proposition_clarity": 8,
    "enterprise_readiness_score": 7,
    "ai_washing_risk": 3,
    "automation_focus_areas": ["..."],
    "decision_maker_targeting": ["..."],
    "animation_potential": {
      "score": 6,
      "recommended_elements": ["..."]
    },
    "recommendations": ["..."],
    "summary": "..."
  }
}

POST /analyze_image

Анализ изображения

Запрос: multipart/form-data с файлом изображения

Ответ: Аналогичен /analyze_text, но с дополнительными полями:

  • description — описание изображения
  • marketing_insights — маркетинговые инсайты
  • visual_style_score — оценка визуального стиля
  • visual_style_analysis — анализ визуального стиля

POST /parse_demo

Парсинг и анализ сайта

Запрос:

{
  "url": "example.com"
}

Ответ:

{
  "success": true,
  "data": {
    "url": "https://example.com",
    "title": "...",
    "h1": "...",
    "first_paragraph": "...",
    "analysis": { /* полный анализ как в analyze_text */ }
  }
}

GET /history

Получить историю запросов

GET /history/{entry_id}

Получить конкретную запись истории

DELETE /history

Очистить историю

GET /health

Проверка работоспособности сервиса

Подробная документация: docs.md


🎨 Особенности интерфейса

Веб-интерфейс

  • 🌙 Тёмная тема — современный дизайн с тёмной цветовой схемой
  • 📱 Адаптивный дизайн — работает на всех устройствах
  • Быстрая загрузка — оптимизированный код без лишних зависимостей
  • 🎯 Интуитивная навигация — простое и понятное меню
  • 📊 Визуализация метрик — прогресс-бары для оценок
  • 🔄 Автоматическая очистка — результаты очищаются при переключении вкладок

Desktop приложение

  • 💻 Нативный интерфейс — выглядит как стандартное Windows приложение
  • 🖱️ Drag & Drop — перетаскивание изображений для анализа
  • 📋 История с кликами — быстрый доступ к предыдущим анализам
  • 🎨 Единый стиль — тот же дизайн, что и в веб-версии

📊 Расширенные метрики анализа

Приложение предоставляет комплексную оценку конкурентов по следующим параметрам:

Метрика Описание Диапазон
Оценка дизайна Общая оценка визуального и UX дизайна 0-10
Уровень доверия Насколько доверительно выглядит продукт/компания 0-10
Восприятие зрелости AI Насколько зрелым выглядит AI-продукт 0-10
Ясность ценностного предложения Насколько понятно УТП 0-10
Готовность к enterprise Готовность продукта для корпоративного сегмента 0-10
Риск AI washing Риск использования AI только для маркетинга 0-10
Области фокуса автоматизации Список областей, на которых фокусируется автоматизация -
Целевые лица, принимающие решения Кто является целевой аудиторией (CEO, CTO и т.д.) -
Потенциал анимации Оценка потенциала использования анимации + рекомендации 0-10

⚡ Производительность и лимиты

Время выполнения анализа

  • Анализ текста: 5-15 секунд (зависит от длины текста)
  • Анализ изображения: 10-30 секунд (зависит от размера изображения)
  • Парсинг сайта: 15-45 секунд (зависит от скорости загрузки сайта)

Лимиты API

Приложение использует внешние AI API, которые могут иметь свои лимиты:

  • ProxyAPI: проверьте лимиты в личном кабинете на https://proxyapi.ru/
  • OpenAI: стандартные лимиты OpenAI API (зависит от тарифа)

Рекомендации

  • Для больших объёмов текста (>5000 символов) анализ может занять больше времени
  • Изображения автоматически оптимизируются перед отправкой
  • Парсинг сайтов с защитой от ботов может не работать

🔐 Безопасность

  • Валидация входных данных — все данные проверяются через Pydantic
  • Обработка ошибок — корректная обработка всех исключений
  • CORS настройки — безопасная работа с фронтендом
  • Переменные окружения — API ключи хранятся в .env файле
  • ⚠️ Не храните .env файл в Git — добавьте его в .gitignore

🛠️ Разработка

Запуск в режиме разработки

# С автоперезагрузкой при изменении кода
python run.py
# или
uvicorn backend.main:app --reload

Тестирование API

# Проверка работоспособности
curl http://localhost:8000/health

# Анализ текста
curl -X POST http://localhost:8000/analyze_text \
  -H "Content-Type: application/json" \
  -d '{"text": "Ваш текст для анализа"}'

Логирование

Все запросы логируются в консоль с подробной информацией:

  • Время выполнения
  • Статус ответа
  • Использованные токены (если доступно)

📝 Примеры использования

Пример 1: Анализ текста конкурента

  1. Откройте веб-интерфейс: http://localhost:8000
  2. Перейдите на вкладку "Анализ текста"
  3. Вставьте текст конкурента (например, описание продукта)
  4. Нажмите "Проанализировать"
  5. Изучите результаты: сильные/слабые стороны, метрики, рекомендации

Пример 2: Анализ изображения

  1. Перейдите на вкладку "Анализ изображений"
  2. Загрузите скриншот сайта конкурента или баннер
  3. Нажмите "Проанализировать"
  4. Получите оценку визуального стиля и маркетинговые инсайты

Пример 3: Парсинг сайта

  1. Перейдите на вкладку "Парсинг сайта"
  2. Введите URL конкурента (например: competitor.com)
  3. Нажмите "Парсить и анализировать"
  4. Дождитесь автоматического парсинга и анализа
  5. Просмотрите комплексный анализ сайта

⚙️ Конфигурация

Основные настройки находятся в backend/config.py:

# API настройки
api_host: str = "0.0.0.0"      # Хост сервера
api_port: int = 8000            # Порт сервера

# История
max_history_items: int = 10     # Максимум записей в истории

# Парсер
parser_timeout: int = 10        # Таймаут парсинга (секунды)

🐛 Решение проблем

Проблема: Сервер не запускается

Решение:

  • Убедитесь, что порт 8000 свободен
  • Проверьте, что все зависимости установлены: pip install -r requirements.txt
  • Проверьте наличие файла .env с корректными настройками
  • Убедитесь, что используется Python 3.11 или выше

Проблема: Ошибка подключения к API

Решение:

  • Проверьте правильность API ключа в .env
  • Убедитесь, что у вас есть доступ к интернету
  • Проверьте баланс API ключа (для ProxyAPI)
  • Для ProxyAPI: убедитесь, что ключ активен на https://proxyapi.ru/

Проблема: Парсинг сайта не работает

Решение:

  • Убедитесь, что установлен Google Chrome
  • Проверьте, что ChromeDriver установлен (устанавливается автоматически через webdriver-manager)
  • Увеличьте parser_timeout в конфигурации для медленных сайтов
  • Проверьте, что сайт доступен и не блокирует автоматизированные запросы

Проблема: Desktop приложение не подключается

Решение:

  • Убедитесь, что backend сервер запущен
  • Проверьте, что сервер доступен на http://localhost:8000
  • Проверьте статус подключения в нижней части бокового меню
  • Попробуйте перезапустить backend сервер

Проблема: Модуль не найден (ModuleNotFoundError)

Решение:

  • Убедитесь, что виртуальное окружение активировано
  • Переустановите зависимости: pip install -r requirements.txt
  • Для desktop приложения: pip install -r desktop/requirements.txt

Проблема: Ошибка при сборке .exe

Решение:

  • Убедитесь, что PyInstaller установлен: pip install pyinstaller
  • Очистите артефакты: python desktop/build.py clean
  • Проверьте, что все зависимости desktop приложения установлены
  • Убедитесь, что вы находитесь в директории desktop/ при запуске сборки

🤝 Вклад в проект

Мы приветствуем вклад в развитие проекта! Пожалуйста:

  1. Fork проекта
  2. Создайте ветку для новой функции (git checkout -b feature/AmazingFeature)
  3. Закоммитьте изменения (git commit -m 'Add some AmazingFeature')
  4. Push в ветку (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.


💻 Системные требования

Для веб-приложения

  • ОС: Windows 10/11, Linux, macOS
  • Python: 3.11 или выше
  • Память: минимум 2 GB RAM
  • Диск: 500 MB свободного места
  • Браузер: Chrome, Firefox, Edge (последние версии)
  • Интернет: для работы с AI API

Для desktop приложения

  • ОС: Windows 10/11 (64-bit)
  • Память: минимум 2 GB RAM
  • Диск: 100 MB для приложения + место для истории
  • Интернет: для работы с backend API

Для парсинга сайтов

  • Google Chrome: последняя версия (устанавливается автоматически)
  • ChromeDriver: устанавливается автоматически через webdriver-manager

👨‍💻 Автор

**PSLSP / Zerocoder © **


🙏 Благодарности

  • OpenAI за предоставление мощных AI моделей
  • FastAPI за отличный веб-фреймворк
  • PyQt6 за кроссплатформенный GUI
  • Университету Zerocoder - за идею проекта
  • Всем контрибьюторам проекта

❓ FAQ

Как получить API ключ?

Для ProxyAPI (рекомендуется для России):

  1. Зарегистрируйтесь на https://proxyapi.ru/
  2. Получите API ключ в личном кабинете
  3. Добавьте его в .env файл как PROXY_API_KEY

Для OpenAI:

  1. Зарегистрируйтесь на https://platform.openai.com/
  2. Создайте API ключ
  3. Измените proxy_api_base_url в backend/config.py на https://api.openai.com/v1
  4. Добавьте ключ в .env как PROXY_API_KEY

Можно ли использовать без API ключа?

Нет, приложение требует API ключ для работы с AI моделями. Без ключа анализ работать не будет.

Какие модели поддерживаются?

Приложение работает с любыми OpenAI-совместимыми моделями:

  • GPT-4o, GPT-4o-mini (рекомендуется)
  • GPT-4-turbo
  • GPT-3.5-turbo
  • Другие модели через ProxyAPI

Можно ли изменить порт сервера?

Да, измените api_port в backend/config.py или через переменную окружения.

Где хранится история?

История хранится в файле history.json в корне проекта. Файл создаётся автоматически при первом анализе.

Можно ли увеличить количество записей в истории?

Да, измените max_history_items в backend/config.py.


📈 Roadmap

  • Поддержка экспорта результатов в PDF/Excel
  • Сравнительный анализ нескольких конкурентов
  • Интеграция с другими AI моделями (Claude, Gemini)
  • Мобильное приложение (iOS/Android)
  • Расширенная аналитика и дашборды
  • API для интеграции с другими системами
  • Поддержка нескольких языков интерфейса
  • Плагины и расширения

⭐ Если проект был полезен

Если этот проект помог вам, пожалуйста, поставьте звезду ⭐ на GitHub!


Сделано с ❤️ для анализа конкурентной среды

About

Анализатор конкурентов на основе ИИ-технологий

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors