taufik464 / ai-rotation-manager
Laravel package for multi-provider and multi-account AI API key rotation.
Requires
- php: ^8.0
- illuminate/cache: ^9.0|^10.0|^11.0|^12.0
- illuminate/config: ^9.0|^10.0|^11.0|^12.0
- illuminate/console: ^9.0|^10.0|^11.0|^12.0
- illuminate/http: ^9.0|^10.0|^11.0|^12.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0|^9.0|^10.0
- phpunit/phpunit: ^9.6|^10.0|^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Laravel package untuk rotasi API key multi-provider dan multi-account. Groq diprioritaskan, lalu Gemini dipakai sebagai fallback ketika semua key Groq sedang cooldown atau gagal dengan status yang dapat diputar.
Requirements
- PHP 8.0+
- Laravel 10+
Installation
composer require taufik464/ai-rotation-manager php artisan vendor:publish --tag=ai-rotation-config
Package service provider dan facade didaftarkan otomatis melalui Composer.
Configuration
Atur key sebagai daftar yang dipisahkan koma di .env:
GROQ_API_KEYS=groq-key-1,groq-key-2 GEMINI_API_KEYS=gemini-key-1,gemini-key-2 AI_ROTATION_COOLDOWN_SECONDS=60
File konfigurasi hasil publish berada di config/ai-rotation.php. Urutan default adalah groq, lalu gemini.
Cooldown disimpan melalui Laravel cache, sehingga Redis, file, atau array store dapat digunakan sesuai konfigurasi aplikasi. API key tidak disimpan sebagai nilai cache; hanya hash key yang digunakan pada nama cache.
Usage
use YourVendor\AIRotationManager\Facades\AIRotation; $text = AIRotation::generate('Explain Laravel service providers in one paragraph.');
Opsi request dapat diteruskan sebagai argumen kedua:
$text = AIRotation::generate('Write a short haiku.', [ 'temperature' => 0.4, 'max_tokens' => 200, ]);
Status HTTP 429, 401, dan 5xx akan memasukkan key ke cooldown lalu mencoba key berikutnya. Jika semua key dalam provider habis, manager melanjutkan ke provider berikutnya.
Adding a provider
Implementasikan YourVendor\AIRotationManager\Contracts\AIServiceInterface, terima api_key dari options, lalu daftarkan class tersebut di config/ai-rotation.php pada bagian providers dan priority.
Testing
composer install
composer test