入居者から受ける「契約上どうなっているか」の質問に、その部屋の賃貸借契約書・重要事項説明書・管理規約を根拠に担当者向けのチャットで答える
賃貸管理会社の担当者が入居者から受ける「ペットは飼えるか」「解約は何日前までか」に、その部屋の賃貸借契約書・重要事項説明書・管理規約だけを根拠に答えます。該当する条項と頁を示し、担当者が入居者へ伝えます。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 不動産/宿泊
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/情報が見つからない/確認ミスが多い
- AIで行う処理
- 対話
- 主な効果
- 品質標準化/対応スピード向上/工数削減/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 入居者から電話かメールで質問が届く
- 担当者が賃貸管理システムで入居者を探し、本人であることと部屋を確かめる
- その部屋の契約書のPDFを開き、該当しそうな条項を探す
- 特約の欄と、更新時の覚書があればそれも開く
- 共用部の使い方の質問なら、建物の管理規約や使用細則を開く
- 条項を読んで入居者に答える。読み方に迷うものは上長に相談する
- 対応の記録を管理システムに残す
- 人入居者から質問が届き、担当者が賃貸管理システムで本人と部屋を確かめる
- 人担当者が、社内のチャット画面にその部屋の契約番号を入れる
- 自動中継プログラムが、契約番号から建物の番号を引き、検索の絞り込み条件を作る
- 人担当者が、入居者の質問を書く
- 自動中継プログラムが、法務・貸主確認へ回す規則に当たるかを先に見る
- 自動当たらなければ、検索基盤がその契約と建物の文書だけから条項を探して答えを作る
- 自動答えに出典(文書の種類・条項・頁)を付け、覚書や特約が本体を変えているときはその旨を先に示す
- 自動根拠が見つからない、根拠が弱いときは答えず、「契約書類に記載なし」として貸主確認の候補にする
- 人担当者が出典の頁を開いて確かめ、入居者に伝える
- 人法務・貸主確認に回ったものは、上長が貸主や法務の担当に確かめてから入居者に返す
各工程の詳しい説明を読む
- 入居者から電話かメールで質問が届く
- 担当者が賃貸管理システムで入居者を探し、本人であることと部屋を確かめる
- その部屋の契約書のPDFを開き、該当しそうな条項を探す
- 特約の欄と、更新時の覚書があればそれも開く
- 共用部の使い方の質問なら、建物の管理規約や使用細則を開く
- 条項を読んで入居者に答える。読み方に迷うものは上長に相談する
- 対応の記録を管理システムに残す
(a)探すのに時間がかかる。 書式ごとに条項の並びが違い、スキャンしたPDFは語句で検索できません。ペットの条項が本条にあるのか、特約にあるのか、別表にあるのかは、開いてみないと分かりません。
(b)覚書を見落とす。 更新のときに「ペット1匹まで可」と覚書で取扱いを変えていても、担当者が契約書の本体だけを見て「飼育は禁止です」と答えることがあります。入居者は覚書を持っているので、すぐに苦情になります。
(c)担当者によって答えが違う。 「解約は1か月前」と書かれた契約で、「1か月」を暦の月と取るか30日と取るかで、担当者ごとに伝え方が揺れます。 同じ入居者に別の担当者が違うことを言えば、信頼を失います。
(d)条項に無いことを答える。 契約に書かれていない取扱いを、他の物件の例や一般的な慣行で答えてしまうことがあります。書かれていないことは、貸主に確かめるしかありません。
- 【人】 入居者から質問が届き、担当者が賃貸管理システムで本人と部屋を確かめる
- 【人】 担当者が、社内のチャット画面にその部屋の契約番号を入れる
- 【自動】 中継プログラムが、契約番号から建物の番号を引き、検索の絞り込み条件を作る
- 【人】 担当者が、入居者の質問を書く
- 【自動】 中継プログラムが、法務・貸主確認へ回す規則に当たるかを先に見る
- 【自動】 当たらなければ、検索基盤がその契約と建物の文書だけから条項を探して答えを作る
- 【自動】 答えに出典(文書の種類・条項・頁)を付け、覚書や特約が本体を変えているときはその旨を先に示す
- 【自動】 根拠が見つからない、根拠が弱いときは答えず、「契約書類に記載なし」として貸主確認の候補にする
- 【人】 担当者が出典の頁を開いて確かめ、入居者に伝える
- 【人】 法務・貸主確認に回ったものは、上長が貸主や法務の担当に確かめてから入居者に返す
2番目が、この設計の分かれ目です。 検索の範囲は、担当者が本人を確かめた後に選んだ契約番号だけで決まります。 質問の文面から部屋を推し量らせることはしません。
9番目で、担当者は必ず出典の頁を開きます。 答えの文を読み上げるのではなく、条項の原文を見て伝えます。 スキャンの読み取りの誤りで数字が違っていても、ここで止まります。
02今回想定するシステム構成
社内のチャット画面(担当者が使う) │ ① 契約番号を入れる ② 入居者の質問を書く ▼ 中継プログラム(Cloud Run) ├──▶ 契約番号から建物の番号・書式を引く(契約の一覧) ├──▶ 法務・貸主確認へ回す規則に当たるか(有効性・負担の争い・例外の求め) ▼ 当たらない Vertex AI Search(Agent Search)の answer メソッド │ 絞り込み:contract_id または building_id、status │ データストア:契約書・重要事項説明書・覚書(部屋ごと)/管理規約・使用細則(建物ごと) │ (スキャンしたPDFは OCR パーサーで読み取り) ▼ 答え・出典・根拠の強さ 中継プログラム ── 根拠が弱ければ答えずに「記載なし」とする ▼ チャット画面に返す / 会話の記録を保管・集計
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、チャット画面と検索基盤と契約の一覧をつなぐ) | Node.js で同じものを書く |
| 集計 | BigQuery(会話の記録の保管と、質問の種類・記載なしの月次集計) | Google スプレッドシート |
| 保管 | Cloud Storage(契約書類のPDFとメタデータ) | ─ |
賃貸管理システムには書き込みません。 対応の記録は、これまでどおり担当者が管理システムに残します。契約書類のPDFは、管理システムから書き出して Cloud Storage に置き直します。 書き出しの方法は管理システムの製品によって違うので、この部分は利用環境に応じた個別実装が必要です。
土台になるのは、Vertex AI Search の answer メソッドです。 公式のドキュメントには「Vertex AI Search is being renamed to Agent Search.」と書かれており、製品は Agent Search へ改称されつつあります。 本記事では両方の名前を併記します。answer メソッドは、データストアから根拠を探して答えを作り、includeCitations で答えの文ごとに出典を示せます。
スキャンしたPDFは、OCR パーサーで取り込みます。 既定のデジタルパーサーは、機械で読める文字を取り出すもので、文字が画像になっているスキャンのPDFには向きません。 OCR パーサーは、スキャンした文書のように文字が画像の一部になっているPDFのためのもので、対象はPDFだけです。useNativeText を有効にすると、機械で読める文字とOCRの結果を合わせて取り出し、読み取りの質を上げられます。 文字として選べる新しい契約書と、スキャンした古い契約書が混ざっているので、この設定が合います。
03どうやって実装するのか
処理の起点を決める
担当者が契約番号を入れ、質問を書いたときに動きます。 契約番号は、管理システムで本人を確かめた後に、その画面から写します。契約番号を入れるまで質問欄を開きません。 建物の名前と部屋番号で検索させる作りにすると、同じ部屋の前の入居者の契約が混ざります。
1つの会話は、1つの契約のまま続けます。 answer メソッドはセッションを使った複数回のやり取りに対応し、前の質問を踏まえて次の質問を言い換えて検索します。「ペットは」の次に「何匹まで」と聞けば、ペットの条項の続きとして探します。別の入居者の問い合わせに移るときは、会話を新しく始めます。 前の入居者の契約を踏まえた言い換えが混ざらないようにするためです。
電話を受けながら使うことを前提に、答えは数秒で返る長さにします。 担当者は通話を保留にせず、入居者に「契約書を確認します」と伝えて画面を見ます。長い答えを読ませる作りにすると、結局折り返しになります。
メールの問い合わせも、同じ画面で扱います。 メールの本文を貼るときは、中継プログラムが署名と引用部分を落としてから質問として扱います。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 担当者が入れる値 | 契約番号、入居者の質問の文面、会話の中の前の質問 | 社内のチャット画面 |
| 賃貸借契約書 | 頭書、本条、別表、特約の欄。部屋ごと | 賃貸管理システムから書き出したPDF |
| 重要事項説明書 | 契約の前に説明した事項。部屋ごと | 同上 |
| 更新時の覚書・合意書 | 更新のときに変えた条件。部屋ごと、日付つき | 同上 |
| 管理規約・使用細則 | 共用部の使い方、ペット・駐輪・ごみの規則。建物ごと | 管理組合・貸主から受け取ったもの |
| 契約の一覧 | 契約番号と建物の番号、書式の種類、契約と更新の日付 | 賃貸管理システム |
| 回す規則 | 法務・貸主確認へ回す質問の種類と見分け方 | 管理部が決めて持つ一覧 |
質を決めるのは、覚書の持ち方です。 覚書は契約書の一部の条項を変える数行の文書で、契約書の本体と同じ重みで検索すると、本体の古い条項が根拠に出ます。 覚書には、変えた条項と効力の始まる日をメタデータで付け、答えの中でも本体より先に示させます。
管理規約は、分譲マンションの一室を管理するときに特に効きます。 部屋の契約でペットが可でも、建物の管理規約が飼育を制限していることがあります。 部屋の契約と建物の規約の両方を引き、どちらの文書の記載かを分けて示します。
国土交通省の賃貸住宅標準契約書(平成30年3月版)には、借主からの解約を30日前の申入れで行う条項や、犬・猫などの動物の飼育を禁止・制限する行為として別表で定める形が含まれます。ひな形どおりの契約もあれば、特約で変えている契約もあるので、ひな形の知識で答えず、その部屋の契約の記載だけを根拠にします。
データの取得方法を決める
文書は Cloud Storage のフォルダに置き、メタデータの JSONL と一緒にデータストアへ取り込みます。 1文書ごとに次のメタデータを付けます。
| メタデータ | 値の例 | 使いどころ |
|---|---|---|
contract_id | C-2019-04512 | 部屋の契約の文書だけに絞る |
building_id | B-0231 | 建物の管理規約・使用細則に絞る |
doc_type | lease、disclosure、amendment、bylaws、house_rules | 出典の表示と、覚書の優先 |
effective_from | 覚書の効力の始まる日(ISO 8601 の日付) | 古い覚書と新しい覚書を並べる |
form_type | own_2018、owner_a、legacy_x | 書式ごとの読み取りの誤りを集計する |
status | active、terminated | 解約済みの契約を外す |
絞り込みに使う項目は、データストアのスキーマで「Indexable」にします。 絞り込みの式は ANY() による完全一致と AND・OR・NOT で書けます。
(contract_id: ANY("C-2019-04512") OR (building_id: ANY("B-0231") AND doc_type: ANY("bylaws", "house_rules")))
AND status: ANY("active")
建物の文書は doc_type で限ります。 building_id だけで絞ると、同じ建物の他の部屋の契約書が範囲に入ります。 部屋の文書は contract_id、建物の文書は building_id と種類、の2つを OR でつなぎます。
解約済みの契約は消さずに terminated にします。 退去の後の精算の質問に答えるときだけ、担当者の操作で範囲に戻します。
取り込みは、Cloud Storage から定期の同期にします。 間隔は1日・3日・5日から選べます。新しい契約や覚書は、管理システムに登録した翌日には検索できるよう、1日の間隔にします。
AIへ渡す前に整形する
- 契約番号の確認 … 契約の一覧で引き、
statusと建物の番号を決めます。見つからなければ会話を始めません - 質問の整理 … メールの署名と引用を落とし、入居者の氏名・電話番号・口座番号らしい文字列を伏せます
- 回す規則の照合 … 「無効では」「払わなくてよいか」「法律では」「弁護士」「今回だけ」など、条項の有効性や負担の争い、例外の求めを示す語を見ます
- 絞り込みの式の組み立て … 契約番号と建物の番号から式を作ります。担当者の書いた文字を式に混ぜません
- 取り込み前の確認 … 新しいPDFを置くとき、契約番号と文書の種類が入っているか、スキャンの頁が欠けていないかを確かめます
3番目を軽く見ないでください。 「更新料は払わないといけないのか」は、契約の記載を示せば済む質問にも、更新料の有効性を争う質問にも読めます。記載は示したうえで、争いの気配があれば法務へ回す形にします。
5番目は、スキャンの頁の欠けを防ぎます。 特約の頁だけスキャンが漏れていると、AIは「特約に記載なし」と正しく答え、その答えが誤りになります。 頁数を契約の一覧と突き合わせます。
AIに処理させる
させるのは、選ばれた契約と建物の文書から該当する条項を探し、文書の言葉で「契約上どう書かれているか」を答えることだけです。
| 質問の種類 | 答え方 | 根拠にする文書 |
|---|---|---|
| ペットの飼育 | 契約・覚書・管理規約の記載を分けて示す | 契約書の別表と特約、覚書、管理規約 |
| 駐輪・駐車 | 契約の区画の記載と、使用細則の規則を示す | 契約書の頭書、使用細則 |
| 更新料・更新の手続き | 金額や算定の書き方、手続きの期限を文書のまま示す | 契約書、重要事項説明書 |
| 解約の予告 | 予告の期間と方法(書面かどうか)を文書のまま示す | 契約書 |
| 同居人の追加・楽器 | 届出や承諾の要否を示す | 契約書、使用細則 |
| 退去時の負担 | 契約に書かれた負担の区分と特約を示す | 契約書の特約、重要事項説明書 |
答えの頭には、覚書や特約が本体を変えているかを必ず書かせます。 「本体の第○条を、○年○月の覚書で変更しています」のように示させ、本体だけの答えで終わらせません。
| させないこと | 理由 |
|---|---|
| 条項が有効かどうかの判断 | 法的な評価は法務が受ける |
| 契約に無い取扱いを一般の慣行で補う | 書かれていないことは貸主に確かめる |
| 他の部屋や他の物件の契約での言い換え | 部屋ごとに特約が違う |
| 「1か月」を30日に置き換えるなどの読み替え | 担当者ごとの揺れをAIが固定してしまう |
| 費用の金額の計算 | 日割りや按分は管理システムで出す |
| 入居者への約束(「大丈夫です」) | 伝えるのは担当者 |
4行目は、親切のつもりで起きます。 「解約は1か月前」と書かれていると、AIは日数に直して答えようとします。文書の表記のまま示し、どう数えるかは社内で決めた言い方で担当者が伝えます。
指示内容を固定する
answer メソッドの promptSpec.preamble に、次の内容を入れます。
あなたは賃貸住宅の管理会社で、入居者からの問い合わせを受ける担当者を手伝う社内の案内係です。
検索された、この部屋の賃貸借契約書・重要事項説明書・覚書と、この建物の管理規約・使用細則だけを根拠に答えてください。
答えを読むのは担当者で、入居者ではありません。
【答え方】
- 1行目に、覚書または特約が契約書の本体の条項を変えているかを書いてください。
変えていれば「本体の第○条を、○年○月○日の覚書で変更」のように書いてください。
- 2行目以降に、該当する記載を文書の種類ごとに分けて書き、条項の番号と頁を書いてください。
部屋の契約と建物の管理規約の両方に記載があれば、両方を分けて示してください。
- 期間、金額、回数、日付は、文書の表記のまま写してください。日数への換算や計算をしないでください。
- 該当する記載が無ければ「契約書類に記載なし」とだけ書いてください。
【答えないこと】
- 条項が有効か、法律上どうなるかを答えないでください。
- 契約書類に無い取扱いを、一般的な慣行や他の物件の例で補わないでください。
- 入居者に約束する言い方(「大丈夫です」「できます」)をしないでください。
- 読み取りの結果に判読できない文字があるときは、推し量って埋めず「判読できない箇所あり」と書いてください。
最後の行は、スキャンの契約書のために入れます。 OCRの結果に欠けや崩れがあると、AIは前後から数字を補って答えます。補った数字は、もっともらしいほど担当者が見落とします。 判読できないと書かせ、担当者に原本の頁を開かせます。
あわせて、answer メソッドの設定で次を有効にします。
| 設定 | 値 | 目的 |
|---|---|---|
includeCitations | true | 答えの文ごとに出典を示す |
ignoreLowRelevantContent | true | 関係の薄い条項から無理に答えを作らない |
searchSpec.searchParams.filter | 前処理で組んだ式 | この契約と建物の文書だけにする |
searchSpec.searchParams.boostSpec | doc_type が amendment の文書を上げる | 覚書を本体より先に根拠にする |
出力形式を固定する
中継プログラムは、answer メソッドの応答から次の形の記録を作ります。 チャット画面に返すのは answer_text と citations です。
{
"session_id": "",
"contract_id": "C-2019-04512",
"building_id": "B-0231",
"question_masked": "",
"topic": "pet | parking | renewal | termination | occupant | moveout | other",
"route": "answered | not_in_docs | escalated_rule | escalated_low_support",
"amended": true,
"answer_text": "",
"citations": [ { "doc_type": "amendment", "title": "", "clause": "", "page": 0, "uri": "" } ],
"support_score": 0.0,
"created_at": ""
}
1つ目の理由は、amended で覚書の有無を答えの文から切り離せることです。 1行目の書き方を中継プログラムが読み取り、真偽で持ちます。画面では、覚書があれば答えの上に目立つ帯で出します。 担当者が本体の条項だけを読み上げるのを防ぎます。
2つ目は、citations の page で原本の頁にすぐ飛べることです。 担当者は、答えの文ではなく原本の頁を見て伝えます。
3つ目は、not_in_docs を数えられることです。 契約書類に記載が無かった質問を topic ごとに数えると、貸主に取扱いを決めてもらうべき項目が見えます。ペットの記載が無い契約が多い建物は、貸主と取扱いを決めて覚書にする候補です。
support_score は、答えがデータストアの内容にどれだけ裏付けられているかを0〜1で示す値です。 自社で決めた境目を下回ったら答えを表示せず、担当者に原本を開くよう返します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 社内のチャット画面 | 中継プログラムのAPI | 契約番号と質問を受け、答えと出典を返す |
| 契約の一覧 | 読み取り | 契約番号から建物の番号と状態を引く |
| Vertex AI Search(Agent Search) | answer メソッドの呼び出し | 絞り込みの式・ブースト・セッションを渡し、答えを受け取る |
| Cloud Storage | 文書の配置 | 契約書類のPDFとメタデータを置き、毎日同期する |
| BigQuery | 書き込み | 会話の記録を保管し、月次で集計する |
法務・貸主確認へ回したものは、上長の受付の一覧に入れます。 契約番号、質問、検索で見つかった条項の箇所、回した理由を残し、上長が貸主や法務の担当に確かめた結果を、担当者が入居者へ返します。
人が確認する
答えは、担当者が出典の頁を開いて確かめてから入居者に伝えます。 答えの文をそのまま入居者に転送することはしません。
- 出典の頁を開く … 特に、スキャンの契約書で数字や期間が出てきたときは必ず開きます
- 覚書の帯を見る … 帯が出ていれば、本体ではなく覚書の記載で伝えます
- 回ったものを上長が毎日見る …
escalated_ruleを先に見ます。争いになりかけているものが多いためです - 週に1回、抜き取る …
answeredから数十件を選び、条項と頁が合っているか、別の契約が混ざっていないかを見ます
4番目では、古い書式の契約を優先して抜き取ります。 スキャンの読み取りの誤りが出やすいのは、古い書式だからです。form_type ごとに誤りの数を数えます。
伝え方は、社内で揃えた言い方を使います。 「1か月前」「書面で」のような記載をどう説明するかは、第14章の3週目で決めた言い方に合わせます。AIの答えに伝え方まで書かせないのは、言い方の判断を担当者と上長に残すためです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 契約番号が見つからない | 会話を始めず、管理システムでの確認を促す |
| 契約書類に記載が無い | 「契約書類に記載なし」と返し、not_in_docs で記録。貸主確認の候補にする |
| 判読できない箇所がある | 答えに「判読できない箇所あり」と出し、原本の頁を開かせる |
| 根拠の裏付けが弱い | 答えを表示せず、原本を開くよう返す(escalated_low_support) |
| 覚書が複数ある | 効力の始まる日の新しい順に並べて示す |
| 契約と管理規約が違うことを言っている | 両方を分けて示し、上長へ回す |
| 条項の有効性や負担の争い | 規則で法務へ(escalated_rule)。条項の箇所は示す |
| 入居者の控えと記載が違うと言われた | 管理システムの原本と入居者の控えを照らし、上長へ回す |
| スキャンの頁が欠けている | 取り込みを止め、管理システムの原本を確かめる |
| 検索基盤が応答しない | これまでどおり管理システムでPDFを開くよう返す |
6行目は、分譲マンションの一室でよく起きます。 部屋の契約で認めていても建物の規約が制限していれば、入居者は規約にも従う必要があります。 どちらで答えるかを担当者が決めず、上長と貸主で揃えます。
記録を残す
- 会話ごとの契約番号・建物の番号、伏せた後の質問の文面、答え、出典の条項と頁、
amended、support_score - 使った絞り込みの式と、その時点で取り込まれていた覚書の一覧
- 回した理由、上長が貸主や法務に確かめた結果
- 抜き取りで見つけた誤りと、書式(
form_type)ごとの件数 - 月ごとの
topicとrouteの件数
2つ目で「その時点の覚書の一覧」を残すのは、覚書が後から登録されることがあるためです。 「前に聞いたときと答えが違う」と言われたとき、その日に覚書が取り込まれていたかで説明できます。
04実装レベルの3段階
最小構成では、PDFを開いて読み込ませる手間が残ります。 確かめるための段階です。 半自動化で、1件6分が4分程度になります。 条項を探す時間は減りますが、覚書と管理規約を見に行く手間が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、覚書と規約を答えの中で並べて示すので、別の文書を開きに行かなくて済むからです。 段階を飛ばさないでください。 半自動化で、スキャンの読み取りの誤りが多い書式と、頁の欠けた契約が先に見つかります。直してから覚書の優先を組むほうが、帯の出し間違いが減ります。
05工数削減シミュレーション
導入後 900件 × 2分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 管理戸数が数千戸あり、貸主ごと・入居時期ごとに契約書の書式や特約が違う賃貸管理会社。入居者からの電話やメールの多くが「契約ではどうなっているか」の確認で、担当者が管理システムから契約書のPDFを開いて条項を探している場合。分譲マンションの一室を管理していて、建物の管理規約・使用細則も参照する必要がある場合。紙の契約書をスキャンしたPDFが多く残っている場合。
- 管理戸数が数百戸で、契約書の書式が1種類にそろっている場合(書式の条項番号の早見表で足りる)。契約書の電子化が済んでおらず、紙の原本しか無い場合(先にスキャンと部屋への紐づけが要る)。質問の多くが、契約の条項が有効かどうか、どちらが費用を負担すべきかの争いで、条項を示すだけでは済まない場合。
07最小構成で試す方法
- 先月の問い合わせから30件を選ぶ(覚書のある契約、スキャンの古い契約、管理規約が絡む質問を必ず混ぜる)
- その30件の部屋の契約書類のPDFを用意する
- 手元の生成AIのサービスに1部屋分のPDFを読み込ませ、質問する
- 「この契約書類に書かれていることだけで答えてください。覚書が本体を変えているかを最初に書き、条項の番号と頁を示してください。記載が無ければ『記載なし』と答えてください。期間を日数に直さないでください」と指示する
- 出てきた答えを、当時担当者が返した答えと突き合わせる
入居者の契約書類を外部のAIサービスに読み込ませる前に、社内の個人情報の取扱いの規程で認められているかを確かめてください。 試す段階では、氏名と口座の欄を黒塗りしたPDFを使います。
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ条項を、覚書の有無と頁付きで示した | データストアと絞り込みの組み立てに進む |
| 覚書を見落とした、期間を日数に直した | 指示の書き方で直る。構成は有効 |
| スキャンの契約で数字を読み違えた | OCR パーサーで取り込む前提で、本格構成で確かめ直す |
3行目が出ることは珍しくありません。 古いスキャンは、AIサービスの画面に貼っただけでは読み取りの質が上がりません。本格構成では OCR パーサーで読み、判読できない箇所を書かせる形で確かめます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 別の部屋の契約で答える | 契約番号を入れさせ、contract_id で絞る |
| 同じ建物の他の部屋の契約が混ざる | 建物の文書は building_id と doc_type の両方で絞る |
| 覚書を見落とす | boostSpec で覚書を上げ、1行目に覚書の有無を書かせる |
| スキャンの数字を読み違える | OCR パーサーと useNativeText、判読できない箇所を書かせる |
| 頁の欠けで「記載なし」になる | 取り込み前に頁数を契約の一覧と突き合わせる |
| 期間を日数に直して答える | 文書の表記のまま写させる |
| 一般の慣行で答える | 記載が無ければ「記載なし」とだけ書かせる |
| 条項の有効性に答える | 規則で法務へ回す |
| 解約済みの契約が範囲に入る | status を terminated にして外す |
| メタデータを付けたのに絞り込めない | スキーマで Indexable にする |
| パーサーの設定を後から変える | 既に取り込んだ文書は解析し直されない。 作る前に決める |
上の3行が、この構成の失敗のほとんどです。 どれも、正しい言葉で違う契約の条項を答えるという同じ形をしています。AIの精度ではなく、検索の範囲と文書の紐づけの問題です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 入居者の氏名・連絡先・勤務先・連帯保証人や家賃債務保証の情報が書かれた賃貸借契約書と重要事項説明書、覚書、管理規約、担当者が書いた質問の文面と会話の記録。
- 担当者だけが使う … 入居者が直接使う窓口にはしません。本人確認は担当者が管理システムで行い、確かめた後の契約番号だけで検索させます
- 契約書類の範囲を最小にする … 質問に答えるのに口座の欄や保証人の欄は要りません。取り込む前にその頁を外すか、データストアへのアクセスを入居者窓口の担当者に限ります
- 答えを入居者に転送しない … 伝えるのは、担当者が原本の頁を見て確かめた内容です。AIの答えの文を、そのままメールに貼りません
- 法的な評価をさせない … 条項が有効か、費用をどちらが負担すべきかは、法務の担当と、必要に応じて弁護士に確かめます
- 貸主の取扱いを勝手に決めない … 契約に記載が無いことは、貸主に確かめて覚書などの形で決めてから答えます
- 個人情報の扱いを規程に合わせる … 入居者の契約書類をクラウドの検索基盤に載せることが、社内の個人情報の取扱いの規程と、貸主との管理委託の取り決めで認められているかを先に確かめます
誤りが起きた場合のリスクは、別の契約の条項を伝えることと、覚書で変わった条項を本体のまま伝えることの2つです。 前者は契約番号の絞り込みで、後者は覚書の優先と帯の表示で防ぎます。どちらもAIに判断させない場所で守ります。
10まず何から始めるか
1週目:契約書類の状態を数える
管理システムから契約書類の一覧を書き出し、契約番号ごとに、契約書・重要事項説明書・覚書がそろっているか、スキャンか文字のPDFかを数えます。 あわせて、建物ごとの管理規約・使用細則の有無を確かめます。
2週目:30件で試す
先月の問い合わせから30件を選び、黒塗りしたPDFを手元の生成AIに読み込ませて答えさせます。覚書を見落としていないか、スキャンの数字を読み違えていないかを最優先で見ます。
3週目:回す規則と、社内の言い方を決める
どの質問を法務・貸主確認へ回すかを、管理部と法務で決めます。 条項の有効性、負担の争い、例外の求めは必ず入れます。「1か月前」のような書き方をどう伝えるかの社内の言い方も、ここで揃えます。
4週目:データストアを作り、一部の担当者で使う
Cloud Storage に契約書類とメタデータを置き、OCR パーサーを有効にして Vertex AI Search(Agent Search)のデータストアを作ります。この時点では担当者2〜3名だけが、自分で原本を開いて答え合わせをしながら使います。
2か月目: 中継プログラムとチャット画面を作り、覚書の帯と建物の規約の並記を足して、全担当者に開きます。topic と route の件数を毎週数えます。3か月目以降: not_in_docs の多い項目を貸主と相談し、1件6分が何分になったかを実測します。覚書の見落としによる苦情がなくなり、電話の折り返しが減った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称されつつあること。answer メソッドがセッションによる複数回のやり取りと質問の言い換えに対応すること。includeCitations、ignoreLowRelevantContent、promptSpec.preamble、searchSpec.searchParams の filter・boostSpec。答えの裏付けを0〜1の値で返せること | Google Cloud: Agent Search の answer メソッド | 2026-10-06 |
デジタルパーサーが機械で読める文字を取り出すこと。OCR パーサーがスキャンした文書のように文字が画像の一部になっているPDFのためのもので、対象がPDFだけであること。useNativeText で機械で読める文字とOCRの結果を合わせて読み取りの質を上げられること。パーサーの設定の変更が既に取り込んだ文書に効かないこと | Google Cloud: Agent Search の文書の解析と分割 | 2026-10-06 |
絞り込みに使う項目をスキーマで Indexable にすること。ANY() の完全一致、AND・OR・NOT | Google Cloud: Agent Search のメタデータによる絞り込み | 2026-10-06 |
| Cloud Storage などからデータストアを作れること。メタデータを JSON で付けられること。定期の同期の間隔を1日・3日・5日から選べること | Google Cloud: Agent Search の検索データストアの作成 | 2026-10-06 |
| 賃貸住宅標準契約書が紛争の防止などを目的としたひな形で、使用が法令で義務づけられているものではないこと。平成30年3月版に家賃債務保証業者型と連帯保証人型があること | 国土交通省: 賃貸住宅標準契約書について | 2026-10-06 |
| 標準契約書(家賃債務保証業者型)に、借主からの解約を30日前の申入れで行う条項と、犬・猫などの動物の飼育を禁止・制限する行為として別表で定める形、特約条項の欄、頭書が含まれること | 国土交通省: 賃貸住宅標準契約書(平成30年3月版・家賃債務保証業者型) | 2026-10-06 |
条項の有効性と費用の負担の考え方は、法務の担当と、必要に応じて弁護士に確認してください。 本記事は国土交通省のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0428)についてのご相談はこちらから。
