google-gemini-php/client

⚡️ Gemini PHP is a community-maintained PHP API client that allows you to interact with the Gemini AI API.

概要

google‑gemini‑php/client は、GoogleのGemini生成AI APIをラップしたコミュニティ管理のPHPライブラリです。PHP開発者は、Geminiモデルを呼び出して、テキスト補完、マルチモーダル(テキスト + 画像/動画)クエリ、画像生成、ストリーミング応答、構造化JSON出力、関数呼び出し、コード実行、およびライブGoogle検索、マップ、ファイル検索などの様々な「グラウンディング」機能を利用できます。このパッケージはComposer経由で配布されており、PHP 8.2+が必要です。

主な機能

機能 説明
モデルアクセス $client->generativeModel() を介して任意のGeminiモデル(例: gemini-2.0-flash、gemini-2.5-flash-image)を呼び出し
マルチモーダル入力 テキストと画像 (Blob) または動画 (UploadedFile) を単一のリクエストで送信
画像生成 Imagenモデルを使用してプロンプトから画像を生成(アスペクト比設定可能)
チャットとストリーミング マルチターン会話の構築。部分的な結果をストリームとして受信可能
構造化出力 JSON(または他のMIMEタイプ)を要求し、レスポンススキーマを定義して機械可読なデータを取得
関数呼び出し モデルが呼び出せる関数を宣言し、FunctionCall オブジェクトを受け取り、関数を実行して結果をフィードバック
コード実行 モデルがコードを生成・実行し、実行結果を返す機能を有効化
グラウンディングツール Google検索、Googleマップ、またはプライベートなファイル検索ストアを接続し、最新情報やプライベート情報を引用
システム指示 モデルのトーン、スタイル、動作に影響を与えるシステムレベルのプロンプトを設定
ファイル管理とキャッシュコンテンツ ファイルのアップロード、一覧表示、削除。繰り返しクエリを高速化するためのキャッシュコンテンツオブジェクトの作成
設定 ベースURL、HTTPヘッダー、クエリパラメータ、HTTPクライアント、ストリームハンドラのカスタマイズ

標準的な使用フロー

  1. インストール (Composer経由):
    composer require google-gemini-php/client
    
  2. APIキーの提供 (Google AI Studioから取得)。
  3. クライアントの作成 – 簡易的な Gemini::client($key) ヘルパーまたは完全に設定されたファクトリを使用。
  4. モデルの選択 – $client->generativeModel('gemini-2.0-flash') を使用。
  5. メソッドの呼び出し – generateContent()、streamGenerateContent()、または startChat() でチャットを開始。
  6. レスポンスの処理 – $result->text() や $result->json() を呼び出すか、関数呼び出しやコード実行結果などのパーツを検査。

コード例 (システムプロンプト付きチャット)

use Gemini; // パッケージ提供のファサード

$client = Gemini::client(getenv('GEMINI_API_KEY'));

$response = $client
    ->generativeModel('gemini-2.0-flash')
    ->withSystemInstruction(
        Gemini\Data\Content::parse(
            'You are a helpful assistant that always responds in the style of a pirate.'
        )
    )
    ->generateContent('Tell me about PHP programming');

echo $response->text(); // Ahoy there, matey! …

対象ユーザー

  • Webアプリ、CLIツール、バックエンドサービスに生成AI機能を追加したい PHP開発者。
  • マルチモーダル (テキスト + 画像/動画) や リアルタイム (ストリーミング) インタラクションを必要とするチーム。
  • 構造化データ (JSON) や ツール利用 (関数呼び出し、コード実行、ライブ検索) を必要とするプロジェクト。

制限事項と考慮事項

  • このライブラリは Gemini v1beta API (バージョン2.0時点) のみをサポートしています。古いGeminiバージョンには互換性がありません。
  • 独自の Google APIキー を提供し、関連する請求を管理する必要があります。
  • 一部の高度な機能(関数呼び出しのシグネチャ、コード実行など)は特定のGeminiモデルバージョンに依存します。モデルの互換性については公式のGeminiドキュメントを確認してください。
  • このパッケージはPSR‑18 HTTPクライアント標準に従っています。互換性のあるHTTPクライアント(Guzzleを推奨)が必要です。

上記のすべての情報はリポジトリのREADMEから直接取得したものであり、追加の機能は推論されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト