整合 Gemini 的 Laravel 包
由 Hossein Hezami 开发的适用于 Laravel 的 Gemini 软件包,旨在与 Google Gemini API 集成。它支持文本、图像、视频、音频、长文本上下文、结构化输出、函数调用和理解等功能。
// 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);该软件包还支持使用 stream() 方法进行流式响应:
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',
]);主要功能
- 基于上下文和历史记录的文本生成
- 图像生成和理解
- 视频生成和分析
- 音频合成和转录
- 文档处理和理解
- 嵌入向量生成
- 文件管理功能
- 实时流式响应
- 可配置的安全设置
你可以在 GitHub 上的 hosseinhezami/laravel-gemini 项目页面了解更多关于此软件包的信息、获取完整的安装说明并查看源代码。该项目的 README 文件包含有关如何使用此软件包的文档。