Перейти к содержанию

Умная галерея

Photo Analysis Service — асинхронный сервис для загрузки, анализа и управления фотографиями с детекцией лиц, оценкой качества, поиском дубликатов и идентичных изображений.


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

Компонент Технология
API FastAPI (Python 3.14)
База данных PostgreSQL 16 + asyncpg
ORM SQLAlchemy async
Миграции Alembic
Объектное хранилище MinIO (S3-совместимое)
Очередь сообщений Apache Kafka
Анализ фото Внешний gRPC-сервис
Метрики Prometheus + Grafana
Контейнеризация Docker + docker-compose
Оркестрация Kubernetes (kind)

C4 Context — системный контекст

<<person>>Пользователь VKЗагружает фото, просматривает результаты анализа<<external_system>>Analyzer gRPCВнешний сервис анализа фото: лица, размытие, качество<<system>>Photo APIFastAPI приложение — загрузка фото, управление, аутентификацияУмная галерея[ENTERPRISE]HTTP (REST)[Загружает фото, запрашивает данные]gRPC[Отправляет фото на анализ через Worker]System Context — Умная галерея

C4 Container — контейнеры

<<person>>Пользователь VKVK Mini App / API Client<<external_system>>Analyzer gRPCВнешний AI-сервис анализа<<container>>Photo API[FastAPI + Uvicorn]Обрабатывает HTTP запросы, авторизация, загрузка фото, просмотр<<container>>Photo Worker[Python asyncio]Фоновый обработчик: анализ, хеширование, превью<<container_db>>PostgreSQL[PostgreSQL 16]Хранит метаданные фото, токены, группы, результаты анализа<<container>>MinIO[S3-совместимое хранилище]Хранит оригиналы и превью фотографий<<container>>Kafka[Apache Kafka]Очередь событий: фото загружено → worker<<container>>Prometheus + Grafana[Мониторинг]Сбор и визуализация метрикУмная галерея[ENTERPRISE]HTTP[Загружает фото / запрашивает данные]MinIO SDK[Сохраняет оригинал фото]aiokafka[Публикует событие photo-uploaded]aiokafka[Потребляет события]MinIO SDK[Читает оригинал, загружает превью]gRPC[Отправляет фото на анализ]SQLAlchemy async[Сохраняет результаты анализа]SQLAlchemy async[Читает/пишет данные]HTTP[Собирает метрики /metrics]Container diagram — Умная галерея

Быстрая навигация

  • Быстрый старт

    Запустите проект локально или в Kubernetes за 5 минут

    Начать

  • Архитектура

    C4 диаграммы, ER диаграмма, Sequence диаграмма потока данных

    Смотреть

  • API

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

    Изучить

  • Развёртывание

    Docker Compose и Kubernetes манифесты

    Развернуть

  • Переменные окружения

    Все конфигурационные параметры сервиса

    Настроить

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

    Дерево файлов с описанием каждого модуля

    Изучить

  • Метрики

    Prometheus метрики приложения

    Просмотр