cable8mm / prompt-weaver
Prompt Weaver is a simple library for creating and managing prompts in PHP.
Requires
- php: ^8.3
- ext-gd: *
- bacon/bacon-qr-code: ^3.1
- cable8mm/enum-getter: ^2.2
- laravel/ai: ^0.11.0
- laravel/prompts: ^0.3.22
- monolog/monolog: ^3.10
- psr/log: ^3.0
- symfony/console: ^7.4|^8.1
Requires (Dev)
- laravel/framework: ^12.0|^13.0
- laravel/pint: ^1.0
- orchestra/testbench: ^10.6|^11.1
- pestphp/pest: ^4.0
Suggests
- ext-gd: Required for generating QR codes.
Provides
None
Conflicts
None
Replaces
None
README
Prompt Weaver는 Wi-Fi signage 제작을 위한 프롬프트와 이미지 결과를 생성·보정·내보내는 PHP/Laravel 패키지입니다.
주요 기능은 다음과 같습니다.
- 디자인 브리프 프롬프트 생성
- JSON 설정 프롬프트 생성
- 이미지 생성 프롬프트 생성
- 생성 이미지의 텍스트·QR 위치 보정
- PNG, HTML, 최종 설정 내보내기
요구사항
- PHP 8.3 이상
- Composer 2.x
- Workbench 개발 환경은 Laravel 12 또는 13
- GD PHP extension
- QR calibration을 사용할 경우
uv와 OpenCV 실행 환경
설치
composer require cable8mm/prompt-weaver
Laravel package discovery가 service provider를 자동으로 등록합니다. 설정을 서비스의 config/prompt-weaver.php로 복사하려면 다음을 실행합니다.
php artisan vendor:publish --tag=prompt-weaver-config
어떤 방식으로 사용하는가
standalone CLI
standalone으로 사용할 때는 저장소를 clone한 뒤 Composer 의존성을 설치합니다.
git clone https://github.com/cable8mm/prompt-weaver.git
cd prompt-weaver
composer update
uv sync --locked
기본 CLI 흐름은 init → pipe → calibrate → preview입니다. 미리보기를 확인한 뒤 code → export를 실행합니다.
./weaver init cafe-restaurant
./weaver pipe cafe-restaurant
./weaver calibrate cafe-restaurant
./weaver preview cafe-restaurant
./weaver code cafe-restaurant
./weaver export cafe-restaurant
pipe 대신 brief, config, image를 단계별로 실행하면 각 AI 단계의 입력과 결과를 확인하면서 디버깅할 수 있습니다. 자세한 명령 순서는 CLI 사용법을 참고하세요.
Laravel 서비스
Laravel 서비스에서는 Python 환경을 먼저 준비한 뒤 서비스의 Artisan command나 job에서 패키지를 사용합니다.
php artisan prompt-weaver:install php artisan prompt-weaver:doctor
서비스에서 실행할 calibration command와 도메인 workflow는 패키지가 대신 만들지 않습니다. Laravel 통합 방법은 Laravel 서비스 통합을 참고하세요.
패키지 저장소에서 Laravel workflow를 직접 확인하려면 composer serve로 Workbench를 실행할 수 있습니다. fixture 기반 init + pipe, 이미지 업로드, 실제 calibration, preview 흐름은 Laravel 서비스 통합에 설명되어 있습니다.
Docker와 Coolify
Docker 또는 Coolify 배포에서는 서비스 이미지에 uv를 설치하고, 이미지 빌드 중 위 Artisan 명령을 실행해야 합니다. 첫 웹 요청에서 Python 환경을 설치하면 안 됩니다.
자세한 내용은 Docker와 Coolify 배포를 참고하세요.
문서
패키지 개발
패키지 자체를 수정하는 경우 다음과 같이 개발 의존성을 설치합니다.
git clone https://github.com/cable8mm/prompt-weaver.git
cd prompt-weaver
composer install
uv sync --locked
PHP 테스트와 정적 검사는 다음 명령으로 실행합니다.
composer test
composer lint
Python detector 테스트는 다음과 같습니다.
uv run --locked python scripts/test_calibrate_qr.py
실제 AI provider를 사용하는 E2E 테스트는 명시적으로 활성화해야 합니다.
composer test:e2e
패키지의 CLI 명령을 변경하면 CLI 사용법과 테스트를 함께 수정합니다. Laravel 통합 명령을 변경하면 Laravel 서비스 통합과 Docker/Coolify 배포를 함께 확인합니다. pyproject.toml 또는 uv.lock을 변경하면 Python 환경 설치와 Docker 배포 예시도 함께 확인합니다.
서비스 고유의 command 이름은 패키지에 추가하지 않고 소비 서비스에서 정의합니다.
라이선스
MIT