import asyncio
Σ (n = 1 → ∞) 1/n² = π²/6
SELECT * FROM photos WHERE quality > 0.8;
await analyzer.process(photo)
π ≈ 3.1415926
cos²θ + sin²θ = 1
Kafka → gRPC → MinIO
∂f/∂x = lim (Δx → 0) Δf/Δx
docker compose up -d
√(Δx² + Δy²)
FastAPI · asyncio · uvloop
queue.enqueue(photo)
λ · id = λ · id
SELECT embeddings FROM faces;

Загрузка фото.
AI-анализ.
Детекция лиц.

Асинхронный пайплайн: PostgreSQL, MinIO, Kafka, gRPC-анализатор.
Подробнее

Что такое «Умная галерея»

Сервис для загрузки и AI-анализа фотографий: детекция лиц, оценка размытия и качества, поиск дубликатов. Обработка асинхронная — фото попадают в очередь Kafka, а gRPC-анализатор возвращает метаданные и превью.

Фото хранятся в MinIO (S3-совместимое хранилище), метаданные — в PostgreSQL 16. API написан на Python 3.14 + FastAPI и разворачивается через Docker Compose или Kubernetes.

Архитектура проекта
Интерфейс умной галереи

Стек

Асинхронный пайплайн на Python, FastAPI, Kafka и gRPC.
Python 3.14, asyncio, FastAPI
PostgreSQL 16, SQLAlchemy async, Alembic
MinIO (S3-совместимое хранилище)
Apache Kafka, aiokafka
gRPC-анализатор, Protocol Buffers
Docker Compose, Kubernetes

Попробуйте сами

Загрузите фото и посмотрите, как работает детекция лиц, оценка качества и поиск дубликатов.
Полный функционал — в VK
Откройте в VK Mini Apps и получите:
  • ✓ Удобный интерфейс
  • ✓ Личная галерея
Открыть в VK