grok-php / laravel
Seamlessly integrate Grok AI into Laravel applications with an elegant, developer-friendly package. Leverage powerful AI models for chat, automation, and NLP while maintaining Laravel's expressive simplicity.
Fund package maintenance!
thefeqy
Installs: 460
Dependents: 0
Suggesters: 0
Security: 0
Stars: 138
Watchers: 2
Forks: 7
Open Issues: 2
Requires
- php: ^8.2 || ^8.3 || ^8.4
- grok-php/client: ^1.3
- laravel/framework: ^10.0|^11.0|^12.0
Requires (Dev)
- laravel/pint: ^1.20
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^11
README
A Laravel integration for the GrokPHP Client, designed to effortlessly incorporate Grok AI into Laravel applications with a clean and intuitive API.
Utilize advanced AI models for chat, automation, and natural language processing, all while preserving Laravel's simplicity and elegance.
Table of Contents
- Features
- Installation
- Quick Start
- Available Grok AI Models
- Streaming Responses
- Testing
- Security
- Contributing
- License
Features
- Seamless Laravel Integration – Works with Laravel 10, 11, and 12
- Simple API Client – Access Grok AI models with a clean and intuitive API
- Supports Chat & Vision – Send both text and image-based requests
- Streaming Capable – Enable real-time AI responses
- Configurable Defaults – Set model, temperature, and timeout via config
Installation
Install via Composer:
composer require grok-php/laravel
After installation, run the setup command:
php artisan grok:install
This command will:
- Publish the configuration file (
config/grok.php
). - Add necessary environment variables to
.env
.
Add your API key in .env
:
GROK_API_KEY=your-api-key
Quick Start
Chat API
use GrokPHP\Laravel\Facades\GrokAI; use GrokPHP\Client\Config\ChatOptions; use GrokPHP\Client\Enums\Model; $response = GrokAI::chat( [['role' => 'user', 'content' => 'Hello Grok!']], new ChatOptions(model: Model::GROK_2) ); echo $response->content();
Vision Analysis (Image Recognition)
$response = GrokAI::vision()->analyze( 'https://example.com/sample.jpg', 'Describe this image' ); echo $response->content();
Error Handling
All errors are wrapped in the GrokException
class:
use GrokPHP\Client\Exceptions\GrokException; try { $response = GrokAI::chat( [['role' => 'user', 'content' => 'Hello!']] ); echo $response->content(); } catch (GrokException $e) { echo "Error: " . $e->getMessage(); }
Available Grok AI Models
Model Enum | API Model Name | Description |
---|---|---|
Model::GROK_VISION_BETA |
grok-vision-beta | Experimental vision-enabled model |
Model::GROK_2_VISION |
grok-2-vision | Advanced multi-modal vision model |
Model::GROK_2_VISION_LATEST |
grok-2-vision-latest | Latest iteration of Grok vision models |
Model::GROK_2_VISION_1212 |
grok-2-vision-1212 | Enhanced vision model with performance improvements |
Model::GROK_2_1212 |
grok-2-1212 | Optimized chat model |
Model::GROK_2 |
grok-2 | Default general-purpose Grok model |
Model::GROK_2_LATEST |
grok-2-latest | Latest iteration of Grok-2 |
Model::GROK_BETA |
grok-beta | Experimental beta model |
Default model used: Model::GROK_2
Streaming Responses
Enable real-time AI responses by setting stream: true
:
$response = GrokAI::chat( [['role' => 'user', 'content' => 'Tell me a story']], new ChatOptions(model: Model::GROK_2, stream: true) );
Streaming is useful for chatbots, assistants, and real-time applications.
Testing
To run PHPUnit tests, copy the phpunit.xml.dist
file to phpunit.xml
and set your API key.
cp phpunit.xml.dist phpunit.xml
<php> <env name="GROK_API_KEY" value="your-grok-api-key"/> </php>
Now, run the tests:
composer test
Security
If you discover a security vulnerability, please report it via email:
thefeqy@gmail.com
Contributing
Check out CONTRIBUTING.md for guidelines on how to contribute.
License
This package is open-source software licensed under the MIT License.