DEV Community

Cover image for ジェミニ 3.7 フラッシュ API の使い方
Akira
Akira

Posted on Originally published at apidog.com

ジェミニ 3.7 フラッシュ API の使い方

Googleは2026年8月13日、3.6 Flashの3週間後にGemini 3.7 Flashをリリースし、「当社の最もインテリジェントな主力モデル」と位置付けています。開発者にとって重要なのは、エージェントコーディングのスコアが大幅に向上し(DeepSWE v1.1は49.0%から65.3%)、導入価格は3.6 Flash発売時の半額であり、APIの表面的な仕様は変わっていないことです。すでにGeminiを呼び出しているなら、モデルIDを1つ置き換えるだけで試せます。

今すぐApidogを試す

このガイドでは、APIキーの取得、cURLでの最初のリクエスト、Python/Node.js実装、ストリーミング、generationConfigの調整、Apidogでのリクエスト検証までを順に説明します。公式発表の仕様は、1Mトークンのコンテキスト、64kトークンの出力、マルチモーダル入力、関数呼び出し、検索ツール、コンピューター利用です。

以前の世代向けに開発していた場合、リクエスト形式はGemini 3 Flash Preview APIガイドから引き継げます。この記事では、3.7 Flash向けの実装ポイントを扱います。

TL;DR(要するに)

  • モデルIDは gemini-3.7-flash
  • 同期エンドポイントは POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
  • 認証は x-goog-api-key: $GEMINI_API_KEY ヘッダーで行います。
  • 導入価格は2026年12月31日まで、入力100万トークンあたり0.75ドル、出力100万トークンあたり3.75ドルです。2027年1月1日からはそれぞれ1.50ドル、7.50ドルになります。
  • 入力コンテキストは1Mトークン、出力上限は64kトークンです。テキスト、画像、動画、音声、PDFを入力できます。出力はテキストです。
  • ストリーミングでは :streamGenerateContent?alt=sse を使用します。
  • 実装前にApidogでエンドポイント、リクエストボディ、SSEレスポンスを確認すると、プロンプトの反復を効率化できます。

Gemini 3.7 Flashの利点

Flashモデルは通常、最高性能よりも速度と価格を優先します。Gemini 3.7 Flashでは、そのトレードオフがこれまでのリリースより縮小されています。3.6 Flashとの主なベンチマーク差分は次のとおりです。

ベンチマーク Gemini 3.6 Flash Gemini 3.7 Flash
DeepSWE v1.1 49.0% 65.3%
FrontierCode 1.1 Main 34.4% 43.6%
AutomationBench 17.0% 30.4%
WebDev Arena Elo 1538 1588

Gemini 3.7 Flashのベンチマーク

次のワークロードでは、特に3.7 Flashを評価する価値があります。

  • エージェントループ

    AutomationBenchの改善は、多段階計画やツール呼び出しを含むワークフローに関係します。

  • コード生成・デバッグ

    DeepSWEおよびFrontierCodeの改善は、コードレビュー、修正案生成、デバッグ支援の用途に適しています。

  • ドキュメント処理

    GDP.pdfは22.0%から34.0%へ改善しました。PDFからの構造化データ抽出や長文検索を試す候補です。

  • マルチモーダル入力

    テキスト、画像、動画、音声、PDFを同じ contents 配列で渡せます。

Harvey LAB-AAスコア90.7%やCBRN・サイバーセーフガードを含む詳細は、Gemini 3.7 Flashの新機能を参照してください。Gemini 3.5 Proはまだ遅延しており、Axiosの報告によると、Googleは次期主力製品より先にFlashの更新を出荷しています。

APIキーの取得

Gemini APIを呼び出す方法は、主にAI StudioとVertex AIの2つです。

AI Studio:プロトタイプ向け

  1. aistudio.google.com/apikey を開きます。
  2. APIキーを取得をクリックします。
  3. Google Cloudプロジェクトを選択します。
  4. 発行されたキーをコピーします。

このキーは generativelanguage.googleapis.com に対して利用できます。Gemini 3.7 Flashは160以上の国で利用可能です。

Vertex AI:本番環境向け

GCP上の本番ワークロードではVertex AIを使用できます。

  • 認証はAPIキーではなくOAuthです。
  • サービスアカウントまたは短期トークンを使用します。
  • 呼び出し先は aiplatform.googleapis.com です。
  • IAM、監査ログ、リージョンエンドポイントを利用できます。
  • モデルIDとリクエストボディは同じです。URLと認証方式が変わります。

まずAI Studioで動作を確認し、本番トラフィック前にVertex AIへ移行する方法が実用的です。

環境変数へキーを設定します。

export GEMINI_API_KEY="AIza..."
Enter fullscreen mode Exit fullscreen mode

本番環境ではキーをハードコードせず、?key= のようなクエリパラメータにも渡さないでください。クエリ文字列はサーバーログに残る可能性があります。

エンドポイントと認証

同期レスポンスを取得するエンドポイントです。

POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
Enter fullscreen mode Exit fullscreen mode

ストリーミングでは、メソッドサフィックスとSSE指定を変更します。

POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse
Enter fullscreen mode Exit fullscreen mode

認証ヘッダーは次の1つです。

x-goog-api-key: $GEMINI_API_KEY
Enter fullscreen mode Exit fullscreen mode

cURLで最初の呼び出しを行う

まずは同期エンドポイントを直接呼び出し、レスポンス形式を確認します。

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "Review this SQL for injection risk: SELECT * FROM orders WHERE id = ${orderId}"
      }]
    }],
    "generationConfig": {
      "temperature": 0.3,
      "maxOutputTokens": 1024
    }
  }'
Enter fullscreen mode Exit fullscreen mode

レスポンスは candidates 配列を返します。候補には通常、以下が含まれます。

  • content.parts: 生成テキスト、またはツール宣言時の関数呼び出し
  • finishReason: 生成終了理由
  • usageMetadata: 入出力トークン数

出力トークンは入力トークンより高価なので、usageMetadata をログに残し、maxOutputTokens を用途ごとに制限してください。

Googleのリクエスト形式はOpenAIの messages ではありません。Geminiでは roleparts を持つ contents を使用します。

Pythonクイックスタート

SDKをインストールまたは更新します。

pip install --upgrade google-generativeai
Enter fullscreen mode Exit fullscreen mode

システム指示と生成設定を含む基本例です。

import os
import google.generativeai as genai

genai.configure(api_key=os.environ["GEMINI_API_KEY"])

model = genai.GenerativeModel(
    model_name="gemini-3.7-flash",
    system_instruction="You are a code reviewer. Flag issues as blocking or non-blocking.",
    generation_config={
        "temperature": 0.3,
        "max_output_tokens": 2048,
    },
)

response = model.generate_content(
    "Review this Flask route for security issues:\n\n"
    "@app.route('/user/<id>')\n"
    "def get_user(id):\n"
    "    return db.execute(f'SELECT * FROM users WHERE id = {id}')"
)

print(response.text)
print("input tokens:", response.usage_metadata.prompt_token_count)
print("output tokens:", response.usage_metadata.candidates_token_count)
Enter fullscreen mode Exit fullscreen mode

PDFを入力する

マルチモーダル入力も同じ contents 配列で扱います。PDFはFiles APIでアップロードして参照できます。

invoice = genai.upload_file("q3-invoice.pdf")

response = model.generate_content([
    invoice,
    "Extract the invoice number, total, and due date as JSON.",
])

print(response.text)
Enter fullscreen mode Exit fullscreen mode

GDP.pdfベンチマークの改善は、非構造化ドキュメントからの構造化情報抽出のような用途に関連します。

Node.jsクイックスタート

Node SDKは @google/generative-ai で、Python SDKと近い構成です。

import { GoogleGenerativeAI } from "@google-generative-ai";

const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);

const model = genAI.getGenerativeModel({
  model: "gemini-3.7-flash",
  generationConfig: {
    temperature: 0.3,
    maxOutputTokens: 2048,
    responseMimeType: "application/json",
    responseSchema: {
      type: "object",
      properties: {
        severity: {
          type: "string",
          enum: ["blocking", "non-blocking"],
        },
        issues: {
          type: "array",
          items: { type: "string" },
        },
      },
      required: ["severity", "issues"],
    },
  },
});

const result = await model.generateContent(
  "Review this Express handler: app.get('/search', (req, res) => res.send(eval(req.query.q)))"
);

console.log(JSON.parse(result.response.text()));
Enter fullscreen mode Exit fullscreen mode

responseMimeType: "application/json"responseSchema を組み合わせると、ダウンストリームで扱いやすいJSON形式を要求できます。自由形式テキストを直接パースする処理を減らせます。

ストリーミング

チャットUIなど、ユーザーに生成中のテキストを見せる場合はストリーミングを使用します。

Pythonでは stream=True を指定します。

stream = model.generate_content(
    "Explain the N+1 query problem with a concrete ORM example.",
    stream=True,
)

for chunk in stream:
    if chunk.text:
        print(chunk.text, end="", flush=True)
Enter fullscreen mode Exit fullscreen mode

HTTPを直接使用する場合は、次のSSEエンドポイントにPOSTします。

:streamGenerateContent?alt=sse
Enter fullscreen mode Exit fullscreen mode

data: 行には部分的な candidates ペイロードが含まれます。トークン数を含む usageMetadata は最後のチャンクで返るため、正確な利用量はストリーム終了後に確定します。

generationConfigを調整する

頻繁に使うパラメータは次のとおりです。

パラメータ タイプ 機能
maxOutputTokens integer 出力の上限。モデルの64k制限まで指定可能。コスト調整の主要レバー。
temperature number 0から2。コードや抽出では0.2〜0.4、創造的な文章では0.7以上が目安。
responseMimeType string JSON出力を要求する場合は application/json
responseSchema object JSON MIMEタイプと組み合わせてレスポンス構造を指定。
topP number ニュークリアスサンプリングの閾値。明確な意図がなければデフォルトを維持。
stopSequences array 特定文字列で生成を停止。区切り文字ベースの処理に利用可能。

出力トークンは導入価格で100万件あたり3.75ドル、2027年1月からは7.50ドルです。64kを上限として使うのではなく、用途に必要な値へ maxOutputTokens を設定してください。

ワークロード別のトークン計算は、Gemini 3.7 Flashの料金内訳を参照してください。

generationConfig のほかに、リクエストボディは以下も受け入れます。

  • tools: 関数宣言、検索ツール、コンピューター利用
  • toolConfig: ツール呼び出しの制御

関数宣言、並列呼び出し、応答ループは、Gemini 3.7 Flash関数呼び出しチュートリアルで確認できます。

アプリコードを書く前にApidogでエンドポイントをテストする

PythonやNode.jsのコード内だけでプロンプトを反復すると、編集、実行、ログ確認を繰り返すことになります。先にAPIクライアントでリクエスト形式とレスポンスを固定してからコードへ移植すると、検証を高速化できます。

Apidogでの設定手順は次のとおりです。

  1. プロジェクトを作成する

    GoogleのAPIドキュメントからGenerative Language APIのOpenAPI仕様をインポートします。

  2. 環境変数を作成する

    GEMINI_API_KEY という環境変数を追加し、環境レベルで x-goog-api-key ヘッダーに設定します。

  3. モデルIDを変数化する

    gemini-3.7-flash を変数として保存します。gemini-3.6-flash との比較時も、複数リクエストのURLを編集せずに切り替えられます。

  4. contents をJSONエディターで作成する

    ネストした parts を確認しながらリクエストを構築します。不正なリクエストボディを、実行前に見つけやすくなります。

  5. SSEエンドポイントを実行する

    ストリーミングのチャンクをライブで確認し、生成の開始タイミングやレスポンスの組み立てを検証します。

  6. 成功レスポンスを例として保存する

    フィクスチャを保存すれば、後続のテストで毎回ライブAPIを呼び出す必要がありません。

さらに、保存したリクエストをテストシナリオへつなげ、以下をアサーションに追加します。

  • finishReason
  • レスポンススキーマ
  • usageMetadata のトークン数

これにより、手動確認をプロンプト変更時に実行できる回帰テストへ変換できます。QA向けの設計パターンは、QAエンジニア向けAPIテストガイドでも説明されています。

エラー処理とレート制限

Gemini APIのエラーは、最上位の error オブジェクトに codestatusmessage を含めて返します。

コード ステータス 意味 修正方法
400 INVALID_ARGUMENT 不正な形式のボディ、不正なロール、空の contents 送信前にリクエストボディを検証する。
401 UNAUTHENTICATED キーがない、または無効。 GEMINI_API_KEY を再設定し、AI Studioでキー状態を確認する。
403 PERMISSION_DENIED プロジェクト権限または課金設定の問題。 プロジェクト設定と課金状態を確認する。
429 RESOURCE_EXHAUSTED レート制限または日次クォータに到達。 ジッター付きバックオフ、バッチ化、ティア変更を行う。
500 INTERNAL 一時的なサーバー障害。 指数関数的バックオフで再試行する。
503 UNAVAILABLE サービス過負荷。 数秒後に再試行する。Vertexでは別リージョンも検討する。

本番運用では、次の3点を実装してください。

  • 429と5xxを再試行するラッパーを用意する

    ジッター付き指数関数的バックオフを使用し、ログとサーキットブレーカーも管理します。

  • レート制限値を固定値としてコードに埋め込まない

    制限はティアや時期で変わります。Gemini APIの料金と制限ページで現在の値を確認し、クォータ使用率80%でアラートを設定します。

  • モデルIDを環境変数化する

    例として GEMINI_MODEL=gemini-3.7-flash を設定します。問題があれば gemini-3.6-flash へ設定変更だけで戻せます。

よくある質問

Gemini 3.7 Flashは無料で利用できますか?

AI Studioには、プロトタイプ作成向けの日次クォータを含む無料ティアがあります。有料の導入価格は、2026年12月31日まで入力100万トークンあたり0.75ドルです。ティアと制限の詳細は、無料のGemini APIアクセスのガイドを参照してください。

AI StudioとVertex AIの違いは何ですか?

モデルとリクエストボディは同じですが、認証とエンドポイントが異なります。

  • AI Studio: APIキー、generativelanguage.googleapis.com
  • Vertex AI: OAuth、aiplatform.googleapis.com

Vertex AIではIAM、監査ログ、リージョンエンドポイントを利用できます。まずAI Studioで開始し、本番トラフィックでVertexへ移行する方法が一般的です。

Gemini 3.7 Flashに画像、音声、PDFを送信できますか?

はい。テキスト、画像、動画、音声、PDFを contents 配列のパーツとして渡せます。Base64のインライン指定、またはFiles API経由の参照を使用します。出力はテキストです。

コンテキストウィンドウと出力制限はどのくらいですか?

入力は1Mトークン、出力は64kトークンです。128k-needle検索スコアは97.0%ですが、入力トークンも課金対象です。長文ドキュメントは用途に応じてチャンク化してください。

Gemini 3.6 Flashからアップグレードすべきですか?

エージェントやコーディングのワークロードでは、ベンチマーク差分が大きいため、通常は評価する価値があります。モデルIDを1行変更して試せます。

ただし、本番トラフィックを切り替える前に、既存プロンプトとレスポンス形式の回帰テストを実行してください。移行時の確認ポイントは、3.6から3.7 Flashへの移行ガイドにあります。

あなたのスタックにおける3.7 Flashの立ち位置

Gemini 3.7 Flashは、価格を下げつつベンチマーク性能を改善したリリースです。2026年末までは、DeepSWEで16ポイント高く、AutomationBenchでほぼ2倍のスコアを示したモデルを、3.6 Flash発売時の半額で利用できます。

実装の初期方針としては、次を検討してください。

  1. エージェントループ、コードタスク、ドキュメント抽出を3.7 Flashで評価する。
  2. maxOutputTokensusageMetadata でコストを管理する。
  3. モデルIDを環境変数化し、3.6 Flashへのロールバック経路を維持する。
  4. cURLまたはAPIクライアントでレスポンス形式を確認してからSDK実装へ進む。

まずは上記のcURLリクエストを実行し、レスポンス形状を確認してください。その後、ApidogをダウンロードしてGemini仕様をインポートし、APIキーを環境変数としてバインドします。同期、ストリーミング、ツール呼び出しを同じワークスペースで検証してからPythonまたはNode.jsへ移植すると、実装時の手戻りを減らせます。

Top comments (0)