SECTION 18

実践: リーガルチェックAI

Gemini API × Google Apps Script で契約書を自動分析・リスク判定するシステムを構築する

calendar_today 2026 LCREATOR.Inc Google AI 研修プログラム

SECTION 18 — 課題定義

リーガルチェックが抱える課題

PROBLEM
平均3日
弁護士への依頼から回答まで
30%
人的ミスで見落とされるリスク条項の割合
hourglass_empty

時間コストの問題

1件の契約書レビューに法務担当者が平均2〜3時間。月100件超の企業では人員が追いつかない。

person_off

属人化のリスク

担当者によって確認する条項にばらつきが生じる。チェックリストがあっても見落としが発生する。

見落としが起きやすい条項

  • 免責条項(損害賠償の上限・除外)
  • 自動更新・解約の通知期限
  • 知的財産権の帰属(成果物の所有権)
  • 準拠法・管轄裁判所
  • 守秘義務の範囲と期間

AIを使えば、チェックリストの標準化・高速化・見落とし防止を同時に実現できる。ただし最終判断は必ず弁護士が行う。

SECTION 18 — 仕組み

AIリーガルチェックの仕組み

HOW IT WORKS
description Google Docs
契約書
入力
arrow_forward
code GAS
前処理
分割
arrow_forward
psychology Gemini API
分析
AI判定
arrow_forward
table_chart スプレッドシート
リスク一覧
レポート
arrow_forward
gavel 弁護士
最終確認
承認

AIが担う部分

条項の抽出・リスクの分類・重要度スコアリング・改善提案の草案作成を高速で処理する。

人間が担う部分

AIの分析結果を踏まえた最終判断・交渉方針の決定・契約の締結・署名はすべて人間が行う。

期待される効果

初回レビュー時間を3日→数時間に短縮。見落としを低減し、弁護士は高度な判断業務に集中できる。

SECTION 18 — 適用範囲

対象文書の種類

SCOPE

AIリーガルチェックが有効な文書カテゴリ

handshake

NDA(秘密保持契約)

守秘義務の範囲・期間・例外条項のチェックに最適。パターンが比較的固定されているため精度が高い。

work

業務委託契約

成果物の知的財産権帰属・瑕疵担保責任・再委託の可否などが重要な確認ポイント。

receipt_long

利用規約・プライバシーポリシー

個人情報の取り扱い・データの利用目的・第三者提供のチェック。法改正への対応確認にも有効。

文書種類 AI適性 主な確認項目
NDA 守秘期間、例外規定
業務委託 IP帰属、再委託可否
売買契約 品質保証、支払条件
賃貸借契約 原状回復、中途解約
M&A・投資契約 要注意 複雑。必ず弁護士と併用

SECTION 18 — プロンプト設計

リーガルチェック用プロンプトの型

PROMPT

リスク分類・条項分析に特化した構造化プロンプト

PROMPT const LEGAL_CHECK_PROMPT = ` あなたは日本の契約法に精通した法務AIアシスタントです。 以下の契約書のテキストを分析し、下記のJSON形式で 回答してください。 ## 分析の観点 1. リスクのある条項を特定する 2. 各リスクを HIGH/MEDIUM/LOW に分類する 3. 具体的な懸念内容を説明する 4. 修正の方向性を提案する(弁護士確認が必要な旨を明記) ## 出力形式 { "document_type": "契約書種別", "overall_risk": "HIGH/MEDIUM/LOW", "summary": "全体的な評価(2〜3文)", "risk_items": [ { "category": "リスクカテゴリ", "clause": "問題のある条項の引用", "risk_level": "HIGH/MEDIUM/LOW", "concern": "懸念内容の説明", "suggestion": "修正の方向性" } ], "missing_clauses": ["不足している条項のリスト"], "disclaimer": "この分析はAIによる参考情報です。最終判断は弁護士にご確認ください。" } ## 契約書テキスト {{CONTRACT_TEXT}} `;

プロンプト設計の重要ポイント

  • 役割を明示: 「日本の契約法に精通した」と具体的に指定
  • リスクレベルの定義: HIGH/MEDIUM/LOWの基準を明示する
  • 免責文言の強制: 弁護士確認が必須な旨をJSON内に必ず含める
  • 不足条項の指摘: 存在する問題だけでなく欠けている条項も確認する
warning
注意: プロンプト内で「法的アドバイスを提供してください」と指示すると、AIが過度に断定的な回答を返す可能性がある。「分析と懸念点の指摘」という表現に留める。

実装

Google Docs → GAS → Gemini API の実装手順

SECTION 18 — 実装

Google Docsから契約書を読み込む

IMPL 01

DocumentApp APIを使ってDocsの本文テキストを取得する

GAS function getContractText(docId) { const doc = DocumentApp.openById(docId); const body = doc.getBody(); // 全テキストを取得 const fullText = body.getText(); // 段落ごとに分割して構造を保持 const paragraphs = body.getParagraphs() .map(p => p.getText()) .filter(t => t.trim() !== ''); return { fullText, paragraphs, title: doc.getName(), charCount: fullText.length }; } // スプレッドシートのメニューからも呼べるように function onOpen() { SpreadsheetApp.getUi() .createMenu('リーガルチェック') .addItem('新しい契約書を分析', 'runLegalCheck') .addItem('レポートを出力', 'exportReport') .addToUi(); }

DocumentApp の主要メソッド

openById(id) IDでDocsを開く
getBody() 本文オブジェクト取得
getText() 全テキスト文字列取得
getParagraphs() 段落配列を取得
lightbulb
DocのURLから末尾のIDをコピーして使用する。例: `https://docs.google.com/document/d/DocId部分/edit`

SECTION 18 — 実装

Gemini APIで契約書分析: 長文のチャンク分割

IMPL 02

長い契約書をチャンク分割してAPIに送信する処理

GAS // Geminiの入力上限に合わせてテキストを分割 const MAX_CHARS = 100000; // 約100k文字 function analyzeContract(contractText) { const apiKey = PropertiesService .getScriptProperties() .getProperty('GCP_PROJECT_ID'); // 短い契約書はそのまま処理 if (contractText.length <= MAX_CHARS) { return callGeminiApi(apiKey, contractText); } // 長い場合はチャンクに分割して処理 const chunks = splitIntoChunks( contractText, MAX_CHARS ); const results = chunks.map((chunk, i) => { Utilities.sleep(1000); // レート制限対策 return callGeminiApi( apiKey, chunk, `(第${i+1}部 / 全${chunks.length}部)` ); }); // 複数の結果を統合 return mergeAnalysisResults(results); }

チャンク分割の戦略

  • 段落境界で分割: 条項の途中で切れないよう改行で区切る
  • オーバーラップ: 前のチャンクの末尾を次の先頭に重ねて文脈を維持
  • 章・条番号で分割: 「第1条」「第2条」などの番号を境界として使う
check_circle
Gemini 2.0 Flash は100万トークン(約75万文字)のコンテキストウィンドウを持つ。通常の契約書(〜30ページ程度)はチャンク分割不要で処理できる。

SECTION 18 — 実装

リスク分類: 高・中・低の自動判定

IMPL 03
HIGH 高リスク条項の例
  • 損害賠償の上限が著しく低い(報酬の10%以下など)
  • 一方的な契約変更権(相手方の同意不要)
  • 知的財産権が全て相手方に帰属する
  • 準拠法・管轄が相手方有利な外国法
MEDIUM 中リスク条項の例
  • 解約通知期限が短すぎる(30日未満)
  • 守秘義務の期間が不明確
  • 成果物の納品基準が曖昧
LOW 低リスク(確認推奨)
  • 支払い条件の確認(振込先・期日)
  • 連絡窓口・通知方法の確認
GAS function classifyRisks(analysisResult) { const riskItems = analysisResult.risk_items; // リスクレベル別に分類 const classified = { high: riskItems.filter(r => r.risk_level === 'HIGH'), medium: riskItems.filter(r => r.risk_level === 'MEDIUM'), low: riskItems.filter(r => r.risk_level === 'LOW') }; // 総合リスクスコアを算出 const score = classified.high.length * 3 + classified.medium.length * 2 + classified.low.length * 1; return { classified, score, overallRisk: score >= 9 ? 'HIGH' : score >= 4 ? 'MEDIUM' : 'LOW' }; }

SECTION 18 — 実装

分析結果のレポート出力

IMPL 04

スプレッドシートへのリスクレポート書き込みコード

GAS function writeRiskReport(docTitle, result) { const ss = SpreadsheetApp.getActiveSpreadsheet(); // レポートシートを取得 or 作成 let sheet = ss.getSheetByName('リスクレポート'); if (!sheet) { sheet = ss.insertSheet('リスクレポート'); sheet.appendRow([ '分析日時', '文書名', '総合リスク', 'カテゴリ', 'リスクレベル', '懸念内容', '修正提案' ]); } // 各リスク項目を1行ずつ書き込み result.risk_items.forEach(item => { sheet.appendRow([ new Date(), docTitle, result.overall_risk, item.category, item.risk_level, item.concern, item.suggestion ]); }); // HIGH リスクをハイライト applyRiskFormatting(sheet); }

条件付き書式でリスクを色分け

HIGH: 赤背景でハイライト
MEDIUM: 黄背景でハイライト
LOW: 緑背景でハイライト
picture_as_pdf
スプレッドシートのレポートは「ファイル > ダウンロード > PDF」でそのまま弁護士に共有できる形式で出力できる。

チェック項目

必ず確認すべき重要条項と業界別のチェックポイント

SECTION 18 — チェック項目

主要チェックポイント 5項目

CHECKLIST
gavel

免責条項と損害賠償の上限

「損害賠償しない」「月額報酬の1倍を上限」などの記述を特定し、不利な場合は交渉する。

cancel

解約条件と通知期間

自動更新の有無・解約通知期限(30日以上)・中途解約時の違約金を確認する。

warning_amber

違約金・ペナルティ条項

遅延損害金の利率・納品遅れのペナルティ・違約金の計算式が合理的かを確認する。

lightbulb

知的財産権の帰属

開発成果物・コンテンツの著作権が委託者・受託者どちらに帰属するか確認する。

lock

守秘義務の範囲と期間

秘密情報の定義・契約終了後の守秘期間(2〜5年が一般的)・例外事由を確認する。

SECTION 18 — チェック項目

業界別チェックリスト

INDUSTRY
computer

IT・SaaS業界

  • SLAのダウンタイム許容範囲(99.9%など)
  • データの所有権と利用権(学習利用の可否)
  • セキュリティ要件・ISO認証の要求
  • API利用制限・過剰使用時の課金
  • バックアップ・復旧のSLA
apartment

不動産業界

  • 原状回復の範囲(ガイドライン準拠か)
  • 敷金・礼金の返還条件
  • 修繕義務の分担(貸主・借主)
  • 転貸・民泊利用の禁止条件
  • 契約更新拒絶の正当事由要件
shopping_cart

小売・EC業界

  • 返品・返金ポリシーの範囲と期間
  • 売上手数料の計算方法・条件変更権
  • 独占販売権・テリトリー制限
  • 商標・ブランドの利用許諾条件
  • 在庫管理・廃棄コストの負担

ハンズオン

サンプル契約書を使ってAIリーガルチェックを体験しよう

SECTION 18 — ハンズオン

ハンズオン 1: サンプル契約書をAI分析

HANDS-ON 01
約20分
想定所要時間
中級
難易度
個人
作業形式
1

配布のサンプル契約書(Google Docs)を開く

研修資料に添付のNDAサンプルを開き、DocのURLからIDを控える

2

スプレッドシートとGASを新規作成

スプレッドシートを作成 > 「拡張機能」>「Apps Script」> サンプルコードを貼り付けて保存

3

APIキーを設定してrunLegalCheck()を実行

setApiKey()で設定後、Geminiに契約書テキストを送信してレスポンスを確認する

4

分析結果を「リスクレポート」シートで確認

HIGH / MEDIUM / LOW のリスク項目が色分けされて一覧表示されることを確認する

SECTION 18 — ハンズオン

ハンズオン 2: リスクレポート自動生成

HANDS-ON 02

リスクの色分けと自動PDF出力を追加する

GAS function applyRiskFormatting(sheet) { const lastRow = sheet.getLastRow(); const riskCol = 5; // E列 = リスクレベル for (let i = 2; i <= lastRow; i++) { const cell = sheet.getRange(i, riskCol); const level = cell.getValue(); const row = sheet.getRange(i, 1, 1, 7); if (level === 'HIGH') { row.setBackground('#fce8e6'); cell.setFontColor('#c5221f') .setFontWeight('bold'); } else if (level === 'MEDIUM') { row.setBackground('#fef7e0'); cell.setFontColor('#e37400') .setFontWeight('bold'); } else { row.setBackground('#e6f4ea'); cell.setFontColor('#137333'); } } }

完成レポートの確認ポイント

  • HIGHリスク項目が赤背景で表示されている
  • 各リスクに「懸念内容」と「修正提案」が記載されている
  • 「不足している条項」リストが出力されている
  • 免責文言(弁護士確認が必要な旨)が含まれている
share
完成したレポートのスプレッドシートを弁護士と共有すれば、AIの指摘箇所を起点にスムーズなレビューが可能。弁護士のレビュー時間を削減できる。

SECTION 18 — 重要事項

AIリーガルチェックの限界と注意事項

CAUTION
gavel
弁護士の最終確認が必須
AIによる分析は法的アドバイスではありません。契約書の締結・修正・交渉の判断は、必ず資格を持つ弁護士に最終確認を依頼してください。
error

ハルシネーションのリスク

AIは存在しない条項を「ある」と報告したり、条項の意味を誤解する可能性がある。出力は必ず原文と照合する。

update

法改正への非対応

AIのトレーニングデータには最新の法改正が反映されていない場合がある。特に個人情報保護法・電子契約法は頻繁に改正される。

translate

外国語契約書の精度低下

英語・中国語等の外国語契約書はGeminiでも分析可能だが、日本法との齟齬を確認する必要がある。

security

機密情報の取り扱い

契約書にはM&A・個人情報等の機密情報が含まれる。Gemini APIへの送信前に情報の機密分類を確認し、必要であれば匿名化する。

AIリーガルチェックは「弁護士の代替」ではなく、「弁護士の作業効率化ツール」として活用する。

SECTION 18 — まとめ

このセクションで学んだこと

SUMMARY
description

契約書読み込みと前処理

DocumentApp APIでGoogle Docsのテキストを取得し、長文をチャンク分割してGemini APIに送信する方法を習得した。

tune

リーガルチェック専用プロンプト

リスク分類・条項分析に特化したJSON出力プロンプトを設計し、HIGH/MEDIUM/LOW の3段階でリスクを自動判定する方法を学んだ。

table_chart

レポート自動生成と可視化

分析結果をスプレッドシートに書き込み、リスクレベル別に色分けしたレポートを自動生成する実装を完成させた。

AIリーガルチェックの最大の価値は「スピード」と「標準化」。担当者の経験に依存せず、常に同じチェックリストで高速にリスクを洗い出せる。

絶対に忘れてはいけないこと

  • AIの分析は「参考情報」。最終判断は弁護士が行う
  • 機密情報をAPIに送る前に情報分類を確認する
  • 法改正情報はAIが持っていない可能性を常に意識する

SECTION 18 完了

リーガルチェックAIの設計・実装・レポート生成が完了しました

check_circle Google AI 研修プログラム 全課程修了
SLIDES
19
HANDS-ON
2
CAUTIONS
4
🏠 研修ポータル ▶ この章の動画 📺 動画一覧