Skip to main content
Google Gemini は非常に強力な AI 対話システムであり、プロンプトを入力するだけで数秒以内に流暢で自然な応答を生成できます。本ドキュメントでは主に Gemini Generate Content API の使用方法について説明します。これは Google 公式のネイティブ API 形式であり、generateContent と streamGenerateContent の 2 つのエンドポイントをサポートしています。

Chat Completions API との違い

Gemini Generate Content API は、OpenAI 互換形式(messages フィールド)ではなく、Google 公式のネイティブリクエスト形式(contents フィールド)を使用します。すでに Google Gemini SDK を使用している場合、または公式 API 形式に精通している場合は、リクエスト形式を変更せずにこの API を直接使用できます。

現在のサポート範囲

インターフェースはテキスト、画像、動画、音声入力(inlineData または fileData)、思考設定、およびカスタム関数宣言を受け付けます。音声出力、組み込みツール、明示的なコンテキストキャッシュなどのネイティブフィールドについては、統一された可用性はまだ保証されていません。具体的なモデルの実際のレスポンスを基準にしてください。 fileData.fileUri を使用して音声などのファイルを送信する場合は、ファイルが HTTPS 経由で直接アクセス可能であり、ログイン状態に依存せず、署名付きリンクの有効期間がリクエスト処理時間全体をカバーするようにしてください。非ストリーミング音声分析は、モデルが処理を完了した後に結果を返す必要があり、90 秒を超える可能性があります。クライアントは、ファイルサイズとビジネスシナリオに応じて十分に長い合計タイムアウトを設定し、サーバーがまだ処理中に接続が切断されることを避ける必要があります。

申請手順

Gemini Generate Content API を使用する前に、まず Gemini Generate Content API ページにアクセスし、「取得」ボタンをクリックしてリクエストに必要な認証情報を取得してください。 まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされます。初回申請には無料枠があります。

基本的な使用方法

Non-Streaming(非ストリーミング)

/v1beta/models/{model}:generateContent に POST リクエストを送信します:
ヒント:gemini-3.x シリーズの flash は思考モデルであり、最初に reasoning tokens を消費します。generationConfig.maxOutputTokens を 512 以上に設定してください。そうしないと、空のコンテンツしか返されない可能性があります。
レスポンス例:
usageMetadata 内の token フィールドは、ネイティブ Gemini のセマンティクスに従って課金されます:
  • promptTokenCount には cachedContentTokenCount が含まれ、キャッシュヒットした部分はキャッシュ読み取り価格で計算され、通常の入力として重複計上されません。
  • promptTokensDetails と cacheTokensDetails は、usage.prompt_tokens_details 配下の text_tokens、image_tokens、video_tokens、audio_tokens および対応する cached_* の内訳に正規化されます。これらの値はそれぞれ prompt_tokens と cached_tokens に含まれます。異なるモダリティはそれぞれの価格でのみ再計算され、重複課金されません。
  • candidatesTokenCount と thoughtsTokenCount はどちらも出力 token 価格で計算されます。
  • toolUsePromptTokenCount は独立したツール入力 token であり、入力 token 価格で計算されます。
Ace Data Cloud は追加で正規化された usage オブジェクトを返し、モデルプロトコルをまたいで今回の呼び出し費用を usage.cost から統一的に読み取れます。cost はオプションの料金プレビューです。料金プレビューが一時的に利用できない場合でも、モデルレスポンスは正常に返されますが、このフィールドが含まれない可能性があります。最終的な請求は使用量記録に基づきます。

Streaming(ストリーミング)

/v1beta/models/{model}:streamGenerateContent?alt=sse に POST リクエストを送信します:
ストリーミングレスポンスは SSE(Server-Sent Events)形式で段階的にコンテンツを返します。中間イベントには通常、増分コンテンツのみが含まれます。権威ある使用量を含む終端イベントには usageMetadata と正規化された usage が含まれ、料金は引き続き usage.cost にあります:
接続が閉じられるとストリーム終了を示します。ネイティブ Gemini ストリームは data: [DONE] を送信しません。終端の料金プレビューが一時的に利用できない場合でも、usage は token 使用量を返しますが、cost は省略されます。

サポートされているモデル

高度な機能

システム指示

生成設定

JSON モード

思考モード(Thinking)

思考機能をサポートするモデル(gemini-2.5-flash、gemini-2.5-pro など)は、思考モードを有効にできます:

関数呼び出し

マルチターン会話

画像理解

安全設定

safetySettings によりコンテンツフィルタリングを制御できます:

エラー処理