本文へ移動
NEWS
多機能AI

Gemini 2.5とは?コード生成やデータ分析などの実力を検証(コピペOK)

更新 2026/9/2 読了 約45分
暗い星空背景に、青く光るデジタルな立体構造と「Gemini 2.5」の白いテキストが表示されている。複数の層状の光るパネルが相互接続され、ネットワークやデータの流動を表現している。
この記事の要点

2025年3月にリリースされたGemini 2.5について、コード生成やデータ分析の実力をベンチマークで検証しています。GPT-4.5やClaude 3.7との比較結果のほか、月額約2,900円のGemini Advancedの始め方や活用のコツも解説します。

SHARE

いまの状況(2026年9月1日)
Gemini 2.5 はいま主力ではありません。2026年9月時点のGeminiは 3.6 Flash と 3.1 Pro が中心です。無料でも 3.6 Flash が使えます。この記事は Gemini 2.5 が現役だった時期の内容を残しています。

2025年3月にGoogle DeepMindがリリースしたGemini 2.5は、それまでのGeminiシリーズから推論力やコード生成能力を大きく伸ばしたモデルです。自然言語処理から画像・音声のマルチモーダル入力まで対応しており、あらゆる分野での活用が広がりました。

しかし、機能が多彩すぎるがゆえに「何ができるの?」「どのプランを選べばいい?」「自分の目的に本当に使えるの?」と、逆に悩んでしまいますよね。

そこでこの記事では、Gemini 2.5の仕組みや特長、利用できるプラン、他のAIとの性能比較、実際の活用シーンまで、わかりやすく解説します。

藤井俊太のアバター

AI導入コンサルタント

藤井俊太(Shunta Fujii)

AIのスペシャリストとして、最新のAI情報を常にキャッチ、アップデートしている。自らもAI導入コンサルタントとして活動し、主に生成AIを駆使した業務効率化、生産性向上、新規事業開発を行なっている。
AInformationは、AIツールの料金や求人、資格を自分で調べて数えているAIのデータメディアです。個人のAI選びにも、企業のAI導入にも使える数字を出しています。運営と記事の確認は藤井俊太が1人で行っています。藤井俊太のプロフィール

...続きを読む

Gemini 2.5とは?

2025年3月にGoogle DeepMindが発表したGemini 2.5は、これまでのGeminiシリーズを大きく進化させたモデルです。従来モデルと比べて、論理的な思考力・プログラミング能力・マルチモーダル処理の精度が大幅に向上しており、研究開発からビジネス・教育分野まで幅広く活用されてきました。

特に、自然言語だけでなく画像や音声といった複数の情報形式を扱える柔軟性と、複雑な問題に対しても一貫した文脈理解と推論を行う能力は、従来のAIを大きく上回るポイントです。

では、Gemini 2.5の仕組みや特徴、利用できるプラン、他のAIとの性能比較について解説します。

Gemini 2.5の仕組み・従来との比較

「複雑なタスクに最適な最先端モデルをお試しください」の文字とGemini 2.5 Pro EXPのロゴが並んだ黒い背景のバナー画像

AInformation調べプログラミングや開発に使うAIツールはいくらで使えるか

ツール月あたり無料
GeminiGoogle AI プラン最安725円/月Google AI Plus○
GrokX Premium980円/月プレミアム×
ChatGPT1,400円/月Go○
Hostinger Website Builder1,499円/月Premium×
STUDIO1,980円/月Team○
Perplexity$17/月Pro/約2,716円×
Claude Code$18/月Pro/年払い/約2,876円○

2026年9月1日時点でAInformationが調べたもの。金額はそのツールを使える一番安い有料プランの月あたり。プログラミングや開発に使うAIツール68本のうち、日本円で払えるのは7本、無料で試せるのは35本。表に出したのは画面が日本語のもの。外貨は1ドル159.76円で換算

Gemini 2.5は、Google DeepMindが開発したAIモデルで、従来のGemini 2.0 Flash Thinkingから大きく進化しています。Gemini 2.0は高速な思考処理に優れたモデルとして設計されていましたが、Gemini 2.5ではより深い推論能力や複雑な文脈理解が可能となるよう、根本的な基盤モデルが強化されています。

さらに、ポストトレーニングの工程にも改良が加えられており、ユーザーからのフィードバックを反映する仕組みや追加学習によって、実用的で信頼性の高い出力が得られるようになりました。

Gemini 2.5は、テキストのみならず画像や音声といったマルチモーダルな情報も処理できる点が特徴であり、従来モデルでは難しかった複合的なタスクにも対応できる柔軟性を備えています。また、コード生成の精度とスピードも向上しており、開発者にとっても強力なサポートとなるAIに進化しています。

全体として、Gemini 2.5は単なる思考支援ツールにとどまらず、多様な分野で高度な意思決定を支援するための統合的なAIモデルとして位置付けられています。

Gemini 2.5が使える料金プラン

「Gemini Advanced」の文字と「1か月間無料で試す」のボタンが紫色の光る背景に入った紹介ページの画面
プラットフォーム料金(税込)主な利用対象備考
Gemini Advanced月額 約2,900円個人ユーザーGoogle One「AI Premium」加入が必要
Google AI Studio基本無料(従量課金あり)開発者・検証目的無料枠あり。上限超過で課金発生
Vertex AI(近日提供)従量課金(詳細未定)企業・大規模開発者Google Cloud上で提供、API経由で利用可能

Gemini Advancedは、月額料金が固定で分かりやすく、個人ユーザーがAIのフル機能を利用するには最も手軽です。Google Oneの「AI Premiumプラン」に加入することで利用できます。

Google AI Studioは、開発者がGemini 2.5を手軽に試せる環境で、無料枠もあるため検証目的に向いています。商用利用や継続的な開発には、使用量に応じた料金が発生します。

なお、主に法人の利用がメインのVertex AIでも、近日中に利用が開始される見込みです。(2025年3月27日現在)価格はリクエスト数や処理内容に応じた従量課金制です。システム統合や業務自動化を目的とした大規模な活用に適しています。

Gemini 2.5の得意分野

Gemini 2.5のコード生成の性能を英語で説明した、「Advanced coding」の見出しと本文が白い背景に並んだ画面

Gemini 2.5は、従来モデルに比べて大幅に強化された推論能力とコード生成能力を備えており、様々な高度なタスクに対応できる点が大きな特徴です。特に、長文や複雑な命題を扱う際の文脈理解や、多段階の論理的な思考が求められる場面で高い精度を発揮します。

たとえば、複数の条件が絡む意思決定のサポートや、仮説の立案と検証を行うような推論タスクにおいて、自然で的確な回答を導き出すことが可能です。

また、プログラミング分野においても、Python・JavaScript・TypeScriptをはじめとする複数の言語でのコード生成やデバッグ、改善提案に対応しています。ユーザーが自然言語で「こんな機能がほしい」と指示するだけで、実用的なコードを自動生成でき、アプリ開発や業務自動化の効率を大幅に向上させます。

そのほか、マルチモーダル入力への対応によって、テキストだけでなく、画像や音声を含んだ情報処理も得意です。これにより、教育・デザイン・データ分析など、幅広い分野での応用が可能になっています。特に、情報を多角的に捉え、構造化されたアウトプットとして提示する能力に優れています。

Gemini 2.5 Proと他のAIとの性能比較

Gemini 2.5 ProとOpenAIやClaudeやGrokなど他社のAIモデルを、推論と科学と数学の3つのテストで比べた棒グラフの図

Gemini 2.5 Proと他の主要AIモデルの性能比較を表にまとめました。

ベンチマークGemini 2.5 ProOpenAI o3-miniGPT-4.5Claude 3.7 SonnetGrok 3 BetaDeepSeek R1
Humanity’s Last Exam(推論・知識)18.8%14.0%6.4%8.9%–8.6%
GPQA diamond(科学)84.0%79.7%71.4%78.2%80.2%71.5%
AIME 2025(数学)86.7%86.5%–49.5%77.3%70.0%
AIME 2024(数学)92.0%87.3%36.7%61.3%83.9%79.8%
LiveCodeBench v5(コード生成)70.4%74.1%––70.6%64.3%
Aider Polyglot(コード編集)74.0% / 68.6%(whole/diff)60.4%(diff)44.9%(diff)64.9%(diff)–56.9%(diff)
SWE-bench verified(コーディング)63.8%49.3%38.0%70.3%–49.2%
SimpleQA(事実性)52.9%13.8%62.5%43.6%–30.1%
MMMU(視覚的推論)81.7%–74.4%75.0%76.0%–
Vibe-Eval(画像理解)69.4%–––––
MRCR(長文理解)94.5% (128k)61.4%64.0%–––
Global MMLU Lite(多言語知識)89.8%–––––

Gemini 2.5 Proは、さまざまな分野で他の主要AIモデルを上回る、または同等以上の性能を示していました。

特に、Humanity’s Last Examのような知識と推論力を問うベンチマークでは18.8%というスコアを記録し、GPT-4.5の6.4%、Claude 3.7の8.9%に対して大きな差をつけていました。ツールなしでどれだけ複雑な問題に答えられるかを見るもので、Gemini 2.5 Proの思考力の高さを示しています。

科学や数学の分野では、GPQA diamondで84.0%、AIME 2025で86.7%、AIME 2024では92.0%という高得点を獲得しており、いずれもClaudeやGrokを上回るか、それに匹敵する性能を誇ります。

コード生成では、LiveCodeBench v5で70.4%と高い実行成功率を示しており、o3-miniの74.1%とほぼ同等の水準でした。さらに、Aider Polyglotによるコード編集のスコアでも全体74.0%、差分ベース68.6%という高水準を維持していました。

実際のコーディング課題を対象としたSWE-bench verifiedでも63.8%と好成績で、Claude 3.7の70.3%に次ぐ性能でした。一方、SimpleQA(事実性)ではGPT-4.5が最も高いスコアの62.5%を示しましたが、Geminiも52.9%と安定した成績を残していました。

Gemini 3.1 Proの始め方・登録方法

Gemini 3.1 Proを利用するには、まずGeminiの公式サイトにアクセスします。

Gemini公式サイト

Geminiの公式サイトで、中央に「あなただけの AI アシスタント、Gemini のご紹介」と出て右上に「ログイン」のボタンがある画面

右上の「ログイン」から、ご自身のGoogleアカウントでログインしましょう。Googleアカウントを持っていない場合は、作成してください。

ログイン後のGeminiのホーム画面で、右上に「Gemini Advanced を試す」のボタンが表示された暗い配色の画面

ログイン後、右上の「Gemini Advancedを試す」をクリックすると、Google Oneプランの案内が出てきます。

Google Oneの「Gemini Advanced」の案内ページで、無料期間とその後の月額を示して「アップグレード」のボタンがある画面

Google AI Proプラン(月2,900円)を購入すると、Gemini 3.1 Proが使えるようになっています。

Gemini Advancedの画面左上でプルダウンメニューを開き、モデルの一覧から「2.5 Pro (experimental)」を選ぶところの画面

Gemini 3.1 Proの使い方

Gemini公式サイト

Geminiログイン・Google Oneプランの購入が完了したら、左上の「Gemini Advanced」をクリックしましょう。

Gemini Advancedの画面左上でプルダウンメニューを開き、モデルの一覧から「2.5 Pro (experimental)」を選ぶところの画面

すると、プルダウンメニューが出てくるので「3.1 Pro」を選択してください。この状態で、画面下部の「Geminiに相談」にプロンプトを入れると、Gemini 3.1 Proが使えます。

例えば「「スキマ時間で英語を学ぶ方法」について説得力のあるプレゼン骨子を作って。」と送ってみると、思考プロセスとともに回答が表示されました。

Gemini 2.5 Proに「スキマ時間で英語を学ぶ方法」のプレゼン骨子を頼み、思考プロセスが英語で表示されたチャット画面
Geminiが返した英語学習のプレゼン骨子の冒頭で、「スキマ時間を制覇せよ!」のタイトルと目的と所要時間が並ぶ画面
英語学習のプレゼン骨子の続きで、導入の話し方の例とスキマ時間の学習が有効な理由の項目が並ぶ画面
英語学習のプレゼン骨子の続きで、通勤中や休憩中や家事の合間の学習法とおすすめアプリの項目が並ぶ画面
英語学習のプレゼン骨子の続きで、「成功のためのヒント」と「まとめと行動喚起」の項目が並ぶ画面
英語学習のプレゼン骨子の最後に、エンディングメッセージと補足資料の案が並んだ回答の画面

なお、プロンプト入力欄の左下にある「+」マークを押すと、画像やファイルなどをアップすることが可能です。また、右下のマイクのマークを押すと、音声入力もできます。Gemini 2.5 Proはマルチモーダル機能を備えているので、テキスト以外のデータもどんどん活用していけます。

Geminiのプロンプト入力欄で、左下の「+」ボタンと右下のマイクのアイコンが見える暗い配色の画面

Gemini 2.5 Proの活用例

Gemini 2.5 Proは、単なるチャットAIの枠を超え、さまざまな実務や創造的タスクをサポートできる強力なツールです。長文読解からコード生成、データ分析、教育現場での活用まで応用範囲は広く、多くのシーンで役立てられています。

では、具体的にどのような形でGemini 2.5 Proを活用できるのか、実際の事例を交えながら紹介していきます。

複雑な内容の長文も一括で要約・検索

Gemini 2.5 Proは、長文処理に優れたAIモデルです。文脈の流れや主旨を正確に捉えて、わかりやすく要約できます。特に、専門的なレポート・論文・契約書・議事録など、情報量が多く複雑な構成を持つ文書でも、一度に全体を読み取り、重要なポイントを抽出する能力に長けています。

たとえば、「このPDFの内容を3つの要点にまとめてください」「このレポートから市場動向に関する部分だけを抽出して要約してください」といった指示にも対応可能です。目的や視点を明確に伝えることで、読み手にとって意味のある要約が得られます。

また、全文を一読することなく「〇〇というキーワードに関連する箇所だけ教えて」といった検索的な使い方も有効です。Gemini 3.1 Proは文書全体を把握した上で、該当する部分を抽出し、文脈を損なわずに回答するため、効率よく情報を把握できます。

では実際に、環境省の「令和6年版 環境・循環型社会・生物多様性白書」から、23ページ分の内容を要約してもらいました。

持続可能な地域と暮らしの実現

この送付したPDFファイルについて、内容を読み取って、3つの要点にまとめて。

GeminiにPDFファイルを渡して「3つの要点にまとめて」と頼み、地域循環共生圏を挙げた1つ目の要点が返ってきたチャット画面
GeminiがPDFを要約した回答の続きで、デコ活など脱炭素の暮らしと災害対策の要点が並んだ画面

しっかりと内容を押さえて、具体的にまとめられていることがわかります。

簡単な指示からWebアプリケーションを自動生成

Gemini 3.1 Proは、プログラミングスキルがない人でも簡単な指示でWebアプリケーションの開発をスムーズに進められるよう支援する強力なAIです。

フロントエンド(HTML/CSS/JavaScript)やバックエンド(Python/Node.jsなど)の基本的な構成を把握しており、フォームやテーブル・検索機能・API連携など、よくある機能をテンプレート化して提案します。さらに、「Reactで作って」「データベースはSQLiteで」といった技術スタックの指定にも柔軟に対応可能です。

また、生成されたコードはそのまま動作させるだけでなく、「もっとボタンを目立たせたい」「入力チェックを追加して」などの追加修正指示も自然文で可能なため、開発工程が対話ベースで進められるのも特徴です。開発の経験がある人にとっては、プロトタイピングのスピードを大きく向上させる手段となり、初心者にとってはコーディング学習のサポート役としても活用できます。

では実際に、「みんなを驚かせられるようなクオリティのWEBアプリ作って欲しいんだよね」という雑な指示からスタートして、作ってみます。

Geminiに「みんなを驚かせられるようなクオリティのWEBアプリ作って欲しいんだよね」と頼み、承知する返事が出たチャット画面

4つほどアイディアを出してくれたので、「インタラクティブ・カラーパレットジェネレーター」を作ってみることにします。

GeminiがHTMLとCSSとJavaScriptだけで作れるWebアプリの案として、カラーパレットジェネレーターなどを挙げた回答の画面

まずは、HTMLとCSSのみ作って、デザインの確認を促してきました。

Geminiのコード生成で、カラーパレットジェネレーターの見た目を作るHTMLとCSSのコードが表示された画面

ちょっとイメージと違ったので「もうちょい装飾欲しいかも」と雑な指示を投げてみると、具体的にどこを変えたらいいかの案を出してくれました。

Geminiに「もうちょい装飾欲しいかも」と伝え、背景のグラデーションやWebフォントなど装飾の案が返ってきたチャット画面

デザインにOKを出すと、次はいよいよJavaScriptの実装に入りました。

GeminiがJavaScriptのコード生成に進み、「色生成」と「色適用」の処理の流れを説明した画面

生成されたコードはこちらです。

<!DOCTYPE html>
<html lang=”ja”>
<head>
    <meta charset=”UTF-8″>
    <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
    <title>インタラクティブ・カラーパレット</title>
    <link rel=”preconnect” href=”https://fonts.googleapis.com”>
    <link rel=”preconnect” href=”https://fonts.gstatic.com” crossorigin>
    <link href=”https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap” rel=”stylesheet”>
    <link rel=”stylesheet” href=”https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css” integrity=”sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==” crossorigin=”anonymous” referrerpolicy=”no-referrer” />
  <style>
        /* CSSは前回と同じなので省略 */
        :root {
            –color-1: #f2f2f2; –color-2: #e0e0e0; –color-3: #cccccc; –color-4: #b8b8b8; –color-5: #a3a3a3;
            –bg-color-start: #ffffff; –bg-color-end: #f5f5f5;
            –text-color: #333333; –transition-duration: 0.6s;
        }
        html { overflow-y: scroll; }
        body {
            min-height: 100vh; margin: 0; font-family: ‘Poppins’, sans-serif;
            background-image: linear-gradient(to bottom, var(–bg-color-start), var(–bg-color-end));
            background-repeat: no-repeat; background-attachment: fixed; color: var(–text-color);
            display: flex; justify-content: center; align-items: center; text-align: center;
            transition: color var(–transition-duration) ease; background-color: var(–bg-color-start);
        }
        .container { padding: 20px; }
        .palette {
            display: flex; margin-bottom: 45px; height: 250px; min-width: 300px; max-width: 600px;
            width: 80vw; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1); border-radius: 12px; overflow: hidden;
        }
        .color-box {
            flex: 1; background-color: var(–color-1); display: flex; justify-content: center; align-items: flex-end;
            padding-bottom: 20px; box-sizing: border-box; position: relative;
            transition: background-color var(–transition-duration) ease;
        }
        .color-box:nth-child(1) { background-color: var(–color-1); }
        .color-box:nth-child(2) { background-color: var(–color-2); }
        .color-box:nth-child(3) { background-color: var(–color-3); }
        .color-box:nth-child(4) { background-color: var(–color-4); }
        .color-box:nth-child(5) { background-color: var(–color-5); }
        .color-code {
            background-color: rgba(0, 0, 0, 0.6); color: #ffffff; padding: 5px 10px; font-size: 13px;
            border-radius: 4px; font-family: ‘Menlo’, monospace; opacity: 0; transition: opacity 0.3s ease;
            pointer-events: none; position: absolute; bottom: 20px;
        }
        .color-box:hover .color-code { opacity: 1; }
        #generate-btn {
            width: 60px; height: 60px; font-size: 1.6rem; line-height: 60px; text-align: center; padding: 0;
            color: var(–text-color); background-color: #ffffff; border: 1px solid #e0e0e0; border-radius: 50%;
            cursor: pointer; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); transition: all 0.2s ease;
        }
        #generate-btn:hover {
            background-color: #f9f9f9; border-color: #d0d0d0; box-shadow: 0 7px 15px rgba(0, 0, 0, 0.1);
            transform: translateY(-2px);
        }
        #generate-btn:active {
            transform: scale(0.95) translateY(0px); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.07);
        }
    </style>
</head>
<body>
<div class=”container”>
    <div class=”palette”>
        <div class=”color-box”><span class=”color-code”>#XXXXXX</span></div>
        <div class=”color-box”><span class=”color-code”>#XXXXXX</span></div>
        <div class=”color-box”><span class=”color-code”>#XXXXXX</span></div>
        <div class=”color-box”><span class=”color-code”>#XXXXXX</span></div>
        <div class=”color-box”><span class=”color-code”>#XXXXXX</span></div>
    </div>
    <button id=”generate-btn” title=”Generate New Palette”>
        <i class=”fas fa-arrows-rotate”></i>
    </button>
</div>
<script>
    const generateBtn = document.getElementById(‘generate-btn’);
    const colorBoxes = document.querySelectorAll(‘.color-box’); // 全てのカラーボックス(今回は直接は使わないが取得)
    const colorCodes = document.querySelectorAll(‘.color-code’); // 全てのカラーコード表示用span
    // — 色生成 & 変換ロジック —
    // ランダムなHSLカラーを生成する関数 (鮮やかめ、中間的な明るさ)
    function generateRandomHsl() {
        const h = Math.floor(Math.random() * 361); // 色相 (0-360)
        const s = Math.floor(Math.random() * 31) + 65; // 彩度 (65-95%) – 鮮やかさを担保
        const l = Math.floor(Math.random() * 31) + 35; // 明度 (35-65%) – 極端な白/黒を避ける
        return { h, s, l };
    }
    // HSLをRGBに変換する関数 (0-255範囲)
    // 参考: https://www.w3.org/TR/css-color-3/#hsl-color を元に調整
    function hslToRgb(h, s, l) {
        s /= 100;
        l /= 100;
        let r, g, b;
        if (s === 0) {
            r = g = b = l; // 無彩色
        } else {
            const hue2rgb = (p, q, t) => {
                if (t < 0) t += 1;
                if (t > 1) t -= 1;
                if (t < 1 / 6) return p + (q – p) * 6 * t;
                if (t < 1 / 2) return q;
                if (t < 2 / 3) return p + (q – p) * (2 / 3 – t) * 6;
                return p;
            };
            const q = l < 0.5 ? l * (1 + s) : l + s – l * s;
            const p = 2 * l – q;
            r = hue2rgb(p, q, h / 360 + 1 / 3);
            g = hue2rgb(p, q, h / 360);
            b = hue2rgb(p, q, h / 360 – 1 / 3);
        }
        return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
    }
    // RGB値を16進数カラーコード(#RRGGBB)に変換する関数
    function rgbToHex(r, g, b) {
        const toHex = (c) => c.toString(16).padStart(2, ‘0’); // 1桁の場合も0で埋める
        return `#${toHex(r)}${toHex(g)}${toHex(b)}`.toUpperCase();
    }
    // 5色のランダムパレット(HEXコード配列)を生成する関数
    function generateRandomPalette() {
        const palette = [];
        for (let i = 0; i < 5; i++) {
            const { h, s, l } = generateRandomHsl();
            const [r, g, b] = hslToRgb(h, s, l);
            const hexColor = rgbToHex(r, g, b);
            palette.push(hexColor);
        }
        return palette;
    }
    // — パレット適用ロジック —
    // 生成されたパレットを画面に適用する関数
    function applyPalette(palette) {
        palette.forEach((color, index) => {
            const colorIndex = index + 1;
            // ★重要★ CSS変数 (–color-1, –color-2, …) の値を更新
            document.documentElement.style.setProperty(`–color-${colorIndex}`, color);
            // 対応するカラーコード表示 (span要素) のテキストを更新
            if (colorCodes[index]) {
                colorCodes[index].textContent = color;
            }
        });
        // — オプション:背景色や文字色も動的に変更する場合 —
        // 例:今回は背景・文字色は固定のままですが、もし変えたい場合は
        // ここでパレットの色から適切な色を選び、–bg-color や –text-color を更新します。
        // コントラスト比などを考慮する必要があり、少し複雑になります。
        // document.documentElement.style.setProperty(‘–bg-color’, palette[0]); // 例: 1番目の色を背景に
        // document.documentElement.style.setProperty(‘–text-color’, determineTextColor(palette[0])); // 背景色に合わせた文字色
    }
    // — イベントリスナー & 初期化 —
    // ボタンクリック時の処理
    function handleGenerateClick() {
        // 新しいパレットを生成
        const newPalette = generateRandomPalette();
        // 生成したパレットを画面に適用
        applyPalette(newPalette);
    }
    // ボタンにクリックイベントリスナーを追加
    generateBtn.addEventListener(‘click’, handleGenerateClick);
    // ページ読み込み時に最初のパレットを生成・適用(初期表示のため)
    // 少し遅延させることで、初期のグレーから色が変化する様子を見せる(お好みで)
    // setTimeout(handleGenerateClick, 100); // 0.1秒後
    // すぐに表示する場合
    handleGenerateClick();
</script>
</body>
</html>

実際に動かしてみると、このようにクリックするたびにカラーパターンが生成されました。

CSVファイルを読み込ませてビジネスデータ分析

「データのクリーニング、分析、可視化」の文字と折れ線グラフの画面例が黒い背景に入った、Geminiの機能を紹介するバナー画像

Gemini 3.1 Proは、CSVファイルのような表形式データの解析にも対応しており、ビジネスにおける意思決定やレポート作成に役立ちます。売上データ・顧客情報・アクセスログなど、日々蓄積されるデータを読み込ませるだけで、自然言語での指示に従って自動的に分析・要約・可視化できます。

たとえば、「このCSVから月別の売上推移をグラフにしてください」「最も売上が高い商品カテゴリを教えてください」「前年比の増減率を表にまとめてください」といった指示をテキストで与えるだけで、適切な分析とアウトプットが返ってきます。特に、集計・フィルタ・ソート・グラフ化などの基本的なデータ処理は、複雑なスクリプトを書くことなく実行できるため、非エンジニアにも扱いやすい点が魅力です。

また、ビジネスでよくある異常値の検出・傾向の分析・KPIの可視化といったタスクにも対応しており、簡単な問いかけを繰り返すことで、インタラクティブに深掘り分析を進めることも可能です。たとえば、「この月だけ売上が下がっている理由は?」と尋ねることで、関連指標や他データとの相関をもとに仮説的な答えを導いてくれる場合もあります。

では、実際にダミーの売上データCSVを作って、解析を頼んでみましょう。ところが、いざやってみようとすると、CSVデータがグレーアウトしてしまって選択できません。

Macのファイル選択画面で「ダウンロード」フォルダを開くと、PDFが3つ並んでCSVとHTMLのファイルが灰色で選べない画面

それなら、Googleドライブ経由でGoogleスプレッドシートのデータを読み込んでもらおう!と思ったのですが、Googleドライブ内でも選択できるのはドキュメントやプレゼンテーションのみです。

Googleドライブの「ファイルの選択」画面で、選べる種類としてテキストドキュメントとプレゼンテーションとフォルダが並んだ画面

現状まだこの機能は、Gemini 3.1 Proでは利用できない場合もあります。

GeminiがCSVのアップロードは今は使えない可能性があると答え、中身をコピー&ペーストする代わりの方法を示したチャット画面

生徒向け教材・図解つき解答の自動生成

Gemini 3.1 Proは、難解な数式や論理的な思考を要する問題に強く、教育現場でも有用なツールです。特に数学のように、段階的な解法や図解が理解のカギを握る分野で力を最大限に発揮します。

たとえば、「高校2年生向けに微分の応用問題を解説して」「関数の最大値・最小値の求め方を図付きで説明して」といった指示を出せば、問題文の理解から式の立て方、途中計算、解の導出までをステップごとにわかりやすく整理します。さらに、グラフや図形を用いた視覚的な補足も加えられるため、生徒の直感的な理解を助けます。

また、「この証明問題を中学生にもわかるように言い換えて」「図形の合同条件を図と一緒に教えて」など、生徒の学年や習熟度に応じた出力ができる点も強みです。形式ばった解説ではなく、丁寧で会話調の説明にすることも可能で、堅苦しくなりがちな数理分野に柔らかさを加えることもできます。

では、実際に数学の問題の作問と図つきの解説を依頼してみましょう。

高校数学Ⅱの範囲から「微分の応用」に関する練習問題を1問作成し、図つきで丁寧に解説してください。ステップごとの計算過程も示してください。

Geminiが高校数学IIの微分の応用の練習問題を作り、問題文と図のコードを表示した回答の画面

解説もしっかり出してくれていますね。

数学の練習問題の解説で、ステップ1の範囲の確認とステップ2の容積を式で表す手順が並んだGeminiの画面
数学の練習問題の解説の続きで、ステップ3の微分とステップ4の方程式とステップ5の増減表が並んだGeminiの画面
数学の練習問題の解説の最後で、ステップ6の最大容積を計算してxが2のときの容積が128になると示したGeminiの画面

ところが、この図のMermaidコードをMermaid Live Editorで表示しようとしたところ、エラーが出てしまいました。

Mermaid Live Editorにコードを貼ると、コード欄の下に赤い構文エラーの「Lexical error on line 59」が出た画面

何度もエラー修正を繰り返しましたが解消できず、Gemini 2.5 Pro自身が諦めるモードに入りました。結局、図については見ることができませんでした。

Geminiにエラーの内容を伝えると、お詫びの言葉とともに図の表示を諦めようと答えたチャット画面

AIエージェント開発でチャットボット作成

Gemini 2.5 Proは、複雑な指示の理解とマルチターンの対話設計に長けています。チャットボットやAIエージェントの開発にも適しています。とくに従来のテンプレートベースのチャットボットとは異なり、柔軟な言語理解と高度な推論力を活かして、より自然で目的に沿った対話設計が可能です。

たとえば、「カスタマーサポート向けのAIエージェントを作りたい」「ユーザーの質問に対してFAQから回答を生成し、必要に応じて予約ページへ誘導して」といった複合的な指示にも対応でき、チャットフローの全体設計からスクリプトの生成、ロジックの分岐までを一括で構築できます。

開発者はGemini 2.5 Proに「このような対応をするボットをJavaScriptで作成して」と指示するだけで、実際のコードやAPI連携部分まで自動生成できます。非エンジニアでも「こういう受け答えにして」「この条件なら別の質問を返して」といった自然言語のプロンプトを通じて、高度な対話設計を構築できる点が魅力です。

レストランのLINE風チャットボットを設計してください。ユーザーの質問に応じて、営業時間・メニューの案内、予約ページのURL案内などを行います。「予約したい」と言われたら人数と希望時間を聞き、URLに誘導してください。JavaScriptで簡易的なコードもください。

Geminiがレストラン向けのLINE風チャットボットの設計案を示し、目的と主な機能を並べた回答の画面

この簡単な指示だけで、内容や機能まで考え、簡易的にテストできるHTMLとJavaScriptを生成してくれました。

HTML
<!DOCTYPE html>
<html lang=”ja”>
<head>
    <meta charset=”UTF-8″>
    <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
    <title>レストランチャットボット</title>
    <style>
        body { font-family: sans-serif; }
        #chatbox {
            height: 400px;
            border: 1px solid #ccc;
            overflow-y: scroll;
            padding: 10px;
            margin-bottom: 10px;
            background-color: #f0f0f0; /* LINE風背景 */
        }
        .message {
            margin-bottom: 10px;
            padding: 8px 12px;
            border-radius: 15px;
            max-width: 70%;
            word-wrap: break-word;
        }
        .user {
            background-color: #86e57f; /* LINE風 ユーザー吹き出し */
            margin-left: auto; /* 右寄せ */
            text-align: left;
        }
        .bot {
            background-color: #ffffff; /* LINE風 ボット吹き出し */
            margin-right: auto; /* 左寄せ */
            text-align: left;
            border: 1px solid #eee;
        }
        #userInput {
            width: calc(100% – 70px);
            padding: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        #sendButton {
            width: 60px;
            padding: 10px;
            border: none;
            background-color: #007bff;
            color: white;
            border-radius: 5px;
            cursor: pointer;
        }
        a { color: #007bff; text-decoration: none; }
        a:hover { text-decoration: underline; }
    </style>
</head>
<body>
<h1>レストランチャットボット</h1>
<div id=”chatbox”>
    <div class=”message bot”>いらっしゃいませ![レストラン名]へようこそ。ご用件をお知らせください。(例:営業時間、メニュー、予約)</div>
</div>
<div>
    <input type=”text” id=”userInput” placeholder=”メッセージを入力…”>
    <button id=”sendButton”>送信</button>
</div>
<script src=”chatbot.js”></script>
</body>
</html>

JavaScript
const chatbox = document.getElementById(‘chatbox’);
const userInput = document.getElementById(‘userInput’);
const sendButton = document.getElementById(‘sendButton’);
// — 設定項目 —
const restaurantName = “サンプルレストラン”; // レストラン名を設定
const businessHours = “営業時間は、ランチ 11:30〜14:00、ディナー 17:00〜22:00(ラストオーダー 21:30)です。定休日は水曜日です。”;
const menuUrl = “https://example.com/menu”; // メニューページのURLを設定
const reservationUrl = “https://example.com/reserve”; // 予約ページのURLを設定
const phoneNumber = “03-xxxx-xxxx”; // 電話番号を設定
// — —
let reservationState = ‘idle’; // ‘idle’, ‘asking_people’, ‘asking_time’
let reservationInfo = {
    people: null,
    time: null
};
// — イベントリスナー —
sendButton.addEventListener(‘click’, handleUserInput);
userInput.addEventListener(‘keypress’, function(e) {
    if (e.key === ‘Enter’) {
        handleUserInput();
    }
});
// — 関数 —
// メッセージをチャットボックスに表示
function displayMessage(sender, message) {
    const messageDiv = document.createElement(‘div’);
    messageDiv.classList.add(‘message’, sender);
    // URLをリンクに変換(簡易版)
    message = message.replace(/(https?:\/\/[^\s]+)/g, ‘<a href=”$1″ target=”_blank”>$1</a>’);
    messageDiv.innerHTML = message; // HTMLとして挿入
    chatbox.appendChild(messageDiv);
    chatbox.scrollTop = chatbox.scrollHeight; // 自動スクロール
}
// ユーザー入力を処理
function handleUserInput() {
    const userText = userInput.value.trim();
    if (userText === ”) return;
    displayMessage(‘user’, userText);
    userInput.value = ”; // 入力欄をクリア
    // ボットの応答を生成・表示 (少し遅延させると自然に見える)
    setTimeout(() => {
        const botResponse = generateBotResponse(userText);
        displayMessage(‘bot’, botResponse);
    }, 500); // 0.5秒遅延
}
// ボットの応答を生成
function generateBotResponse(userText) {
    const lowerUserText = userText.toLowerCase(); // 比較のために小文字に
    // 予約フローの状態に応じた処理
    if (reservationState === ‘asking_people’) {
        // 人数に対する応答を期待
        const peopleMatch = userText.match(/(\d+)\s*(人|名)/); // 数字と「人」または「名」を探す
        if (peopleMatch && peopleMatch[1]) {
            reservationInfo.people = peopleMatch[1];
            reservationState = ‘asking_time’;
            return `${reservationInfo.people}名様ですね。ご希望の時間は何時頃でしょうか? (例: 19時、18:30)`;
        } else {
            // 人数がうまく聞き取れなかった場合
            return “恐れ入ります、人数を「〇人」または「〇名」の形式で教えていただけますでしょうか?”;
        }
    } else if (reservationState === ‘asking_time’) {
        // 時間に対する応答を期待 (簡易的なキーワードで判定)
        if (lowerUserText.includes(‘時’) || lowerUserText.includes(‘:’)) {
            reservationInfo.time = userText; // 入力された時間をそのまま保持
            reservationState = ‘idle’; // 予約フロー完了
            const response = `${reservationInfo.time}頃ですね、承知いたしました。\nご予約はこちらのページからお願いいたします。\n${reservationUrl}\nご希望の日時と人数(${reservationInfo.people}名様)を選択してご予約ください。`;
            // 予約情報をリセット
            reservationInfo = { people: null, time: null };
            return response;
        } else {
            // 時間がうまく聞き取れなかった場合
            return “恐れ入ります、ご希望の時間を「〇時」や「〇:〇」の形式で教えていただけますでしょうか?”;
        }
    }
    // 通常のキーワード応答
    if (lowerUserText.includes(‘こんにちは’) || lowerUserText.includes(‘こんばんは’) || lowerUserText.includes(‘どうも’)) {
        return `いらっしゃいませ!${restaurantName}です。ご用件をお知らせください。(例:営業時間、メニュー、予約)`;
    } else if (lowerUserText.includes(‘営業’) || lowerUserText.includes(‘何時まで’) || lowerUserText.includes(‘開いてる’)) {
        return businessHours;
    } else if (lowerUserText.includes(‘メニュー’) || lowerUserText.includes(‘食べ物’) || lowerUserText.includes(‘飲み物’) || lowerUserText.includes(‘なにがある’))
        return `メニューはこちらのページをご覧くださいませ。\n${menuUrl}`;
    } else if (lowerUserText.includes(‘予約’) || lowerUserText.includes(‘席’) || (lowerUserText.includes(‘お願い’) && lowerUserText.includes(‘します’))) {
        reservationState = ‘asking_people’;
        return “ご予約ですね、ありがとうございます。ご利用人数は何名様でしょうか?”;
    } else if (lowerUserText.includes(‘ありがとう’) || lowerUserText.includes(‘助かり’)) {
        return “どういたしまして。他にご不明な点はございますか?”;
    } else if (lowerUserText.includes(‘電話’) || lowerUserText.includes(‘番号’)) {
        return `お電話でのお問い合わせは ${phoneNumber} までお願いいたします。`;
    } else {
        // デフォルト応答
        return `申し訳ありません、よく分かりません。\n「営業時間」「メニュー」「予約」などのキーワードでお尋ねいただくか、お電話(${phoneNumber})でお問い合わせください。`;
    }
}
// 初期メッセージ
// displayMessage(‘bot’, `いらっしゃいませ!${restaurantName}へようこそ。ご用件をお知らせください。(例:営業時間、メニュー、予約)`);
// HTML側で初期メッセージを表示するようにしたので、JS側はコメントアウト

実際に動かしてみた結果がこちらです。

しっかり受け答えができていることがわかります。

Gemini 2.5 Proを最大限に活用するコツ

Gemini 2.5 Proの能力を最大限に引き出すには、AIの特性に合わせたプロンプト設計とマルチモーダル機能の活用が効果的です。

では、思考型・推論型モデルの特性を踏まえたプロンプトの作り方や、複数の情報形式に対応する指示の出し方など、Gemini 3.1 Proをより賢く・便利に使いこなすための実践的なコツを紹介します。

思考型・推論型モデルに合ったプロンプトを作る

Geminiに「あなたはデータアナリストです」と役割を決めてこしあんと粒あんの比較を頼み、分析の回答が返ってきた画面

Gemini 3.1 Proは、単なる質問応答を超えて、深い思考や複雑な推論を必要とするタスクに適したAIです。能力を最大限に引き出すため、プロンプトではロール設定・思考ステップの明示・出力形式の指定を意識しましょう。

まず、ロール設定とは、AIに対して「あなたは〇〇の専門家です」や「あなたはデータアナリストです」といった役割を与えることです。AIはその立場に応じた文脈や表現を使って回答するようになり、より的確で実用的な出力が得られます。

次に、思考ステップの明示です。Gemini 3.1 Proは論理的に考えるのが得意なため、「ステップ・バイ・ステップで考えてください」「まずは仮説を立ててから検証してください」など、思考の流れを誘導することで、精度の高い結果を引き出せます。

最後に、出力形式の指定も効果的です。たとえば「表形式でまとめてください」「箇条書きで答えてください」「コードで出力してください」といった具体的な指示を与えることで、より読みやすく整理された結果が得られます。

マルチモーダル機能で形式を超えた指示をする

GeminiにPDFファイルを渡して「このファイルを3行で要約して」と頼み、第六次環境基本計画の要約が返ってきたチャット画面

Gemini 3.1 Proは、テキストに加えて画像やファイルなど、さまざまな形式の情報を同時に処理できるマルチモーダル機能が特徴です。強みを活かすには、単にデータを渡すのではなく、「どう読み取って、どう処理してほしいか」を明確にプロンプトで伝えましょう。

たとえば、画像を使う場合は「このグラフの内容を3行で要約してください」「この図をもとにレポートの導入文を書いてください」など、目的や出力形式を具体的に指定することで、より実用的な回答が得られます。

CSVや表形式のファイルを扱う場合は、「このデータの中で最も売上が高い月を教えてください」「前年比の伸び率をカテゴリごとに分析して、表で出力してください」など、ファイルの中身に対する処理内容をはっきり伝えることがポイントです。

また、画像+テキストのように複数の形式を同時に使う指示も有効です。たとえば「このチラシ画像とこの文章を組み合わせて、SNS用の投稿文を作ってください」といったマルチメディア的な活用もできます。

Gemini 3.1 Proの注意点

Gemini 3.1 Proからはどれほど優れた出力が得られるとしても、AIは万能ではなく、正確性や情報の鮮度、文脈の継続性などの面で限界があります。特に、事実と異なる情報の生成・最新の出来事に関する知識の不足・セッションをまたいだやり取りに弱い点などは、ユーザー自身がカバーすべきポイントです。

ここでは、Gemini 3.1 Proを安全かつ効果的に使いこなすために、あらかじめ把握しておくべき代表的な注意点を紹介します。

事実と異なる内容を堂々と生成することがある

Geminiの入力欄の下に、回答は不正確なことがあるので再確認するよう促す小さな注意書きが出た画面

Gemini 3.1 Proは高精度な推論と生成能力を備えたAIですが、完全に誤りのない情報を返すわけではありません。特に注意すべき点として、もっともらしく見えるが、事実と異なる内容を生成することがある点が挙げられます。いわゆる「ハルシネーション」と呼ばれる現象で、AIが存在しない情報を自信満々に語ってしまうことです。

たとえば、存在しない統計データや出典を提示したり、実在しない人物の発言や論文を引用したりするケースもあります。あくまで言語パターンや文脈から「ありそう」と判断して生成されたものであり、必ずしも裏付けのある事実とは限りません。

Gemini 3.1 Proを使って情報収集や文章作成を行う際は、生成された内容をそのまま鵜呑みにせず、信頼できる情報源での裏取りやファクトチェックを行いましょう。特にビジネス文書や研究資料、公開する情報など、正確性が求められる場面では慎重な扱いが求められます。

AIの回答は参考意見として活用し、最終的な判断や確認は人間が担うという姿勢が、安心して活用するための基本です。Gemini 3.1 Proの優れた出力力を活かしつつ、事実確認を欠かさない運用を心がけましょう。

最新情報を知るには別途データを読み込ませる必要がある

Gemini 2.5 Proのモデル情報の表で、最終更新日が2025年3月で知識のカットオフが2025年1月と載った画面

Geminiは学習データをもとに動作するため、その範囲外の出来事やアップデートやトレンドには対応していません。そのため「昨日のニュースを要約して」「今週の為替動向を教えて」といったリアルタイム性が求められる質問には、正確に答えることができません。

こうした情報のギャップを埋めるためには、ユーザー自身が最新データを読み込ませる必要があります。具体的には、Webページの内容を貼り付けたり、最新のニュース記事やCSVファイルなどをアップロードしたりした上で「この内容を要約してください」「このデータに基づいて分析してください」と指示を出す方法が有効です。

また、リアルタイム性が重要なタスクでは、Gemini単体で完結させるより外部データや人間の確認と組み合わせると信頼性が上がります。AIは情報の鮮度に限界があるため、最新情報が必要な場面ではサポート役として使うことを意識しましょう。

セッション間の情報保持はサポート外の可能性がある

Geminiに「昨日の続きからお願いします」と頼み、前回の会話の内容を記憶していないと答えが返ってきたチャット画面

Geminiは1回のセッション内での文脈理解に優れていますが、セッションをまたいで情報を記憶・保持する機能は正式にはサポートされていない可能性があります。そのため、前回のやり取りの内容やユーザーの意図を次のセッションで自動的に引き継ぐことは基本的にできません。

たとえば、あるプロジェクトに関する会話を複数日に分けて行いたい場合でも、「昨日の続きからお願いします」や「前に話したデータを覚えていますか?」といった指示には対応できず、再度その情報を提供する必要があります。これは、セキュリティやプライバシーの観点からも設計上意図された仕様です。

したがって、継続的なやり取りや長期的な文脈を維持したい場合は、セッションの冒頭で必要な情報を明示的に共有することが推奨されます。

  • プロジェクトや会話の背景
  • これまでにやり取りした要点や結論
  • 続きから扱ってほしい具体的な内容や課題

例:「昨日は◯◯という課題について話しました。本日はその続きを議論したいので、以下がこれまでの経緯です……」

セッションごとに文脈を再構成する習慣をつけることで、Geminiの出力品質を保ちながらスムーズにやり取りできます。

Geminiのよくある質問

Gemini 2.5 Proのフル機能を使うには有料プランが必要ですか?

個人がフル機能を使うにはGoogle AI Pro(月2,900円)への加入が必要です。無料で試したい場合はGoogle AI Studioが選択肢です。基本無料で使えますが、使用量が無料枠を超えると課金が発生します。法人向けにはVertex AIの従量課金制が用意されています。

Gemini 2.5 ProとGPT-5.6・Claudeはどちらを選べばいいですか?

用途次第で変わります。数学・推論・科学の分野ではGemini 2.5 Proが優位で、数学ベンチマーク(AIME 2025)では86.7%と他モデルをリードしていました。コード生成(LiveCodeBench)はGPT-4.5が74.1%に対しGemini 2.5 Proが70.4%とほぼ同水準でした。事実の正確さを重視する用途ではGPT-4.5(SimpleQA 62.5%)が上でした。長文理解や多言語知識を重視するならGemini 2.5 Proが有利です。

プログラミング未経験でもGemini 2.5 Proでアプリを作れますか?

自然言語で指示するだけでコードが自動生成されるので、プログラミング経験がなくてもアプリ開発を進めやすくなります。「こんな機能がほしい」と入力するだけで実用的なコードが得られます。「ボタンを目立たせたい」のような追加修正も自然文で指示できるため、開発工程を対話形式で進められます。初心者にはコーディング学習のサポートとしても使えます。

次に読む記事

SHARE

広告を載せており、そこから申し込みがあると紹介料を受け取ることがあります。

よく読まれている定番ガイド60本
この記事に出てくるAIも、まとめて比べられます 507本のAIツールを、やりたいこと・料金・日本語対応で絞り込めるデータベースです。5日ごとに料金を取り直しています。 AIツールを探す

あわせて読みたいRELATED