Проектирование корпоративной GenAI-платформы требует фиксации целей, состава пользователей и требований к безопасности до выбора конкретных технологий. Архитекторам следует сосредоточиться на нефункциональных требованиях, таких как масштабируемость, аудит и отказоустойчивость, избегая преждевременного внедрения сложных инструментов.
В архитектуре используется модульный монолит: .NET 10 отвечает за бизнес-логику и безопасность, а Python — за AI-задачи, включая эмбеддинги и поиск. Такой подход позволяет масштабировать ресурсоемкие AI-компоненты отдельно от основного API, сохраняя при этом простоту развертывания системы.
Для хранения данных выбрана PostgreSQL с расширением pgvector вместо специализированной векторной базы данных. Это решение позволяет хранить метаданные, списки контроля доступа и векторы в одной системе, минимизируя инфраструктурную сложность до появления реальных ограничений по производительности.
Безопасность обеспечивается проверкой прав доступа на стороне бэкенда до передачи контекста в LLM. LLM Gateway централизованно управляет политиками передачи данных, а RabbitMQ используется для асинхронной обработки документов, что достаточно для текущих задач без внедрения избыточной инфраструктуры Kafka.
Для фиксации архитектурных решений команда использует ADR (Architecture Decision Records). В этих документах отражаются причины выбора конкретных технологий и альтернативы. Это позволяет обоснованно пересматривать решения в будущем, когда изменятся требования к нагрузке или функциональности платформы.






