Пакет Laravel для інтеграції з Google Gemini

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 26 вересня, 2025
Ознайомтеся з пакетом Gemini для Laravel, який відкриває двері до безмежних можливостей інтеграції з Google Gemini API. Чи готові ви дізнатися, як автоматизувати генерацію тексту, роботу з зображеннями, відео та аудіо, а також отримувати відповіді в реальному часі? Читайте далі, щоб дізнатися більше

Пакет 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 проекту.