เครื่องกำเนิดแอพ CLI
เครื่องมืออินเทอร์เฟซบรรทัดคำสั่งสำหรับการสร้างแอปพลิเคชันแบบเต็มสแต็กด้วย REACE Admin Frontend และ Supabase Backend
การอัปเดต
2025-01-27 (docusign + เวอร์ชันเว็บ):
- เพิ่มการรวม Docusign
- เพิ่มเวอร์ชันเว็บที่โฮสต์บน vercel ด้วยรหัสที่นี่: https://github.com/vivek100/webverion1
- เพิ่มฟังก์ชั่น vercel สำหรับแบ็กเอนด์สำหรับการโทร OpenAI และการรวม docusign
2024-01-24 (การรวม Docker & Nginx):
- เพิ่มตัวเลือกการปรับใช้ Docker และ Nginx สำหรับทั้งการสร้างและแก้ไขกระแส
- รองรับการปรับใช้ containerized ด้วยพร็อกซี Nginx Reverse ที่เป็นตัวเลือก
- การจัดการพอร์ตอัตโนมัติและการกำหนดค่าคอนเทนเนอร์
- กระบวนการปรับใช้แบบง่ายด้วยการตั้งค่าคำสั่งเดียว
2024-01-16 (แก้ไขการไหล):
- แนะนำกลยุทธ์การอัปเดตอัจฉริยะสำหรับการปรับเปลี่ยนแอปพลิเคชันที่มีอยู่
- เพิ่มการสนับสนุนเวอร์ชันสำหรับการอัปเดตแอปพลิเคชัน
- รองรับวิธีการอัปเดตหลักสองวิธี:
- การฟื้นฟูเต็มรูปแบบ: การสร้างใหม่ที่สมบูรณ์ในขณะที่รักษาฟังก์ชั่นหลัก
- ใช้การอัปเดตกรณี: การปรับเปลี่ยนเป้าหมายไปยังส่วนประกอบเฉพาะ
- ระบบสำรองข้อมูลอัจฉริยะที่สร้างการสำรองข้อมูลแบบ timestamped ก่อนการเปลี่ยนแปลง
- การติดตามเวอร์ชันสำหรับการวนซ้ำหลายครั้งของแอปพลิเคชันเดียวกัน
2024-01-10 (ไปป์ไลน์ AI Generation ที่เหมาะสมที่สุด):
- ปรับโครงสร้าง AI Generation จากการโทร 2 สายเป็น 4 สายพิเศษ:
- ใช้การสร้างกรณี: มุ่งเน้นไปที่ตรรกะทางธุรกิจและเวิร์กโฟลว์ผู้ใช้
- การสร้างโมเดลเอนทิตี: สคีมาฐานข้อมูลและความสัมพันธ์
- การสร้างข้อมูลจำลอง: ข้อมูลทดสอบและสถานการณ์ผู้ใช้
- การสร้างโมเดลอินเตอร์เฟส: ส่วนประกอบและเลย์เอาต์ UI
- ประโยชน์:
- ปรับปรุงความแม่นยำผ่านพรอมต์พิเศษ
- การจัดการข้อผิดพลาดที่ดีขึ้นและการตรวจสอบระหว่างขั้นตอน
- ลดการใช้โทเค็นต่อการโทร
- เพิ่มความสามารถในการรักษาบริบท
- วิธีการโทร 2 สายดั้งเดิมย้ายไปยังโหมดดั้งเดิมเพื่อความเข้ากันได้ย้อนหลัง
2024-12-20 (ลดการใช้โทเค็นลง 70% และความแม่นยำ 80%):
- รวมเข้ากับโครงร่างเพื่อสร้างเอาต์พุตที่มีโครงสร้างซึ่งใช้วิธีการที่ logits ได้รับการกำหนดความน่าจะเป็นต่ำหรือเป็นศูนย์ให้กับโทเค็นที่ไม่ได้เป็นส่วนหนึ่งของเอาต์พุตสิ่งนี้จะทำก่อนที่โทเค็นจะถูกสร้างขึ้น สิ่งนี้ช่วยให้เครื่องมือได้รับเอาต์พุตความแม่นยำสูงขึ้นด้วยรุ่นที่เล็กลง
- จากนั้นเอาต์พุตที่มีโครงสร้างจะถูกใช้เพื่อสร้างส่วนหน้าและรหัสแบ็กเอนด์ซึ่งเป็นไฟล์การกำหนดค่าเช่นนี้จะช่วยในการสร้างรหัสที่มีโทเค็นน้อยลง
- เอาท์พุท DB เป็น JSON ของเอนทิตีและความสัมพันธ์ของพวกเขาสิ่งนี้ใช้ในการสร้างแบบสอบถาม SQL ผ่านรหัส Python และเรียกใช้ SQL เพื่อสร้างตารางและมุมมองบน supabase
- เอาต์พุตที่มีโครงสร้างส่วนหน้ามีโครงสร้างรอบ ๆ React Admin และส่วนประกอบซึ่งใช้เพื่อสร้างรหัสส่วนหน้าโดยใช้เทมเพลต Jinja2
- แบ็กเอนด์ถูกจำลองโดยใช้ไคลเอนต์ Supabase JS ผ่าน DataProviders
- สิ่งนี้ช่วยให้เครื่องมือสามารถสร้างส่วนหน้าและรหัสแบ็กเอนด์ที่มีโทเค็นน้อยกว่าความแม่นยำสูงขึ้นและมีรุ่นเล็ก ๆ เช่น GPT-4O-MINI
คุณสมบัติ
- สร้างแอพพลิเคชั่น React ที่สมบูรณ์พร้อมส่วนประกอบวัสดุ -ui
- รวมเข้ากับ Supabase สำหรับบริการแบ็กเอนด์
- รวมถึงการรับรองความถูกต้องและการอนุญาต
- สร้างการดำเนินงาน CRUD สำหรับเอนทิตี
- รองรับโมเดลโดเมนที่กำหนดเอง
- รวมถึงส่วนประกอบที่สร้างไว้ล่วงหน้า (ตารางแบบฟอร์มแผนภูมิ ฯลฯ )
ข้อกำหนดเบื้องต้น
- Python 3.8 หรือสูงกว่า
- node.js และ npm
- บัญชี Supabase
- Docker (ไม่บังคับสำหรับการปรับใช้แบบคอนเทนเนอร์)
- nginx (ไม่บังคับสำหรับ proxy reverse)
การตั้งค่า 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
ตรวจสอบให้แน่ใจว่ามีการตั้งค่าการอนุญาตต่อไปนี้สำหรับส่วนหน้าเพื่อเรียกใช้แบบสอบถามรวม:
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> - พอร์ตจะถูกกำหนดและแสดงโดยอัตโนมัติหลังจากการปรับใช้
ค. นักเทียบท่ากับ nginx:
- แอปพลิเคชันจะพร้อมใช้งานที่
http://localhost/{app_name} - Nginx จัดการการกำหนดเส้นทางและการปรับสมดุลโหลด
ตัวเลือกการปรับใช้
การพัฒนาท้องถิ่น
- โดยตรงเซิร์ฟเวอร์การพัฒนาที่ใช้ NPM
- ดีที่สุดสำหรับการพัฒนาและการทดสอบ
- เปิดใช้งานการเติมเต็มความร้อน
การปรับใช้ 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 [ทั้งหมด] == 0.9.0
- Pydantic == 2.6.1
- นม
- โครงร่าง
- รวย == 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
การพึ่งพาส่วนหน้า
- ตอบสนอง 19.0.0
- วัสดุ -ui 6.1.10
- ผู้ดูแลระบบตอบสนอง 5.4.1
- reCharts 2.14.1
- ลูกค้า Supabase JS 2.47.2
การบริจาค
ยินดีต้อนรับ! โปรดส่งคำขอดึง
ใบอนุญาต
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด