AI-ассистент продуктового менеджера
MVP-платформа, где AI-агент уровня senior PM/CPO обрабатывает продуктовые задачи в чате асинхронно через очередь, использует RAG по документам и выгружает результат в Markdown/DOCX.
О проекте
Заказчику требовался MVP AI-агента, способного заменить часть работы продуктового менеджера: принимать продуктовые задачи (анализ идеи, стратегия, roadmap, гипотезы, Lean Canvas) в чат-интерфейсе, обрабатывать их с помощью LLM без блокировки веб-запроса и по явному запросу выгружать результат в виде готового файла. Ключевое требование ТЗ — все модули изолированы в отдельных контейнерах, а обработка LLM обязана быть асинхронной.
Full-stack MVP как Bun-монорепозиторий (packages/core, backend, worker, отдельно frontend), полностью контейнеризированный через Docker Compose (7 сервисов). Backend (Hono на Bun) не выполняет никакой AI-логики — он валидирует запрос и кладёт задачу в очередь Redis (BullMQ). Всю тяжёлую работу выполняет отдельный сервис ai-agent-worker, горизонтально масштабируемый независимо от backend.
Технологии
- TypeScript
- Bun
- Hono
- React
- Drizzle ORM
- PostgreSQL
- Redis
- BullMQ
- Qdrant
- MinIO
- OpenAI API
- Docker
Что разработано
- Схема данных на Drizzle ORM из 7 таблиц: users, chats, messages, agent_tasks, artifacts, documents, document_chunks
- Асинхронный конвейер: создание сообщения → AgentTask со статусом created→queued → постановка в очередь Redis
- AI Agent Worker: обработчики chat-message, artifact, rag-ingestion, роутинг по типу задачи через BullMQ
- RAG-пайплайн: извлечение текста из txt/md/docx/pdf, чанкинг с overlap и резкой по границе предложения, батч-эмбеддинг по 64 чанка
- Абстракция поиска SearchProvider с реализацией на Qdrant и заглушкой для внешнего поискового сервиса
- Генератор файлов: собственный конвертер Markdown → DOCX на базе библиотеки docx
- Определение намерения экспорта: regex-детекция формата и типа артефакта прямо в тексте сообщения пользователя
- Промпты как файлы, а не хардкод: base_system_prompt, strategic_analysis_prompt, document_preparation_prompt с точными шаблонами Lean Canvas и roadmap
- S3/MinIO слой с раздельными internal/public endpoint для presigned URL
- Идемпотентные raw-SQL миграции, выполняющиеся автоматически при старте backend и worker
- E2E smoke-тест, покрывающий весь пользовательский путь от логина до генерации файла
Ключевые фичи
- Полностью асинхронный пайплайн без ожидания LLM в HTTP-запросе — backend только персистит сообщение, вся AI-логика изолирована в масштабируемом воркере
- Pluggable Search Provider — переключение реализации поиска одной переменной окружения, без изменения кода воркера
- Файлы генерируются только по явному запросу пользователя — двумя независимыми путями, сходящимися в общей функции
- Строгий, зафиксированный в коде порядок сборки промпта: база → режим → язык → уточняющие вопросы → RAG-контекст → история
- Централизованная логика ретраев с ограничением попыток и экспоненциальным backoff, единообразная для всех типов задач
- Presigned URL с раздельными S3-эндпоинтами — загрузка идёт через внутренний docker-адрес, ссылки подписываются под публичный
- Чистая переиндексация документов — старые векторы и чанки удаляются перед заливкой новых, без дублирования фрагментов
- Прозрачная трассируемость: каждая фича в коде промаркирована ссылкой на конкретный раздел технического задания
Решение задачи
Основная инженерная проблема — совмещение непредсказуемой по времени работы LLM и RAG-поиска с отзывчивым веб-интерфейсом. Решение — паттерн «толстый producer, тонкий consumer»: backend выполняет только быструю детерминированную работу и мгновенно возвращает task_id, а вся дорогая AI-логика вынесена в отдельный масштабируемый контейнер.
Вынос RAG/поисковой логики за общий интерфейс и промптов из кода в отдельные Markdown-файлы с фиксированным порядком сборки даёт продуктовой команде возможность подключать внешний поисковый сервис или итерировать над качеством ответов агента без релиза кода воркера — MVP спроектирован как основа для масштабирования, а не одноразовый прототип.
Метрики
Результаты
Продуктовые артефакты по запросу
Lean Canvas, roadmap и гипотезы генерируются в Markdown/DOCX прямо из чата
Полная трассируемость по ТЗ
Каждая фича промаркирована ссылкой на конкретный пункт технического задания
Заказать похожий проект
Оставьте заявку — обсудим задачу и предложим решение под ваш бизнес.
Оставить заявку