The Gemini package for Laravel, developed by Hossein Hezami, is a package designed to integrate with the Google Gemini API. Supports text, image, video, audio, long-context, structured output, function-calling, and understanding capabilities:
// Text$textResponse = Gemini::text() ->model('gemini-2.5-flash') ->system('You are a helpful assistant.') ->prompt('Write a conversation between human and Ai') ->history([ ['role' => 'user', 'parts' => [['text' => 'Hello AI']]], ['role' => 'model', 'parts' => [['text' => 'Hello human!']]] ]) ->temperature(0.7) ->maxTokens(1024) ->generate(); echo $textResponse->content(); // Document understanding$response = Gemini::text() ->upload('document', $filePath) // image, video, audio, document ->prompt('Extract the key points from this document.') ->generate(); echo $response->content(); // Image builder$response = Gemini::image() ->model('gemini-2.5-flash-image-preview') ->method('generateContent') ->prompt('A futuristic city skyline at sunset.') ->generate(); $response->save('image.png'); //// Files API// // Upload a file$uri = Gemini::files()->upload('document', $pathToFile); // List all files$files = Gemini::files()->list(); // Get file details$fileInfo = Gemini::files()->get($file_id); // Delete a file$success = Gemini::files()->delete($file_id);
This package also supports streaming responses using the stream() method:
return response()->stream(function () use ($request) { Gemini::text() ->model('gemini-2.5-flash') ->prompt('Tell a long story about artificial intelligence.') ->stream(function ($chunk) { $text = $chunk['text'] ?? ''; if (!empty(trim($text))) { echo "data: " . json_encode(['text' => $text]) . "\n\n"; ob_flush(); flush(); } });}, 200, [ 'Content-Type' => 'text/event-stream', 'Cache-Control' => 'no-cache', 'Connection' => 'keep-alive', 'X-Accel-Buffering' => 'no',]);
Main Features
- Text generation with context and history
- Image generation and understanding
- Video generation and analysis
- Audio synthesis and transcription
- Document processing and understanding
- Embeddings generation
- File management capabilities
- Real-time streaming responses
- Configurable safety settings
You can learn more about this package, get full installation instructions, and view the source code on GitHub at hosseinhezami/laravel-gemini. The project's README includes documentation on how to use this package.