Разработка AI-приложения — это проектирование системы, которая обрабатывает данные через модели машинного обучения или LLM-агентов и возвращает результат, основанный на логике, а не жёстко заданных правилах. Современное AI-приложение строится на нескольких обязательных компонентах: слой данных, модель (ML или LLM), бизнес-логика и интерфейс взаимодействия.
Процесс разработки включает шесть последовательных этапов:
Ниже — детальный технический разбор каждого этапа с архитектурными решениями из реальной практики, сравнительными таблицами стеков и конкретными бюджетами.
Первое архитектурное решение, которое определяет весь последующий стек — выбор между классическим машинным обучением (scikit-learn, XGBoost, TensorFlow) и мультиагентным подходом на базе LLM (Claude, OpenAI, Gemini).
| Критерий | Классический ML | LLM-агенты | Гибридный подход |
| Time-to-market | Долго (сбор данных, обучение) | Быстро (API + prompt engineering) | Средний (LLM на старте, ML — оптимизация) |
| Explainability | Ограничена (black box у нейросетей) | Высокая (агент объясняет решение) | Высокая (LLM объясняет + ML считает) |
| Работа с неструктурированными данными | Плохо (требует feature engineering) | Отлично (новости, тексты, sentiment) | Отлично |
| Обучение на числовых данных | Отлично | Плохо (нет памяти между вызовами) | Отлично (XGBoost на числах) |
| Стартовый бюджет (POC) | $30–60k | $20–40k | $40–60k |
| Масштабирование | Сложно переобучать онлайн | Легко (добавляете агентов) | Модульное |
Для MVP вывод однозначный: LLM-агенты + API-интеграции дают быстрый старт и позволяют проверить бизнес-гипотезу за 4–6 недель. Классический ML подключается на этапе оптимизации — когда гипотеза доказана и нужно снижать latency или operational costs.
Выбор стека определяется типом AI-задачи. Для большинства продуктовых AI-приложений в финтех, B2B и трейдинге оптимальна следующая конфигурация:
| Компонент | Рекомендация | Альтернатива |
| Backend / бизнес-логика | Node.js (API, БД, бизнес-правила) | Go, Ruby on Rails |
| AI-слой | Python 3.11 + FastAPI + Celery | Django (медленнее для async задач) |
| LLM-провайдер | Claude API (Sonnet — аналитика, Haiku — классификация) | OpenAI GPT-4o, Gemini Pro |
| Оркестрация агентов | CrewAI / LangGraph | AutoGen, bare API calls |
| База данных (основная) | PostgreSQL 16 + TimescaleDB + pgvector | MongoDB + Pinecone (дороже, сложнее) |
| Embeddings | OpenAI text-embedding-3-small | sentence-transformers (self-hosted, экономия) |
| ML-модели | scikit-learn, XGBoost, pandas-ta | TensorFlow (избыточен для табличных данных) |
| Frontend | Next.js 15 + React 19 + shadcn/ui | Vue 3, SvelteKit |
| Контейнеризация | Docker + Kubernetes (Helm charts) | Docker Compose (для POC) |
| Мониторинг | Grafana + Sentry | Datadog (дороже) |
| Хостинг (POC) | Hetzner VPS / Railway | AWS (дороже на старте) |
Ключевой архитектурный принцип — разделять Node.js backend (стабильность, бизнес-логика) и Python AI-слой (интеллект, LLM-интеграция) в отдельные сервисы. Это снижает риск vendor lock-in и позволяет масштабировать AI независимо от core backend.
Типичная ошибка при проектировании AI-приложений — использовать отдельную time-series базу (InfluxDB, TimescaleDB standalone) и отдельную векторную (Pinecone, Weaviate, Chroma). Результат: два DevOps-инстанса, cross-database JOIN через application layer и дополнительные $200–500 в месяц на инфраструктуру.
Практически оправданное решение — один инстанс PostgreSQL 16 с двумя расширениями:
| Расширение | Назначение | Ключевые возможности |
| TimescaleDB | Time-series данные | 1M+ inserts/sec, hypertables с автопартиционированием, continuous aggregates, компрессия 10–20× на исторических данных |
| pgvector | Семантический поиск | Vector similarity search для RAG, поиск исторических паттернов, память агентов, дедупликация документов |
Аргумент в пользу SQL вместо NoSQL для AI-приложений с временными рядами: ключевые операции — time-bucketed агрегации, JOIN нескольких таблиц по timestamp, window functions для расчёта индикаторов — всё это SQL-native. TimescaleDB обгоняет document-oriented хранилища на sub-millisecond aggregation queries на годах исторических данных, где MongoDB начинает проседать.
Векторное хранилище решает ключевую проблему LLM: у них нет памяти между вызовами. С pgvector Synthesizer-агент может спросить «Встречалась ли такая рыночная конфигурация раньше? Что произошло после?» — и получить ответ из векторной памяти без обращения к внешнему сервису. Именно это превращает LLM из stateless инструмента в систему с долгосрочной памятью.
Single-model подход (один LLM, один output) не закрывает требование explainability для продуктов в regulated domains — финансы, медицина, юриспруденция. Пользователь и регулятор хотят знать: почему система приняла это решение.
Мультиагентная архитектура решает эту проблему структурно. Каждый агент получает собственный system prompt, работает в своём домене и возвращает structured output с confidence score и обоснованием:
| Агент | Домен ответственности | Источник данных |
| Technical | Технические индикаторы (RSI, MACD, Bollinger, EMA) | Предрассчитанные через pandas-ta (не LLM) |
| Sentiment | Social media, Reddit, Twitter — экстремальные sentiment-состояния | LunarCrush, Santiment API |
| On-Chain | Поведение институционалов: whale transactions, exchange flows | Glassnode, CryptoQuant API |
| News | Регуляторные решения, hacks, ETF-новости, макроанонсы | CryptoPanic + векторный поиск для дедупликации |
| Macro | Risk-on/risk-off контекст: DXY, S&P 500, VIX | Yahoo Finance API |
| Synthesizer | Агрегация всех outputs + ML predictions + векторная память | Outputs всех агентов + pgvector |
Архитектура строится на принципах AI trading-систем: Synthesizer получает outputs пяти специализированных агентов вместе с предикциями ML-моделей (XGBoost) и результатами поиска похожих исторических ситуаций из pgvector. Финальное решение содержит полный audit trail — какой агент что рекомендовал и с каким confidence score.
При переходе от POC к production возникает инфраструктурная проблема, которая стоила нескольким командам 2–3 недели лишней работы: не все сервисы можно горизонтально масштабировать одинаково.
Stateless сервисы (API gateway, notification service, агенты без локального состояния) — масштабируются через Kubernetes Horizontal Pod Autoscaler без ограничений. Stateful сервисы (wallet manager, matching engine, агент с локальным кешем) требуют отдельной политики масштабирования. Определить эту политику нужно до написания Helm-чартов — иначе переписываете потом. Подробнее о том, как эта проблема проявляется в production, можно посмотреть на примере архитектуры криптовалютных платформ.
В гибридных AI-системах ML-слой выполняет то, что LLM делает плохо — обучается на числовых данных и не деградирует незаметно при смене рыночного режима. Конкретная реализация включает две модели с чётким разделением ответственности:
Модель 1 — Direction Predictor (XGBoost). Предсказывает направление движения на следующие 24 часа: up/down/neutral. Обучается на 40–60 сгенерированных features: технические индикаторы на разных таймфреймах, on-chain метрики (exchange netflow, whale transactions, stablecoin supply changes, funding rates), sentiment в числовой форме (Fear & Greed Index, social volume), макро-данные (DXY, S&P 500, VIX, BTC dominance).
Модель 2 — Regime Classifier (Random Forest). Классифицирует текущий режим рынка: trending up, trending down, ranging, high volatility. Без понимания режима система применяет неправильные стратегии в неправильный момент. Sentiment-following работает в трендах, mean-reversion — в флете. Classifying режим — это фильтр для всех остальных агентов.
AI-система без механизма обратной связи — это статичный инструмент, который деградирует при изменении входных данных. Feedback loop превращает её в самосовершенствующийся продукт.
| Частота | Действие | Результат |
| Каждый час | Пайплайн запускается end-to-end, всё логируется с timestamp | Полный audit trail каждого решения |
| Каждый день | Evaluator проверяет сигналы через 24/48/72 часа против реального движения цены | Каждый сигнал маркируется correct/incorrect/neutral |
| Каждую неделю | ML-модели переобучаются на новых данных, веса агентов пересчитываются по рыночным режимам | Система знает, что Sentiment Agent даёт 67% в trending markets и 41% в sideways — и автоматически снижает его влияние |
Это разница между системой, которая «использует AI», и системой, которая по-настоящему учится. Ключ не в том, чтобы дать сигнал сейчас — а в том, чтобы становиться точнее каждый месяц.
Проблема. Клиент хотел AI-систему для трейдинговых сигналов с жёстким требованием: каждое решение должно объяснять себя. Трейдеры не доверяют black box. Single-model подход (один LLM, один output) не давал ответа на вопрос «почему именно этот сигнал?».
Решение. Мы реализовали мультиагентную архитектуру из шести специализированных агентов на базе Claude API — Sonnet для аналитических задач, Haiku для лёгкой классификации. Каждый агент получает собственный system prompt и возвращает structured output с confidence score и обоснованием. Synthesizer-агент агрегирует все outputs вместе с предикциями XGBoost-модели и результатами pgvector-поиска по похожим историческим ситуациям. Каждый сигнал содержит полный audit trail: какой агент что рекомендовал и почему.
Результат. Система генерирует сигналы каждый час 24/7. Полная документированность решений позволила получить stakeholder buy-in для продолжения проекта после POC-фазы — именно потому что бизнес мог видеть логику каждого решения, а не принимать результат на веру.
Проблема. AI-система требовала двух принципиально разных типов хранения: time-series для ценовых данных и векторное для semantic search. Стандартное решение — две отдельные БД (InfluxDB + Pinecone) — усложняло операционную поддержку и увеличивало latency на cross-queries.
Решение. Один инстанс PostgreSQL 16 с расширениями TimescaleDB (time-series: ценовые свечи, on-chain метрики, features, история сигналов) и pgvector (semantic search: поиск паттернов, агентная память, дедупликация новостей). Выбор аргументирован: ценовые данные фундаментально реляционны, основные операции — time-bucketed агрегации и JOIN по timestamp — SQL-native. Компрессия TimescaleDB даёт 10–20× на historical data.
Результат. Один DevOps-инстанс вместо двух. Sub-millisecond aggregation на годах historical data. Агенты задают вопросы к векторной памяти без обращения к внешнему сервису — что снижает и latency, и operational costs.
Проблема. Клиент хотел полноценную AI-систему, но не был готов инвестировать в full product без доказательства гипотезы. Вопрос: работают ли сигналы вообще? Бюджет на подтверждение — ограничен.
Решение. Чётко структурированный POC из четырёх вех + 2 недели буфера. Неделя 1 — data layer (PostgreSQL + TimescaleDB + pgvector + все API интеграции + 2-летний backfill). Неделя 2 — ML-модели с walk-forward валидацией. Неделя 3 — 6 LLM-агентов + Synthesizer. Неделя 4 — learning loop + веб-дашборд + Telegram-бот. Recurring costs прозрачны: ~$370/мес (Claude API $50–100 + embeddings $20–50 + infra $50–100 + data feeds $150).
Результат. POC доставляет клиенту не демо, а полноценную систему: полный audit trail решений, walk-forward backtест-отчёт без look-ahead bias, paper-trading P&L симуляцию и roadmap для production-миграции. Бизнес-решение принимается на основе реальных данных, а не обещаний.
Для AI-систем стандартного юнит/интеграционного тестирования недостаточно — поведение LLM-агентов нестохастично, а ML-модели деградируют незаметно при изменении распределения входных данных. Поэтому тестовый пайплайн включает три обязательных компонента:
Для web-компонентов оптимален Selenium с WebDriver для E2E тестов дашборда и Locust для нагрузочного тестирования API-эндпоинтов под одновременными запросами.
Для AI-приложений с несколькими сервисами (Node.js backend + Python AI layer + PostgreSQL + Redis) Docker + Kubernetes — стандартный путь к production. Конкретная конфигурация зависит от того, планируете ли вы SaaS-модель с мультитенантностью или single-tenant deployment.
Для POC достаточно Docker Compose на Hetzner VPS (€40–70/мес) или Railway. Для production — Kubernetes с Helm-чартами, HashiCorp Vault для secrets management, GitLab CI/CD для автоматизированного деплоя. Важный нюанс: при миграции на Kubernetes определите политику масштабирования до написания Helm-чартов. Stateful сервисы (PostgreSQL, агенты с локальным кешем) требуют отдельной конфигурации, иначе получаете race conditions при горизонтальном скейлинге.
Для мобильных AI-приложений, которые нужно выпустить параллельно с web-версией, инфраструктура разработки iOS и Android приложений строится как отдельный клиент к тому же AI API-слою.
Три подхода к персонализации LLM под конкретный домен — и каждый уместен в разных ситуациях:
| Подход | Когда использовать | Стоимость | Ограничения |
| RAG (Retrieval-Augmented Generation) | Актуальные данные меняются часто (цены, новости, документы компании) | Низкая (только inference + векторная БД) | Качество зависит от качества retrieval |
| Fine-tuning | Специализированный стиль ответов, domain-specific терминология, которой нет в базовой модели | Средняя ($500–5000 за обучение) | Требует размеченный датасет, устаревает при изменении данных |
| Prompt Engineering + Few-shot | MVP, быстрое прототипирование, проверка гипотезы | Нулевая | Ограничен контекстным окном |
Для большинства продуктовых задач RAG + хорошо структурированный system prompt покрывают 80% потребностей без fine-tuning. Fine-tuning оправдан тогда, когда вам нужен специфический стиль генерации (например, юридические документы в строгом формате), и у вас есть 500+ примеров правильных ответов для размеченного датасета.
Подробно о том, как внедрить ИИ в существующее приложение — интеграция в backend через REST/gRPC или в frontend через client-side API — рассмотрено отдельно.
AI-приложения с доступом к персональным данным обязаны соответствовать GDPR (ЕС) и CCPA (Калифорния). Для B2B продуктов с enterprise клиентами это де-факто минимальный стандарт, независимо от юрисдикции.
Три конкретных технических требования, которые команда закладывает в архитектуру с первого дня:
Бюджетирование AI-проектов структурируется по фазам. Полная стоимость разработки ИИ-систем зависит от сложности задачи, выбранного стека и глубины кастомизации:
| Фаза | Содержание | Срок | Бюджет (USD) |
| POC | Data layer + базовые агенты + проверка гипотезы. Paper trading / sandbox режим. Walk-forward отчёт по точности. | 4–6 недель | $30 000–60 000 |
| MVP | Полный стек агентов + ML-модели + dashboard + feedback loop. Первые реальные пользователи. | 2–3 месяца | $60 000–120 000 |
| Production Product | Kubernetes, SLA-мониторинг, auto-retraining, масштабирование под нагрузку, compliance. | 3–6 месяцев | $120 000–500 000+ |
Recurring costs для AI-системы на Hetzner/Railway (не AWS): Claude API — $50–100/мес, embeddings — $20–50/мес, инфраструктура — $50–100/мес, data feeds (Glassnode, LunarCrush) — $150/мес. Итого: $270–400/мес на операционные расходы при типичной нагрузке POC-фазы.
Важный принцип: POC — это не технический этап. Это инструмент принятия бизнес-решения. Если сигнал не работает на POC — масштабировать нет смысла. Если работает — у вас есть walk-forward отчёт, audit trail и paper trading P&L для презентации инвесторам или внутреннему совету.
Методология CRISP-DM (Cross Industry Standard Process for Data Mining) остаётся актуальным фреймворком для AI-проектов, потому что принципиально итеративна: Business Understanding → Data Understanding → Data Preparation → Modeling → Evaluation → Deployment — и снова к началу.
Практическое значение для команды: не ждите, пока модель достигнет 99% точности, чтобы деплоить. Деплойте при 54–58% (реальный baseline для предсказания направления рынка), измеряйте на живых данных и итерируйте. Модель, которая учится в production, через 3 месяца будет точнее, чем та, которую полгода оттачивали на исторических данных.
Для долгосрочных проектов (10+ лет жизненного цикла) ежеквартальное переобучение на свежих данных — обязательное условие. Без этого модель «дрейфует»: базовые паттерны устаревают, точность падает, но незаметно, пока деградация не достигнет критического порога.
Из практики реальных AI-проектов выделяются три решения, которые дорого стоит добавлять постфактум, но дёшево — предусмотреть изначально:
Если вы планируете разработку AI-продукта на заказ, архитектурные решения по этим трём пунктам фиксируются на этапе технического задания, а не в процессе разработки.
Для MVP выбирайте LLM-агенты + API-интеграции. Они дают быстрый time-to-market (4–6 недель против 3–6 месяцев для ML) и позволяют проверить бизнес-гипотезу без heavy data infrastructure. Классический ML подключается на следующем этапе как оптимизация: когда гипотеза доказана и нужно снижать операционные расходы на inference или повышать точность на числовых данных.
Для большинства AI-приложений оптимален PostgreSQL 16 с расширениями TimescaleDB (time-series данные) и pgvector (векторный поиск для RAG). Это решение заменяет два отдельных инстанса (InfluxDB + Pinecone), снижает операционную сложность и позволяет делать cross-queries через нативный SQL. Если у вас нет time-series нагрузки — PostgreSQL + pgvector без TimescaleDB достаточен.
POC (проверка гипотезы) — 4–6 недель, бюджет $30–60k. MVP с полным стеком — 2–3 месяца, $60–120k. Production-продукт с Kubernetes, compliance и auto-retraining — 3–6 месяцев, $120–500k+. Recurring costs на операционные расходы (LLM API + инфраструктура + data feeds) — $270–400/мес для типичной нагрузки.
Feedback loop — это механизм, при котором система оценивает качество своих прошлых решений и автоматически корректирует веса компонентов. В практической реализации: ежедневный Evaluator проверяет прогнозы через 24/48/72 часа против реальных данных, еженедельный ретренинг ML-моделей на свежих данных и перерасчёт весов агентов по рыночным режимам. Без feedback loop система статична и деградирует при изменении входных данных.
Для 80% продуктовых задач RAG + структурированный system prompt покрывают потребности без fine-tuning. Fine-tuning оправдан, когда нужен специфический стиль генерации (юридические документы, медицинские отчёты в строгом формате) и у вас есть 500+ размеченных примеров. Fine-tuning обходится в $500–5000 за обучение и устаревает при изменении предметной области.
Три обязательных компонента с первого дня: анонимизация в векторной базе (PII не хранится в embeddings, только анонимизированные features), validation pipeline для входящих данных (защита от model poisoning через аномальные inputs) и версионирование промптов в git (возможность быстрого отката при изменении поведения агентов). Для работы с данными пользователей ЕС — GDPR compliance обязателен; для B2B enterprise — добавляйте SOC 2 как целевой сертификат.