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

Техническая архитектура

Стек технологий

Компонент Технология Описание
Frontend PWA (React/Next.js) PWA, офлайн, Home Screen
Backend FastAPI + Python REST API, async, OpenAPI
Database PostgreSQL Полнотекстовый поиск, GIS
Cache Redis Сессии, rate limiting
Payments Custom + банковское API Эскроу, split payments
Hosting VPS + CDN Docker, автобэкапы
CDN Cloudflare DDoS, SSL
AI/ML Python + OpenAI Парсинг, рекомендации
Support OpenClaw AI Встроенный чат 24/7

Системная архитектура

flowchart TB subgraph Client["🖥️ Клиент"] PWA[PWA React/Next.js] SW[Service Worker] end subgraph API["⚡ Backend"] FastAPI[FastAPI] Auth[Auth Service] Search[Search Engine] Escrow[Escrow Service] end subgraph Data["💾 Данные"] PG[(PostgreSQL)] Redis[(Redis)] S3[Object Storage] end subgraph AI["🤖 AI/ML"] Parser[AI Parser] Rec[Recommender] NLP[NLP Reviews] end subgraph External["🌐 Внешние"] Payment[Банк API] SMS[SMS Gateway] CDN[Cloudflare CDN] end PWA --> FastAPI SW --> FastAPI FastAPI --> Auth FastAPI --> Search FastAPI --> Escrow FastAPI --> PG FastAPI --> Redis FastAPI --> S3 FastAPI --> Parser FastAPI --> Rec Escrow --> Payment FastAPI --> SMS PWA --> CDN style Client fill:#EBF0FF,stroke:#063CC1 style API fill:#f0f4ff,stroke:#063CC1 style Data fill:#f5f7fa,stroke:#666 style AI fill:#fff3e0,stroke:#e65100

Встроенный чат и OpenClaw AI

flowchart TB subgraph Users["👥 Пользователи"] Client[Клиент] Host[Арендодатель] end subgraph Chat["💬 Чат-система"] WebChat[Web Chat UI] UniqueLink[Уникальные ссылки] Session[Сессии across pages] end subgraph AI["🤖 OpenClaw AI"] Manager[AI-менеджер проекта] Support[Поддержка 24/7] Context[Контекст сессии] end subgraph Backend["⚡ Backend"] ChatAPI[Chat API] SessionStore[Session Storage] Analytics[Chat Analytics] end Client --> WebChat Host --> WebChat WebChat --> UniqueLink UniqueLink --> Session WebChat --> ChatAPI ChatAPI --> Manager Manager --> Support Session --> Context ChatAPI --> SessionStore ChatAPI --> Analytics style Users fill:#EBF0FF,stroke:#063CC1 style Chat fill:#f0f9ff,stroke:#0369a1 style AI fill:#f0fdf4,stroke:#16a34a style Backend fill:#f5f7fa,stroke:#666

Встроенный чат с уникальными ссылками

Каждый клиент и арендодатель получает уникальную ссылку для персонализированной поддержки:

  • Уникальные ссылки: konok.kg/chat/{user_id} — персональные сессии чата
  • Сессии сохраняются — контекст доступен на всех страницах сайта
  • Проактивная поддержка — AI отвечает на вопросы о бронировании, ценах, условиях
  • Эскалация — сложные вопросы передаются человеку

OpenClaw AI как менеджер проекта

OpenClaw AI встроен в чат как виртуальный менеджер проекта:

Функция Описание
Информационная поддержка Ответы на FAQ, правила бронирования, комиссии
Техническая помощь Помощь с оплатой, загрузкой фото, заполнением профиля
Проактивные уведомления Напоминания о check-in/out, просьбы об отзывах
Аналитика Анализ часто задаваемых вопросов для улучшения UX
Многоязычность Поддержка кыргызского, русского, английского

Архитектура интеграции:

# Пример API интеграции с OpenClaw AI
@app.post("/api/chat/message")
async def chat_message(message: str, session_id: str):
    # Сохранение контекста пользователя
    context = await get_user_context(session_id)

    # Запрос к OpenClaw AI
    ai_response = await openclaw_client.chat(
        message=message,
        context=context,
        system_prompt="Ты — AI-менеджер платформы KONOK.KG..."
    )

    # Логирование и аналитика
    await log_chat_interaction(session_id, message, ai_response)

    return {"response": ai_response, "timestamp": datetime.now()}

Уникальные возможности OpenClaw AI:

  • Контекст проекта: AI знает всю документацию KONOK.KG
  • Персонализация: Адаптируется под роль пользователя (турист vs хозяин)
  • Эскалация: Автоматическое определение, когда нужна помощь человека
  • Continuous learning: Обучение на реальных диалогах пользователей

Эскроу-система

sequenceDiagram participant T as 🧑 Турист participant K as 🏠 KONOK.KG participant E as 🔒 Эскроу participant H as 🏡 Хозяин participant B as 🏦 Банк T->>K: Бронирование K->>B: Списание с карты B->>E: Средства на эскроу K->>H: Уведомление о бронировании H->>K: Подтверждение заезда T->>K: Check-in ✅ Note over E: 24ч ожидание E->>H: Перевод (минус 10%) E->>K: Комиссия 10% alt Спор T->>K: Жалоба K->>K: Арбитраж K->>E: Решение о возврате end
AI-парсинг: 1,695 объектов из 4 источников (Lalafo, Booking, Airbnb, Instagram). Точность геолокации: 94%.
  1. Турист оплачивает через банковское API → средства на эскроу
  2. Хозяин подтверждает заезд гостя
  3. Через 24ч средства переводятся хозяину (минус 10%)
  4. При споре — автоматический или ручной арбитраж

API Endpoints

Метод Endpoint Описание Аутентификация
GET /api/search Поиск объектов (фильтры, гео, даты) Нет
GET /api/listings/:id Детали объекта Нет
POST /api/book Создание бронирования JWT
POST /api/payment Инициация эскроу-платежа JWT
GET /api/reviews Отзывы по объекту Нет
POST /api/auth/register Регистрация (телефон + SMS) Нет
POST /api/auth/login Авторизация (JWT) Нет
GET /api/host/dashboard Панель хозяина JWT (host)
POST /api/chat/message Отправка сообщения в чат JWT
GET /api/chat/history История чата пользователя JWT
GET /api/chat/{user_id} Уникальная ссылка чата Нет

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

Мера Реализация
Шифрование HTTPS (TLS 1.3) через Cloudflare
Аутентификация JWT токены (access 15 мин + refresh 30 дней)
Rate limiting Redis-based: 100 req/мин (API), 10 req/мин (auth)
Input validation Pydantic schemas, SQL injection protection (ORM)
OWASP Top 10 XSS (CSP headers), CSRF (SameSite cookies), injection (parameterized queries)
Данные платежей PCI DSS — карточные данные не хранятся, токенизация через банк

Инфраструктура

Компонент Спецификация Стоимость/мес
VPS (старт) 2 vCPU, 4GB RAM, 80GB SSD $20
VPS (масштаб) 4 vCPU, 8GB RAM, 160GB SSD $40
PostgreSQL Встроенный на VPS, позже managed DB $0 → $30
Redis Встроенный, кеш + сессии + rate limit $0
S3-хранилище Совместимое (MinIO / Cloudflare R2) — фото объектов $5
Cloudflare CDN Free plan + SSL + DDoS protection $0
Итого (старт) $25/мес

Мониторинг

  • Uptime: цель >99.5%, мониторинг через UptimeRobot (бесплатно)
  • Error tracking: Sentry (бесплатный план — 5K events/мес)
  • Метрики: Prometheus + Grafana (self-hosted) — CPU, RAM, response time, DB connections
  • Логирование: структурированные JSON-логи → Loki или файлы с ротацией
  • Алерты: Telegram-бот для критических ошибок (5xx, downtime, payment failures)

CI/CD

flowchart LR A[Git Push] --> B[GitHub Actions] B --> C[Tests + Lint] C --> D[Docker Build] D --> E[Push to Registry] E --> F[Deploy to VPS] F --> G[Health Check] style B fill:#EBF0FF,stroke:#063CC1 style F fill:#e8f5e9,stroke:#2e7d32
  • Pipeline: GitHub Actions → Docker build → SSH deploy → health check
  • Среды: staging (автодеплой из develop) → production (ручной из main)
  • Тесты: pytest (backend), Playwright (E2E), coverage >70%
  • Время деплоя: ~3 минуты от push до production

Бэкапы

Тип Частота Хранение Восстановление
PostgreSQL dump Ежедневно (03:00 UTC) S3, 30 дней < 15 мин
Медиа-файлы S3 snapshots, еженедельно Отдельный бакет < 30 мин
Конфигурация Git (Infrastructure as Code) GitHub < 5 мин
Full VPS snapshot Еженедельно Хостинг-провайдер < 1 час

Навигация: ← Финансовая модель | Маркетинг →