Приложения генератор CLI
Инструмент интерфейса командной строки для генерации приложений с полным стеком с помощью Berdend React Admin и Supabase Backend.
Обновления
2025-01-27 (Docusign + веб-версия):
- Добавлена интеграция Docusign
- Добавлена веб -версия, размещенная на Vercel с кодом здесь: https://github.com/vivek100/webverion1
- Добавлены функции Vercel для бэкэнд для вызовов Openai и интеграции документа.
2024-01-24 (интеграция Docker & Nginx):
- Добавлены параметры развертывания Docker и NGINX для создания и редактирования потоков
- Поддержка развертывания в контейнер с дополнительным прокси -сервером NGINX
- Автоматическое управление портами и конфигурация контейнера
- Упрощенный процесс развертывания с помощью единой команды настройки
2024-01-16 (Edit Flow):
- Внедренные интеллектуальные стратегии обновления для изменения существующих приложений
- Добавлена поддержка версий для обновлений приложений
- Поддерживает два основных подхода обновления:
- Полная регенерация: полная перестройка при сохранении основных функций
- Обновление варианта использования: целевые изменения в конкретных компонентах
- Умная система резервного копирования, которая создает временные резервные копии перед изменениями
- Отслеживание версий для нескольких итераций одного и того же приложения
2024-01-10 (оптимизированный трубопровод генерации AI):
- Реструктурированная генерация ИИ от 2 звонков до 4 специализированных звонков:
- Генерация вариантов использования: сфокусирована на бизнес -логике и рабочих процессах пользователей
- Создание модели сущности: схема базы данных и отношения
- Выращивание данных: тестовые данные и пользовательские сценарии
- Генерация модели интерфейса: компоненты и макеты пользовательского интерфейса
- Преимущества:
- Повышенная точность с помощью специализированных подсказок
- Лучшая обработка ошибок и проверка между шагами
- Сокращенное использование токенов за звонок
- Повышенная способность поддерживать контекст
- Оригинальный подход с двумя связями перенесен в устаревший режим для обратной совместимости
2024-12-20 (пониженное использование токенов на 70% и точность на 80%):
- Интегрированный с очертаниями для генерации структурированного выхода, он использует метод, при котором логитам назначается низкая или нулевая вероятность токенам, которые не являются частью выхода, это делается прямо перед созданием токена. Это позволяет инструменту получить более высокую точность с меньшими моделями
- Структурированный выход затем используется для генерации кода Frontend и Backend, который похож на файлы конфигурации, это помогает в создании кода с меньшим количеством токенов
- Вывод DB представляет собой JSON объектов и их отношения, это используется для генерации запросов SQL через код Python и запуск SQL для создания таблиц и представлений на Supabase
- Структурированный выход фронта структурирован вокруг Ad Admin и компонентов, это используется для генерации кода фронта с использованием шаблонов Jinja2
- Бэкэнд моделируется с использованием клиента Supabase JS через DataProviders
- Вместе это позволяет инструменту генерировать код Frontend и Backend с меньшими токенами, более высокой точностью и с меньшей моделью, такой как GPT-4O-Mini
Функции
- Генерирует полные приложения React с компонентами материала-UI
- Интегрируется с Supabase для сервисных услуг
- Включает аутентификацию и разрешение
- Генерирует операции CRUD для организаций
- Поддерживает пользовательские доменные модели
- Включает предварительно построенные компоненты (таблицы, формы, диаграммы и т. Д.)
Предварительные условия
- Python 3.8 или выше
- Node.js и npm
- Supabase Account
- Docker (необязательно, для контейнерного развертывания)
- Nginx (необязательно, для обратного прокси)
Настройка Docker & Nginx (необязательно)
- Установите Docker:
# For Ubuntu
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
# For macOS/Windows
Download and install Docker Desktop from https://www.docker.com/products/docker-desktop
- Постройте базовое изображение:
# Navigate to the project root directory
cd oneShotCodeGen
# Build the base image
docker build -t base-image -f base.Dockerfile .
# Verify the image was created
docker images | grep base-image
- Установите Nginx:
# For Ubuntu
sudo apt-get install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# For macOS
brew install nginx
# For Windows
Download and install Nginx from http://nginx.org/en/download.html
- Настройте разрешения пользователя Nginx (Linux/MacOS):
# Add your user to nginx group
sudo usermod -aG nginx $USER
# Ensure nginx config directory is writable
sudo chown -R $USER : $USER /etc/nginx/conf.d
Примечание. Базовое изображение должно быть построено только один раз, если вы не внесете изменения в DockerFile. Это базовое изображение содержит все необходимые зависимости и конфигурации, которые будут использоваться в качестве основы для всех сгенерированных приложений.
Установка
- Клонировать репозиторий
- Установите пакет:
pip install -r requirements.txt
Использование
- Настройте переменные среды в
.env :
OPENAI_API_KEY=your_openai_api_key
SUPABASE_PROJECT_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_DB_PASSWORD=your_db_password
Убедитесь, что следующие разрешения установлены для Frontend для запуска заполнения запросов:
ALTER ROLE authenticator SET pgrst . db_aggregates_enabled = ' true ' ;
NOTIFY pgrst, ' reload config ' ;
- Создайте приложение с Docker:
a. Latest version
# Just code generation
python -m src.cli create " Create an expense tracker app "
# With Docker only
python -m src.cli create " Create an expense tracker app " --docker
# With Docker and Nginx
python -m src.cli create " Create an expense tracker app " --docker --nginx
беременный Используя устаревший режим (2-сердитный подход):
python -m src.cli create " Create an expense tracker app " --use-legacy
в Добавление пользовательского выходного каталога:
python -m src.cli create " Create an expense tracker app " --output-dir " path/to/
outputfolder "
- Отредактируйте существующее приложение с Docker:
# Just code generation
python -m src.cli edit < project_dir > --description " Add a dashboard for expense
analytics "
# With Docker only
python -m src.cli edit < project_dir > --description " Add a dashboard " --docker
# With Docker and Nginx
python -m src.cli edit < project_dir > --description " Add a dashboard " --docker --nginx
- Запуск приложения:
а Локальная разработка (по умолчанию):
cd output/{output_folder_name}/frontend
npm install
npm run dev беременный Docker развертывание:
- Приложение будет доступно по адресу
http://localhost:<port> - Порт автоматически назначен и отображается после развертывания
в Docker с Nginx:
- Приложение будет доступно по адресу
http://localhost/{app_name} - Nginx обрабатывает маршрутизацию и баланс нагрузки
Варианты развертывания
Местное развитие
- Прямой сервер разработки на основе NPM
- Лучше всего для разработки и тестирования
- Горячая загрузка включена
Docker развертывание
- Контейнерное приложение
- Изолированная среда
- Автоматическое управление портами
- Подходит для производства
Docker с Nginx
- Обратная конфигурация прокси
- Маршрутизация на основе пути
- Возможность балансировки нагрузки
- Усовершенствованная настройка производства
Управление версией
- Приложения теперь включают отслеживание версий
- Формат версии: V0, V1, V2 и т. Д.
- Приращение номера версии на основе истории резервного копирования
- Помогает отслеживать множественные итерации одного и того же приложения
Структура проекта
app-generator-cli/
├── src/ # Source code for the CLI
├── output/ # Generated applications
│ └── [timestamp]/ # Timestamp-based output directory
│ ├── frontend/ # React frontend application
│ ├── use_cases.json # Use case definitions
│ ├── entities.json # Entity model
│ ├── mock_users.json # Mock user data
│ ├── mock_data.json # Generated test data
│ ├── domain_model.json # Combined application model
│ ├── interface_model.json # UI/UX specifications
│ ├── sql/ # Generated SQL migrations
│ ├── src/ # Generated application source
│ └── generation.log # Generation process log
└── .env # Environment variables
Редактировать поток
Система редактирования потока позволяет изменить существующие приложения при сохранении согласованности и безопасности. Вот как его использовать:
- Обновите существующее приложение:
python -m src.cli update " Add a dashboard for expense analytics "
- Система будет:
- Проанализируйте свой запрос на изменение
- Выберите подходящую стратегию обновления
- Создайте резервную копию вашего текущего приложения
- Применить изменения при поддержании согласованности данных
Обновление стратегии
Полная регенерация
- Используется для крупных архитектурных изменений
- Сохраняет существующую функциональность при восстановлении приложения
- Поддерживает согласованность данных с существующими моделями
Частичное обновление
- Для целевых изменений в конкретных компонентах
- Обновления затронуты только части приложения
- Поддерживает модульные обновления по отношению к:
- Варианты использования и рабочие процессы
- Сущности модели и отношения
- Ихтимические данные и тестирующие пользователи
- Интерфейсные компоненты
Система резервного копирования
- Автоматические резервные копии, созданные перед любыми изменениями
- Временные каталоги резервного копирования:
backups/backup_YYYYMMDD_HHMMSS/ - Легкий откат, если это необходимо
Сгенерированная структура приложения
Инструмент генерирует приложение React со следующей структурой:
frontend/
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Button.jsx
│ │ ├── Card.jsx
│ │ ├── Chart.jsx
│ │ ├── Form.jsx
│ │ ├── Modal.jsx
│ │ └── Table.jsx
│ ├── pages/ # Application pages
│ ├── providers/ # Data and auth providers
│ └── App.js # Main application component
└── package.json # Project dependencies
Зависимости
CLI -зависимости
- Typer [All] == 0.9.0
- Pydantic == 2.6.1
- Numpy
- очертания
- Рич == 13.7.0
- Python-dotenv == 1.0.0
- Jinja2 == 3.1.3
- Supabase == 2.3.4
- Asyncio == 3.4.3
- aiohttp == 3.9.3
- богатый клик == 1.7.3
- Inquirer == 3.2.4
- Colorama == 0.4.6
- Openai
Сгенерированные зависимости фронта
- React 19.0.0
- Материал-UI 6.1.10
- React Admin 5.4.1
- Recharts 2.14.1
- Supabase JS Client 2.47.2
Внося
Взносы приветствуются! Пожалуйста, не стесняйтесь отправить запрос на привлечение.
Лицензия
Этот проект лицензирован по лицензии MIT - для получения подробной информации см. Файл лицензии.