Проектирование архитектуры системы
В рамках обсуждения проекта была проведена глубокая аналитика архитектурных решений. Основной фокус был сделан на улучшении разделения ответственности, масштабируемости и безопасности системы.
Важные моменты:
- Data Mapper вместо Active Record для улучшения разделения ответственности
- Разделение ответственности LLM как генератора кода, а не исполнителя
- Необходимость строгой проверки кода, сгенерированного LLM
Модуль database
Управление миграциями
- Хранение миграций в файлах SQL или YAML/JSON
- Отслеживание примененных миграций
- Механизм применения/отката миграций
Генерация миграций
- API для описания таблицы в YAML/JSON
- Вызов LLM для генерации SQL-скриптов
- Предварительный просмотр перед применением
Безопасность
- Parameterized queries для SQL
- Подтверждение администратора
- История изменений в логах
Структура файлов:
modules/database/
Модуль llm
Генерация кода
- SQL-скрипты для миграций
- Модели Data Mapper
- Репозитории и контроллеры
Настройка LLM
- Выбор используемой LLM
- Настройка параметров (temperature, max_tokens)
- Управление промптами
Безопасность
- Ограничение доступа к API
- Санитизация входных данных
- Ограничение прав LLM
Структура файлов:
modules/llm/
Модуль customer
CRUD операции
- Создание, чтение, обновление, удаление клиентов
- Валидация данных
- Поиск и экспорт данных
Data Mapper
- Model_Customer: Plain PHP class
- Repository_Customer: Загрузка/сохранение данных
Безопасность
- Защита от SQL-инъекций
- Защита от XSS
- Авторизация операций
Структура файлов:
modules/module-customer/
Дальнейшие шаги
Проектирование API модуля llm
Определение форматов данных для генерации кода и структуры запросов.
Выбор и настройка LLM
Выбор подходящей модели и настройка промптов для генерации кода Kohana.
Реализация Data Mapper
Разработка базовых классов для моделей и репозиториев для всех модулей.
Система миграций
Реализация системы миграций в модуле database.
Важные вопросы
Какие проблемы могут возникнуть при реализации Data Mapper? Какие решения можно использовать для их устранения?
Рекомендации по реализации
Модульность
Разделите систему на независимые модули с четко определенными responsibilites.
Безопасность
Всегда проверяйте и валидируйте код, сгенерированный LLM перед применением.
Контроль
Используйте строгий контроль над изменениями структуры БД и доступом к API.