php-gemini / generative-ai
Laravel-friendly PHP Package for Google Gemini Generative AI (including image & text)
Installs: 222
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/php-gemini/generative-ai
Requires
- php: >=8.0
- google/auth: ^1.47
- guzzlehttp/guzzle: ^7.0
- illuminate/support: *
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- illuminate/config: ^10.0|^11.0
- illuminate/contracts: ^10.0|^11.0
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0|^11.0
This package is auto-updated.
Last update: 2025-09-08 15:04:37 UTC
README
A Laravel-friendly, lightweight PHP SDK to interact with Google Gemini Generative AI. Supports text generation, image input (vision), and is fully customizable for any PHP project.
β¨ Features
- β Gemini text generation (prompt β response)
- πΌοΈ Image input support (base64 vision models)
- π Full OAuth2 authentication (refresh token supported)
- π§ Easy configuration via
.env
or constructor - π§ͺ PHPUnit + Testbench testing support
- π― Laravel-ready (service provider + facade)
- π¦ Composer installable
- π Full documentation included
π§ͺ Installation
Install via Composer:
composer require php-gemini/generative-ai
βοΈ Configuration
For Laravel users, publish the configuration file:
php artisan vendor:publish --provider="PhpGemini\GenerativeAI\Providers\GeminiServiceProvider"
Then update your .env
file with your API Key:
GEMINI_API_KEY=your_actual_api_key GEMINI_MODEL=gemini-1.5-flash
π Using OAuth2? See the section below on generating and using refresh tokens instead.
π OAuth2 Support
This SDK supports Google OAuth2 access via a refresh_token
, client_id
, and client_secret
.
π§ Generate Refresh Token
To generate your credentials securely, use our standalone command-line script: Zero-Asif/oauth2_refresh_token_generator
Follow the instructions in its README
file. After running the script, add the output to your .env
file:
GEMINI_OAUTH_CLIENT_ID=your_client_id GEMINI_OAUTH_CLIENT_SECRET=your_client_secret GEMINI_OAUTH_REFRESH_TOKEN=your_refresh_token
β The SDK will automatically use OAuth2 if an API key is not provided.
π Usage
β In Laravel
use Gemini; echo Gemini::generate("What's the future of AI?");
β In Plain PHP
Initialize with an API Key:
use PhpGemini\GenerativeAI\GeminiClient; require 'vendor/autoload.php'; $gemini = new GeminiClient([ 'api_key' => 'your_api_key', 'model' => 'gemini-1.5-flash', ]); echo $gemini->generateContent("Tell me something interesting.");
Or initialize with OAuth2:
use PhpGemini\GenerativeAI\GeminiClient; use PhpGemini\GenerativeAI\Services\OAuth2Service; require 'vendor/autoload.php'; $oauth = new OAuth2Service([ 'client_id' => 'your_client_id', 'client_secret' => 'your_client_secret', 'refresh_token' => 'your_refresh_token', ]); $gemini = new GeminiClient([ 'model' => 'gemini-1.5-flash', 'oauth2' => $oauth ]); echo $gemini->generateContent("Tell me something interesting.");
πΌοΈ Image Input (Vision Model)
$response = $gemini->generateContentWithImage('path/to/image.jpg', 'Whatβs in this image?');
β οΈ Note: Only supported for models that accept image input, like
gemini-1.5-flash
.
π§ͺ Testing (PHPUnit)
To run the test suite:
composer test
To use Testbench for testing within a Laravel application, first install it:
composer require --dev orchestra/testbench
π οΈ Roadmap
- Text generation
- Laravel integration
- Image input (vision support)
- OAuth2 integration (refresh token support)
- Unit testing & mocking (PHPUnit + Testbench)
- Streaming response support
- Online documentation site (mkdocs)
π Documentation
Full documentation is available inside: docs/index.md
π€ Contributing
Pull requests, issues, and feature suggestions are welcome!
git clone [https://github.com/php-gemini/generative-ai.git](https://github.com/php-gemini/generative-ai.git)
cd generative-ai
composer install
π License
This project is open-sourced under the MIT License.
π Useful Links
- Packagist: php-gemini/generative-ai
- Gemini API Docs: https://ai.google.dev
- OAuth2 Refresh Token Tool: Zero-Asif/oauth2_refresh_token_generator
- Google Cloud Console (OAuth Credentials): https://console.cloud.google.com/apis/credentials
- Project Homepage: https://github.com/php-gemini/generative-ai
π Author
Zero-Asif (Asifuzzaman Asif)
- π§ Email: asifuzzamanasif0001@gmail.com
- π GitHub: github.com/Zero-Asif
β¨ If this project helped you, please β the repo!