建築設計事務所が過去の物件の特記仕様書・仕上表・打合せ記録を横断して検索し、用途と規模の近い物件で採用した仕様とその理由を根拠付きで探す
設計者が「延べ2,000㎡前後のRC造の保育所で、保育室の床を何にしたか、なぜそうしたか」と聞くと、用途と規模の近い過去の物件を絞り込み、特記仕様書・仕上表の該当箇所と、採用の理由が書かれた打合せ記録を引用付きで返します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/不動産/建設
- 対象部門
- 研究開発
- 対象業務
- 情報検索/比較検討
- 主な課題
- 属人化している/引き継ぎができていない/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 判断支援/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 設計者が、検討中の部位(たとえば保育室の床)について、似た用途の過去の物件を思い出すか、先輩の設計者に聞く
- 物件の一覧表で用途の同じ物件を拾い、図面の表紙を開いて延べ面積と構造を確かめる
- 候補の物件のフォルダを開き、仕上表と特記仕様書のうち竣工時のものを探す
- 仕上表で該当する室の床の材料と品番を見て、特記仕様書で施工の条件を確かめる
- 打合せ記録を日付順に開き、床の話が出てくる回を探して理由を読む
- 2〜3件の物件で同じことをくり返し、表計算にまとめて検討の資料にする
- 人設計者が、社内の検索画面で、用途・延べ面積の範囲・構造・竣工年の範囲を選び、部位と聞きたいことを入れて送る
- 自動中継プログラムが、選んだ条件から Agent Search(Vertex AI Search)の絞り込みの条件を作る
- 自動search メソッドで条件に合う物件の書類を探し、物件ごとにまとめて候補の物件の一覧を作る
- 自動answer メソッドが、候補の物件の仕上表・特記仕様書・打合せ記録から、部位の仕様と採用の理由を引用付きで返す
- 自動中継プログラムが、引用を物件と書類の段階で整理し、仕様ごとに「理由の引用あり」「理由の記録なし」「竣工までに変更あり」を付ける
- 自動「理由の記録なし」の仕様は、その物件を担当した設計者の名前を添えて、聞く先の一覧にする
- 人設計者が、引用の箇所を原文で開いて確かめ、今の物件の条件(法令・発注者の要望・製品の現行品)と照らして検討する
- 人担当した設計者に理由を聞いたものは、技術管理室が補足の記録として登録する(翌晩に取り込まれる)
各工程の詳しい説明を読む
- 設計者が、検討中の部位(たとえば保育室の床)について、似た用途の過去の物件を思い出すか、先輩の設計者に聞く
- 物件の一覧表で用途の同じ物件を拾い、図面の表紙を開いて延べ面積と構造を確かめる
- 候補の物件のフォルダを開き、仕上表と特記仕様書のうち竣工時のものを探す
- 仕上表で該当する室の床の材料と品番を見て、特記仕様書で施工の条件を確かめる
- 打合せ記録を日付順に開き、床の話が出てくる回を探して理由を読む
- 2〜3件の物件で同じことをくり返し、表計算にまとめて検討の資料にする
(a)仕様と理由が別の書類にある。 理由を探すのに、仕様を探す以上の時間がかかります。 忙しいときは5番目を省き、仕様だけを写します。
(b)知っている人に聞かないと始まらない。 1番目で先輩の手を止めることが、毎回の始まりです。 先輩が監理に出ていると、検討が進みません。
(c)竣工時のものかが分からない。 仕上表の版を取り違えると、使わなかった材料を採用した仕様として検討に持ち込みます。 変更した理由(納期や施工上の不具合)も失われます。
(d)規模で絞れない。 延べ500㎡の保育所と延べ4,000㎡の複合施設が、同じ「保育所」として候補に並びます。
- 【人】 設計者が、社内の検索画面で、用途・延べ面積の範囲・構造・竣工年の範囲を選び、部位と聞きたいことを入れて送る
- 【自動】 中継プログラムが、選んだ条件から Agent Search(Vertex AI Search)の絞り込みの条件を作る
- 【自動】 search メソッドで条件に合う物件の書類を探し、物件ごとにまとめて候補の物件の一覧を作る
- 【自動】 answer メソッドが、候補の物件の仕上表・特記仕様書・打合せ記録から、部位の仕様と採用の理由を引用付きで返す
- 【自動】 中継プログラムが、引用を物件と書類の段階で整理し、仕様ごとに「理由の引用あり」「理由の記録なし」「竣工までに変更あり」を付ける
- 【自動】 「理由の記録なし」の仕様は、その物件を担当した設計者の名前を添えて、聞く先の一覧にする
- 【人】 設計者が、引用の箇所を原文で開いて確かめ、今の物件の条件(法令・発注者の要望・製品の現行品)と照らして検討する
- 【人】 担当した設計者に理由を聞いたものは、技術管理室が補足の記録として登録する(翌晩に取り込まれる)
3番目で物件の一覧を先に出すのが、この設計の要です。 設計者がまず見たいのは「どの物件が似ているか」です。6番目は、AIに理由を書かせないための出口です。 聞く先の名前まで出せば、「記録が無い」という事実が次の行動になります。
02今回想定するシステム構成
物件のフォルダ(特記仕様書・仕上表・打合せ記録) 物件の一覧表 │ 竣工時の版を選び、物件番号・用途・規模・構造・竣工年・書類の段階を付ける ▼ Cloud Storage ── メタデータ(JSON Lines) ▼ Agent Search(Vertex AI Search)── データストア(レイアウト パーサー、見出しを含めた分割) │ project_id/use_type/floor_area/structure/completed_year/doc_stage ▼ 中継プログラム(Python、Cloud Run) ├──▶ search メソッド … 条件に合う物件の一覧 ├──▶ answer メソッド … 仕様と理由の引用付きの回答 ├──▶ 引用の整理(理由の引用あり/理由の記録なし/竣工までに変更あり) ▼ 検索画面 ── 設計者が原文を開いて確かめる └──▶ 聞く先の一覧(理由の記録なし)── 技術管理室が補足の記録を登録
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の search/answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、検索画面・検索・聞く先の一覧をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(書類の写しとメタデータ)、BigQuery(検索と確認の記録) | ─ |
ファイルサーバーと物件の一覧表は、新しく足すものではありません。 竣工時の版を Cloud Storage に写し、一覧表の延べ面積と構造の列を埋めることが最初の準備作業です。
土台は Agent Search(Vertex AI Search)のデータストアです。 公式のページは「Vertex AI Search is being renamed to Agent Search」としています。扱える形式は TXT、JSON、Markdown、PDF、HTML、DOCX、PPTX、XLSX、XLSM で、特記仕様書・仕上表・打合せ記録をそのまま入れられます。 1ファイル200MB、1回100,000ファイルまでです。物件の属性は、JSON Lines の structData に入れて文書に付け、これで検索を絞り込みます。
表の多い書類には、レイアウト パーサーを使います。 既定のデジタル パーサーは表・見出しを検出しません。レイアウト パーサーは段落・表・見出しを検出し、PDF、HTML、DOCX、PPTX、XLSX、XLSM を扱えます。
03どうやって実装するのか
処理の起点を決める
処理の起点は2つあります。 設計者が検索画面から条件と質問を送ったときと、毎晩の取り込みで、新しく竣工した物件の書類と補足の記録をデータストアに入れるときです。条件を変えた検索は別の1件として記録します。
取り込みは、竣工を起点にします。 設計中の物件の書類は版が日々変わるので入れません。設計中の物件を入れると、決まっていない仕様が「採用した仕様」として返ります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 特記仕様書 | 工事の種別ごとの材料・工法・品質の条件。章と節の見出し付き | 物件のフォルダ(DOCX・PDF) |
| 仕上表 | 室ごとの床・幅木・壁・天井の材料と品番 | 物件のフォルダ(XLSX) |
| 打合せ記録 | 発注者・利用者との打合せの日付・出席者・議題・決まったことと理由 | 物件のフォルダ(DOCX) |
| 変更の記録 | 工事中の仕様の変更の内容と理由(設計変更の指示書、監理の記録) | 物件のフォルダ |
| 物件の属性 | 物件番号、用途、延べ面積、階数、構造、竣工年、担当した設計者 | 物件の一覧表 |
| 補足の記録 | 担当した設計者から聞き取った採用の理由 | 技術管理室が登録 |
| 検索の条件 | 用途、延べ面積の範囲、構造、竣工年の範囲、部位、質問の文 | 検索画面 |
質を決めるのは、物件の属性と変更の記録です。 属性が空いていると、その物件は絞り込みから落ちます。変更の記録が無いと、竣工までに変わった仕様が見分けられません。打合せ記録は、700件分を書き直せないので日付ごとのまま入れます。
データの取得方法を決める
物件ごとに、どの版を入れるかを技術管理室が決めます。 フォルダの中の「最終」「最終2」から竣工時の版を選ぶのは、機械ではできません。竣工時の版が分からない物件は、監理の記録の日付と照らして選び、選べないものは入れないで一覧に残します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 竣工時の仕上表・特記仕様書 | 物件のフォルダ | 採用した仕様(doc_stage: completed) |
| 実施設計の特記仕様書 | 物件のフォルダ | 竣工までの変更の確認(doc_stage: design) |
| 変更の記録 | 物件のフォルダ | 変わった仕様とその理由(doc_stage: change) |
| 打合せ記録 | 物件のフォルダ | 採用の理由(doc_type: minutes) |
| 物件の属性 | 物件の一覧表 | 絞り込みの条件 |
メタデータの1行は、次のように書きます。
{"id": "P0412-finish-completed",
"structData": {"project_id": "P0412", "doc_type": "finish_schedule",
"doc_stage": "completed", "use_type": "nursery", "floor_area": 1980,
"floors": 2, "structure": "RC", "completed_year": 2019,
"designer": "設計部 担当A", "confidential": false},
"content": {"mimeType": "application/pdf",
"uri": "gs://archive-bucket/P0412/finish_completed.pdf"}}
仕上表は、XLSX のままか PDF にするかを第8章の試行で決めます。 結合したセルの多い表は、室名と材料が同じ塊に入るかを見ます。
絞り込みに使う属性は、スキーマで Indexable にします。 公式のページは、絞り込みに使う項目をアプリの Data のページの Schema のタブで Indexable にするよう求めています。use_type、floor_area、structure、completed_year、doc_stage、doc_type、confidential を Indexable にします。
AIへ渡す前に整形する
- 竣工時の版を選ぶ … フォルダから竣工時の仕上表と特記仕様書を選びます。選べない物件は入れずに一覧に残します
- 物件の属性を埋める … 一覧表の延べ面積と構造の空欄を、図面の表紙から埋めます。空欄のまま入れると、絞り込みで落ちます
- 用途の語をそろえる … 「保育園」「保育所」を、絞り込みの語(
nursery)にそろえます - 見出しを確かめる … 打合せ記録の「議題」「決定事項」、特記仕様書の章と節が、文書の見出しとして書かれているかを見ます。太字の文字だけの見出しは、見出しとして検出されないことがあります
- 発注者の名前と個人の名前を外す … 打合せ記録の出席者の個人名は役割(園長、施設長、発注者の担当)に置き換えます。発注者の名称は物件番号に置き換えます
- 守秘の物件を分ける … 発注者との取り決めで社内でも閲覧を限る物件は、
confidential: trueを付けるか、別のデータストアに入れます - 分割の設定 … 文書の分割を有効にし、見出しを各塊に含めます(第7章「AIに何をさせるのか」で詳しく)
4番目を軽く見ないでください。 「決定事項」が見出しとして検出されないと、床の理由の段落が前の議題の塊とつながって切り出されます。
分割の設定は公式のページの値に合わせます。 chunkSize は1塊あたりのトークンの上限で100〜500(既定500)、見出しを各塊に含める includeAncestorHeadings の既定は false です。途中の塊に見出しを足すと文脈が失われにくいとされ、「9章 左官工事 / 2節 床仕上げ」が無いと何の工事の話か分からないので true にします。
AIに処理させる
させるのは、条件に合う物件の書類から、部位の仕様と採用の理由の箇所を探し、引用付きで並べることだけです。 新しい物件で何を使うべきかは言わせません。
| 見るもの | させること | 判断できないときの扱い |
|---|---|---|
| 仕上表・特記仕様書(竣工時) | 部位の材料・品番・施工の条件を引用する | 竣工時の版が無ければ、実施設計の版であることを明記する |
| 変更の記録 | 実施設計から変わった仕様と、変更の理由を引用する | 変更の理由が書かれていなければ「変更の理由の記録なし」 |
| 打合せ記録 | 採用の理由が書かれた段落を引用する | 見つからなければ「理由の記録なし」とし、推し量らない |
| 補足の記録 | 担当した設計者から聞き取った理由を引用する | 聞き取った日付を添える |
右端の列の3行目が、いちばん大事な決まりです。 補った理由は引用を持たないので、引用の有無で機械的に見分けます。
検索は2段で行います。 まず search メソッドで、絞り込みの条件に合う書類を探し、物件番号でまとめて候補の物件の一覧を作ります。次に answer メソッドで、同じ絞り込みのもとで仕様と理由を探させます。
絞り込みの条件は、公式のページの書き方に合わせます。 文字の項目は ANY で完全一致、数値は IN の範囲か比較の演算子、日付は ISO 8601 の文字列で比べ、AND、OR、NOT で組み合わせます。数値の範囲の IN は、既定で下限を含み、上限を含みません。
use_type: ANY("nursery") AND floor_area: IN(1500, 2500e)
AND structure: ANY("RC") AND completed_year >= 2012
AND confidential = "false"
延べ面積の範囲は、今の物件の前後3割を画面の初期値にします。
answer メソッドの主な設定は次のとおりです。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 回答の文と引用元を結ぶ |
maxReturnResults | 25 | 既定は10、上限は25。複数の物件から拾うため上限にする |
ignoreLowRelevantContent | 有効 | 関係の薄い内容しか無いときに、代わりの回答を返させる |
ignoreNonAnswerSeekingQuery | 有効 | 質問でない入力に回答を作らない |
answerLanguageCode | ja | 回答を日本語にする(BCP47 の言語タグ) |
promptSpec.preamble | 次の節の指示 | 理由を推し量らないことと、出力の書き方を指示する |
指示内容を固定する
answer メソッドの promptSpec.preamble に入れる指示です。
あなたは建築設計事務所の技術管理の担当として、設計者の質問に、
過去の物件の書類から該当箇所を探して答える立場です。
検索結果に含まれる書類だけを根拠にしてください。
【答え方】
- 物件ごとに分けて書いてください。物件番号を必ず書いてください。
- 物件ごとに、次の順で書いてください。
1. 採用した仕様(材料・品番・施工の条件)
2. 竣工までの変更(あれば)
3. 採用の理由
- 仕様は、仕上表と特記仕様書の書きぶりのまま写してください。
品番や寸法を言い換えたり、まとめたりしないでください。
【書類の段階】
- 竣工時の書類(doc_stage が completed)を優先してください。
- 実施設計の書類(design)しか無い物件は、
「実施設計の版による。竣工時の版は未確認」と書いてください。
- 変更の記録(change)に、その部位の変更があれば、
変更前と変更後と、変更の理由を書いてください。
【採用の理由】
- 理由は、打合せ記録・変更の記録・補足の記録に書かれた文だけを
根拠にしてください。
- 理由が書かれた箇所が見つからないときは、「理由の記録なし」と書いてください。
- 一般的な性能や、ふつう選ばれる理由で補わないでください。
「〜と考えられます」「〜のためと推測されます」と書かないでください。
- 打合せで出た要望と、決まったことを分けてください。
要望が出ただけで決まっていないものを、採用の理由にしないでください。
【書かないこと】
- 今の物件でどの仕様を使うべきかを書かないでください。
- 法令に適合するか、その製品が今も買えるかを書かないでください。
- 発注者の名称と個人の名前を書かないでください。
「〜と考えられます」を名指ししているのは、理由の補いがこの言い方で出るからです。 「推し量らないでください」とだけ書くと、和らげた言い方で推し量ります。
「要望と決まったことを分ける」は、打合せ記録に特有の決まりです。 「園長より、床は柔らかいものを希望」の回と「クッション性のあるシートに決定」の回があり、前者だけを返すと、決まらなかった要望を採用の理由として受け取ります。
出力形式を固定する
answer メソッドの返り値を、中継プログラムが次の形のJSONに組み直して画面に渡します。
{
"query_id": "Q-20261015-0031",
"conditions": {"use_type": "nursery", "floor_area": [1500, 2500],
"structure": "RC", "completed_year_from": 2012},
"projects": [
{
"project_id": "P0412",
"floor_area": 1980, "completed_year": 2019,
"spec": {"text": "", "doc_stage": "completed", "citation_ids": [1]},
"change": {"exists": true, "before": "", "after": "",
"reason": "", "citation_ids": [3]},
"reason": {"status": "cited | no_record | request_only",
"text": "", "citation_ids": [2]},
"designer": "設計部 担当A"
}
],
"citations": [
{"id": 1, "document": "P0412-finish-completed",
"uri": "gs://archive-bucket/P0412/finish_completed.pdf",
"quote": ""}
],
"ask_list": [{"project_id": "", "part": "", "designer": ""}],
"answer_skipped": ""
}
1つ目の理由は、reason.status を引用の有無から機械的に決められることです。 引用元が打合せ記録・変更の記録・補足の記録なら cited、無ければ no_record で、モデルが理由を書いていても、引用が無ければ no_record にします。
2つ目は、request_only を分けられることです。 引用の段落の見出しが「要望」で「決定」でないものを、中継プログラムが分けます。3つ目は、ask_list で聞く先を出せることです。
引用の位置は、UTF-8 のバイト単位です。 公式のページは、startIndex と endIndex が文字ではなくバイトで数えられるとしています。日本語の回答を文字の位置で切ると、引用がずれます。 バイト列にしてから切り出して文字に戻し、startIndex が0のときは省かれることにも注意します。引用の本文は references の chunkInfo.content から、書類の場所は documentMetadata の uri から取ります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 検索画面 | 中継プログラムのAPI | 条件と質問を受け、物件の一覧と回答を返す |
| Agent Search(Vertex AI Search) | search/answer メソッド | 絞り込んだ書類の検索と、引用付きの回答 |
| Cloud Storage | 取り込み | 竣工時の書類の写しとメタデータ |
| 物件の一覧表 | 読み取り(毎晩) | 物件の属性をメタデータに写す |
| BigQuery | 書き込み | 検索の条件・回答・引用・設計者の確認の記録 |
| 聞く先の一覧 | 表の書き込み | no_record の物件と担当した設計者 |
物件のフォルダには書き込みません。 竣工時の版を Cloud Storage に写したものを検索するだけです。検索画面は社内の認証の後ろに置き、守秘の物件は閲覧を許された設計者の検索にだけ含めます。
人が確認する
設計者は、使う仕様について必ず引用の原文を開きます。 回答の文は、引用の箇所をまとめ直したものです。品番や寸法が写し間違えられていないかは、原文でしか確かめられません。
- 物件の一覧を見る … 候補が本当に似ているかを、延べ面積・構造・竣工年で確かめます
- 仕様の引用を原文で開く … 品番・寸法・施工の条件を原文で確かめます
changeを見る … 変更の理由が施工上の不具合なら、その仕様は避ける材料になりますreason.statusを見る …request_onlyは決まったかを記録で確かめ、no_recordは担当した設計者に聞きます- 今の物件の条件と照らす … 法令、発注者の要望、製品が今も買えるかを、設計者が確かめます。この構成はここを代わりません
5番目を省かないでください。 竣工が10年前の物件の品番は、廃番になっていることがあります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 条件に合う物件が無い | 延べ面積の範囲を広げるか、用途を近いもの(こども園など)に広げる案を画面に出す。広げたことを記録に残す |
| 関係の薄い内容しか無い | ignoreLowRelevantContent による代わりの回答を「該当なし」として出し、仕様を作らない |
| 回答が作られない | answerSkippedReasons を記録し、search メソッドの結果だけを一覧で返す |
| 竣工時の版が無い物件 | 実施設計の版で答え、「竣工時の版は未確認」と出す |
| 仕上表の表が崩れて読まれる | 室名と材料が別の塊に入っていたら、その物件の仕上表を PDF にして入れ直す |
| 同じ物件の書類が重複して入る | 物件番号と書類の種類と段階で id を決め、同じ id は上書きにする |
| 守秘の物件が一般の検索に出る | すぐにその文書をデータストアから外し、confidential の付け漏れを確かめる |
上から3行目までは、AIの失敗ではありません。 「該当なし」を失敗と見なして答えを作らせると、理由の補いと同じことが物件の単位で起きます。
記録を残す
- 検索の条件(用途、延べ面積の範囲、構造、竣工年の範囲、部位、質問の文)と、条件を広げたかどうか
- search メソッドが返した物件の一覧と、answer メソッドの回答の全文
- 引用の一覧(文書、
uri、引用の本文)と、reason.statusの判定 - 設計者が原文を開いた引用と、
no_recordの聞き取りの結果 - その時点のデータストアの物件の数と、取り込みの日付
3つ目の reason.status の記録は、理由の記録がどこで欠けているかの地図になります。 特定の年代や設計者の物件で no_record が多ければ、そこが聞き取りを急ぐ先です。
04実装レベルの3段階
最小構成で確かめるのは、書類の版と見出しが検索に耐えるかです。 半自動化で、1件30分が15分程度になります。 要望か決定かの見分けと、竣工までの変更の確認が設計者に残ります。 本格構成で10分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の記録を1か月見ると、よく探される用途・部位が分かります。そこから版の選び直しと聞き取りを進めるほうが早く効きます。
05工数削減シミュレーション
導入後 240件 × 10分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 保育所・高齢者施設・事務所・学校のように同じ用途の物件をくり返し設計し、過去20年で数百件の物件の特記仕様書・仕上表・打合せ記録を持つ建築設計事務所。新しい物件のたびに「前に似た物件で床を何にしたか、なぜそうしたか」を先輩に聞くか、物件のフォルダを開いて探していて、ベテランの退職で理由が分からなくなり始めている場合。物件ごとに用途・延べ面積・構造・竣工年の一覧を作れる場合。
- 物件が年に数件で、担当者が全物件を覚えていられる場合。打合せ記録を残す習慣が無く、採用の理由がどこにも書かれていない場合(探す先が無いので、記録の書き方を決めるのが先です)。過去の仕様をそのまま今の物件に使ってよいかの判断(法令・製品の現行品・発注者の条件の確認)をAIに任せたい場合。発注者との守秘の取り決めで、物件の資料を社外のクラウドに置けない場合。
07最小構成で試す方法
- よく設計する用途を1つ選び(たとえば保育所)、竣工時の版がはっきりしている物件を10件選ぶ
- 10件の竣工時の仕上表・特記仕様書・打合せ記録を、Agent Search(Vertex AI Search)のコンソールで作ったデータストアに入れる(メタデータに用途・延べ面積・構造・竣工年を付ける)
- 設計者に、最近の検討で実際に探した質問を10個書いてもらう(「保育室の床」「トイレの壁」「屋上の防水」など)
- コンソールの検索のプレビューで、絞り込みの条件を付けて10個の質問を試す
- 返った仕様を原文と照らし、理由の引用が打合せ記録の「決定」の段落か、「要望」の段落か、引用が無いのに理由が書かれていないかを見る
10件は、担当した設計者が社内にいる物件にしてください。 理由が正しいかを本人に確かめられます。
| 出てきた内容 | 判断 |
|---|---|
| 仕様と理由が、担当した設計者の記憶と合う | 中継プログラムと検索画面の作成に進む |
| 引用の無い理由が書かれる | 指示の書き方と reason.status の機械的な判定で直る。構成は有効 |
| 仕上表の室名と材料がつながらない | XLSX と PDF のどちらで入れるかを決め直す。 AIの問題ではない |
| 打合せ記録の別の議題が混ざる | 見出しの書き方の問題。 打合せ記録の様式を見直す |
4行目が出たら、打合せ記録が後から探せない書き方だったということです。 新しい物件から様式を変えてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 引用の無い理由が書かれる | 指示で「〜と考えられます」を名指しで禁じ、reason.status を引用の有無で機械的に決める |
| 要望だけの記録が理由として返る | 引用の段落の見出しで request_only を分ける。打合せ記録の様式を「要望」「決定」に分ける |
| 実施設計の仕様を採用した仕様として返す | doc_stage を持たせ、竣工時を優先する。竣工時の版が無い物件は明記する |
| 規模の違う物件が混ざる | 延べ面積を IN の範囲で絞る。物件の属性の空欄を先に埋める |
| 絞り込みが効かない | 項目をスキーマで Indexable にする。title に当てた項目は絞り込みに使えない |
| 打合せ記録の別の議題が混ざる | 見出しを文書の見出しとして書く。includeAncestorHeadings を有効にする |
| 引用の位置がずれる | startIndex/endIndex は UTF-8 のバイト単位。文字の位置で切らない |
| 回答が品番を言い換える | 指示で書きぶりのまま写させ、原文の確認を必ず行う |
| 守秘の物件が一般の検索に出る | confidential の絞り込みと、別のデータストアで分ける |
| 設計中の物件の仕様が返る | 竣工した物件だけを入れる |
上の3行が、この構成の失敗のほとんどです。 どれも「記録に無いことを、記録にあるように返す」形です。モデルの文ではなくメタデータと引用で判定しているかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 発注者の建物の仕様、打合せの内容(発注者・利用者の要望と、費用の増減の話を含む)、担当した設計者の名前です。
- 発注者との守秘の取り決めを先に確かめる … 社外のクラウドに置いてよいか、ほかの物件の検討に使ってよいかを、物件ごとに確かめます。 確かめられない物件は入れません
- データの置き場所を決める … データストアの場所は global(既定)、us、eu で、公式のページに日本の場所はありません。 国内に置くことが求められる物件は入れないか、国内リージョンで動く代替候補を検討します
- 打合せ記録から個人と発注者を外す … 個人名は役割に、発注者の名称は物件番号に置き換えます
- 守秘の物件は分けて入れる …
confidentialの絞り込みと別のデータストアで分け、文書ごとの閲覧の制御だけに頼りません - 新しい物件の判断を代わりにさせない … 今の物件で同じ仕様を使ってよいか(法令、発注者の要望、製品の現行品)は、設計者が判断します
- 書類の保存とは分けて考える … 建築士法施行規則は、建築士事務所の開設者に、配置図・各階平面図・立面図・断面図・構造詳細図や構造計算に係る図書などを、作成した日から15年間保存することを求めています。Cloud Storage の写しは検索のためのもので、法定の保存の代わりではありません
誤りが起きた場合のリスクは、記録に無い理由を先輩の判断として受け取ることと、使わなかった仕様を持ち込むことの2つです。 どちらも、引用とメタデータで判定する設計で守ります。
10まず何から始めるか
1週目:物件の一覧表を埋める
一覧表の延べ面積・構造・階数の空欄を、図面の表紙から埋めます。よく設計する用途の、過去10年の物件から埋めます。 用途の語のそろえ方も決めます。
2週目:10件で試す
担当した設計者が社内にいる物件を10件選び、コンソールのデータストアで、設計者が実際に探した質問10個を試します。引用の無い理由が書かれていないかを最優先で見ます。
3週目:竣工時の版の選び方と、打合せ記録の様式を決める
竣工時の版の決め方を技術管理室で決めます。 新しい物件の打合せ記録は、「要望」「決定」「理由」の見出しを立てる様式に変えます。
4週目:中継プログラムで物件の一覧を出す
search で物件の一覧、answer で引用付きの回答を出すところまで作ります。この時点では reason.status を出しません。
2か月目: reason.status の判定と、変更の整理、聞く先の一覧を足します。3か月目以降: 聞き取りの結果を補足の記録として取り込み、1件30分が何分になったかを実測します。よく探される用途の no_record が、担当した設計者の聞き取りで埋まった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
answer メソッドの includeCitations、maxReturnResults(既定10、上限25)、filter、ignoreLowRelevantContent、ignoreNonAnswerSeekingQuery、promptSpec.preamble、answerLanguageCode(BCP47)。返り値の answerText、answerSkippedReasons、引用の startIndex/endIndex(UTF-8 のバイト単位。0のときは省かれる)と sources の referenceId、references の chunkInfo.content と documentMetadata(document、uri、title) | Google Cloud: Get answers and follow-ups | 2026-10-15 |
メタデータで絞り込むには項目をスキーマで Indexable にすること。ANY(完全一致)、IN(既定で下限を含み上限を含まない)、比較の演算子、ISO 8601 の日付、AND/OR/NOT。title に当てた項目は絞り込みに使えないこと。Vertex AI Search が Agent Search に改称中であること | Google Cloud: Filter custom search with metadata | 2026-10-15 |
非構造化の文書の形式(TXT、JSON、Markdown、PDF、HTML、DOCX、PPTX、XLSX、XLSM)、1ファイル200MB、1回100,000ファイル。メタデータの JSON Lines の書き方(id、structData、content の mimeType と uri) | Google Cloud: Prepare data for ingesting | 2026-10-15 |
デジタル パーサーが表・見出しを検出しないこと。レイアウト パーサーが PDF、HTML、DOCX、PPTX、XLSX、XLSM のレイアウトを扱うこと。chunkSize が100〜500(既定500)、includeAncestorHeadings の既定が false で、見出しを足すと文脈が失われにくいこと | Google Cloud: Parse and chunk documents | 2026-10-15 |
| データストアの場所が global(既定)、us、eu で、日本の場所の記載が無いこと | Google Cloud: Agent Search locations | 2026-10-15 |
| 建築士事務所の開設者が保存する図書(配置図、各階平面図、立面図、断面図、基礎伏図、各階床伏図、小屋伏図、構造詳細図、構造計算に係る図書など)と、作成した日から15年間の保存(第21条第4項・第5項) | e-Gov 法令API: 建築士法施行規則 | 2026-10-15 |
過去の仕様を新しい物件に使ってよいかは、設計者が法令・発注者の条件・製品の現行品と照らして判断してください。 本記事は公式のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1634)についてのご相談はこちらから。
