Пакет Gemini для Laravel, розроблений Hossein Hezami, призначений для інтеграції з Google Gemini API. Він підтримує текстові та графічні запити, роботу з відео, аудіо, а також можливості глибокого аналізу документів, створення структурованого виходу та функцій:
// Текст
$textResponse = Gemini::text()
->model('gemini-2.5-flash')
->system('Ви — корисний асистент.')
->prompt('Напишіть бесіду між людиною та штучним інтелектом.')
->history([
['role' => 'user', 'parts' => [['text' => 'Привіт, ШІ']]],
['role' => 'model', 'parts' => [['text' => 'Привіт, людино!']]]
])
->temperature(0.7)
->maxTokens(1024)
->generate();
echo $textResponse->content();
// Розуміння документів
$response = Gemini::text()
->upload('document', $filePath) // зображення, відео, аудіо, документ
->prompt('Виділіть основні моменти цього документа.')
->generate();
echo $response->content();
// Генерація зображень
$response = Gemini::image()
->model('gemini-2.5-flash-image-preview')
->method('generateContent')
->prompt('Футуристичний горизонт міста на заході сонця.')
->generate();
$response->save('image.png');
//
// API для роботи з файлами
//
// Завантажити файл
$uri = Gemini::files()->upload('document', $pathToFile);
// Переглянути всі файли
$files = Gemini::files()->list();
// Отримати деталі файлу
$fileInfo = Gemini::files()->get($file_id);
// Видалити файл
$success = Gemini::files()->delete($file_id);
Цей пакет також підтримує потокову передачу відповідей через метод stream():
return response()->stream(function () use ($request) {
Gemini::text()
->model('gemini-2.5-flash')
->prompt('Розкажіть довгу історію про штучний інтелект.')
->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',
]);
Детальніше про цей пакет, інструкції з установки та вихідний код можна знайти на GitHub за адресою hosseinhezami/laravel-gemini. Документація з використання цього пакету міститься у файлі README проекту.