賃貸借契約書と重要事項説明書の特約欄を、自社の例文集と消費者契約法で無効になりやすい書き方に照らして校正し、契約前に直しの案を担当へ返す
賃貸借契約書と重要事項説明書の特約欄を、契約の前に1条ずつ校正します。自社の特約の例文集と、消費者契約法で無効とされやすい書き方の一覧に照らして指摘を出し、直しの案を付けて営業担当へ返します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Power Automate
- 対象業界
- 不動産/建設
- 対象部門
- 営業/法務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 校正
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 営業担当が賃貸管理システムから契約書と重説を書き出し、特約欄を書き足して案件フォルダに置く
- 契約課の担当が、契約日の近いものから案件フォルダを開く
- 契約書の特約欄を1条ずつ読み、例文集のどれに当たるかを思い出しながら見比べる
- 違約金の額、クリーニング代、通常損耗の負担など、気になる書き方がないかを見る
- 重説の特約欄を開き、契約書と同じ文言かを見比べる
- 直してほしい箇所を Word のコメントに書き、営業担当へメールで返す
- 判断に迷うものは、法務部の担当か顧問弁護士へ相談する
- 人営業担当が特約欄を書き足した契約書と重説を案件フォルダに置き、社内の画面で「特約チェック」を押す
- 自動2つの Word から特約欄を取り出し、1条ずつに分ける
- 自動契約書と重説の特約を条ごとに突き合わせ、文言の差分を出す
- 自動金額・率・日数を拾い、遅延損害金の率など数値で決まるものを規則で見る
- 自動例文集から、各条に近い例文の候補を取り出す
- 自動Azure OpenAI が、例文との違い、注意の型への当てはまり、表記の乱れを指摘し、直しの案を出す
- 自動指摘の引用が特約の原文に実在するかを照合し、`clean` / `fix_suggested` / `legal_review` を規則で決める
- 人契約課の担当が `fix_suggested` と `legal_review` の指摘を確かめる
- 人直しの案を採るかを決め、営業担当へ返す。`legal_review` は法務担当へ回す
- 人営業担当が直し、もう一度「特約チェック」を押す
各工程の詳しい説明を読む
- 営業担当が賃貸管理システムから契約書と重説を書き出し、特約欄を書き足して案件フォルダに置く
- 契約課の担当が、契約日の近いものから案件フォルダを開く
- 契約書の特約欄を1条ずつ読み、例文集のどれに当たるかを思い出しながら見比べる
- 違約金の額、クリーニング代、通常損耗の負担など、気になる書き方がないかを見る
- 重説の特約欄を開き、契約書と同じ文言かを見比べる
- 直してほしい箇所を Word のコメントに書き、営業担当へメールで返す
- 判断に迷うものは、法務部の担当か顧問弁護士へ相談する
(a)見る深さが担当者で違う。 契約課の6名のうち、例文集をほぼ覚えている人は2名です。残りの4名は例文集を開いて探しながら見るので、時間がかかるか、似た文を見逃すかのどちらかになります。
(b)少しだけ違う文が通る。 例文集の「専門業者による清掃を実施し、その費用として金○円(消費税別)を負担する」が、「退去時の清掃費用は借主の負担とする」に変わっていても、ぱっと見では同じ特約に見えます。 金額と範囲が消えたことに気づくかどうかは、その日の件数で決まります。
(c)契約書と重説で文言がずれる。 営業担当が契約書の特約を直したあと、重説の側を直し忘れることがあります。同じ特約を2か所に書いているので、片方だけ直ると食い違いが生まれます。
(d)繁忙期に件数が集中する。 1月から3月は件数が増え、契約日の直前に回ってくるものが増えます。確認が浅くなるのは、いちばん件数が多い時期です。
- 【人】 営業担当が特約欄を書き足した契約書と重説を案件フォルダに置き、社内の画面で「特約チェック」を押す
- 【自動】 2つの Word から特約欄を取り出し、1条ずつに分ける
- 【自動】 契約書と重説の特約を条ごとに突き合わせ、文言の差分を出す
- 【自動】 金額・率・日数を拾い、遅延損害金の率など数値で決まるものを規則で見る
- 【自動】 例文集から、各条に近い例文の候補を取り出す
- 【自動】 Azure OpenAI が、例文との違い、注意の型への当てはまり、表記の乱れを指摘し、直しの案を出す
- 【自動】 指摘の引用が特約の原文に実在するかを照合し、
clean/fix_suggested/legal_reviewを規則で決める - 【人】 契約課の担当が
fix_suggestedとlegal_reviewの指摘を確かめる - 【人】 直しの案を採るかを決め、営業担当へ返す。
legal_reviewは法務担当へ回す - 【人】 営業担当が直し、もう一度「特約チェック」を押す
8番目が、この設計の分かれ目です。 契約課は特約欄を一から読み直すのではなく、AIが指した箇所と、引用された原文を見て判断します。 clean と出たものも件数と物件名を一覧で流し見ます。
7番目を規則で決めているのも、意図してのことです。 どの指摘を差し戻しにし、どれを法務に回すかは会社の取り決めで、後から変わります。AIには指摘の種類を付けさせ、行き先は規則の側で決めます。
02今回想定するシステム構成
営業担当が契約書・重説(Word)を案件フォルダに置く ▼【トリガー】社内の画面で「特約チェック」を押す Azure Functions(HTTP で呼ばれる中継の処理) ├──▶ 2つの Word から特約欄を取り出し、1条ずつに分ける ├──▶ 契約書と重説の特約の差分を出す ├──▶ 金額・率・日数を拾い、規則で見る └──▶ 例文集から近い例文の候補を取り出す ▼ Azure OpenAI(構造化出力)── 条ごとの指摘と直しの案 ▼ Azure Functions ── 引用の実在の照合、判定(clean / fix_suggested / legal_review) ▼ 【契約課の担当が指摘を確認】 ├──▶ 営業担当へ直しの依頼(Teams) └──▶ 法務担当へ相談(legal_review のみ)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Azure Functions(特約欄の取り出し、差分、数値の規則、引用の照合) | Power Automate |
| 保管 | SharePoint(案件フォルダ、例文集、注意の型の一覧) | 社内のファイルサーバー |
| 通知 | Microsoft Teams(営業担当への直しの依頼) | Outlook のメール |
賃貸管理システムには書き込みません。 契約書の直しは営業担当が Word で行い、この構成は指摘と直しの案を出すところまでです。
Azure OpenAI を選ぶ理由は2つです。 1つは、構造化出力で JSON スキーマに沿った出力を受けられることです。Chat Completions API でも Responses API でも、スキーマを渡すと、それに厳密に従った出力が返るとされています。条ごとの指摘を決まった項目で受けられるので、後段の照合と判定が組めます。
もう1つは、データの扱いです。 公式の説明では、プロンプトと出力は他のお客様に提供されず、OpenAI にも提供されず、許可なく基盤モデルの学習に使われないとされています。入居者の氏名や連絡先が入る書類を扱うので、ここを先に確かめておきます。 ただし、Global や DataZone のデプロイでは処理の場所が指定の地域の外に広がりうるとされているので、デプロイの種類は社内の規程に合わせて選びます。
03どうやって実装するのか
処理の起点を決める
営業担当が社内の画面で「特約チェック」を押したときに動かします。 画面は案件番号を入れてボタンを押すだけのもので、Azure Functions を HTTP で呼びます。
フォルダへの保存を起点にしない理由は、営業担当が特約を書き足している途中のファイルも保存されるからです。 書きかけの契約書に指摘を返すと、通知が増えるだけで誰も読まなくなります。「書き終えた」という意思表示を、ボタンで受けます。
直したあとにもう一度押せば、同じ案件の2回目として動きます。2回目は前回の指摘が直ったかも返します。 契約課は差分だけを見れば足ります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 契約書(Word) | 特約欄の本文。条番号付き | 案件フォルダ |
| 重要事項説明書(Word) | 特約欄の本文。契約書と同じ特約を書く欄 | 案件フォルダ |
| 案件の属性 | 居住用か事業用か、借主が個人か法人か、ペットの可否、契約の種類(普通借家・定期借家) | 賃貸管理システムの案件情報 |
| 特約の例文集 | 例文の番号、題目、本文、必ず入れる要素(金額・範囲・単価)、使ってよい条件 | SharePoint |
| 注意の型の一覧 | 型の番号、書き方の例、関係する法令の条、扱い(直しの案か法務へ回すか) | SharePoint(法務と顧問弁護士で作る) |
| 表記の決まり | 「借主」「賃借人」のどちらを使うか、金額の書き方、消費税の表記 | SharePoint |
質を決めるのは、例文集の「必ず入れる要素」の列です。 クリーニングの特約なら「金額」と「消費税の内外」、通常損耗の負担なら「負担する範囲の具体的な列挙」と「単価」。この列があると、AIは「例文と言い回しが違う」ではなく「必ず入れる要素の金額が無い」と指摘できます。
注意の型の一覧は、法令の条文そのものではありません。 契約課が過去に直した書き方を、法務と顧問弁護士が型にまとめたものです。条文を渡して「無効かどうか判断して」と頼むと、AIが法的な判断をしてしまいます。型を渡して「どの型に近いか」を聞くのが、この構成の線引きです。
データの取得方法を決める
| 取るもの | どこから | 方法 |
|---|---|---|
| 契約書・重説 | 案件フォルダ | Microsoft Graph でファイルを取得 |
| 特約欄 | Word の本文 | 「特約事項」の見出しから次の見出しまでを取り出す |
| 案件の属性 | 賃貸管理システム | 案件番号で引く(CSV の書き出しでもよい) |
| 例文集・注意の型 | SharePoint | 版の番号付きで読み、関数の中に持つ |
特約欄の取り出しは、見出しの文字で行います。 賃貸管理システムの雛形は見出しが決まっているので、「特約事項」から次の見出しまでを取れば足ります。見出しが見つからないものは、雛形を崩した契約書なので、AIに渡さず人へ回します。
例文集と注意の型には版の番号を付けます。 例文集を直した日以降の判定と、それより前の判定を区別できないと、同じ特約に違う指摘が出た理由が追えなくなります。
AIへ渡す前に整形する
- 特約欄の取り出し … 契約書と重説のそれぞれから、特約欄の本文だけを取り出します
- 条ごとの分割 … 「1.」「(1)」「第1条」などの番号で分けます。番号が無い段落は1段落を1条とします
- 契約書と重説の対応付け … 条番号と本文の近さで、同じ特約どうしを組にします。片方にしか無い条は「片側のみ」と印を付けます
- 差分の算出 … 組になった条どうしの文字の差分を出します。ここは AI ではなく文字列の比較で行います
- 数値の抜き出し … 金額、率(%)、日数、か月数を拾い、条ごとに一覧にします
- 数値の規則による確認 … 支払の遅れに対する損害金の率が、年14.6%を超えていないかを計算で見ます
- 例文の候補の取り出し … 条ごとに、例文集の題目と本文の近さで候補を3本まで選びます
- 個人情報の伏せ字 … 特約に入居者の氏名や電話番号が書かれていれば、伏せてから渡します
4番目と6番目を AI にさせないのは、計算と文字の比較は規則のほうが確実だからです。 消費者契約法の第9条第1項第2号は、支払の遅れに対する損害賠償の予定や違約金が、支払うべき額に年14.6%の割合を掛けた額を超える部分を無効としています。率が書かれていれば、比べるのは数の大小だけです。
AIに処理させる
させるのは、条ごとに「例文集との違い」「注意の型への当てはまり」「表記の乱れ」を指摘し、例文集に沿った直しの案を出すことです。
| 見るもの | させること | 判断の材料 |
|---|---|---|
| 例文集との違い | 最も近い例文を選び、必ず入れる要素のうち欠けているものを挙げる | 例文の候補3本と、必ず入れる要素の列 |
| 注意の型 | 当てはまりそうな型の番号を挙げ、根拠の文を原文から写す | 注意の型の一覧 |
| 表記 | 用語の揺れ、金額の書き方、消費税の内外の書き漏れを挙げる | 表記の決まり |
| 直しの案 | 例文集の文言をもとに、欠けた要素を「○」で空けた案を出す | 選んだ例文 |
注意の型は、たとえば次のようなものです。 いずれも法令の条文や国の資料に出てくる考え方を、契約課の言葉で書き直したものです。
| 型 | 書き方の例 | 関係する考え方 |
|---|---|---|
| 全部の免責 | 「貸主は一切の責任を負わない」 | 事業者の債務不履行による損害の賠償責任の全部を免除する条項は無効(消費者契約法第8条) |
| 一方的な決定 | 「損害の有無は貸主が判断する」 | 事業者に責任の有無を決定する権限を付与する条項も同じ扱い(同条) |
| 違約金の重さ | 「1年未満の解約は賃料3か月分」 | 解除に伴う損害賠償の予定や違約金のうち、平均的な損害の額を超える部分は無効(第9条第1項第1号) |
| 不作為をみなす | 「異議がなければ承諾したものとみなす」 | 消費者の不作為を承諾の意思表示とみなす条項は、第10条に例として挙がっている |
| 範囲の書き漏れ | 「退去時の原状回復費用は全額借主負担」 | 国土交通省のガイドラインは、通常損耗を借主に負わせる特約の要件として、必要性と合理的理由、借主の認識、義務負担の意思表示の3つを挙げている |
| 金額の書き漏れ | 「クリーニング費用は借主負担」 | 同ガイドラインは、将来負担する費用の程度を単価等で明示しておくことを紛争防止のうえで欠かせないとしている |
右の列の結論をAIに出させるのではありません。 「違約金の重さ」の型に当たっても、平均的な損害の額がいくらかはAIには分かりません。型に当たったという事実と原文の引用を返させ、重いかどうかは人が見ます。
| させないこと | 理由 |
|---|---|
| 特約が有効か無効かの結論 | 説明の経緯や契約全体で判断が変わる。法務と顧問弁護士の領分 |
| 金額や率の妥当性の判断 | 平均的な損害の額は会社と物件で違う |
| 貸主の意向に反する直し | 特約は貸主の条件。削る判断は営業担当と貸主がする |
| 例文集に無い新しい文の創作 | 直しの案は例文集の文言から作る |
| 原文に無い引用 | 引用は原文の文字をそのまま写す。照合で確かめる |
4行目がいちばん起きやすい失敗です。 「より良い書き方」を頼むと、例文集に無いもっともらしい文を作ります。法務が一度も見ていない文が契約書に入ることになるので、直しの案は例文集の文言に限ります。
指示内容を固定する
あなたは賃貸住宅の管理会社の契約課で、契約書の特約欄を校正する担当です。
渡された特約を1条ずつ見て、指摘と直しの案を返してください。
【やること】
1. 各条について、例文の候補から最も近い例文を1つ選び、その番号を書く。
近いものが無ければ template_id を "none" にする。
2. 選んだ例文の「必ず入れる要素」のうち、この条に書かれていないものを
missing_elements に挙げる。
3. 注意の型の一覧のうち、この条に当てはまりそうな型の番号を caution_types に挙げる。
当てはまる根拠の文を、特約の原文からそのまま quote に写す。
4. 表記の決まりに反する箇所を notation に挙げる。
5. 指摘がある条には、選んだ例文の文言をもとに直しの案を書く。
金額・日数など会社や物件で決める値は「○」のまま空けておく。
【厳守事項】
- 特約が有効か無効か、法律に違反するかを書かないでください。
「無効です」「違法です」「問題ありません」という言葉を使わないでください。
- 金額・率・日数が妥当かどうかを判断しないでください。
- quote は原文の文字を1字も変えずに写してください。要約や言い換えをしないでください。
- 直しの案は、例文集の文言から作ってください。例文集に無い文を新しく作らないでください。
- 貸主の条件そのもの(ペット不可、更新料の有無など)を削る案を出さないでください。
- 原文に書かれていないことを推測で補わないでください。読み取れない場合は「不明」とし、
needs_human を true にしてください。
- 迷ったときは caution_types に挙げてください。挙げずに済ませないでください。
【案件の属性】{case_attributes}
【特約(契約書)】{clauses_contract}
【特約(重要事項説明書)との差分】{diff_result}
【数値の規則による確認の結果】{numeric_checks}
【例文の候補】{template_candidates}
【注意の型の一覧】{caution_list}
【表記の決まり】{notation_rules}
「無効です」という言葉を名指しで禁じないと、出てきます。 第8条や第10条の考え方を一覧で渡しているので、AIは自然に結論まで書こうとします。結論の言葉を禁じ、型の番号と引用だけを返させます。
「迷ったら挙げる」を最後に置くのは、見落としのほうが重いからです。 余計な指摘は契約課が1つ消せば終わりますが、挙がらなかった特約は誰の目にも止まりません。
出力形式を固定する
次の形の JSON を、構造化出力で受け取ります。
{
"case_id": "",
"clauses": [
{
"clause_no": "3",
"template_id": "T-21 | none",
"missing_elements": ["金額", "消費税の内外"],
"caution_types": ["C-06"],
"quote": "",
"notation": [{ "issue": "", "quote": "" }],
"rewrite": "",
"needs_human": false
}
],
"contract_only": [],
"disclosure_only": []
}
構造化出力を使う理由は、後段で規則を当てるためです。 caution_types が番号で返るので、「C-01 と C-03 は法務へ、それ以外は直しの依頼」という振り分けを Functions の側で書けます。公式の説明では、スキーマのすべてのフィールドを必須にし、オブジェクトには additionalProperties: false を設定する必要があるとされています。項目を省略したい場合も、空の配列か空文字で返させます。
判定は Functions が次の規則で決めます。
| 判定 | 条件 |
|---|---|
legal_review | 法務へ回す扱いの型が1つでもある。または数値の規則で年14.6%を超えた |
fix_suggested | missing_elements、直しの扱いの型、notation、契約書と重説の差分のどれかがある |
clean | どれも無い |
| 共通 | quote が原文に見つからない条、needs_human が true の条は fix_suggested 以上にして人へ |
quote の照合は必ず行います。 原文に無い引用が返ったら、その条の指摘はAIの思い込みかもしれません。照合に落ちた指摘は消さず、「引用不一致」の印を付けて人に見せます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 社内の画面 | Azure Functions の HTTP 呼び出し | 案件番号を受けて処理を始める |
| 案件フォルダ | Microsoft Graph | 契約書と重説の Word を読む |
| 賃貸管理システム | 案件情報の参照 | 居住用か、借主が個人か、契約の種類 |
| Azure OpenAI | API 呼び出し(構造化出力) | 条ごとの指摘と直しの案 |
| SharePoint のリスト | 書き込み | 判定、指摘、直しの案、確認の結果 |
| Teams | 通知 | 営業担当への直しの依頼、法務への相談 |
Word の契約書そのものには書き込みません。 指摘をコメントとして自動で差し込む作りもできますが、営業担当が直す前に誰の判断を経た指摘なのかが分からなくなります。 指摘は SharePoint のリストに置き、契約課が確かめたものだけを営業担当へ送ります。
人が確認する
契約課の担当が開くのは fix_suggested と legal_review の案件です。 clean の案件は一覧で物件名と特約の条数を流し見ます。
legal_reviewを先に見る … 型と引用を読み、法務担当へ回すかを決めます。回すときは、引用と案件の属性を添えますfix_suggestedの指摘を確かめる … 引用の箇所を原文で見て、指摘が当たっているかを判断します- 直しの案を採るかを決める … 例文集の文言に寄せるか、貸主の意向で今の文を残すかを決めます
- 営業担当へ返す … 採った指摘だけを Teams で送ります
- 指摘を退けたら理由を残す … 「貸主の指定」「法務の確認済み」など、選択肢から選びます
3番目は、AIに決めさせません。 例文集と違っても、貸主と合意済みで法務も確認した特約はあります。その記録が残っていれば、次の案件で同じ指摘を何度も退けずに済みます。
目標は、240件をならして1件5分です。 指摘のある案件が半分程度という想定で、それを大きく超える月は、例文集が古くなっているか、特定の店舗の書き方が崩れています。
例外に対処する
| 起きること | 対応 |
|---|---|
| 特約欄の見出しが見つからない | 雛形を崩した契約書として AI に渡さず、契約課へ回す |
| 条番号が付いていない | 段落ごとに1条として扱い、needs_human を付ける |
| 重説が案件フォルダに無い | 契約書だけで処理し、「重説未着」の印を付ける |
| 契約書と重説で条の数が違う | contract_only と disclosure_only に出し、必ず人が見る |
| 事業用の物件・法人の借主 | 消費者契約法に関わる型を当てず、例文集と表記だけを見る |
| 例文の候補が1本も無い | template_id を none にし、新しい特約として法務へ回す |
quote が原文に無い | 指摘に「引用不一致」の印を付けて人へ |
| Azure OpenAI が応答しない・出力を拒否する | 案件を未処理のまま残し、契約課へ知らせる。目視の手順に戻す |
| 契約日まで2日を切っている | 判定にかかわらず契約課の当日の一覧の先頭に出す |
5行目は設計の最初に入れておきます。 借主が法人で事業用の物件なら、消費者契約法の考え方を当てる前提がありません。同じ注意の型を当てると、指摘が増えるだけで誰も読まなくなります。
記録を残す
- 校正にかけた契約書と重説の版(ファイルの版の番号と日時)
- 取り出した特約欄の本文と、条ごとの分割の結果
- 契約書と重説の差分、数値の規則による確認の結果
- Azure OpenAI に渡したプロンプトと、返った JSON の全文
- 使った例文集と注意の型の一覧の版の番号
- 判定、契約課の採否、退けた理由、法務の回答
- 営業担当が直したあとの2回目の判定
例文集の版を残すのは、例文集が直るからです。 版が分からないと、半年前の判定が今の例文集と食い違っているときに、どちらを信じればよいかが決まりません。
退けた理由の記録は、例文集を直す材料になります。 同じ例文に対して「貸主の指定」で退ける指摘が続くなら、例文集のほうに貸主ごとの変形を足す時期です。
04実装レベルの3段階
最小構成では件数がさばけません。 1組ずつ貼るので、月240件には使えません。例文集の出来を確かめる段階です。 半自動化で、契約書と重説の見比べが無くなります。 文字の差分は機械が出すので、③の2分がほぼ消えます。本格構成で、指摘の確認だけが残ります。 差が大きいのは、引用の照合と判定の振り分けが、1条ずつの手作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、例文の候補が1本も無い特約がどれくらいあるかが分かります。そこが多ければ、本格構成より先に例文集を足します。
05工数削減シミュレーション
導入後 240件 × 5分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 賃貸住宅の仲介・管理を行い、新規契約と更新で月に百件単位の賃貸借契約書と重要事項説明書を作っている不動産会社。営業担当が物件ごと・貸主ごとに特約欄を書き足しており、契約課や法務の目視確認が担当者の経験に頼っている場合。自社の特約の例文集があるか、これから整える意思がある場合。
- 事業用の物件や法人契約が中心で、消費者契約法が当たらない契約がほとんどの場合。特約を書き足す運用がなく、全件が定型の契約書のままの場合。月の契約が数件で目視で足りる場合。なお、個々の特約が有効か無効かの法的な判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の契約書と重説から20組を選ぶ(うち数組は、契約課が直しを返したものを入れる)
- 例文集のうち、よく使う10本ほどを1つのテキストにまとめる
- 社内で使える生成AIの画面に、例文集と1組分の特約欄を貼る
- 「各条について、最も近い例文の番号、欠けている要素、気になる書き方、直しの案を表で出してください。有効か無効かは書かないでください。直しの案は例文の文言から作ってください」と指示する
- 出てきた指摘を、当時の契約課のコメントと突き合わせる
20組は必ずやってください。 指摘の当たり外れより先に、例文集の「必ず入れる要素」が足りているかが分かります。
| 出てきた内容 | 判断 |
|---|---|
| 当時の契約課と同じ指摘が出た | Functions と構造化出力に進む |
| 「無効です」と書いてきた | 指示で直る。禁じる言葉を足す |
| 欠けている要素を挙げられない | 例文集の側に要素の列が無い。 先に例文集を直す |
3行目が出ることは珍しくありません。 例文集が文章だけで、どの要素が必須かが書かれていないと、AIは言い回しの違いしか指摘できません。それが分かったこと自体が成果です。
この段階では、入居者の氏名が入った契約書を貼らないでください。 特約欄だけを切り出し、物件名も伏せて試します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「無効です」と結論を書いてくる | 結論の言葉を名指しで禁じ、型の番号と引用だけを返させる |
| 原文に無い文を引用してくる | quote を原文と照合する。 落ちたものは「引用不一致」で人へ |
| 例文集に無い文を直しの案にする | 直しの案は例文の文言から作ると指示し、例文番号を必須にする |
| 言い回しの違いばかり指摘する | 例文集に「必ず入れる要素」の列を足す |
| 契約書と重説の対応がずれる | 条番号と本文の近さの両方で組にし、片側のみの条は人へ |
| 事業用の契約に消費者向けの指摘が出る | 案件の属性で、当てる型を切り替える |
| 遅延損害金の率をAIが読み違える | 率の比較は Functions の規則で行う |
| 貸主の条件まで削る案が出る | 貸主の条件を削らないと指示し、直しの案は欠けた要素を足す形に限る |
| 指摘が多すぎて読まれない | 型ごとの採用率を見て、ほとんど退けられる型は一覧から外すか書き方を直す |
| 例文集の版が混ざる | 版の番号をログに残し、例文集を直した日を境に判定を分ける |
| 雛形を崩した契約書が来る | 見出しが無いものは AI に渡さない |
| 法務の判断を契約課だけで済ませる | legal_review の行き先を規則で固定する |
上の3行が、この構成の失敗のほとんどです。 どれもAIが「親切に」答えようとして起きます。結論を書かせない、原文から写させる、例文集から作らせる。 この3つを指示と照合の両方で守ります。
下の2行も早く効いてきます。 例文集を直したあとに古い版で判定が出続けると、契約課は指摘を信じなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 物件の所在地、賃料、借主の氏名(特約に書かれていれば)、貸主の条件、そして会社の特約の例文集と注意の型の一覧です。
- AIに渡すのは特約欄だけにする … 契約書の全文には借主の氏名、住所、勤務先、連帯保証人が入ります。校正に要るのは特約欄なので、取り出してから渡します。 特約の中の氏名や電話番号は伏せ字にします
- デプロイの種類を確かめる … 公式の説明では、Global や DataZone のデプロイではプロンプトと応答が指定の地域の外で処理されうるとされています。個人情報を扱う社内の規程に合わせて、デプロイの種類を選びます
- この構成は法的な判断を代替しません … 特約が有効か無効かは、説明の経緯や契約全体で決まります。AIが出すのは、例文集との違いと、型に当たりそうだという指摘までです
- 直しの案を自動で契約書に入れない … 例文集の文言から作った案でも、貸主の条件や物件の事情で合わないことがあります。 採るかは契約課が決めます
- 例文集と注意の型の一覧を社外に出さない … 会社が顧問弁護士と作った基準そのものです。SharePoint の権限を契約課と法務に絞ります
- 重要事項の説明そのものは人が行う … この構成が直すのは書面の文言です。借主が特約を理解して合意したかどうかは、説明の場でしか確かめられません。 国土交通省のガイドラインも、借主の認識と意思表示を特約の要件に挙げています
誤りが起きた場合のリスクは、注意すべき特約を見落とすことと、AIの創作した文が契約書に入ることの2つです。 前者は「迷ったら挙げる」と人の確認で、後者は「例文集から作る」と例文番号の必須化で防ぎます。
10まず何から始めるか
1週目:例文集に要素の列を足す
例文集の60本のうち、使う頻度の高い上位20本に「必ず入れる要素」の列を足します。クリーニングなら金額と消費税の内外、通常損耗の負担なら範囲の列挙と単価です。この20本で特約欄の大半が埋まります。
2週目:20組で試す
先月の契約書と重説から20組を選び、特約欄だけを切り出して、社内で使える生成AIの画面で試します。当時の契約課のコメントと突き合わせ、「無効です」と書いてこないか、例文集に無い文を作らないかを最優先で見ます。
3週目:注意の型の一覧を作る
過去1年に契約課が直しを返した特約を集め、法務と顧問弁護士で型にまとめます。 型ごとに「直しの依頼で済むか、法務へ回すか」を決めます。ここが決まらないうちに Functions を組むと、指摘は出るのに行き先が決まりません。
4週目:取り出しと差分をつなぐ
Functions で特約欄の取り出し、条の分割、重説との差分、数値の規則までを作ります。この時点では Azure OpenAI を呼ばず、差分と数値の一覧だけを契約課に見てもらいます。
2か月目: Azure OpenAI の構造化出力と引用の照合を足し、判定を出します。契約課が採った指摘と退けた指摘を毎週数えます。3か月目以降: Teams への依頼と2回目の判定を足し、1件15分が何分になったかを実測します。退けた理由の記録から例文集を直す流れが回り始めた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 消費者が、事業として又は事業のために契約の当事者となる場合を除いた個人であること(第2条)。事業者の債務不履行による損害賠償責任の全部を免除する条項や、責任の有無を決定する権限を事業者に付与する条項が無効であること(第8条)。解除に伴う損害賠償の予定・違約金のうち平均的な損害の額を超える部分、支払の遅れについて年14.6%の割合を超える部分が無効であること(第9条第1項)。消費者の不作為を承諾とみなす条項などで、消費者の利益を一方的に害するものが無効であること(第10条) | e-Gov 法令API: 消費者契約法 | 2026-10-12 |
| 賃借人に特別の負担を課す特約の要件が、特約の必要性と暴利的でない客観的・合理的理由、賃借人の認識、義務負担の意思表示の3つであること。原状回復の特約は契約書面に明確に定め、将来の負担の程度を単価等で明示しておくことが紛争防止のうえで欠かせないとしていること。ガイドラインの中で消費者契約法第9条第1項第1号・第10条に触れていること。クリーニング特約の有効性の判断の視点(Q16) | 国土交通省: 原状回復をめぐるトラブルとガイドライン(再改訂版) | 2026-10-12 |
Chat Completions API と Responses API の両方で構造化出力が使えること。すべてのフィールドを必須にし、オブジェクトに additionalProperties: false を設定する必要があること。オブジェクトのプロパティは最大100個、入れ子は最大5レベルであること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-12 |
| プロンプトと出力が他のお客様や OpenAI に提供されず、許可なく基盤モデルの学習に使われないこと。Global・DataZone のデプロイでは処理の場所が指定の地域の外に広がりうること。不正使用の監視の仕組みと、変更の申請ができること | Microsoft Learn: Azure が販売する Foundry モデルのデータ、プライバシー、セキュリティ | 2026-10-12 |
個々の特約が有効かどうかは、法務担当と顧問弁護士に確かめてください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1263)についてのご相談はこちらから。
