@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
.claude/ plans feat: classify AI errors — ValidationError→invalid, fatal/network→failed 1 day ago
alembic feat: dockerize app, add structured logging, fix rate limiter 1 day ago
docs feat: implement review items 1-7 1 day ago
src/ vmk_data_collector feat: dockerize app, add structured logging, fix rate limiter 1 day ago
tests fix: code review critical and high issues 1 day ago
.dockerignore feat: dockerize app, add structured logging, fix rate limiter 1 day ago
.env.example feat: dockerize app, add structured logging, fix rate limiter 1 day ago
.gitignore feat: core pipeline + FastAPI API (Phases 0-6) 1 day ago
Dockerfile feat: dockerize app, add structured logging, fix rate limiter 1 day ago
README.md feat: core pipeline + FastAPI API (Phases 0-6) 1 day ago
alembic.ini feat: core pipeline + FastAPI API (Phases 0-6) 1 day ago
docker-compose.yml feat: dockerize app, add structured logging, fix rate limiter 1 day ago
pyproject.toml feat: implement review items 8-14 1 day ago
README.md

VMK 360 Data Collector

Описание

Сервис приёма, нормализации и ИИ-обогащения данных об объектах недвижимости.

  • Принимает полусырые данные от парсеров через REST API
  • Валидирует: AI определяет, является ли payload объявлением о недвижимости
  • Нормализует: приводит неструктурированные данные к единому формату
  • Обогащает: анализ изображений (vision) + текстовый анализ (NER, summary, оценка цены)
  • Сохраняет в PostgreSQL с полной историей изменений (snapshots)

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

# 1. Запуск PostgreSQL и Ollama (опционально)
docker compose up -d

# 2. Установка зависимостей
pip install -e ".[dev]"

# 3. Копирование .env
cp .env.example .env

# 4. Применение миграций
alembic upgrade head

# 5. Запуск приложения
uvicorn vmk_data_collector.main:app --reload --port 8000

API

  • POST /api/v1/properties/ingest — приём сырых данных от парсеров

Архитектура

Сервис построен по слоистой архитектуре:

  • API Layer — FastAPI, Pydantic валидация
  • Service Layer — PropertyPipeline, AI-нормализация, обогащение
  • Repository Layer — абстракция доступа к PostgreSQL
  • Domain Layer — чистые сущности недвижимости
  • Infrastructure Layer — Ollama client, image downloader, логирование

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