事業用の物件を探す法人の要望に合う区画を、過去の募集図面と物件資料から探し、条件ごとの根拠を添えて提案の候補に並べる
事務所や店舗を探す法人の要望(立地・面積・用途・賃料・設備)を受けたら、過去の募集図面と物件資料から合う区画を探し、条件ごとに「図面のどの記載で満たすか」を添えて提案の候補に並べます。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- 不動産/建設/金融
- 対象部門
- 営業
- 対象業務
- 情報検索/比較検討
- 主な課題
- 営業フォローが追いつかない/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- ヒアリングシートとメールを読み、条件を書き出す
- 物件台帳で、エリアと面積の範囲で区画を検索し、一覧を表計算に書き出す
- 一覧の区画ごとに共有フォルダの募集図面を開き、賃料、用途、設備の記載を確かめる
- 床荷重や天井高のように図面に無い条件は、物件資料の仕様書を開いて探す
- 条件に合いそうな区画に印を付け、物件台帳で募集の状況を確かめる
- 5〜8件に絞り、提案の候補表に書き写して、法人へ送る
- 自動共有フォルダに新しく入った募集図面と物件資料から本文を取り出す
- 自動Claude が図面ごとに、面積・賃料・共益費・用途・設備・備考を決まった項目に整える(用途は「可/相談/不可/記載なし」の4つ)
- 自動物件台帳から区画の番号と募集の状況を付けて、検索基盤に登録する
- 人担当が依頼を開き、「候補を探す」を押す
- 自動Claude が要望の文章を、外せない条件とあれば良い条件に分け、はっきりしない条件を書き出す
- 人担当が条件の分け方を確かめ、はっきりしない条件を直す
- 自動外せない条件で絞り、あれば良い条件の当たり方で並べ、区画ごとに最新の図面1枚にまとめる
- 自動Claude が上位の区画ごとに、条件を「満たす/満たさない/記載なし」で書き出し、根拠の図面の番号と記載を添える
- 人担当が候補を読み、貸主か管理会社に空きと条件を確かめ、提案の候補表を送る
各工程の詳しい説明を読む
- ヒアリングシートとメールを読み、条件を書き出す
- 物件台帳で、エリアと面積の範囲で区画を検索し、一覧を表計算に書き出す
- 一覧の区画ごとに共有フォルダの募集図面を開き、賃料、用途、設備の記載を確かめる
- 床荷重や天井高のように図面に無い条件は、物件資料の仕様書を開いて探す
- 条件に合いそうな区画に印を付け、物件台帳で募集の状況を確かめる
- 5〜8件に絞り、提案の候補表に書き写して、法人へ送る
(a)図面を開く数が多すぎる。 3番目で、条件の範囲に入る区画が30件あれば30枚の図面を開きます。同じ区画の図面が年ごとに何枚もあり、どれが新しいかをファイル名で見分けます。
(b)備考欄の書き方がばらばら。 「飲食可」「軽飲食相談」「重飲食不可」「飲食店舗応相談(排気要確認)」。同じ「飲食できるか」が、図面ごとに違う言葉で書かれています。 検索で拾えないので、全部を目で読みます。
(c)探し方がベテランの記憶に頼っている。 「あのビルの5階は床荷重を上げてある」「あそこのオーナーは学習塾を断る」。物件台帳にも図面にも無い知識で候補が決まり、経験の浅い担当の提案は件数も質も揃いません。
(d)なぜその区画を選んだかが残らない。 6番目の候補表には区画の情報だけが載り、どの条件をどの記載で満たしたかは書かれません。法人から「床荷重は大丈夫ですか」と聞かれると、担当はもう一度図面を開きます。
取り込み(毎晩)
- 【自動】 共有フォルダに新しく入った募集図面と物件資料から本文を取り出す
- 【自動】 Claude が図面ごとに、面積・賃料・共益費・用途・設備・備考を決まった項目に整える(用途は「可/相談/不可/記載なし」の4つ)
- 【自動】 物件台帳から区画の番号と募集の状況を付けて、検索基盤に登録する
依頼が来たとき
- 【人】 担当が依頼を開き、「候補を探す」を押す
- 【自動】 Claude が要望の文章を、外せない条件とあれば良い条件に分け、はっきりしない条件を書き出す
- 【人】 担当が条件の分け方を確かめ、はっきりしない条件を直す
- 【自動】 外せない条件で絞り、あれば良い条件の当たり方で並べ、区画ごとに最新の図面1枚にまとめる
- 【自動】 Claude が上位の区画ごとに、条件を「満たす/満たさない/記載なし」で書き出し、根拠の図面の番号と記載を添える
- 【人】 担当が候補を読み、貸主か管理会社に空きと条件を確かめ、提案の候補表を送る
6番目を人に残しているのが、この設計の分かれ目です。 「駅から近いところ」が外せない条件なのか、あれば良い条件なのかは、文章からは決まりません。ここを取り違えると、検索は正しく動いて、違う区画を並べます。 1分で済む確認なので、毎回人が見ます。
9番目で貸主に確かめるのは、図面が過去の情報だからです。 図面の賃料は募集したときの値で、区画がいま空いているかは物件台帳と貸主にしか分かりません。
02今回想定するシステム構成
【取り込み】共有フォルダの募集図面(PDF)/物件資料 ▼【トリガー】毎晩 AWS Lambda ── 本文の取り出し、区画の番号の付与 ▼ Claude API ── 図面ごとに面積・賃料・用途・設備を決まった項目に整える ▼ Amazon OpenSearch Service(募集図面の索引。区画の番号、用途、設備、本文) 【依頼】担当が「候補を探す」を押す ▼ Claude API ── 要望を外せない条件/あれば良い条件に分ける ▼【人】条件の分け方の確認 Amazon OpenSearch Service ├─ bool の filter:面積、総額の上限、用途、エリア ├─ bool の should:天井高、床荷重、1階、24時間(_name 付き) ├─ collapse:区画の番号でまとめ、最新の図面を代表に └─ highlight:条件に当たった記載の抜き出し ▼ Claude API ── 区画ごとに条件の充足を、図面の番号と記載付きで書き出す ▼ 顧客管理の仕組み(依頼に紐づく候補の欄)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(bool の filter と should、collapse、ハイライト、項目レベルのセキュリティ) | Azure AI Search、Vertex AI Search(Agent Search) |
| 生成AI | Claude API(図面の項目の整理、要望の条件の分解、条件ごとの根拠の書き出し) | Gemini API、OpenAI API |
| 連携 | AWS Lambda(毎晩の取り込み、検索の呼び出し、顧客管理の仕組みへの返却) | AWS Step Functions |
| 保管 | Amazon S3(取り込みの記録と、依頼ごとの検索の記録) | ― |
| 台帳 | 既存の物件台帳と顧客管理の仕組み | ― |
物件台帳と顧客管理の仕組みは、新しく足すものではありません。 物件台帳からは区画の番号と募集の状況を読むだけで、この構成が募集の状況を書き換えることはありません。 顧客管理の仕組みには、依頼に紐づく候補の欄にだけ返します。
外せない条件は、bool クエリの filter に置きます。 公式のドキュメントでは、filter は点数に影響させずに結果を絞る句で、合うか合わないかの二択で判定され、結果がキャッシュされやすいとされています。範囲や数値、日付での絞り込みに向きます。
あれば良い条件は should に置きます。 should は当たる句が多いほど点数が上がる句で、must か filter を含むクエリでは minimum_should_match の既定が0になります。つまり should の条件を1つも満たさない区画も、候補から消えません。 図面に記載が無い区画を残す、という設計にそのまま合います。
区画ごとのまとめには collapse を使います。 公式のドキュメントでは、collapse は項目の値でまとめて各グループの先頭の文書だけを返し、項目は keyword か数値型である必要があります。inner_hits で、グループの中の文書を別の並びで取り出すこともできます。
03どうやって実装するのか
処理の起点を決める
取り込みと検索で、起点が2つあります。
取り込みは毎晩の定時で行います。 募集図面は、新しい募集が始まるたびに共有フォルダに保存されます。その日のうちに検索に載れば足りるので、保存のたびに動かす必要はありません。 物件台帳の募集の状況(募集中、申込あり、成約、募集終了)も毎晩読み直し、索引の区画に付け直します。
募集の状況だけは、検索のときにもう一度物件台帳を引きます。 申込は日中に入ります。朝に「募集中」だった区画が、昼に申込済みになっていることがあります。 候補を並べる直前に台帳を引き、索引の状況と食い違うものは台帳の値で上書きして表示します。
検索は、担当が依頼の画面で「候補を探す」を押したときに動きます。 最初のメールでは条件が出そろっていないことが多いので、ヒアリングを終えたところで押します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 募集図面 | 図面の番号、区画の番号、作成日、面積(坪)、賃料、共益費、敷金、用途の記載、設備の記載、備考、本文 | 共有フォルダ(PDF) |
| 物件資料 | ビルの番号、竣工年、天井高、床荷重、電気容量、空調の方式、利用できる時間、駐車場 | 共有フォルダ |
| 物件台帳 | ビルの番号、区画の番号、所在地、最寄り駅と徒歩の分数、階、募集の状況 | 物件台帳 |
| 依頼 | ヒアリングシート、法人からのメール本文、業種、従業員数、入居の希望時期 | 顧客管理の仕組み |
質を決めるのは、区画の番号です。 図面のファイル名や本文のビル名は書き方が揺れます。区画の番号が付いていない図面は、collapse でまとめられず、同じ区画が何度も並びます。 取り込みで、物件台帳のビル名と階から区画の番号を引き当てます。
データの取得方法を決める
共有フォルダの新しい図面を Lambda が読み、本文を取り出します。画像だけのPDF(古いスキャンの図面)は止めて一覧に出します。 図面の書式はビルごと・年ごとに違うので、本文から項目を作る作業は Claude に任せ、次の形に整えます。
| 項目 | 型 | 使いどころ |
|---|---|---|
flyer_id | keyword | 図面の番号。答えに添える根拠 |
unit_id | keyword | 区画の番号。collapse でまとめる |
flyer_date | date | 図面の作成日。代表の図面を選ぶ |
area_tsubo | float | 面積の絞り込み |
monthly_total | long | 賃料と共益費の月の総額。上限の絞り込み |
use_office/use_retail/use_food_light/use_food_heavy/use_clinic/use_school | keyword | 用途ごとに allowed/consult/prohibited/not_stated |
ceiling_m/floor_load_kg | float/integer | 天井高と床荷重。値が無ければ項目を持たせない |
ground_floor/hours_24 | boolean | 1階か、24時間使えるか |
station/walk_min | keyword/integer | エリアの絞り込みと並び |
status | keyword | 物件台帳の募集の状況 |
body | text | 図面と物件資料の本文。ハイライトの対象 |
用途は「可/相談/不可/記載なし」の4つの値で持たせます。 第3章の(b)の書き方の揺れを、取り込みの段階で吸収します。「記載なし」を「不可」に寄せないことが、この表でいちばん大事な点です。
AIへ渡す前に整形する
- 区画の番号を引き当てる … 図面のビル名と階を物件台帳と照合し、
unit_idを付けます。当たらない図面は止めて担当に戻します - 月の総額を計算する … 賃料と共益費を足して
monthly_totalにします。坪単価で書かれた図面は面積を掛けます。計算は Lambda で行い、AIにはさせません - 単位をそろえる … 面積は坪、天井高はm、床荷重はkg/㎡にそろえます。㎡で書かれた面積は坪に換算し、元の値も残します
- 物件資料の値を区画に足す … 天井高や床荷重は、図面に無ければビルの仕様書の値を使います。どちらから取ったかを項目の横に残します
- 古い図面に印を付ける … 作成から3年を超えた図面は
staleの印を付けます - 募集の状況を付ける … 物件台帳の状況を
statusに入れます
4番目で「どちらから取ったか」を残すのは、仕様書の床荷重が標準の値で、区画によっては補強してあることがあるためです。 図面の値と仕様書の値は、根拠として重さが違います。
AIに処理させる
AIの仕事は、条件の分解と、区画ごとの充足の書き出しの2か所です。 区画を探して並べるのは検索基盤です。
| させること | 中身 |
|---|---|
| 要望の条件の分解 | 文章から面積・総額・用途・エリア・設備の条件を取り出し、「外せない」「あれば良い」に分ける |
| はっきりしない条件の書き出し | 「駅近」「広め」のような、値の決まらない条件を挙げる |
| 条件ごとの充足の書き出し | 区画ごとに、条件を met/not_met/not_stated で書き、根拠の図面の番号と記載を写す |
| 確かめるべき点の書き出し | 用途が consult、図面が古い、値が仕様書から来ている、などを挙げる |
| させないこと | 理由 |
|---|---|
| 面積や総額の幅の決定 | 「40坪前後」を何坪から何坪とするかは自社の規則で決める |
| 用途の可否の判断 | consult を「たぶん可」と書かない。貸主に確かめる |
| 区画が空いているかの判断 | 物件台帳と貸主にしか分からない |
| 賃料の交渉の見込み | 「下げられそう」と書かない |
| 記載の無い設備の補足 | 「このクラスのビルなら床荷重は500kg程度」と一般知識で埋めない |
最後の行が、いちばん起きやすい失敗です。 竣工年と規模から、AIは床荷重や天井高をもっともらしく補います。その一文が候補表に載ると、法人は記載があると思って内見に進みます。 図面にも仕様書にも無い値は not_stated と書かせます。1行目の幅も、自社の規則(面積は±10%など)で付けます。
指示内容を固定する
依頼の文章を条件に分けるときの指示です。
あなたは事業用の賃貸の仲介会社の営業部で、法人の要望を検索の条件に整える係です。
渡された依頼の文章だけを根拠にしてください。
【取り出す条件】
エリア(駅・区)、面積、月の総額の上限、用途、階、設備(天井高、床荷重、電気容量、
24時間、駐車場)、入居の希望時期
【分け方】
- must ...... 文章に「必須」「最低」「以上」「まで」「でないと困る」など、外せないことが書かれている
- prefer .... 「できれば」「望ましい」「あれば」と書かれている
- unclear ... どちらとも読めない。勝手にどちらかに寄せないでください
【厳守事項】
- 値は文章に書かれた表現のまま写してください。「40坪前後」を「36〜44坪」のように幅に直さないでください。
- 「駅近」「広め」「きれいなビル」のような値の無い条件は unclear に入れ、確かめる質問を1文で書いてください。
- 文章に無い条件を、業種から推測して足さないでください。
検索結果から候補を書き出すときの指示です。
あなたは事業用の賃貸の仲介会社の営業部で、提案の候補を整理する係です。
渡された検索結果だけを根拠にしてください。一般的なビルの知識で補わないでください。
【条件】{conditions}
【検索結果】区画ごとに、代表の図面1枚と、条件に当たった記載の抜き出し
【区画ごとに書くこと】
1. 区画の番号、ビル名、階、面積、月の総額、図面の番号と作成日、募集の状況
2. 条件ごとの充足:met / not_met / not_stated と、根拠の記載をそのまま写したもの
3. 確かめるべき点(用途が consult、図面の作成から3年超、値が仕様書から来ている など)
【厳守事項】
- 検索結果に書かれていない値を書かないでください。無ければ not_stated です。
- not_stated を not_met として扱わないでください。
- 用途が consult のときに「可能と思われる」と書かないでください。「貸主に確認」と書いてください。
- 区画が空いているか、賃料が下がるかを書かないでください。
- 区画を良い・悪いで評価しないでください。選ぶのは担当です。
「not_stated を not_met として扱わない」を書かないと、AIは記載の無い条件を満たさないものとして書きます。 候補表で「床荷重:×」と出れば、法人はその区画を見なくなります。
検索結果は、Claude の検索結果ブロックで渡します。 区画1つを1つの search_result にし、source に図面の番号、title にビル名と階、content に図面の項目と抜き出しを入れます。公式の説明では、引用を有効にすると答えの文に、渡した source と title の引用が付きます。 引用は既定で無効で、1つのリクエストの中の検索結果はすべて同じ設定にする必要があります。
出力形式を固定する
検索は、次のように組みます。
GET /flyers/_search
{
"size": 10,
"query": { "bool": {
"filter": [
{ "range": { "area_tsubo": { "gte": 36, "lte": 44 } } },
{ "range": { "monthly_total": { "lte": 2000000 } } },
{ "terms": { "station": ["渋谷", "恵比寿"] } },
{ "terms": { "use_office": ["allowed", "consult"] } }
],
"should": [
{ "range": { "floor_load_kg": { "gte": 500, "_name": "floor_load" } } },
{ "range": { "walk_min": { "lte": 5, "_name": "near_station" } } },
{ "match": { "body": { "query": "床荷重 補強 サーバー", "_name": "body_load" } } }
]
} },
"collapse": {
"field": "unit_id",
"inner_hits": { "name": "older_flyers", "size": 3,
"sort": [{ "flyer_date": "desc" }] }
},
"highlight": { "fields": { "body": { "fragment_size": 80, "number_of_fragments": 3 } } }
}
should の句に _name を付けているのは、どの条件で当たったかを区画ごとに知るためです。 公式のドキュメントでは、名前を付けた句は結果ごとの matched_queries の配列に、当たった句の名前が返ります。 これをそのまま、条件ごとの met の判定に使います。
ハイライトは、根拠の記載を図面から抜き出すために付けます。 既定の unified ハイライトは文を単位に当たり方を見ます。fragment_size の既定は100文字、number_of_fragments の既定は5で、図面の備考は短いので80文字で3つに絞ります。
顧客管理の仕組みに返す形は、次のJSONです。
{
"request_id": "R-2026-1007-031",
"conditions": {
"must": { "area": "40坪前後", "monthly_total_max": 2000000,
"stations": ["渋谷", "恵比寿"], "use": "office" },
"prefer": ["床荷重500kg/㎡", "駅から徒歩5分以内"],
"unclear": [{ "text": "来客が多いので駅から近いところ",
"question": "徒歩何分までなら検討しますか" }]
},
"candidates": [
{ "unit_id": "U-0412-05", "building": "", "floor": 5, "area_tsubo": 41.2,
"monthly_total": 1890000, "flyer_id": "F-2026-0815-12",
"flyer_date": "2026-08-15", "status": "募集中",
"checks": [
{ "condition": "床荷重500kg/㎡", "result": "met",
"evidence": "床荷重:500kg/㎡(一部800kg/㎡補強済)", "from": "flyer" },
{ "condition": "駅から徒歩5分以内", "result": "not_stated",
"evidence": "", "from": "" }
],
"to_check": ["用途:事務所は可。サーバー室の設置は図面に記載なし"],
"older_flyers": ["F-2023-0302-07"] }
],
"excluded_no_unit_id": 2
}
1つ目の理由は、conditions を返して担当が分け方を確かめられることです。 第5章の6番目は、この must/prefer/unclear を画面で直す作業です。
2つ目は、checks の result と from で、根拠の重さが分かることです。 同じ met でも、図面に書かれた値(flyer)とビルの仕様書の標準の値(spec)では意味が違います。法人に伝える前に確かめるべきものが一目で分かります。 older_flyers からは、同じ区画の過去の図面も辿れます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有フォルダ | 毎晩の読み取り | 新しい募集図面と物件資料 |
| 物件台帳 | 毎晩の書き出し/検索時の参照 | 区画の番号、所在地、募集の状況 |
| 顧客管理の仕組み | 画面からの呼び出し | 依頼の文章を渡し、候補を返す |
| Amazon OpenSearch Service | 索引への登録と検索 | 図面の索引、絞り込みと並び、まとめ、抜き出し |
| Claude API | Lambda からの呼び出し | 図面の項目の整理、条件の分解、充足の書き出し |
顧客管理の仕組みには、候補の欄にだけ返します。 法人へ送る提案の候補表に移すのは担当の操作で、候補がそのまま法人に送られることはありません。
人が確認する
確認は必須です。 候補表は、法人の内見と出店の判断の材料になります。
- 条件の分け方を確かめる …
must/prefer/unclearを見て、unclearに答えてから検索を進めます not_statedとconsultを拾う … 候補ごとに、記載の無い条件と相談の用途を貸主に聞く項目として書き出します- 空きと条件を貸主に確かめる … 物件台帳が「募集中」でも、提案の前に貸主か管理会社に空きと賃料を確かめます
- 候補を選んで送る … 5〜8件を選び、確かめた結果を候補表に書いて送ります
3番目を省かないでください。 空いていない区画を提案すると、法人は内見の日程を空けてから断られることになります。
1件あたり12分を目安にします。 貸主への問い合わせの時間は、導入の前から別にかかっているので入れていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 外せない条件で絞ると候補が0件 | 条件を1つずつ外した場合の件数を添えて返す。自動で条件を緩めない |
unclear が残ったまま押された | 検索を止めず、unclear を prefer として扱い、その旨を画面に出す |
| 区画の番号が引き当たらない図面 | 取り込みで止めて担当に戻す。excluded_no_unit_id に数を出す |
| 文字の層が無いPDF | 取り込みで止め、一覧に出す |
| 索引と物件台帳で募集の状況が違う | 物件台帳の値で表示する |
| 図面の作成から3年を超える | stale の印を付け、「賃料と用途は当時の値」と添える |
| Claude の呼び出しに失敗した | 検索結果の区画と抜き出しをそのまま表示する |
1行目で自動で条件を緩めないのは、緩めた結果を担当が「条件に合う区画」と読むためです。 どの条件を外すかは、法人に聞いて決めます。
記録を残す
- 毎晩の取り込みの件数と、止めた図面とその理由
- 依頼ごとの、Claude が分けた条件と、担当が直した後の条件
- 検索の要求と、返った区画・
matched_queries・抜き出し - Claude に渡した検索結果と、返ってきた答えと引用
- 担当が候補表に載せた区画と、載せなかった区画
- 貸主に確かめた結果(空き、用途の可否、賃料)
2つ目は条件の分け方の指示を、最後の行は物件台帳を直す材料です。 貸主に聞いた床荷重や用途の可否を台帳に戻せば、第3章の(c)の記憶が索引に移ります。
04実装レベルの3段階
半自動化で、②の図面を開く時間は大きく減ります。 ただし、条件を検索に入れる作業と、候補ごとの充足を候補表に書く作業は人が行います。本格構成で1件12分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月使うと、区画の番号が付かない図面と、用途の値が not_stated に偏るビルが先に見つかります。そこを直してから充足の書き出しを足すほうが、AIの書いた根拠を担当が信用しやすくなります。
05工数削減シミュレーション
導入後 150件 × 12分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 事務所・店舗の賃貸の仲介を行い、法人からの物件探しの依頼が月に100件を超える不動産会社で、過去の募集図面のPDFと物件資料が何年分もたまっているのに、探し方がベテランの記憶に頼っている場合。物件台帳で区画ごとの募集の状況を持っている場合。依頼から提案までの日数が、他社との競争で効いている場合。AWS を使っており、検索基盤と取り込みの処理を同じ環境で動かせる場合。
- 依頼が月に数件で、担当者が扱う物件をすべて覚えていられる場合。募集図面を残しておらず、物件の情報が外部の流通サイトにしか無い場合。住宅の賃貸のように、条件が間取りと賃料でほぼ決まり、用途や設備の細かい条件が少ない場合。なお、用途の可否の最終判断(飲食の可否、営業時間の制限など)と賃料の条件は貸主に確かめるもので、この構成はそれを代わりに行いません。
07最小構成で試す方法
- 先月の依頼から10件を選び、そのとき提案した区画を書き出す
- その10件のエリアの募集図面を、物件台帳から20〜30件ずつ選んでPDFのまま集める
- 手元のAIサービスに依頼の文章を貼り、「外せない条件、あれば良い条件、はっきりしない条件に分けてください。値は文章のまま写してください」と指示する
- 同じAIサービスに図面を数枚ずつ渡し、「条件ごとに、満たす・満たさない・記載なしで書き、根拠の記載を写してください。記載の無い値を補わないでください」と指示する
- 当時提案した区画と見比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時の提案の多くが、条件を満たす区画として挙がる | 索引と検索の構築に進む |
| 記載の無い条件を「満たさない」と書く | 指示の書き方で直る。構成は有効 |
| 図面の用途の書き方がばらばらで、可否が読み取れない | 用途を4つの値に整える取り込みが先。 検索の問題ではない |
1行目で挙がらなかった区画は、担当がなぜ選んだかを聞きます。 「オーナーが業種を気にしない」「隣の区画とつなげられる」のような、図面に無い理由が出てきたら、それが物件台帳に足す項目の候補です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 記載の無い条件で区画が消える | あれば良い条件を filter に置かない。should に置く |
| AIが記載の無い設備を補う | 指示で禁じ、not_stated を必ず書かせる |
| 同じ区画が何件も並ぶ | unit_id を keyword で持たせ、collapse でまとめる |
| collapse の項目が text 型で動かない | keyword か数値型である必要がある |
consult の用途が「可」として伝わる | 候補表で「貸主に確認」と明示する |
| 成約済みの区画が出る | 検索の直前に物件台帳を引き直す |
| 「40坪前後」の幅が担当ごとに違う | 幅は自社の規則で付ける。AIに決めさせない |
| 古い図面の賃料が今の賃料として伝わる | stale の印と図面の作成日を必ず添える |
| 成約の賃料が担当全員に見える | 項目レベルのセキュリティで役割ごとに隠す |
1行目が、この構成でいちばん気づきにくい失敗です。 検索は正しく動き、記載の無い区画が黙って消えるだけなので、候補が少ない理由に誰も気づきません。最小構成の段階で、当時の提案の区画が検索に出るかを必ず確かめてください。
5行目の consult は、法人には「可」と同じに聞こえます。 候補表の書き方を最初に決めてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 募集図面と物件資料(公開した情報)、物件台帳の募集の状況、成約の賃料、そして依頼してきた法人の移転や出店の計画です。
- 法人の計画を索引に入れない … 依頼の文章は、条件の分解に使うだけで索引には入れません。移転や出店の予定は、法人にとって公表前の情報です
- 成約の賃料を役割で隠す … 公式のドキュメントでは、項目レベルのセキュリティで役割ごとに読める項目を含める・除くの形で決められます。成約の賃料と貸主の連絡先は、店長の役割だけに見せます
- 用途の可否をAIの答えで伝えない … 飲食や学習塾、クリニックの可否は、貸主の判断と、法令上の制限(用途地域、消防の設備など)の両方で決まります。この構成は図面の記載を写すだけで、法令上の可否は判断しません
- 古い図面の情報を今の条件として伝えない … 作成日と
staleの印を候補表に残します - 検索の記録を残す … 誰がどの依頼でどの区画を検索したかを残します
- AIに渡す範囲を絞る … Claude には図面の項目と抜き出しだけを渡し、依頼した法人の名前は渡しません
なお、項目レベルのセキュリティは読み取り(検索と取得)にだけ効き、書き込みの権限を持つ役割は隠した項目も更新できるとされています。取り込みの処理の権限と、担当の検索の権限は分けてください。
誤りが起きた場合のリスクは、記載の無い条件を「満たす」「満たさない」と伝えることと、空いていない区画を提案することの2つです。 前者は not_stated を最後まで運ぶ設計で、後者は物件台帳の引き直しと貸主への確認で防ぎます。
10まず何から始めるか
1週目:区画の番号の引き当てを数える
過去3年の募集図面から100枚を選び、物件台帳の区画の番号に引き当たる割合を数えます。半分を下回るなら、ビル名の別名の一覧を先に作ります。
2週目:10件の依頼で試す
先月の依頼10件と図面で、手元のAIサービスに条件の分解と充足を書かせます。記載の無い条件を「満たさない」と書いていないかを最優先で見ます。
3週目:幅と用途の規則を決める
面積と総額の幅の付け方、用途の4つの値の判断の基準を、営業部の責任者と決めます。consult を候補表でどう書くかもここで決めます。
4週目:索引と検索を作る
1拠点のエリアの図面を取り込み、filter と should と collapse で候補を並べます。当時提案した区画が上位に出るかを見て、条件の置き場所を調整します。
2か月目: 要望の条件の分解と、区画ごとの充足の書き出しを足し、全拠点に広げます。3か月目以降: 顧客管理の仕組みに候補を返し、1件の依頼が何分になったかを実測します。どの担当が受けた依頼でも、同じ条件に同じ候補が並び、法人に条件ごとの根拠を図面の記載で示せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
bool クエリの filter が点数に影響させずに絞り込み、結果がキャッシュされやすいこと。should は当たる句が多いほど点数が上がり、must か filter を含むと minimum_should_match の既定が0になること。句に _name を付けると matched_queries に当たった句の名前が返ること | OpenSearch Documentation: Boolean query | 2026-10-07 |
collapse が項目の値でまとめて各グループの先頭の文書だけを返し、項目が keyword か数値型である必要があること。inner_hits でグループの中の文書を取り出せること | OpenSearch Documentation: Collapse search results | 2026-10-07 |
既定のハイライトが unified で文を単位に当たり方を見ること。fragment_size の既定が100文字、number_of_fragments の既定が5であること | OpenSearch Documentation: Highlight query matches | 2026-10-07 |
| 項目レベルのセキュリティが役割ごとに読める項目を含める・除くの形で決められ、読み取りにだけ効き、書き込みの権限を持つ役割は更新できること | OpenSearch Documentation: Field-level security | 2026-10-07 |
検索結果ブロック(source・title・content)で引用付きの答えが返ること。引用が既定で無効で、1つのリクエストの検索結果はすべて同じ設定にする必要があること | Claude Docs: Search results | 2026-10-07 |
用途の可否と賃料の条件は、貸主と管理会社に確かめてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0850)についてのご相談はこちらから。
