リフォーム会社の担当が手書きする現地調査シートを読み取り、部屋・寸法・既存の設備・劣化の状況を見積の入力項目にそろえて、測り漏れを現場にいるうちに拾う
リフォームの現地調査で手書きした調査シートをスマートフォンで撮って送ると、部屋ごとの寸法・既存の設備・劣化の状況を見積の入力項目にそろえます。測り漏れと読めない寸法は、担当が施主の家にいるうちに返します。
- 生成AI
- ChatGPT/Claude
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 不動産/建設
- 対象部門
- 営業
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 入力作業が多い/属人化している/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 営業が施主の家で部屋ごとに寸法を測り、調査シートに手書きする。設備と劣化の箇所をスマートフォンで撮る
- 事務所に戻り、調査シートを見ながら見積のシステムの入力項目に打ち込む
- 打ち込みの途中で、測っていない寸法や読めない数字に気づく
- 施主に電話して測ってもらうか、もう一度訪ねる日を決める
- 既存の設備の品番を、写真とシートで見比べて確かめる
- 見積の担当が入力内容とシートを見比べ、商品と工事の明細を組む
- 人営業が施主の家で調査シートを書き終えたら、シートを1枚ずつ社用スマートフォンで撮り、案件ごとの共有ドライブのフォルダに保存する
- 自動Google Apps Script が5分おきにフォルダを確かめ、新しい写真を取り出す
- 自動Google Document AI の Enterprise Document OCR が、文字と位置、チェック欄の状態、写真の画質の点数を返す
- 自動画質の点数が低い写真は、その場で営業に撮り直しを頼むメールを送る
- 自動Claude API が、読み取り結果と写真を見て、部屋ごとの寸法・既存の設備・劣化の状況を見積の入力項目に、書かれたとおりに写す
- 自動Apps Script が、部屋の種類ごとの必須の寸法の表と照らして測り漏れを拾い、寸法の桁が範囲から外れていないかを確かめ、営業にメールで返す
- 人営業が、施主の家にいるうちに測り漏れを測り、シートに書き足して撮り直す
- 人見積の担当が、「見積入力待ち」のシートを確かめ、見積のシステムに取り込む
各工程の詳しい説明を読む
- 営業が施主の家で部屋ごとに寸法を測り、調査シートに手書きする。設備と劣化の箇所をスマートフォンで撮る
- 事務所に戻り、調査シートを見ながら見積のシステムの入力項目に打ち込む
- 打ち込みの途中で、測っていない寸法や読めない数字に気づく
- 施主に電話して測ってもらうか、もう一度訪ねる日を決める
- 既存の設備の品番を、写真とシートで見比べて確かめる
- 見積の担当が入力内容とシートを見比べ、商品と工事の明細を組む
(a)打ち込みが多い。 1件に部屋が2〜3か所あり、部屋ごとに寸法が5〜10項目あります。営業は夕方に事務所に戻ってから打ち込むので、調査が重なった日は夜までかかります。
(b)測り漏れに気づくのが帰った後。 3番目で気づいた測り漏れは、施主に電話で頼むか、もう一度訪ねるしかありません。 施主に測ってもらった寸法は測り方がそろわず、工事の当日に合わないことがあります。
(c)単位と桁の取り違え。 「160」がcmなのかmmの誤記なのか、書いた本人でないと分からない数字があります。 見積の担当が読み違えると、入らない大きさの浴槽で見積が出ます。
(d)読み解きが人についている。 見取り図の中に書き込まれた寸法は、どの壁の長さかを書いた本人に聞かないと分かりません。 担当が休むと見積が止まります。
- 【人】 営業が施主の家で調査シートを書き終えたら、シートを1枚ずつ社用スマートフォンで撮り、案件ごとの共有ドライブのフォルダに保存する
- 【自動】 Google Apps Script が5分おきにフォルダを確かめ、新しい写真を取り出す
- 【自動】 Google Document AI の Enterprise Document OCR が、文字と位置、チェック欄の状態、写真の画質の点数を返す
- 【自動】 画質の点数が低い写真は、その場で営業に撮り直しを頼むメールを送る
- 【自動】 Claude API が、読み取り結果と写真を見て、部屋ごとの寸法・既存の設備・劣化の状況を見積の入力項目に、書かれたとおりに写す
- 【自動】 Apps Script が、部屋の種類ごとの必須の寸法の表と照らして測り漏れを拾い、寸法の桁が範囲から外れていないかを確かめ、営業にメールで返す
- 【人】 営業が、施主の家にいるうちに測り漏れを測り、シートに書き足して撮り直す
- 【人】 見積の担当が、「見積入力待ち」のシートを確かめ、見積のシステムに取り込む
4番目と6番目が、この設計の分かれ目です。 どちらも営業が施主の家にいる間に返すことに意味があり、事務所に戻ってから返しても今と変わりません。調査の最後の10分で、撮って送り、返事を待つ運用にします。
見積のシステムへの取り込みは、人が行います。 読み取った寸法がそのまま見積になる経路は作りません。
02今回想定するシステム構成
現地調査シート(手書き、部屋ごとに1枚) │ 営業が社用スマートフォンで撮り、案件のフォルダへ ▼【トリガー】Apps Script の時間主導型トリガー(5分おき) Google Apps Script ── 新しい写真を取り出す ▼ Google Document AI(Enterprise Document OCR) │ 文字と位置、チェック欄、画質の点数 ├──▶ 点数が低い → 営業に撮り直しを頼むメール ▼ Claude API ── 部屋ごとの寸法・設備・劣化の状況を、書かれたとおりに写す ▼ Google Apps Script ── 必須の寸法との照合/桁の範囲の確認 ├──▶ 測り漏れ・読めない寸法 → 営業にメール ▼ 「見積入力待ち」シート ▼ 【見積の担当が確かめて、見積のシステムに取り込む(人の操作)】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Enterprise Document OCR) | Azure AI Document Intelligence |
| 生成AI | Claude API(読み取り結果と写真を見て、見積の入力項目に写す) | OpenAI API |
| 連携 | Google Apps Script(フォルダの確認、各APIの呼び出し、メールとシートへの書き込み) | Python |
| 差異計算 | Google Apps Script(必須の寸法との照合、桁の範囲の確認) | Python |
| 保管 | Google ドライブ(シートの写真と読み取り結果) | 社内のファイルサーバー |
新しく足すのは、部屋の種類ごとの必須の寸法の表です。 見積の担当が頭の中で持っている「浴室ならこの5つが無いと商品を選べない」を、部屋の種類・寸法の名前・必須かどうか・ふつうの範囲(mm)の4列で1枚のシートにまとめます。
土台は Document AI の Enterprise Document OCR です。 公式のプロセッサ一覧では、手書きを含む文字を200を超える言語で取り出し、読みやすさにもとづいて文書の品質を評価するとされ、言語の一覧で日本語(ja)は手書きに対応する言語として示されています。
この題材で効くのは、画質の点数です。 公式のページでは、画質の分析は0から1の点数で返り、0.5を下回るときは、ぶれ(blurry)、暗さ(dark)、光の反射(glare)、文字の小ささ、切れなど8種類の理由が添えられるとされています。暗い浴室で撮った写真を、読み取る前に撮り直しへ回すのに使います。
チェック欄は、追加の機能で読みます。 公式のページでは、OCRの追加機能のチェックボックスの抽出を有効にすると、visualElements に filled_checkbox か unfilled_checkbox として返るとされています。劣化の状況(ひび・カビ・腐食・水漏れ・きしみ)は、この値で決めます。
処理する場所は、リージョンの一覧から選びます。 マルチリージョンの us と eu、シンガポール(asia-southeast1)などがあり、日本のリージョンはありません。 調査シートと写真には施主の住まいの様子が写るので、国外で処理してよいかを導入前に確かめます(第13章)。
03どうやって実装するのか
処理の起点を決める
Apps Script の時間主導型トリガーで、5分おきに案件のフォルダを確かめます。 公式のページでは、時間主導型のトリガーは毎分から月1回までの間隔で設定でき、実行の時刻はわずかにずれることがあるとされています。
5分おきにするのは、営業が施主の家にいる間に返事を返すためです。 撮って送ってから返事が届くまでが10分を超えると、営業は返事を待たずに次の現場へ向かいます。 調査の最後に撮って、片づけをしている間に返事が届く間隔にします。
処理が終わった写真には「処理済み」の印を付けます。 印を付けるのはシートへの書き込みが終わったときだけで、印の無い写真の数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 調査シートの写真 | 部屋ごとのシートの写真、撮った営業、案件番号 | 案件ごとの共有ドライブのフォルダ |
| 読み取り結果 | 文字と位置、チェック欄の状態、画質の点数と理由 | Google Document AI |
| 必須の寸法の表 | 部屋の種類、寸法の名前、必須かどうか、ふつうの範囲(mm) | 新しくまとめるシート |
| 案件の情報 | 案件番号、施主、建物の種類(戸建て・マンション)、調査する部屋 | 案件の一覧のシート |
| 営業の連絡先 | 営業ごとのメールアドレス | 担当者の一覧 |
質を決めるのは、必須の寸法の表です。 何が抜けたら商品を選べないかは、見積の担当の経験の中にしかありません。 表にしておけば、新しく入った営業も同じ基準で測れます。
案件の情報の「調査する部屋」は、部屋のシートの撮り忘れを拾うのに使います。 浴室と洗面を調べる案件で、浴室のシートしか届いていなければ、洗面のシートの撮り忘れとして返します。
データの取得方法を決める
Apps Script は、新しい写真を Enterprise Document OCR のプロセッサに送ります。オンラインの処理は1回の要求で最大15ページなので、部屋のシートを1枚ずつ送ります。
要求には、2つの設定を付けます。 画質の点数は processOptions.ocrConfig.enableImageQualityScores を、チェック欄の抽出は ocrConfig.premiumFeatures.enableSelectionMarkDetection を有効にします。公式のページでは、画質の分析はOCRの処理と同じくらいの待ち時間が加わるとされています。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 画質の点数と理由 | 各ページの imageQualityScores | 撮り直しを頼むかどうか |
| 文字と位置 | 応答の text と、各ページの lines・tokens の layout | 寸法、品番、メモの文字と、シートの上の位置 |
| 信頼度 | 各要素の layout の confidence | 読めた数字と、かすれた数字の区別 |
| チェック欄 | 各ページの visualElements(filled_checkbox/unfilled_checkbox) | 劣化の状況 |
Enterprise Document OCR は、キーと値の組を返しません。 「間口」という欄の文字と、その右に書かれた「1600」は、別々の文字として位置付きで返ります。 どの数字がどの欄のものかを位置から決めるのが、次の生成AIの仕事です。
写真はJPEGで撮ります。 Document AI の対応形式は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などで、Claude API の画像は JPEG、PNG、GIF、WebP です。どちらの一覧にも HEIC は無いので、社用スマートフォンのカメラの保存形式をJPEGにしておきます。
AIへ渡す前に整形する
- 形式の確認 … JPEG以外の写真は、変換するか撮り直しを頼みます
- 画質の確認 … 画質の点数が0.5を下回り、ぶれ・暗さ・反射・切れが理由に挙がっていれば、読み取りを止めて撮り直しを頼みます
- 大きさの確認 … Claude API に渡す写真は、1枚8000×8000ピクセル以下、APIを直接使うとき1枚10MB(base64エンコード後)以下に縮めます
- 部屋の種類の決定 … シートの上部の部屋の種類(浴室・キッチンなど)を読み取り結果から決め、必須の寸法の表のどの行を使うかを決めます
- 撮り忘れの確認 … 案件の「調査する部屋」と、届いたシートの部屋の種類を比べます
2番目を先に行うのは、読めない写真を読み取りに回すと、測り漏れと区別がつかなくなるからです。 「天井高」の欄が読めなかったのか、測っていないのかで、営業にしてもらうことが撮り直しか測り直しかに分かれます。 公式のページでも、画質の分析はスキャンや撮影した文書で最もよく使えるとされています。
AIに処理させる
させるのは、読み取り結果と写真を見て、部屋ごとの寸法・既存の設備・劣化の状況を見積の入力項目に書かれたとおりに写すことです。 測り漏れの判定も、桁の範囲の確認も、Apps Script の規則で行います。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 部屋の種類と案件番号 | シートの上部の文字 | 読めなければ unreadable |
| 寸法の写し | 欄ごとの数字と、書かれていれば単位 | 欄が空なら blank、読めなければ unreadable |
| 見取り図の中の寸法 | 見取り図に書き込まれた数字と、どの辺の長さか | どの辺か決められなければ position_unknown |
| 既存の設備 | メーカー、品番、設置年を書かれたとおりに | 読めない字があれば unreadable |
| 劣化の状況 | チェック欄の状態と、近くに書かれたメモ | チェックが判断できなければ unclear |
| メモ | 施主の要望や、気づいたことの書き込み | そのまま写す |
3行目が、AIを使う理由です。 見取り図の中に書き込まれた「1650」が、浴室の間口か奥行かは、図の線と数字の位置関係を見ないと分かりません。 読み取り結果の位置だけでは決めにくいので、写真もあわせて渡し、どの辺に沿って書かれているかを見させます。
| させないこと | 理由 |
|---|---|
| 単位を補う、mmとcmを換算する | 「160」をcmと決めるかmmの誤記と決めるかで、商品が変わる |
| 空の寸法を他の寸法や見取り図から推す | 測っていない寸法は測るしかない |
| 品番を似た品番に直す、型番から設置年を推す | 既存の設備の撤去と取り合いが変わる |
| 工事ができるかどうかを判断する | 判断は営業と見積の担当が行う |
| 劣化の程度を評価する | チェックの写しだけ。程度は営業が見て書く |
1行目が、この題材でいちばん起きやすい失敗です。 「160」を、他の寸法がmmで書かれているからと1600に直すと、たいていは合っています。 ただ、外れたときは入らない大きさの商品で見積が出ます。単位は書かれていなければ空にし、Apps Script がふつうの範囲と照らして、外れたものを営業に聞きます。
指示内容を固定する
あなたはリフォーム会社の見積の担当で、営業が手書きした
現地調査シートの読み取り結果と写真を見て、見積の入力項目に写す立場です。
読み取り結果と写真に書かれていることだけを写してください。
【写す項目】
room_type(浴室/キッチン/トイレ/洗面/居室)、case_no
dimensions:name(欄の名前。書かれたとおり)、value_text(数字)、
unit_text(書かれていれば単位)、source(field/drawing)、
edge(見取り図の中の数字なら、どの辺の長さか)
equipment:maker、model_text、installed_year_text
deterioration:item(ひび/カビ/腐食/水漏れ/きしみ)、
state(checked/unchecked/unclear)、note
memo
【厳守事項】
- 数字は書かれたとおりの文字列で写してください。
単位が書かれていなければ unit_text を空にしてください。
mmとcmを換算しないでください。桁を足したり削ったりしないでください。
- 欄が空なら value_text を空にし、status を blank にしてください。
他の寸法や見取り図から推して埋めないでください。
- 読めない桁があれば status を unreadable にしてください。
- 見取り図の中の数字は、写真で図の線を見て、どの辺に沿って
書かれているかを edge に書いてください。決められなければ
position_unknown を true にしてください。
- 品番は書かれたとおりに写してください。似た品番に直さないでください。
- 工事ができるか、劣化がどの程度かは書かないでください。
- 調査シートでない写真と判断した場合は、document_type に種類を書いてください。
【読み取り結果】{ocr_result}
【調査シートの写真】(画像として添付)
必須の寸法の表をAIに渡していないことが、このプロンプトのいちばんの工夫です。 表を見せると、「浴室には出入口の幅が要る」と知ったAIが、見取り図のどこかの数字を出入口の幅として写してしまいます。 測り漏れを見つけたいのに、埋められて見えなくなります。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(リクエストの output_config.format に type: "json_schema" とスキーマを渡す方式)を使い、形を固定します。
{
"document_type": "site_survey",
"room_type": "浴室",
"case_no": "",
"dimensions": [
{ "name": "", "value_text": "", "unit_text": "",
"source": "field | drawing", "edge": "",
"position_unknown": false, "status": "read | blank | unreadable" }
],
"equipment": [
{ "maker": "", "model_text": "", "installed_year_text": "",
"status": "read | unreadable" }
],
"deterioration": [
{ "item": "ひび | カビ | 腐食 | 水漏れ | きしみ",
"state": "checked | unchecked | unclear", "note": "" }
],
"memo": ""
}
1つ目の理由は、必須の寸法の表と機械的に照らせることです。 Apps Script は room_type で表の行を選び、dimensions の name を寸法の名前の読み替えで引き当て、必須なのに無い寸法、blank、unreadable を測り漏れとして返します。
2つ目は、営業に返す理由を規則で持てることです。
| 条件 | 印 |
|---|---|
必須の寸法が無い、または blank | missing_dim |
寸法が unreadable、または見取り図の数字で position_unknown | unreadable_dim |
| 単位が空で、数字がふつうの範囲(mm)から外れる | unit_check |
| 案件の「調査する部屋」のシートが届いていない | room_missing |
既存の設備の品番が unreadable | equipment_check |
劣化のチェックが unclear、または document_type が調査シートでない | check_image |
missing_dim と room_missing は、まとめて1通のメールで営業に返します。 測り漏れが3つあれば3つを並べ、施主の家にいる間に1回で測り直せるようにします。
Claude の構造化出力のスキーマには、数値の最小値・最大値の制約が使えません。 公式のページでは、minimum・maximum などの数値の制約は対応していないとされています。ふつうの範囲は、スキーマではなく Apps Script の照合で確かめます。 拒否は stop_reason が refusal、出力の上限で切れたときは max_tokens になり、スキーマに合わないことがあるとされています。どちらのときもシートに書かず、check_image で人に回すか呼び直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 案件ごとの共有ドライブのフォルダ | Apps Script | 新しい写真を取り出し、処理済みの印を付ける |
| Google Document AI | REST API の呼び出し | 文字と位置、チェック欄、画質の点数を返す |
| Claude API | Messages API の呼び出し | 見積の入力項目への写し |
| 必須の寸法の表・案件の一覧 | スプレッドシートの読み取り | 測り漏れと撮り忘れの照合 |
| 営業へのメール | Apps Script からの送信 | 撮り直しと測り漏れの知らせ |
| 見積入力待ちのシート | 書き込み | 部屋ごとの寸法・設備・劣化の状況と、写真のリンク |
見積のシステムには、この構成から書き込みません。 取り込むのは見積の担当で、取り込む前に、印の残っていないことを確かめます。 読み取りの誤りが、そのまま見積の寸法になることはありません。
施主への連絡も、この構成からは送りません。 メールが届くのは社内の営業だけです。
人が確認する
営業が見るのは、現場で届くメールだけです。 撮り直しと測り漏れを、その場で片づけます。
- 撮り直しのメールが来たら … 明るい場所でシートを撮り直します
missing_dimとroom_missingが来たら … 施主に断ってもう一度測り、シートに書き足して撮り直しますunit_checkとunreadable_dimが来たら … 単位と数字をシートに書き直して撮り直します
見積の担当が見るのは、見積入力待ちのシートです。
- 寸法と単位を流し見る … 印が消えているか、見取り図の数字の辺が合っているかを写真で確かめます
- 既存の設備を写真と見比べる …
equipment_checkが残っていれば、設備の写真で品番を確かめます - 見積のシステムに取り込む … 取り込んだ日時と担当を残します
目標は、240件をならして1件8分です。 営業が現場で返事を確かめる時間と、見積の担当の流し見を合わせた値です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 暗い場所で撮って画質が低い | 点数と理由を添えて撮り直しを頼む。読み取りに進めない |
| 見取り図の数字がどの辺か決まらない | position_unknown。営業にシートへの書き直しを頼む |
| 単位が書かれず、範囲から外れる | unit_check。換算せずに営業に聞く |
| HEIC の写真が届く | 対応形式でない。カメラの設定をJPEGにしてもらう |
| 1枚の写真に2枚のシートが写る | 部屋ごとに1枚ずつ撮り直しを頼む |
| 営業が圏外で返事が届かない | 事務所に戻った後に同じメールを見る。見積入力待ちには印を残す |
| AIが拒否の応答を返す | check_image で人に回す。シートには書かない |
| OCR・AIが応答しない | 処理済みの印を付けずに残す。次の実行で拾い直す |
上の3行が大半を占めます。 どれもAIの問題ではなく、撮り方とシートの書き方の問題です。見取り図の中に寸法を書く癖のある営業には、寸法の欄にも書き写してもらうほうが早く直ります。
記録を残す
- 元の写真と、撮った営業・案件番号・撮った日時
- OCRが返したJSONの全文(画質の点数と理由を含む)と、Claude API の応答の全文
- 照合に使った必須の寸法の表の版
- 付いた印と、営業に送ったメール、撮り直しや測り直しが届いた日時
- 見積の担当が取り込んだ日時と、取り込む前に直した箇所
- 営業ごとの
missing_dimと撮り直しの件数
最後の行は、営業の教育の材料になります。 特定の営業だけ同じ寸法を測り漏らすなら、その寸法がなぜ要るかを見積の担当から伝えるほうが、表を見せるより効きます。
04実装レベルの3段階
半自動化で、1件25分が15分程度になります。 打ち込みは無くなりますが、測り漏れに気づくのが事務所に戻った後なのは変わらず、問い合わせの時間が残ります。 本格構成で8分になり、この段階が本記事の想定です。 差が大きいのは、測り漏れが現場で片づき、事務所での問い合わせがほとんど無くなるためです。 段階を飛ばさないでください。 半自動化のシートを1か月見ると、測り漏れの多い寸法と、見取り図に書き込む癖のある営業が分かります。必須の寸法の表は、そこから育てます。
05工数削減シミュレーション
導入後 240件 × 8分 ÷ 60 = 32 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 浴室・キッチン・トイレ・洗面などの水まわりや内装のリフォームを請け負う会社で、営業や現場調査の担当が紙の現地調査シートに寸法と既存の設備を手書きし、事務所に戻ってから見積の入力項目に打ち込んでいる場合。測り漏れに気づくのが事務所に戻った後で、もう一度訪ねたり施主に電話で聞いたりしていることがある場合。調査シートの書き方が担当ごとにまちまちで、見積の担当が読み解くのに時間がかかっている場合。
- 現地調査をすでにタブレットの入力アプリで行っていて、手書きのシートがほとんど無い場合。調査が月に数件で、担当が自分で打ち込んで足りる場合。施主の住所や住まいの写真を国外のリージョンで処理することを、自社の決まりや施主との約束で認めていない場合。なお、工事ができるかどうか、どの商品を勧めるか、見積の金額の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の調査シートから30件を選ぶ(測り漏れで電話や再訪問になった件、見取り図に寸法を書き込んだ件を必ず入れる)
- その30件について、当時の見積の入力内容と、後から測り直した寸法を用意する
- シートの写真を手元のAIサービスの画面に1枚ずつ貼り付ける
- 「この現地調査シートの部屋の種類、寸法(欄の名前、数字、単位)、既存の設備のメーカーと品番、劣化のチェックを、書かれたとおりに写してください。単位が書かれていなければ空にし、mmとcmを換算しないでください。空の欄は空のままにしてください」と指示する
- 写された値を、当時の入力内容と比べ、電話や再訪問で測り直した寸法が「空」として出ているかを見る
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ値が写せ、測り直した寸法が空として出た | OCRと Apps Script の連携に進む |
| 単位を補った、空の寸法を推して埋めた | 指示の書き方で直る。構成は有効 |
| 見取り図の数字の辺が決まらない | 書き方の癖を見る。直らない書き方は営業に寸法の欄への書き写しを頼む |
| 読めない数字が多い | 撮り方が先。 明るい場所で撮り直して比べる |
1行目の後半が、この構成の価値を確かめるところです。 事務所で気づいた測り漏れが「空」として出れば、現場で返していれば電話も再訪問も要らなかったことになります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 単位を補い、mmとcmを換算する | 単位は書かれたとおり、無ければ空。 範囲の照合は Apps Script で |
| 空の寸法を見取り図の数字で埋める | 必須の寸法の表をAIに見せない |
| 読めない写真が測り漏れとして返る | 画質の点数で先に撮り直しへ回す |
| 返事が事務所に戻った後に届く | 5分おきに回し、調査の最後に撮る運用にする |
| 見取り図の数字の辺を取り違える | 写真もあわせて渡し、決められなければ position_unknown |
| HEIC の写真で止まる | カメラの保存形式をJPEGにする |
| キーと値の組が無く、欄と数字が結び付かない | Enterprise Document OCR は位置付きの文字を返す。結び付けは生成AIに任せる |
| 国外での処理を確かめていない | 日本のリージョンが無い。自社の決まりを先に確かめる |
上の3行が、この構成の失敗のほとんどです。 どれも、測っていない寸法が測ったように見えてしまうという同じ型の失敗です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 施主の氏名と住所(案件の情報)、住まいの間取りと寸法、既存の設備、劣化の状況、シートの写真です。写真には、シートの背景に住まいの中が写り込むことがあります。
- 国外で処理することを確かめる … Document AI のリージョンの一覧に日本はありません。自社の決まりと施主との約束で、写真を国外のリージョンで処理してよいかを確かめます。認められない場合は、日本のリージョンで処理できる製品を検討します
- 写真の写り込みを減らす … シートは机や床に置いて真上から撮り、家族や室内の様子が写らないようにします
- 生成AIに渡す範囲を絞る … 渡すのはシートの読み取り結果と写真だけです。施主の氏名や住所は渡さず、案件番号で結び付けます
- 見積を自動で作らない … 見積のシステムへの取り込みは、見積の担当の操作だけです
- 工事ができるかを機械に決めさせない … 写すのは書かれたことだけで、判断は営業と見積の担当が行います
- APIキーをスクリプトに書き込まない … スクリプトのプロパティに置き、編集できる人を絞ります
誤りが起きた場合のリスクは、誤った寸法で商品を選ぶことと、施主の住まいの写真が想定外の範囲に広がることの2つです。 単位を換算させないことと、写真の撮り方を決めることで、設計の側から防ぎます。
10まず何から始めるか
1週目:必須の寸法の表をまとめる
見積の担当と、部屋の種類ごとに、何が抜けたら商品を選べないかを表にします。ふつうの範囲(mm)も書き込みます。浴室とキッチンから埋めます。
2週目:30件で試す
先月の調査シート30件を手元のAIサービスに貼り付けて、項目を写させます。単位を補っていないか、空の寸法を埋めていないかを最優先で見ます。
3週目:自社の決まりの確認と、撮り方を決める
写真を外部のサービスで、国外のリージョンで処理してよいかを、自社の決まりで確かめます。 あわせて、シートを1枚ずつ真上から撮り、JPEGで保存する撮り方を営業にそろえてもらいます。
4週目:フォルダから見積入力待ちのシートまでをつなぐ
Apps Script でフォルダを確かめ、OCRを呼び、写した値をシートに書き出すところまで作ります。この時点では営業にメールを送らず、営業がこれまでどおり打ち込みながら、シートの値が合っているかを見ます。
2か月目: 画質の確認、必須の寸法との照合、撮り忘れの確認と、営業へのメールを足し、現場で返す運用を始めます。3か月目以降: 1件25分が何分になったかと、再訪問の回数を数えます。測り漏れが現場で片づき、事務所からの問い合わせがほとんど無くなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Enterprise Document OCR が手書きを含む文字を200を超える言語で取り出し、読みやすさにもとづいて品質を評価すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること。オンラインの処理が最大15ページであること | Google Cloud: Processor list | 2026-10-14 |
画質の分析が0から1の点数で返り、0.5を下回るとぶれ・暗さ・反射・文字の小ささ・切れなど8種類の理由が返ること。enableImageQualityScores で有効にし、OCRと同程度の待ち時間が加わること。スキャンや撮影した文書で最もよく使えること。チェックボックスの抽出を enableSelectionMarkDetection で有効にし、visualElements に filled_checkbox/unfilled_checkbox が返ること | Google Cloud: Enterprise Document OCR | 2026-10-14 |
画質の点数が各ページの imageQualityScores に返ること。layout の confidence | Google Cloud: Handle the processing response | 2026-10-14 |
| 対応形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などであること | Google Cloud: Supported files | 2026-10-14 |
マルチリージョンが us と eu で、単一リージョンにシンガポール(asia-southeast1)などがあり、日本のリージョンが一覧に無いこと | Google Cloud: Regional and multi-regional support | 2026-10-14 |
output_config.format に type: "json_schema" を指定して構造化出力を使えること。数値の minimum・maximum などの制約に対応しないこと。拒否は stop_reason: "refusal"、出力の上限は max_tokens となりスキーマに合わないことがあること | Claude Platform Docs: Structured outputs | 2026-10-14 |
| 画像の対応形式が JPEG、PNG、GIF、WebP であること。1枚の最大が8000×8000ピクセル、APIを直接使うとき1枚10MB(base64エンコード後)であること | Claude Platform Docs: Vision | 2026-10-14 |
| 時間主導型のトリガーが毎分から月1回までの間隔で設定でき、実行の時刻がわずかにずれることがあること | Apps Script: Installable triggers | 2026-10-14 |
工事ができるかどうか、どの商品を勧めるか、写真を外部のサービスで処理してよいかは、自社の決まりと施主との約束に沿って決めてください。 本記事は各製品の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1508)についてのご相談はこちらから。
