GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/API / SDK
API / SDK/2026-03-28初級

Gemini API で文書要約・議事録生成を自動化する

Gemini API を使って文書要約や議事録の自動生成を行う方法を、Python コード例付きで解説します。長文テキスト・PDF・音声ファイルの要約テクニックから、Google ドキュメントへの自動出力まで実践的に紹介します。

gemini102gemini-api279python103summarization3automation34document-processingmeeting-notes

Gemini API による文書要約の魅力

日々の業務で膨大なドキュメントに目を通し、会議の議事録を作成する作業は、多くのビジネスパーソンにとって大きな負担です。Gemini API の長大なコンテキストウィンドウ(最大 100 万トークン)を活用すれば、こうした作業を高精度に自動化できます。

テキストだけでなく PDF や音声ファイルの要約にも対応する、実用的なアプローチを紹介します。

環境準備と API キーの取得

まずは Gemini API を使うための環境を整えましょう。Google AI Studio でアカウントを作成し、API キーを発行します。

必要なライブラリをインストールします。

pip install google-genai python-dotenv

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

# .env ファイル
GEMINI_API_KEY=YOUR_API_KEY

基本的なクライアントの初期化コードは以下のとおりです。

import os
from dotenv import load_dotenv
from google import genai
 
load_dotenv()
 
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))

Gemini API の基本的なセットアップについて詳しくは、Gemini API クイックスタートガイドも参考にしてください。

テキスト文書の要約を実装する

もっとも基本的なユースケースとして、長文テキストの要約から始めましょう。Gemini 3 Flash は高速かつコスト効率に優れたモデルで、要約タスクに最適です。

def summarize_text(text: str, style: str = "bullet") -> str:
    """テキストを要約する
 
    Args:
        text: 要約対象のテキスト
        style: "bullet"(箇条書き)または "paragraph"(段落形式)
 
    Returns:
        要約されたテキスト
    """
    if style == "bullet":
        prompt = f"""以下のテキストを、重要なポイントを箇条書きで要約してください。
各ポイントは1〜2文で簡潔にまとめてください。
 
テキスト:
{text}"""
    else:
        prompt = f"""以下のテキストを300文字以内の段落形式で要約してください。
核心となる情報を漏らさず、読みやすい文章にしてください。
 
テキスト:
{text}"""
 
    response = client.models.generate_content(
        model="gemini-3-flash",
        contents=prompt
    )
    return response.text
 
# 使用例
long_document = """
(ここに要約したい長文テキストを入れます)
"""
 
# 箇条書き形式で要約
summary = summarize_text(long_document, style="bullet")
print(summary)
# 出力例:
# - ポイント1: ...
# - ポイント2: ...
# - ポイント3: ...

ポイントは、プロンプトで出力形式を明確に指定することです。「箇条書き」「段落形式」「表形式」など、用途に応じたフォーマットを指示することで、後続の処理が格段に楽になります。

PDF ファイルの要約を実装する

Gemini API はマルチモーダル対応のため、PDF ファイルを直接アップロードして内容を要約できます。OCR 処理を別途行う必要がないのは大きな利点です。

import pathlib
 
def summarize_pdf(pdf_path: str) -> str:
    """PDFファイルを要約する
 
    Args:
        pdf_path: PDFファイルのパス
 
    Returns:
        PDFの要約テキスト
    """
    # PDFファイルをアップロード
    pdf_file = client.files.upload(
        file=pathlib.Path(pdf_path)
    )
 
    response = client.models.generate_content(
        model="gemini-3-flash",
        contents=[
            "以下のPDF文書の内容を要約してください。"
            "主要なトピック、結論、アクションアイテムを"
            "それぞれ分けて整理してください。",
            pdf_file
        ]
    )
    return response.text
 
# 使用例
summary = summarize_pdf("quarterly_report.pdf")
print(summary)
# 出力例:
# 【主要トピック】
# - 第4四半期の売上は前年比15%増
# - 新製品ラインの市場投入が完了
#
# 【結論】
# - 年間目標を達成し...
#
# 【アクションアイテム】
# - 来期の予算案を4月までに策定

PDF の解析精度をさらに高めたい場合は、Gemini API PDF 解析ガイドで詳しいテクニックを紹介しています。

音声ファイルから議事録を自動生成する

会議の録音データから議事録を自動生成する機能は、実務でとくに需要が高いユースケースです。Gemini API は音声ファイルを直接処理できるため、別途文字起こしサービスを使う必要がありません。

def generate_meeting_notes(audio_path: str) -> str:
    """音声ファイルから議事録を生成する
 
    Args:
        audio_path: 音声ファイルのパス(mp3, wav, m4a 等)
 
    Returns:
        構造化された議事録テキスト
    """
    audio_file = client.files.upload(
        file=pathlib.Path(audio_path)
    )
 
    prompt = """この音声は会議の録音です。以下の形式で議事録を作成してください。
 
【会議の概要】
(1〜2文で全体の概要を記述)
 
【議題と決定事項】
- 議題1: (内容と決定事項)
- 議題2: (内容と決定事項)
 
【アクションアイテム】
- 担当者名: タスク内容(期限)
 
【次回の予定】
(次回の会議日時やアジェンダがあれば記載)"""
 
    response = client.models.generate_content(
        model="gemini-3-flash",
        contents=[prompt, audio_file]
    )
    return response.text
 
# 使用例
notes = generate_meeting_notes("team_meeting_20260328.m4a")
print(notes)
# 出力例:
# 【会議の概要】
# プロダクトチームの週次定例。新機能のリリーススケジュールと
# QAプロセスの改善について議論した。
#
# 【議題と決定事項】
# - リリース日程: 4月15日に確定
# - QA自動化: Seleniumテストの導入を承認
#
# 【アクションアイテム】
# - 田中: テスト計画書の作成(4/3まで)
# - 鈴木: CI/CDパイプラインの更新(4/5まで)

音声ファイルのサイズが大きい場合は、File API を使ったアップロードが必要です。詳しくは Gemini API ファイルアップロードガイドをご覧ください。

複数文書の横断要約を実装する

プロジェクトに関連する複数の文書をまとめて分析し、横断的な要約を生成するケースも考えてみましょう。Gemini の長大なコンテキストウィンドウが真価を発揮する場面です。

def cross_document_summary(documents: list[dict]) -> str:
    """複数文書を横断的に要約する
 
    Args:
        documents: [{"title": "文書名", "content": "本文"}, ...] のリスト
 
    Returns:
        横断的な要約テキスト
    """
    docs_text = ""
    for i, doc in enumerate(documents, 1):
        docs_text += f"\n--- 文書{i}: {doc['title']} ---\n{doc['content']}\n"
 
    prompt = f"""以下の{len(documents)}件の文書を分析し、横断的に要約してください。
 
求める出力:
1. 全文書に共通するテーマや結論
2. 文書間で矛盾する情報や異なる見解(あれば)
3. 全体を通じた重要なインサイト3つ
 
{docs_text}"""
 
    response = client.models.generate_content(
        model="gemini-3-pro",  # 複雑な分析には Pro モデルを使用
        contents=prompt
    )
    return response.text
 
# 使用例
documents = [
    {"title": "市場調査レポート", "content": "..."},
    {"title": "競合分析資料", "content": "..."},
    {"title": "顧客フィードバック集計", "content": "..."},
]
insight = cross_document_summary(documents)
print(insight)

複数の大容量文書を処理する場合、API コストが気になるかもしれません。同じ文書セットを繰り返し分析するなら、Gemini API コンテキストキャッシュ完全ガイドで解説しているキャッシュ機能を使うことで、コストを大幅に削減できます。

要約結果を構造化データとして取得する

要約の結果を後続のシステムで処理しやすいように、JSON 形式で取得する方法も紹介します。Gemini API の構造化出力機能を使えば、型安全な出力が得られます。

from google.genai import types
 
# レスポンスのスキーマを定義
summary_schema = types.Schema(
    type="object",
    properties={
        "title": types.Schema(type="string", description="要約のタイトル"),
        "key_points": types.Schema(
            type="array",
            items=types.Schema(type="string"),
            description="重要ポイントのリスト"
        ),
        "action_items": types.Schema(
            type="array",
            items=types.Schema(
                type="object",
                properties={
                    "task": types.Schema(type="string"),
                    "assignee": types.Schema(type="string"),
                    "deadline": types.Schema(type="string"),
                },
            ),
            description="アクションアイテム"
        ),
        "sentiment": types.Schema(
            type="string",
            enum=["positive", "neutral", "negative"],
            description="文書全体のトーン"
        ),
    },
)
 
def summarize_structured(text: str) -> dict:
    """構造化された要約を返す"""
    response = client.models.generate_content(
        model="gemini-3-flash",
        contents=f"以下の文書を要約してください:\n\n{text}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=summary_schema
        )
    )
    import json
    return json.loads(response.text)
 
# 使用例
result = summarize_structured(long_document)
print(result)
# 出力例:
# {
#   "title": "Q4営業レポート要約",
#   "key_points": [
#     "売上目標を12%上回って達成",
#     "新規顧客獲得数が過去最高を記録"
#   ],
#   "action_items": [
#     {"task": "来期計画の策定", "assignee": "営業部長", "deadline": "2026-04-15"}
#   ],
#   "sentiment": "positive"
# }

全体を振り返って

Gemini API を使った文書要約・議事録生成の自動化について、基本的なテキスト要約から PDF 処理、音声ファイルの議事録生成、複数文書の横断分析、構造化出力まで幅広く紹介しました。

Gemini の大きなコンテキストウィンドウとマルチモーダル対応により、従来は複数のツールを組み合わせる必要があった処理を、1 つの API で完結できるようになっています。まずは簡単なテキスト要約から試して、徐々に PDF や音声ファイルの処理にも挑戦してみてください。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

API / SDK2026-06-17
Gemini CLI 終了前に、自動化スクリプトを API へ載せ替えた記録
6/18 に Gemini CLI のホスト応答が停止します。シェルから gemini を呼んでいた自動化スクリプトを、google-genai SDK へ安全に載せ替える手順を、構造化出力・リトライ・コスト計測まで含めて実装ベースでまとめました。
API / SDK2026-03-29
Gemini API で多言語翻訳・ローカライゼーションを自動化する
Gemini API を使って多言語翻訳やアプリのローカライゼーションを自動化する方法を Python コード付きで解説。バッチ処理・用語集管理・品質チェックまで網羅します。
API / SDK2026-03-20
Gemini API × Python で AI データ分析エージェントを構築する — Code Execution・Function Calling・Structured Output 統合ガイド
Gemini API の Code Execution、Function Calling、Structured Output を組み合わせ、CSV/Excel を自動解析し可視化・レポート生成まで行う AI データ分析エージェントを Python で構築する実践ガイド。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →