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
Документация
Архитектура, API, развёртывание, переменные окружения, метрики.
Попробуйте сами
Загрузите фото и посмотрите, как работает детекция лиц, оценка качества и поиск дубликатов.
Полный функционал — в VK
Откройте в VK Mini Apps и получите:
- ✓ Удобный интерфейс
- ✓ Личная галерея