Gemini Decisions APIとは?文章を生成せずにAIで判定する新APIをPythonで試す

2026年11月11日、Googleが新しいAI API「Gemini Decisions API」を発表しました。

これまで生成AIといえば、ChatGPTやGeminiのように文章を生成して回答する仕組みが一般的でした。

しかし、実際のシステム開発では、必ずしも文章を生成する必要がないケースがあります。

例えば、以下のような処理です。

  • 問い合わせ内容が技術的な質問か、請求に関する質問かを判定する
  • ユーザーの入力が特定のポリシーに違反しているか判断する
  • 問い合わせの緊急度を評価する
  • AIエージェントが次に使うツールを選択する

こうした場面では、長い文章を生成するよりも、「Yes/No」「分類結果」「確率」を高速に返す仕組みの方が適している場合があります。

今回登場したGemini Decisions APIは、まさにそのような用途に特化したAPIです。

本記事では、Gemini Decisions APIの特徴や通常のGemini APIとの違いを解説し、Pythonを使って実際の業務システムに近い問い合わせ分類処理を実装していきます。

※本記事は2026年11月13日時点のGoogle公式ドキュメントをもとに作成しています。サンプルコードのPython構文は確認していますが、実際のAPIキーを用いた通信テストは未実施です。

Gemini Decisions APIとは?

Gemini Decisions APIは、Googleが開発した意思決定・判定処理に特化したAI APIです。

専用のAIモデル「Gemini Decision 1」を利用します。

通常の生成AIは、入力された質問に対して、文章を少しずつ生成する仕組みです。

一方、Gemini Decisions APIは、あらかじめ定義した質問や選択肢に対して、モデルが確率を算出して結果を返します。

主な仕様は以下のとおりです。

項目内容
公開日2026年11月11日
提供元Google
モデルIDgemini-decision-1
APIGemini Developer API(v1beta)
判定方式Yes/No・選択式・段階評価
質問数最大1,000問/リクエスト
入力テキスト・画像・音声・動画・PDF
コンテキスト上限262,144トークン
出力判定結果、確率、信頼度
有料枠の入力料金100万トークンあたり0.10米ドル
出力トークン料金なし

重要なのは、文章を生成しないことと、レスポンスが返らないことは違うという点です。

Gemini Decisions APIは自然言語の回答を生成しませんが、判定結果を構造化されたデータとして返します。

これにより、PythonやJavaなどのアプリケーション側で、結果に応じた分岐処理を実装できます。

通常のGemini APIとの違い

例えば、ユーザーから次のような問い合わせが届いたとします。

「購入したイヤホンの左側から音が出ません。交換できますか?」

従来の生成AIであれば、次のような回答を生成することが考えられます。

この問い合わせは製品の故障に関する内容です。
技術サポート部門で対応することをおすすめします。

この回答は人間には読みやすいですが、プログラムで扱うには文章の解析が必要です。

もちろん、通常のGemini APIでもJSON形式の構造化出力は可能です。

ただし、Gemini Decisions APIの場合は、最初から判定専用の仕組みが提供されています。

例えば、次のような結果を得られます。

{
  "type": "choice",
  "choice": "technical",
  "probabilities": {
    "technical": 0.94,
    "billing": 0.02,
    "shipping": 0.01,
    "other": 0.03
  },
  "confidence": 0.94
}

※上記は説明用の出力例であり、実際にAPIから取得した結果ではありません。

この場合、choiceが判定された分類先、confidenceがその判定に対する信頼度です。

例えば、信頼度が0.8以上なら自動で振り分け、それ未満なら人間が確認する処理を実装できます。

2つのAPIを比較

比較項目通常のGemini APIGemini Decisions API
主な用途文章生成・要約・推論分類・判定・採点
自然言語の回答可能生成しない
JSONでの結果取得可能専用の判定形式
確率の取得判定専用の確率APIではない選択肢ごとの確率を取得
複数の判定プロンプトなどで対応最大1,000問をまとめて評価
複雑な説明・文章生成向いている向いていない

すべてのAI処理をGemini Decisions APIに置き換えるわけではありません。

例えば、問い合わせの回答文章を作成したい場合は、従来の生成AIが適しています。

一方、問い合わせをどの担当者へ振り分けるべきかという処理は、Gemini Decisions APIに向いています。

Gemini Decisions APIの3つの判定方式

Gemini Decisions APIには、3種類の質問タイプがあります。

1. noul:Yes/No判定

noulは、指定した条件が成立する確率を返します。

例えば、次のような判定です。

「この問い合わせは製品の故障に関する内容ですか?」

{
  "type": "noul",
  "instructions": "Does the customer report a product defect?"
}

結果は以下のようなイメージになります。

{
  "type": "noul",
  "noul": 0.95,
  "confidence": 0.95
}

noulの値はYesである確率を表します。

なお、noulという名称はタイプミスではなく、Googleの公式API仕様で定義されている名称です。

また、confidenceは常にYesの確率ではありません。

例えばnoulが0.05の場合、Noである確率は0.95なので、信頼度は0.95になります。

noulの値は0.01〜0.99の範囲で返されます。

2. choice:複数の選択肢から分類

choiceは、あらかじめ用意した候補の中から最も適した選択肢を選びます。

例えば、問い合わせの担当部署を決めるケースです。

{
  "type": "choice",
  "instructions": "Which department should handle this request?",
  "criteria": {
    "technical": "Product malfunctions and technical problems.",
    "billing": "Payments and invoices.",
    "shipping": "Delivery and tracking.",
    "other": "Other inquiries."
  }
}

criteriaでは、各選択肢の判断基準を定義します。

判定結果には、最も可能性が高い選択肢と、各選択肢の確率が含まれます。

なお、選択肢に正解がない場合でも、モデルは候補の中から最も適したものを選びます。

そのため、実務ではotherのような分類先を追加したり、信頼度が低い場合に人間の確認へ回したりする設計が重要です。

3. score:段階的なスコア評価

scoreは、複数の評価段階に基づいて入力を採点します。

例えば、問い合わせの緊急度を評価する場合です。

{
  "type": "score",
  "instructions": "How urgent is this support request?",
  "criteria": [
    "Routine inquiry.",
    "Needs a timely response.",
    "An important task is blocked.",
    "Immediate safety or security emergency."
  ]
}

この場合、評価段階は0〜3です。

ただし、返されるスコアは必ずしも整数ではありません。

例えば、2.4のような小数になる場合もあります。

これは、各段階の確率を用いた加重平均によってスコアが算出されるためです。

PythonでGemini Decisions APIを使ってみる

ここからは実際にPythonでAPIを呼び出すコードを作成します。

まずは単純なYes/No判定から始め、その後に複数種類の判定を組み合わせます。

動作環境

項目使用環境
OSWindows 11を想定
Python3.10以上
SDKgoogle-genai 3.2.0以降
APIバージョンv1beta
モデルgemini-decision-1

今回の新APIは、Google Gen AI Python SDKの3.2.0からサポートされています。

そのため、古いSDKを使用している場合はアップデートが必要です。

手順1:APIキーを取得

まず、Google AI StudioからGemini APIのAPIキーを取得します。

Google AI Studio

APIキーは外部へ公開しないようにしてください。

特にGitHubでソースコードを管理する場合、APIキーをPythonファイルへ直接記述することは避けましょう。

手順2:Pythonの仮想環境を作成

WindowsのPowerShellを開き、以下を実行します。

mkdir gemini-decisions-demo
cd gemini-decisions-demo

py -m venv .venv

次にSDKをインストールします。

.\.venv\Scripts\python.exe -m pip install "google-genai>=3.2.0,<4.0.0"

バージョンを確認します。

.\.venv\Scripts\python.exe -m pip show google-genai

Versionが3.2.0以上であることを確認してください。

手順3:APIキーを環境変数へ設定

PowerShellで、以下を実行します。

$env:GEMINI_API_KEY = "YOUR_API_KEY"

YOUR_API_KEYはGoogle AI Studioで発行した値に置き換えてください。

この設定は現在のPowerShellセッションに適用されます。

共有端末では、コマンド履歴などに認証情報が残る点にも注意しましょう。

手順4:Yes/No判定を実装する

decisions_simple.pyを作成します。

from google import genai

client = genai.Client(
    http_options={"api_version": "v1beta"}
)

try:
    result = client.decisions.create(
        model="gemini-decision-1",
        input="購入したイヤホンの左側から音が出ません。",
        questions={
            "is_defect": {
                "type": "noul",
                "instructions": (
                    "Does the customer report "
                    "a product defect or malfunction?"
                )
            }
        }
    )

    answer = result.answers["is_defect"]

    print("故障である確率:", answer.noul)
    print("判定の信頼度:", answer.confidence)

finally:
    client.close()

ここで重要なのが、以下のコードです。

result = client.decisions.create(...)

通常のテキスト生成で使用するclient.models.generate_content()やclient.interactions.create()ではなく、判定専用のdecisions.create()を使用します。

また、モデル名にはgemini-decision-1を指定します。

APIバージョンはv1betaです。

実行します。

.\.venv\Scripts\python.exe decisions_simple.py

実行に成功すると、故障である確率と信頼度が表示されます。

故障である確率: 0.xx
判定の信頼度: 0.xx

表示される値は入力内容とモデルの判定によって変わります。

実践:問い合わせをAIで自動分類する

続いて、より実務に近いサンプルを作成します。

今回実装する処理は、問い合わせ内容を受け取り、次の3つを同時に判定する仕組みです。

  1. 故障に関する問い合わせか
  2. どの部署が対応するべきか
  3. 問い合わせの緊急度はどの程度か

従来の生成AIであれば、これらを質問して文章やJSONで返してもらう方法が考えられます。

Gemini Decisions APIでは、3つの独立した質問を1回のAPIリクエストで評価できます。

decisions_demo.py

import os
from google import genai

MESSAGE = (
    "注文したイヤホンの左側から音が出ません。"
    "交換してほしいです。"
    "仕事で使うので早めに対応してもらえますか?"
)


def main():
    api_key = os.environ.get("GEMINI_API_KEY")

    if not api_key:
        raise SystemExit(
            "GEMINI_API_KEYを設定してください。"
        )

    client = genai.Client(
        api_key=api_key,
        http_options={"api_version": "v1beta"}
    )

    try:
        result = client.decisions.create(
            model="gemini-decision-1",
            input=MESSAGE,
            questions={
                "is_defect": {
                    "type": "noul",
                    "instructions": (
                        "Does the customer describe "
                        "a defect or malfunction "
                        "of the product?"
                    )
                },
                "department": {
                    "type": "choice",
                    "instructions": (
                        "Which support department "
                        "should handle this message?"
                    ),
                    "criteria": {
                        "technical": (
                            "Product malfunctions, "
                            "repairs, replacements, "
                            "and usage problems."
                        ),
                        "billing": (
                            "Payments, charges, "
                            "refunds, and invoices."
                        ),
                        "shipping": (
                            "Delivery, tracking, "
                            "and lost parcels."
                        ),
                        "other": (
                            "None of the listed "
                            "categories applies."
                        )
                    }
                },
                "urgency": {
                    "type": "score",
                    "instructions": (
                        "How urgently should support "
                        "respond based on this message?"
                    ),
                    "criteria": [
                        "Routine inquiry with no urgency.",
                        "Customer would like a timely response.",
                        "Customer says an important task is blocked.",
                        "Immediate safety or security emergency."
                    ]
                }
            }
        )

        answers = result.answers

        defect = answers["is_defect"]
        department = answers["department"]
        urgency = answers["urgency"]

        print("故障の確率:", defect.noul)

        print("担当部署:", department.choice)
        print("部署の信頼度:", department.confidence)
        print("部署ごとの確率:", department.probabilities)

        print("緊急度スコア:", urgency.score)
        print("緊急度の信頼度:", urgency.confidence)
        print("緊急度の確率:", urgency.probabilities)

        print("トークン使用量:", result.usage)

        # 閾値はデモ用。実務では検証データから調整する。
        if (
            department.confidence < 0.80
            or department.choice == "other"
        ):
            route = "human_review"
        else:
            route = department.choice

        print("最終振り分け先:", route)

    finally:
        client.close()


if __name__ == "__main__":
    main()

実行する

.\.venv\Scripts\python.exe decisions_demo.py

例えば、今回の問い合わせであれば、技術サポート部門へ振り分ける結果が期待されます。

ただし、緊急度のスコアや信頼度はモデルによって判断されるため、固定ではありません。

実際の判定結果を確認してください。

confidenceを使って人間による確認を挟む

実務で特に重要なのが、判定結果をそのまま処理に利用しないことです。

例えば、AIが技術サポート部門を選択しても、その信頼度が0.45だった場合、自動振り分けするには不安が残ります。

そこで、以下のような条件分岐を用意します。

if department.confidence >= 0.80:
    destination = department.choice
else:
    destination = "human_review"

これは、信頼度が80%以上ならAIの判定結果を利用し、それ未満なら人間の確認へ回す例です。

ただし、0.80という閾値に公式の正解があるわけではありません。

本番運用では、実際の問い合わせデータを使い、判定の正解率と誤判定の影響を確認しながら閾値を調整する必要があります。

また、モデルが返す信頼度は推定値です。

信頼度が0.95だからといって、すべての業務データで95%の正解率が保証されるわけではありません。

返金・契約変更・アカウント停止など、影響の大きい処理を実行する場合は、人間の承認や追加のチェックを組み込みましょう。

Gemini Decisions APIの料金は?

Gemini Decisions APIの料金は、非常に分かりやすい仕組みです。

2026年11月13日時点のGoogle公式料金表では、次のようになっています。

項目料金
無料枠対象制限内で無料
有料枠の入力100万トークンあたり$0.10
出力0トークン・課金なし
コンテキストキャッシュ非対応
Batch API非対応

例えば、入力が10,000トークンだった場合の料金は以下です。

10,000 ÷ 1,000,000 × $0.10

= $0.001

仮に1回300トークンのリクエストを100万回実行した場合、合計3億トークンとなるため、入力料金は30米ドルです。

これは単純な計算例であり、実際には質問の説明文や選択肢、データ形式によってトークン数が変わります。

1回で複数の質問を送るメリット

Gemini Decisions APIでは、共通の入力データに対して複数の質問を設定できます。

例えば、長い問い合わせ内容を読み込んで、以下の項目をまとめて判断する場合です。

  • 製品故障の有無
  • 担当部署
  • 緊急度
  • 返品対象か
  • 優先顧客向けの対応が必要か

共通の入力データに対する課金は、1回のリクエスト内では1回分です。

ただし、追加した質問の指示文や選択肢にはトークンが必要です。

したがって、質問を何個追加しても料金が完全に同じというわけではありません。

無料枠の注意点

Google AI Studioでは、Gemini Decision 1を試せる無料枠が提供されています。

ただし、Googleの公式料金表では、無料枠の入力データは製品改善に使用される扱いとなっています。

業務上の顧客情報、個人情報、契約情報などを利用する場合は、送信データの取り扱いと利用規約を確認してください。

応答速度はどれくらい速い?

Googleの発表によると、Gemini Decision 1は以下の性能を示しています。

指標Google公表値
モデル計算の中央値50〜100ミリ秒
エンドツーエンド150〜250ミリ秒
比較条件最大16Kトークン程度の入力など
質問数1〜100問で遅延がほぼ一定

これらはGoogleが公表した測定条件に基づく値です。

すべてのネットワーク環境や入力サイズで同じ速度になるわけではありません。

また、最大1,000問まで送信できることと、1,000問すべてが150〜250ミリ秒で返ることは同義ではありません。

実務で導入する場合は、アプリケーション側からAPIを呼び出して、実際の処理時間を測定することが重要です。

実務での活用例

Gemini Decisions APIは、問い合わせの自動分類以外にも活用できます。

1. AIエージェントのモデル選択

例えば、簡単な問い合わせは軽量なAIモデルへ、複雑な問い合わせは高性能なAIモデルへ振り分ける構成です。

ユーザーの問い合わせ
        |
        v
Gemini Decisions API
        |
        +-- 単純な質問 → 軽量モデル
        |
        +-- 複雑な質問 → 高性能モデル
        |
        +-- 判断できない → 人間の確認

すべての問い合わせを高性能モデルへ送信するのではなく、必要に応じて切り替えることで、AIの利用料金や処理時間を改善できる可能性があります。

2. 社内問い合わせの自動振り分け

ユーザーの問い合わせ内容を分析し、適切な部門へ振り分けます。

例えば、社内ヘルプデスクの以下の分類です。

technical → IT部門
billing   → 経理部門
hr        → 人事部門
other     → 担当者が確認

システム側では、分類結果をもとにチケット管理ツールへ登録することも考えられます。

3. RAGの検索結果を評価する

RAG(Retrieval-Augmented Generation)では、検索で取得した文書が質問に関連しているかを評価する工程があります。

Gemini Decisions APIを使えば、取得した文書がユーザーの質問に対して十分に関連しているか、確率やスコアで評価する構成が考えられます。

ただし、文書の関連度を確率として返せることと、最終回答の正確性が保証されることは異なります。

4. 画像やPDFの自動チェック

Gemini Decisions APIは、テキストだけでなく画像やPDFにも対応しています。

例えば、請求書PDFに発注番号が含まれているか、画像に破損が写っているか、といった判定を実装できます。

ただし、請求書から金額や取引先名を抽出し、JSONとして出力したい場合は、通常のGemini APIの構造化出力の方が適しています。

利用時の注意点

新しいAPIということもあり、導入前に知っておきたい制限があります。

① 現時点ではGemini Developer APIのv1betaのみ対応

通常の安定版APIと同じように使用できるわけではありません。SDKとAPIバージョンを確認しましょう。

② 最大1,000問だが、入力全体の上限も存在する

質問数だけでなく、共通入力と質問内容を合わせて262,144トークン以内に収める必要があります。

③ 質問は独立して評価される

同じリクエスト内の質問同士は、ほかの質問の回答結果を参照しません。

前の判定結果に依存する処理は、Python側で条件分岐するか、別のAPIリクエストを実行する設計が必要です。

④ AIによる分類は絶対ではない

特にセキュリティ判定や金融取引など、誤判定の影響が大きい処理では、AIの結果だけで自動実行することは避けましょう。

⑤ 入力を信用しすぎない

外部ユーザーから送られた文章には、判定モデルを誘導するような指示が含まれる可能性があります。

分類条件を明確にし、想定外の入力や悪意のある入力も検証することが重要です。

よくある質問

Gemini Decisions APIは無料で利用できますか?

Google AI Studioの無料枠で利用できます。ただし、利用制限があり、無料枠では入力データの取り扱いにも注意が必要です。

Gemini Decisions APIで文章を生成できますか?

いいえ。自然言語の文章生成ではなく、判定結果や確率を返すAPIです。文章生成には通常のGemini APIを使用します。

Python以外でも使えますか?

はい。GoogleはPython、JavaScript、REST APIの公式ガイドを公開しています。

Javaなどから利用する場合も、REST APIを利用する構成を検討できます。

Yes/No判定にbooleanは使えますか?

今回のAPIで定義されている質問タイプはnoulです。

booleanやyes_noではなく、公式仕様に従ってnoulを指定してください。

まとめ

2026年11月にGoogleが発表したGemini Decisions APIは、これまでの文章生成中心のAIとは異なり、判定処理に特化したAPIです。

主なポイントは以下のとおりです。

  • 自然言語の文章ではなく、判定結果と確率を返す
  • Yes/No・選択式・段階評価の3種類に対応
  • 最大1,000問を1リクエストで評価できる
  • Pythonではclient.decisions.create()を使用する
  • 入力100万トークンあたり0.10米ドルで、出力トークン料金は発生しない
  • 信頼度を利用して、人間の確認へ処理を切り替えられる

個人的に興味深いのは、AIの役割が文章生成だけではなく、システムの内部で行う分類や処理の振り分けにも広がっていることです。

従来のWebアプリケーションでは、業務ルールに基づく条件分岐をプログラムに実装することが一般的でした。

今後は、明確なルールで判断できる部分は従来のプログラムで処理し、自然言語などを理解する必要がある部分では判定特化型AIを利用するという設計も選択肢になるでしょう。

ただし、最終的な処理の責任をAIへ任せるのではなく、アプリケーション側で検証や制御を行うことが重要です。

参考資料

※最終更新:2026年11月13日

是非フォローしてください

最新の情報をお伝えします

類似投稿