財務・経理の担当から出る借入の財務制限条項・報告義務・期限の利益を失う条件の質問に、金銭消費貸借契約書と融資の約定書を根拠にチャットで答える
経理・財務の担当から出る「この借入の財務制限条項は何か」「決算書はいつまでに出すのか」「どうなると期限の利益を失うのか」という質問に、金銭消費貸借契約書と融資の約定書の該当条項を引用してチャットで答えます。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- 不動産/商社/小売/建設/製造
- 対象部門
- 経理/財務
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 質問者が社内チャットで財務課の担当に質問する
- 担当が、借入の一覧表で該当する借入と契約の番号を確かめる
- ファイルサーバーから当初の契約の PDF を開き、目次の無い契約書の中から該当の条項を探す
- 変更契約や覚書があれば、それも開き、該当の条項が書き換えられていないかを確かめる
- 条項を読み、質問への答えを文章にして、条項の番号を添えてチャットで返す
- 判断が要る質問(抵触しそうか、金融機関に相談すべきか)は課長に回す
- 人質問者が社内チャットのボットに質問する。借入の名前か金融機関の名前を添える
- 自動中継プログラムが、質問者の部署で見てよい借入かを確かめ、該当する借入の文書に絞り込む条件を作る
- 自動Vertex AI Search(Agent Search)の answer メソッドが、条件に合う契約書から条項を探し、引用付きの回答を作る
- 自動中継プログラムが、引用した文書に最新の変更契約が含まれているかを確かめる
- 自動回答・引用した条項・契約の版をチャットに返す
- 自動回答が作られなかった質問と、判断を求める質問を財務課の待ち行列に入れる
- 人財務課の担当が、待ち行列の質問と、変更契約の確認で印の付いた回答だけを見る
- 人判断が要るものは課長が答える
各工程の詳しい説明を読む
- 質問者が社内チャットで財務課の担当に質問する
- 担当が、借入の一覧表で該当する借入と契約の番号を確かめる
- ファイルサーバーから当初の契約の PDF を開き、目次の無い契約書の中から該当の条項を探す
- 変更契約や覚書があれば、それも開き、該当の条項が書き換えられていないかを確かめる
- 条項を読み、質問への答えを文章にして、条項の番号を添えてチャットで返す
- 判断が要る質問(抵触しそうか、金融機関に相談すべきか)は課長に回す
(a)条項が見つからない。 スキャンした PDF は文字で検索できません。「純資産」の条項を探すために、30ページの契約書を頭からめくることになります。 同じ「財務制限条項」でも、契約によって「財務維持」「財務条項」「遵守事項」と見出しが違います。
(b)変更契約を見落とす。 当初の契約で「純資産を前期の75%以上に維持」とあっても、2年後の変更契約で基準が変わっていることがあります。変更契約は別のファイルで、当初の契約を開いた人の目には入りません。
(c)質問が3名に集中する。 決算の時期には、同じ週に20件以上の質問が来ます。財務課の本来の仕事(資金繰り、金融機関との面談)が止まります。
(d)回答の根拠が残らない。 チャットで返した答えは、条項の番号が添えられていても、どの版の契約を見たかまでは残りません。後で誤りが分かったとき、どの答えを直せばよいかが分かりません。
- 【人】 質問者が社内チャットのボットに質問する。借入の名前か金融機関の名前を添える
- 【自動】 中継プログラムが、質問者の部署で見てよい借入かを確かめ、該当する借入の文書に絞り込む条件を作る
- 【自動】 Vertex AI Search(Agent Search)の answer メソッドが、条件に合う契約書から条項を探し、引用付きの回答を作る
- 【自動】 中継プログラムが、引用した文書に最新の変更契約が含まれているかを確かめる
- 【自動】 回答・引用した条項・契約の版をチャットに返す
- 【自動】 回答が作られなかった質問と、判断を求める質問を財務課の待ち行列に入れる
- 【人】 財務課の担当が、待ち行列の質問と、変更契約の確認で印の付いた回答だけを見る
- 【人】 判断が要るものは課長が答える
4番目が、この設計の要です。 answer メソッドは、質問に近い条項を探して答えます。近いのが当初の契約の条項で、変更契約のほうが遠ければ、当初の条項で答えてしまいます。 中継プログラムが、借入ごとの文書の一覧と照らし、最新の変更契約を引いていない回答には印を付けて、財務課に回します。
7番目で財務課が見るのは、全体の一部です。 契約書に書かれていることを確かめるだけの質問は、引用付きの回答で質問者が自分で確かめられます。
02今回想定するシステム構成
質問者(経理・財務・経営企画・子会社の経理) │ 社内チャットのボットに質問 ▼【トリガー】チャットへの投稿 中継プログラム(Cloud Run) ├──▶ 質問者の部署と見てよい借入の確認 ├──▶ 借入名・金融機関名から絞り込みの条件を作る ▼ Vertex AI Search(Agent Search)の answer メソッド │ レイアウトの解析と分割をした契約書から条項を探し、引用付きで回答 ▼ 中継プログラム ── 最新の変更契約を引いているかの確認、判断を求める質問の振り分け ├──▶ チャットへ回答(引用した条項、契約の版) └──▶ 財務課の待ち行列(回答できなかった質問、印の付いた回答)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Cloud Run で動かし、チャット・検索・待ち行列をつなぐ) | Cloud Functions |
| 保管 | Cloud Storage(契約書とメタデータ)、BigQuery(質問と回答の記録) | ─ |
借入の一覧表は、新しく足すものではありません。 いまのスプレッドシートに、借入ごとの文書の一覧(当初の契約、変更契約、覚書と、それぞれの締結日・効力発生日)を足すのが最初の準備です。この一覧が、第5章の4番目の確認の元になります。
土台は、Vertex AI Search(Agent Search へ改称中)の answer メソッドです。 質問の言い換え、検索、回答の生成を1回の呼び出しで行い、回答に引用(どの文書のどこを根拠にしたか)を付けられます。検索の結果は既定で10件、最大25件まで回答の材料にできます。
スキャンした契約書を読めるのは、文書の解析の機能があるからです。 Agent Search には、デジタルの解析、PDF 向けの OCR の解析、レイアウトの解析があり、レイアウトの解析は見出し・段落・表・リストを検出して、文書を意味のまとまりで分割します。 OCR の解析は PDF の最初の500ページまでを処理します。
分割(チャンク)の大きさは100〜500トークンで指定でき、既定は500です。 見出しを各チャンクに含める設定(includeAncestorHeadings)も選べます。契約書では、条の見出しが付いていないと「第12条 財務制限条項」の第3項が、どの条の一部なのか分からなくなります。 この設定は有効にします。
03どうやって実装するのか
処理の起点を決める
社内チャットのボットへの投稿を起点にします。 質問は思い立ったときに来るので、待たせずにその場で答えます。チャットのボットからの通知を中継プログラムが受け、回答を同じスレッドに返します。
もう1つの起点は、契約書の追加です。新しい借入や変更契約を締結したら、財務課が PDF と文書の一覧を Cloud Storage に置きます。置いたあと、データストアに取り込み直す処理を動かします。 変更契約の取り込みが遅れると、その間の回答は古い条項を引くので、締結した週のうちに取り込むことを財務課の手順に入れます。
月に1回、借入の一覧表と、データストアに入っている文書の一覧を突き合わせます。 一覧表にあるのにデータストアに無い文書があれば、取り込み漏れです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 質問の文、質問者のアカウントと部署、チャットのスレッド | 社内チャット |
| 契約書 | 当初の契約、変更契約、覚書、銀行取引約定書(スキャンした PDF) | Cloud Storage |
| 文書のメタデータ | 借入の番号、金融機関、文書の種類、締結日、効力発生日、置き換えられた条項の有無、見てよい部署 | 文書ごとのメタデータ |
| 借入の文書の一覧 | 借入ごとの文書の並びと、最新の変更契約 | 借入の一覧表 |
質を決めるのは、メタデータの「置き換えられた条項の有無」と「見てよい部署」です。 前者が無ければ、変更前の条項で答えます。後者が無ければ、子会社の経理に親会社のシンジケートローンの条件が見えてしまいます。
メタデータは、文書を取り込むときに JSON で一緒に渡します。 借入の番号と金融機関は、絞り込みに使えるように「インデックスに使う(indexable)」項目に設定します。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 質問者の部署 | 社内のアカウント情報 | 中継プログラムが質問者のアカウントから引く |
| 対象の借入 | 質問の文と借入の一覧表 | 借入名・金融機関名の一覧と照らして借入の番号を決める |
| 条項と回答 | answer メソッド | searchSpec の filter で借入の番号を絞り、引用付きで回答を作る |
| 引用の位置 | answer メソッドの応答 | 引用(citations)と根拠の対応(groundingSupports) |
絞り込みは、メタデータのフィルタで行います。 たとえば loan_id: ANY("SL-2024-01") のように、テキストの項目が指定した値のどれかに一致する文書だけを対象にできます。質問の文に借入の名前が無いときは、借入の番号で絞らず、質問者の部署で見てよい文書だけに絞ります。
中継プログラムが answer メソッドに送る要求は、おおむね次の形になります(:answer のエンドポイントに POST します)。
{
"query": { "text": "SL-2024-01 の純資産の維持の基準は?" },
"session": "",
"searchSpec": {
"searchParams": {
"filter": "loan_id: ANY(\"SL-2024-01\") AND allowed_dept: ANY(\"accounting\")",
"maxReturnResults": 10
}
},
"queryUnderstandingSpec": {
"queryClassificationSpec": {
"types": ["ADVERSARIAL_QUERY", "NON_ANSWER_SEEKING_QUERY"]
}
},
"groundingSpec": { "filteringLevel": "FILTERING_LEVEL_HIGH" },
"answerGenerationSpec": {
"includeCitations": true,
"ignoreAdversarialQuery": true,
"ignoreNonAnswerSeekingQuery": true,
"promptSpec": { "preamble": "(次の「プロンプトまたは指示内容の例」)" }
}
}
filter は質問者が書き換えられない場所で作ります。 質問の文に「全部の借入について」と書かれていても、allowed_dept の条件は中継プログラムが必ず付けます。質問の文から絞り込みの条件を組み立てると、質問の書き方しだいで権限が外れます。
見てよい文書の絞り込みを、メタデータのフィルタで行うのは理由があります。 Agent Search には、Cloud Storage などの元の権限に従って検索結果を絞るデータソースのアクセス制御がありますが、この機能はプレビュー(Pre-GA)です。 正式な提供になるまでは、中継プログラムが質問者の部署から絞り込みの条件を作る形にします。
引用の位置は、UTF-8 のバイト数で返ります。 回答の文中の引用の開始と終了の位置(startIndex/endIndex)は、文字数ではなくバイト数です。日本語は1文字が3バイトなので、文字数として扱うと、引用の印が回答の別の箇所に付きます。 中継プログラムでバイト列に直してから切り出します。
AIへ渡す前に整形する
- 契約書の解析の設定 … データストアを作るときに、レイアウトの解析を指定し、チャンクの大きさを500、見出しを含める設定を有効にします
- 文書の分け方 … 当初の契約と変更契約を1つの PDF にまとめず、文書ごとに別のファイルにします。版の区別のためです
- メタデータの付与 … 借入の番号、金融機関、文書の種類、締結日、効力発生日、置き換えた条項、見てよい部署を JSON で付けます
- ページ数の確認 … OCR の解析は PDF の最初の500ページまで。合本にした契約書は分けます
- 借入名の辞書 … 社内での呼び方(「A行のシ・ローン」「設備資金の2号」)と借入の番号の対応表を作ります
- 質問の分類の準備 … 判断を求める言い方(「抵触するか」「大丈夫か」「相談すべきか」)の一覧を作り、中継プログラムで印を付けます
3番目のメタデータは、文書ごとに次のような内容にします。
{
"doc_id": "SL-2024-01-A02",
"loan_id": "SL-2024-01",
"lender": "幹事行と参加行(シンジケートローン)",
"doc_type": "amendment",
"amendment_no": 2,
"signed_date": "2026-03-27",
"effective_date": "2026-04-01",
"replaces_clauses": ["第18条第2項", "第21条第1項"],
"allowed_dept": ["finance", "accounting", "corporate_planning"]
}
replaces_clauses は、変更契約を読んで人が付けます。 どの条項を置き換えたかは変更契約の冒頭に書かれていることが多く、1本あたり数分で付けられます。これがあると、版の確認で「この条項は変更されている」と条項の単位で注記できます。
5番目を軽く見ないでください。 社内の質問は、契約書の正式な名前では来ません。「設備資金の2号」から借入の番号が引けないと、絞り込みが効かず、全部の借入の条項が混ざった回答になります。
6番目は、answer メソッドの分類とは別に持ちます。 answer メソッドには、敵対的な質問と、答えを求めていない質問を分類する機能があります。「抵触しそうか」は答えを求める質問なので、この分類では止まりません。 自社で印を付けます。
AIに処理させる
させるのは、条件に合う契約書から条項を探し、その条項に書かれていることを、引用を付けて答えることです。
| させること | 中身 |
|---|---|
| 条項の検索 | 質問に合う条項を、絞り込んだ借入の文書から探す |
| 条項の要約 | 基準値、期限、対象、例外を、条項の文言に沿って書く |
| 引用 | 回答の各文に、根拠にした文書と箇所を付ける |
| 版の明示 | どの文書(当初の契約、第何回の変更契約)を引いたかを書く |
| させないこと | 理由 |
|---|---|
| 抵触するかの判定 | 数値との照合と判断は財務課。根拠の無い安心を与える |
| 金融機関への相談の要否 | 経営の判断 |
| 条項の解釈の補足 | 書かれていないことを足すと、契約の内容に見える |
| 契約書に無い一般論での回答 | 「一般的には」で答えると、自社の契約と混ざる |
| 古い版での回答の断定 | 最新の変更契約を引けなかったときは、そう書く |
1行目がいちばん求められ、いちばん危ない答えです。 質問者が本当に知りたいのは「大丈夫か」であることが多いのですが、条項の基準値と今期の数値を照らすのは、決算の数値が確定した後の財務課の仕事です。 回答は条項の写しまでに留めます。
指示内容を固定する
answer メソッドの promptSpec.preamble(回答の生成への指示)に次の内容を入れます。
あなたは財務部が用意した、借入の契約書の内容を答えるアシスタントです。
答えの根拠は、検索で見つかった契約書の条項だけにしてください。
【答え方】
- 最初に結論を1〜2文で書き、そのあとに条項の文言に沿って
基準値・期限・対象・例外を書いてください。
- 金額・比率・日数・期限は、契約書の文言のまま書いてください。
換算や言い換えをしないでください。
- どの文書の、どの条項を根拠にしたかを書いてください。
当初の契約か、第何回の変更契約かも書いてください。
- 同じ条項について、当初の契約と変更契約の両方が見つかった場合は、
効力発生日の新しいほうで答え、変更前の内容も併記してください。
【答えないこと】
- 財務制限条項に抵触するかどうか、抵触しそうかどうかは答えないでください。
「財務課に確認してください」と書いてください。
- 金融機関に相談すべきかどうかは答えないでください。
- 契約書に書かれていないことを、一般論で補わないでください。
見つからない場合は「契約書から該当の条項が見つかりませんでした」と答えてください。
- 条項の意味を推測で補足しないでください。
「両方が見つかった場合は新しいほうで答え、変更前も併記」が要点です。 併記させると、質問者は条件が変わったことにも気づけます。ただし、変更契約が検索で見つからなければ、この指示は効きません。 そのための確認を中継プログラムに置きます(第5章の4番目)。
根拠の弱い回答を出さない設定も使います。 groundingSpec の filteringLevel を FILTERING_LEVEL_HIGH にすると、根拠の支持の点数が低い回答は返らなくなります。返らなかった質問は、財務課の待ち行列に入れます。
出力形式を固定する
answer メソッドの応答から、中継プログラムが次の形に組み直してチャットに返し、記録にも残します。
{
"question_id": "",
"loan_id": "",
"answer_text": "",
"state": "answered | skipped | needs_review",
"skipped_reason": "",
"citations": [
{
"doc_id": "",
"doc_type": "original | amendment | memorandum",
"amendment_no": 0,
"effective_date": "",
"excerpt": ""
}
],
"latest_amendment_cited": true,
"judgment_requested": false
}
1つ目の理由は、state で振り分けを決められることです。 answered はそのまま返し、skipped と needs_review は財務課の待ち行列に入れます。
| 状態 | どういうときか | 扱い |
|---|---|---|
answered | 回答があり、最新の変更契約を引いている | 質問者に返す |
skipped | answer メソッドが回答を作らなかった(根拠の点数が低い、答えを求めていない質問など) | 財務課へ |
needs_review | 最新の変更契約を引いていない、または判断を求める質問 | 回答に注記を付けて返し、財務課へも回す |
2つ目は、latest_amendment_cited で版の確認を機械にさせられることです。 中継プログラムは、借入の文書の一覧から最新の変更契約を引き、citations の中にあるかを見ます。無ければ false にし、回答に「最新の変更契約で変わっている可能性があります」と付けます。
3つ目は、excerpt で質問者が自分で確かめられることです。 引用した条項の文言そのものを回答の下に並べます。回答の文と条項の文言が食い違っていれば、質問者が気づけます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 社内チャット | ボットの通知と返信 | 質問を受け、回答を同じスレッドに返す |
| 社内のアカウント情報 | 読み取り | 質問者の部署を引く |
| Vertex AI Search | answer メソッド | 絞り込んだ文書から条項を探し、引用付きで回答する |
| 借入の一覧表 | 読み取り | 借入名の辞書と、借入ごとの文書の一覧 |
| 財務課の待ち行列 | 書き込み | 回答できなかった質問と、印の付いた回答 |
| BigQuery | 書き込み | 質問・回答・引用・状態の記録 |
複数の往復の会話にも対応できます。 answer メソッドは、前の回答のセッションを渡すと、続きの質問として扱えます。「その基準値はいつから変わった?」のような続きの質問を、前の借入の文脈で答えられます。 ただし、続きの質問でも絞り込みの条件は毎回中継プログラムが付け直します。
借入の一覧表と契約書には書き込みません。 この構成は読むだけで、契約の情報を変える経路を持ちません。
人が確認する
財務課が見るのは、待ち行列に入ったものだけです。 answered の回答は、引用した条項の文言を質問者が自分で確かめます。
needs_reviewのうち、判断を求める質問を課長が見る … 条項の基準値と今期の見込みを照らして答えます- 最新の変更契約を引いていない回答を担当が見る … 変更契約の該当条項を開き、回答を直して返します
skippedの質問を担当が見る … 契約書に該当の条項が無いのか、取り込み漏れか、借入名の辞書に無い呼び方かを見分けます- 直した回答を記録する … どの回答を、どう直したかを残します
3番目の見分けが、この構成を育てます。 取り込み漏れなら文書を足し、辞書に無い呼び方なら辞書に足します。同じ理由の skipped が続くなら、仕組みのほうに直すところがあります。
目標は、120件をならして1件10分です。 質問者が回答と引用を読んで確かめる時間と、財務課が待ち行列の質問に答える時間を合わせた平均です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 質問に借入の名前が無い | 質問者の部署で見てよい文書に絞って答え、どの借入の条項かを回答に明記する |
| 借入名が辞書に無い | 回答の前に「どの借入ですか」と候補を挙げて聞き返す |
| 回答が作られない(根拠の点数が低いなど) | skipped として財務課へ。理由(answer_skipped_reasons)を記録する |
| 最新の変更契約を引いていない | 注記を付けて返し、財務課へも回す |
| 判断を求める質問 | 条項の写しだけを返し、課長へ回す |
| 合本の PDF が500ページを超える | OCR の解析は最初の500ページまで。文書ごとに分けて取り込み直す |
| 新しい変更契約の取り込みが遅れている | 月1回の突き合わせで拾う。締結の週に取り込む手順を守る |
| 引用の印が回答の別の箇所に付く | 引用の位置は UTF-8 のバイト単位。バイト列に直して切り出す |
| 見てよくない部署からの質問 | 絞り込みで文書が0件になる。「この借入の情報は見られません」と返す |
上から3行目までは、質問の仕方と辞書の問題です。 最初の1か月は skipped が多く出ますが、多くは借入の呼び方の違いです。辞書を足すと、目に見えて減ります。
記録を残す
- 質問の文、質問者のアカウントと部署、日時
- 中継プログラムが付けた絞り込みの条件(借入の番号、見てよい部署)
- answer メソッドの応答の全文(回答、引用、根拠の対応、回答しなかった理由)
latest_amendment_citedとjudgment_requestedの値- 財務課が直した回答と、直した人・日時
- 回答のときにデータストアに入っていた文書の一覧
最後の行を残すのは、変更契約の取り込みが遅れていた期間を後からたどるためです。 取り込み漏れが見つかったとき、その期間に同じ借入について出した回答を一覧にし、質問者に知らせ直せます。
04実装レベルの3段階
最小構成では、借入を選ぶのが人です。 15本の借入から該当のものを選ぶ作業は残ります。確かめるための段階です。 半自動化で、1件30分が15分程度になります。 条項を探す時間は短くなりますが、質問はこれまでどおり財務課を通ります。本格構成で10分になり、この段階が本記事の想定です。 差が大きいのは、契約書に書かれていることを確かめるだけの質問が、財務課を通らなくなるからです。 段階を飛ばさないでください。 半自動化の期間に、財務課自身が検索を使い、借入の呼び方の辞書とメタデータの不足を見つけます。財務課が信頼できない検索を、質問者に開放してはいけません。
05工数削減シミュレーション
導入後 120件 × 10分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の金融機関から借入があり、相対の金銭消費貸借契約・シンジケートローン・コミットメントライン・変更契約が積み重なっている製造業・建設業・不動産業・商社・小売業。財務制限条項や報告の期限を確かめたい経理・財務・経営企画の担当が多く、そのたびに財務課の1〜2名に聞きに来ている場合。契約書が紙をスキャンした PDF でファイルサーバーに散らばっている場合。
- 借入先が1〜2行で、契約が数本しかない場合。財務制限条項に抵触するかどうかの判定そのものを自動化したい場合(月次の数値との照合は別の仕組みで行う)。契約書を外部のクラウドに置けない場合。なお、条項の解釈や金融機関との交渉の要否の判断は、この構成では代替できません。
07最小構成で試す方法
- 借入を1本選ぶ(変更契約が2回以上あるものを選ぶ)
- その借入の当初の契約と変更契約の PDF を集め、文字の取れる形にする
- 過去3か月に財務課に来た質問のうち、その借入についての質問を10件書き出し、財務課が返した答えも書き出す
- 手元のAIサービスに契約書を渡し、10件の質問を1件ずつ聞く。「契約書の条項を引用して答え、当初の契約か変更契約かを書いてください。抵触するかどうかは答えないでください」と指示する
- 出てきた答えを、財務課が返した答えと比べる
10件は必ずやってください。 検索の仕組みを作る前に、「契約書が読めれば、条項を引用して答えられるのか」と「変更契約を優先できるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 財務課と同じ答えが、同じ条項の引用で出た | データストアの構築に進む |
| 当初の契約の基準値で答えた | 変更契約の扱いを指示で強める。中継プログラムでの版の確認が必須だと分かる |
| 抵触するかどうかまで答えた | 指示で禁じ、判断を求める質問の印を中継プログラムで付ける |
| スキャンの文字が読めずに答えられない | 解析の設定とスキャンの解像度を先に見直す |
手元のAIサービスに契約書を渡すかは、社内の規程を先に確かめてください。 金融機関との契約には守秘の条項があることが多く、外部のサービスで処理してよいかの確認が要ります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 当初の契約の基準値で答える | 文書ごとに版のメタデータを持たせ、中継プログラムで最新の変更契約を引いたかを確かめる |
| 条の見出しが無いチャンクが引かれる | 見出しを各チャンクに含める設定を有効にする |
| スキャンの契約書が読めない | レイアウトの解析を使い、合本は500ページ以内の文書ごとに分ける |
| 社内の呼び方で借入が特定できない | 借入名の辞書を作り、skipped の理由を見て足す |
| 引用の印が回答の別の箇所に付く | 引用の位置は UTF-8 のバイト単位。文字数で切り出さない |
| 子会社に親会社の借入の条件が見える | メタデータのフィルタで、質問者の部署の文書に絞る |
| 元の権限に従う絞り込みを使いたい | データソースのアクセス制御はプレビュー。正式な提供までは自社で絞る |
| 「抵触するか」に答えてしまう | 指示で禁じ、判断を求める言い方の一覧で印を付けて課長に回す |
| 根拠の弱い回答が返る | filteringLevel を高くし、返らなかったものは財務課へ |
| 変更契約の取り込みが遅れる | 締結の週に取り込む手順にし、月1回、一覧と突き合わせる |
上の1行目が、この構成で最も重い失敗です。 当初の基準値を伝えられた経理は、それを前提に注記を書き、経営企画はそれを前提に配当を計画します。検索の精度では防げないので、自社の一覧との照合で防ぎます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 借入の金額・金利・期間、財務制限条項の基準値、担保と保証の内容、期限の利益を失う事由、金融機関の名前です。会社の資金繰りの弱点が分かる情報で、社内でも見てよい人が限られます。
- 見てよい人を部署の単位で絞る … 子会社の経理、経営企画、経理部で見てよい借入が違います。メタデータのフィルタで絞り、絞り込みの条件は中継プログラムが付けます。 質問者が絞り込みを外す経路を作りません
- 判断を答えさせない … 抵触するか、金融機関に相談すべきかは、財務課長と経営が決めます。AI の回答を判断の根拠にしない運用を、質問者に最初に伝えます
- 契約の守秘の条項を確かめる … 金融機関との契約には、契約の内容を第三者に開示しない旨の条項があることがあります。外部のクラウドで処理してよいかを、契約と社内の規程で確かめてから取り込みます
- プレビューの機能に頼らない … 元の権限に従う絞り込みはプレビューで、提供の条件が変わることがあります。正式な提供になるまでは、自社の絞り込みを主にします
- 回答の記録を残す … どの質問に、どの版の契約で答えたかを残します。取り込み漏れが見つかったとき、答え直す相手が分かります
- 質問者の名前を回答の生成に渡さない … 中継プログラムが部署を引くのに使うだけで、answer メソッドには渡しません。疑似的な利用者の識別子を使う場合も、社員番号そのものは使いません
誤りが起きた場合のリスクは、古い版の条項を伝えることと、見てはいけない人に借入の条件が見えることの2つです。 前者は版の確認で、後者は部署の単位の絞り込みで防ぎます。どちらも AI ではなく、中継プログラムに置いた規則で守ります。
10まず何から始めるか
1週目:借入ごとの文書の一覧を作る
借入の一覧表に、借入ごとの当初の契約・変更契約・覚書の一覧と、締結日・効力発生日・置き換えた条項を足します。15本の借入を一度に埋めます。ここが、版の確認の元になります。
2週目:借入名の辞書を作る
財務課のチャットの履歴から、借入がどう呼ばれているかを拾い、借入の番号との対応表にします。金融機関の略称、資金の使い道、社内の通し番号が混ざっているはずです。
3週目:1本の借入で試す
第8章の手順で、変更契約が2回以上ある借入を選び、10件の質問で試します。当初の契約の基準値で答えていないかを最優先で見ます。
4週目:データストアを作る
全借入の契約書を文書ごとに分け、メタデータを付けて Cloud Storage に置き、レイアウトの解析と見出しを含める分割の設定でデータストアを作ります。この時点では財務課だけが検索を使い、過去の質問で答えが出るかを見ます。
2か月目: 中継プログラムで、絞り込み・版の確認・判断を求める質問の印を作り、財務課が自分の質問で試します。3か月目以降: 社内チャットのボットを経理部と経営企画部に開放し、子会社には絞り込みを確かめてから開放します。1件30分が何分になったかを実測し、skipped の理由が辞書と取り込み漏れでほぼ説明できるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
answer メソッドが質問の言い換え・検索・回答の生成を行い、searchSpec の filter、maxReturnResults(既定10、最大25)を指定できること。queryClassificationSpec の敵対的な質問・答えを求めていない質問の分類、promptSpec.preamble、includeCitations、セッションによる複数の往復。引用の startIndex/endIndex が UTF-8 のバイト単位であること。groundingSpec の filteringLevel(FILTERING_LEVEL_LOW/FILTERING_LEVEL_HIGH)と includeGroundingSupports。回答しなかった理由(LOW_GROUNDED_CONTENT など) | Google Cloud: Get answers and follow-ups | 2026-10-13 |
デジタルの解析、PDF 向けの OCR の解析、レイアウトの解析があること。OCR の解析が PDF の最初の500ページまでであること。レイアウトの解析が見出し・段落・表・リストを検出すること。チャンクの大きさが100〜500トークン(既定500)で、includeAncestorHeadings で見出しを含められること | Google Cloud: Parse and chunk documents | 2026-10-13 |
メタデータの項目を indexable にして、category: ANY("...") のようなフィルタで検索を絞れること | Google Cloud: Filter search results by metadata | 2026-10-13 |
| データソースのアクセス制御がプレビュー(Pre-GA)であり、Cloud Storage などで使えること。ID プロバイダの設定が要ること | Google Cloud: Set up data source access control | 2026-10-13 |
条項の解釈と、財務制限条項に抵触するかの判断は、財務部と、必要に応じて金融機関・顧問の専門家と行ってください。 本記事の構成が出すのは、契約書に書かれた条項の写しと引用です。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1352)についてのご相談はこちらから。
