塗装会社がお客様から届く外壁の写真を Gemini で見て、ひび・チョーキング・剥がれの一覧と見積の項目の下書きを作る
お客様が問い合わせのフォームやメッセージで送ってくる外壁の写真を Gemini API で見て、ひび・チョーキング・剥がれなどの候補を面ごとに枠つきで返します。写真で分かることと現地で確かめることを分けた一覧と、見積の項目の下書きを作ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/不動産/建設
- 対象部門
- 営業
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 営業フォローが追いつかない/属人化している/書類作成に時間がかかる
- AIで行う処理
- 画像認識
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 営業がフォームやメッセージで届いた写真を開き、どの面の写真かを見当をつけて並べる
- 写真を拡大し、ひび、チョーキング、剥がれ、シーリングの切れ、こけ・かび、さびを探してメモする
- メモから、見積に入りそうな項目(足場、高圧洗浄、下地の補修、シーリング、塗装の工程、付帯部)を書き出す
- 写真で足りない所(北側の面、ベランダの内側、屋根)があれば、追加の写真をお願いする文を書く
- 現地調査の日の候補と、写真で気づいたことを返信に書いて送る
- 案件の台帳にメモと返信の日を書き写す
- 人お客様がフォームやメッセージで、案内に沿って面ごとの写真を送る
- 自動写真が届いたことを合図に、サーバーが写真を案件の台帳の番号と結び付ける
- 自動写真の向きと大きさを整え、人の顔、表札、車のナンバー、隣の家の窓の中を塗りつぶす
- 自動Gemini API が、面ごとの傷みの候補と枠、写っていない面、写真では分からないことを返す
- 自動サーバーが、候補の種類から社内の対応表で見積の項目の候補を引き、数量の欄を「現地で測る」にした下書きを作る
- 自動写っていない面があれば追加の写真のお願いを、無ければ現地調査の案内を、返信の下書きにする
- 人営業が写真と候補を確かめ、一覧と見積の項目と返信を直す
- 人営業が返信を送り、現地調査の日を決める
- 自動確かめた一覧と見積の項目の下書きを案件の台帳に書き、現地調査の確かめる事項の一覧にする
各工程の詳しい説明を読む
- 営業がフォームやメッセージで届いた写真を開き、どの面の写真かを見当をつけて並べる
- 写真を拡大し、ひび、チョーキング、剥がれ、シーリングの切れ、こけ・かび、さびを探してメモする
- メモから、見積に入りそうな項目(足場、高圧洗浄、下地の補修、シーリング、塗装の工程、付帯部)を書き出す
- 写真で足りない所(北側の面、ベランダの内側、屋根)があれば、追加の写真をお願いする文を書く
- 現地調査の日の候補と、写真で気づいたことを返信に書いて送る
- 案件の台帳にメモと返信の日を書き写す
(a)見立てが営業ごとに違う。 同じ細いひびを、ある営業は「補修が要りそう」、別の営業は「塗装で隠れる程度」と書きます。返信の書き方もまちまちで、お客様が受け取る印象が営業で変わります。
(b)写真で言い切って、現地で食い違う。 写真で「チョーキングが出ています」と返したのに、現地で触ると粉が付かない。お客様には、写真で決めつけた会社と映ります。 逆に、写真に写っていない北側の面に、いちばん傷んだ所があることもあります。
(c)返信が遅れる。 2番目と3番目は、写真が多いほど時間がかかります。現地調査や工事の立会いで外に出ている日は、返信が夜か翌日になります。
(d)写っていない面に気づかない。 届いた写真が南と東の面だけでも、北と西の面について何も書かずに返信してしまうことがあります。 現地で北の面を見て、見積の項目が増えます。
- 【人】 お客様がフォームやメッセージで、案内に沿って面ごとの写真を送る
- 【自動】 写真が届いたことを合図に、サーバーが写真を案件の台帳の番号と結び付ける
- 【自動】 写真の向きと大きさを整え、人の顔、表札、車のナンバー、隣の家の窓の中を塗りつぶす
- 【自動】 Gemini API が、面ごとの傷みの候補と枠、写っていない面、写真では分からないことを返す
- 【自動】 サーバーが、候補の種類から社内の対応表で見積の項目の候補を引き、数量の欄を「現地で測る」にした下書きを作る
- 【自動】 写っていない面があれば追加の写真のお願いを、無ければ現地調査の案内を、返信の下書きにする
- 【人】 営業が写真と候補を確かめ、一覧と見積の項目と返信を直す
- 【人】 営業が返信を送り、現地調査の日を決める
- 【自動】 確かめた一覧と見積の項目の下書きを案件の台帳に書き、現地調査の確かめる事項の一覧にする
7番目が、この設計の分かれ目です。 AIが返すのは見え方と候補までで、お客様に何を伝えるか、見積に何を入れるかは営業が決めます。 営業の時間は、写真の中から傷みを探す作業から、印の付いた所と下書きを確かめる作業に移ります。
5番目で見積の項目を対応表から引くのも、意図してのことです。 AIに見積の項目を考えさせると、写真から言えない工事まで書き足します。AIには傷みの種類だけを返させ、項目への置き換えは社内の表で機械的に行います。
02今回想定するシステム構成
お客様の写真(問い合わせのフォーム/メッセージの公式の窓口) ▼【トリガー】写真付きの相談の受け取り Python のサーバー ├── 案件の台帳の番号と結び付ける ├── 写真の向き・大きさを整える、顔・表札・ナンバー・隣家を塗りつぶす ▼ Gemini API(画像の理解・構造化出力)── 1件分の写真と面の一覧 │ 面ごとの傷みの候補と枠、写っていない面、写真では分からないこと ▼ Python ── 対応表で見積の項目の候補を引く、写真に印を描く ▼ Gemini API ── 返信の下書き(見えたこと/現地で確かめること/調査の案内) ▼ 【人】営業が確かめて直す → お客様へ返信 → 現地調査
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(写真から面ごとの傷みの候補を返し、返信の文の下書きを作る) | Claude API、OpenAI API |
| 連携 | Python(写真の受け取り、前処理、呼び出し、対応表での項目の引き当て、印の描画、台帳への書き込み) | Google Apps Script |
| 窓口 | 問い合わせのフォーム、メッセージのアプリの公式の窓口 | - |
| 台帳 | 顧客と案件の台帳、工事の項目と単価の表(スプレッドシート) | - |
新しく足すのは、Python のサーバーと Gemini API の契約、写真の撮り方の案内です。 問い合わせの窓口、案件の台帳、単価の表は今のものを使います。お客様への返信は営業が送り、AIから直接お客様に返す経路は作りません。
写真を見る土台は、Gemini API の画像の理解です。 公式の案内では、対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示の文や画像を合わせたリクエスト全体が20MBまでです。1回のリクエストに入れられる画像は最大3,600枚とされていますが、大きさの上限があるので、1件分ずつ、多ければ面ごとに分けて呼びます。
位置は枠で返させます。 枠は [ymin, xmin, ymax, xmax] の順で、画像の大きさに対して0〜1000に正規化され、元の大きさに戻して使うよう案内されています。サーバーが元の大きさに戻し、営業が見る写真と現地調査の資料に印を描きます。
出力は構造化出力で受けます。 /v1beta/interactions に送り、response_format で mime_type を application/json にし、schema にスキーマを入れます。文字列の enum、配列の minItems・maxItems が使えます。一方で minLength・maxLength は効かず、エラーにならずに外されるとされているので、文の長さはサーバーで見ます。値が正しいかはアプリ側で検証するよう公式に書かれています。
03どうやって実装するのか
処理の起点を決める
写真付きの相談が届いたときに、1件ごとに動きます。 フォームは送信のとき、メッセージは「写真を送り終えたら『送りました』と送ってください」と案内し、その言葉を合図にします。写真が1枚届くたびに動かすと、まだ届いていない面を「写っていない」と返し、追加の写真のお願いが無駄に出ます。
合図が無いまま写真が届いて30分たったら、届いた分で動かします。 お客様が合図を送り忘れることは多く、そのまま返信が止まると、第3章の(c)が残ります。 届いた分で一覧を作り、写っていない面は追加の写真のお願いに回します。
追加の写真が届いたら、同じ案件に足して動かし直します。 前の結果は残したまま、新しく届いた面だけを見て、一覧に足します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| お客様の写真 | 家の全体、面ごとの写真、気になる所の近く。送った日時 | フォーム、メッセージの窓口 |
| お客様の文 | 相談の文(「ひびがある」「白い粉が付く」など)、建物の種類、築年数、前の塗装の時期 | フォーム、メッセージ |
| 面の一覧 | 南・東・北・西の面、ベランダの内側、付帯部(雨どい・破風・軒天・水切り)、屋根 | サーバーに持たせる |
| 候補の種類の一覧 | ひび、チョーキングに見える粉、塗膜の剥がれ・膨れ、シーリングの切れ・すき間、こけ・かび・藻、さび、色あせ、汚れの筋 | サーバーに持たせる |
| 対応表 | 候補の種類から見積の項目への対応(ひび→下地の補修、シーリングの切れ→シーリングの打ち替えの検討、こけ→高圧洗浄の前の処理など) | 社内のスプレッドシート |
| 案件の台帳 | お客様の番号、相談の経路、担当の営業 | 顧客と案件の台帳 |
質を決めるのは、写真の撮り方の案内です。 問い合わせの最初の返信で、「家の四方から全体を1枚ずつ」「気になる所を1メートルくらいまで近づいて1枚」「壁を指でこすった後の指先を1枚」とお願いします。指先の写真があれば、チョーキングに見えるかを写真で返せます。無ければ、チョーキングは「現地で確かめる」に回します。
対応表は、営業たちで書き出します。 候補の種類ごとに、見積に入りうる項目と、現地で測るもの(面積、ひびの長さ、シーリングの長さ)を並べます。単価は対応表に持たせず、見積を作るときに単価の表から営業が入れます。
データの取得方法を決める
写真は、フォームとメッセージの窓口からサーバーが受け取ります。 フォームは添付のファイルを、メッセージの窓口は公式の連携の機能(Webhook など)で受け取ります。窓口の製品によって写真の受け取り方と保存の期間が違うので、使っている製品に合わせて個別に作り、届いたらすぐ社内に写します。
案件の台帳との結び付けは、問い合わせの番号で行います。 フォームなら送信のときの番号、メッセージならお客様のIDで、案件の台帳の行を引きます。初めてのお客様は、台帳に仮の行を作って番号を振ります。
Gemini API へは、1件につき1回、写真と面の一覧とお客様の文をまとめて渡します。 写真には番号と、分かれば撮った面(お客様が「北側です」と書いていればそれ)を添えます。面が分からない写真は、AIに面の見当を付けさせ、face_guess として返させます。 見当が外れることを前提に、営業が確かめる欄に入れます。
有料の利用枠で使い、store を false にします。 Gemini API の規約では、有料のサービスではプロンプトと応答が製品の改善に使われないとされています。Interactions API は既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできると案内されています。store=false にすると前の回のやり取りを引き継ぐ使い方はできないので、追加の写真で動かし直すときも、前の結果をサーバーから渡し直します。
AIへ渡す前に整形する
- 向きの補正 … スマートフォンの写真の向きの情報で回転しているだけのものは、画素を回転させます
- 縮小 … 全体の写真は長い辺を1,600ピクセル程度に縮めます。近くの写真は、細いひびが分かるよう大きめに残します
- 塗りつぶし … 写り込んだ家族や通行人の顔、表札、郵便受けの名前、車のナンバー、隣の家の窓の中を塗りつぶします
- 暗さと逆光の確認 … 逆光で壁が黒くつぶれた写真や、夜に撮った写真は、AIに渡さずに追加の写真のお願いの候補にします
- 重複の確認 … 同じ写真が2回届いていれば1枚にします
- 大きさの確認 … 1件分の写真と指示の文を合わせて20MBを超えないかを見ます。超えるときは面ごとに分けます
3番目を省かないでください。 お客様の写真には、家族、近所の家、道を歩く人が写り込みます。お客様が同意して送った写真でも、写り込んだ人は同意していません。塗りつぶした写真だけを渡し、現地調査の資料にも塗りつぶした写真を使います。
4番目も同じくらい効きます。 南の面を昼に撮ると、逆光で北の面の写真は暗くなりがちです。暗い写真で「傷みなし」と出ると、第3章の(d)と同じ見落としになります。
AIに処理させる
させるのは、面ごとに傷みの候補を枠で返すこと、写っていない面と写真では分からないことを返すこと、返信の文の下書きを作ることだけです。
| 返すもの | 中身 | 判断できないときの扱い |
|---|---|---|
| 面ごとの状態 | 面の一覧の1行ずつに candidates(候補あり)/none_seen(候補が見えない)/not_visible(写っていない) | 一部だけ・遠くだけなら partly_visible |
| 候補 | 写真の番号、枠、面、種類、見え方の短い説明 | ひびか汚れの筋か分からなければ unclear |
| 写真では分からないこと | ひびの幅と深さ、塗膜の浮き、チョーキングの有無(指先の写真が無い場合)、面積 | 必ず返させる |
| 外壁の材料の見え方 | サイディングに見える、モルタルに見える、など | 分からなければ unknown |
面ごとに none_seen と not_visible を分けて返させるのが、この構成の要です。 写っていない面を「候補が見えない」と同じに扱うと、第3章の(d)がそのまま残ります。 not_visible と partly_visible が残る件は、サーバーが返信の下書きに追加の写真のお願いを入れます。
「写真では分からないこと」を必ず返させるのは、返信と現地調査の両方で使うためです。 返信では「現地で確かめます」と書く材料になり、現地調査では確かめる事項の一覧になります。
| させないこと | 理由 |
|---|---|
| 劣化の程度や、塗り替えが必要かの判断 | 現地で確かめ、営業がお客様と話して決める |
| ひびの幅や深さ、面積を数字で書くこと | 写真の距離と角度で変わる。現地で測る |
| 見積の項目や金額を考えること | 項目は社内の対応表で、金額は単価の表と現地の数量で営業が決める |
| 雨漏りや構造の不具合の原因を書くこと | 写真の表面からは分からない |
| 急いで工事をしないと危ない、と書くこと | お客様の不安をあおる言葉になる |
| 写り込んだ人や近所の家について書くこと | 見立ての対象ではない |
1行目と5行目が、いちばん起きやすい失敗です。 色あせやひびを見せると、AIは「早めの塗り替えをおすすめします」「放置すると雨漏りの原因になります」と書きたがります。その言葉が返信に入ると、写真1枚で工事を急がせる文になります。 返すのは見え方までにし、工事が要るかは現地で確かめてから営業が話します。
指示内容を固定する
あなたは外壁の塗装会社で、お客様から届いた写真を見る手伝いをする係です。
写真の番号と、お客様が書いた面は次のとおりです(書かれていない写真もあります)。
{1: 全体(面の記載なし), 2: 南側, 3: 南側の窓の下の近く, 4: 指でこすった後の指先 ...}
お客様の文:{壁に線のようなひびがあり、触ると白い粉が付きます。築15年、前の塗装は不明}
【面の一覧】
{南の面, 東の面, 北の面, 西の面, ベランダの内側, 付帯部(雨どい・破風・軒天・水切り), 屋根}
【やること】
1. 面の一覧の1行ずつについて、candidates / none_seen / not_visible / partly_visible
のどれかを選ぶ。一覧にない面を足さない。一覧の面を飛ばさない。
2. 面の記載が無い写真は、どの面に見えるかを face_guess に書く。分からなければ unknown。
3. 次の種類の候補を探し、写真の番号と枠を [ymin, xmin, ymax, xmax] の順で、
0〜1000 に正規化して返す。面と種類、見え方を短く書く。
ひび、チョーキングに見える粉、塗膜の剥がれ・膨れ、シーリングの切れ・すき間、
こけ・かび・藻、さび、色あせ、汚れの筋
4. 写真では分からないことを、cannot_tell にすべて書く。
【厳守事項】
- 写真に写っていない面を none_seen にしないでください。not_visible にしてください。
- 遠くからの写真だけ、暗い写真だけで見た面は partly_visible にしてください。
- ひびか汚れの筋か分からないものは、kind を unclear にしてください。
- チョーキングは、指先の写真に白い粉が見えるときだけ候補にしてください。
指先の写真が無ければ cannot_tell に入れてください。
- ひびの幅や深さ、面積を数字で書かないでください。
- 劣化の程度、塗り替えが必要か、工事の項目、金額を書かないでください。
- 急いだほうがよい、放置すると危ない、のような言葉を書かないでください。
- 人、表札、車、近所の家については何も書かないでください。
「一覧の面を飛ばさない」「写っていない面を none_seen にしない」を並べているのは、どちらも同じ失敗を防ぐためです。 何も言わないと、AIは写真のあった面だけを返し、残りの面について何も言いません。 その沈黙をサーバーが「傷みなし」と読むと、北の面について何も書かない返信になります。
チョーキングの条件を書いているのは、写真で言い切らないためです。 白っぽく色あせた壁は、遠くの写真ではチョーキングと見分けがつきません。第3章の(b)の「写真で言い切って現地で食い違う」は、ここから起きます。
返信の文の下書きは、別の呼び出しで作ります。 営業が確かめる前の一覧と cannot_tell を渡し、「写真で見えたことは『〜に見えます』と書く」「写真では分からないことは『現地で確かめます』と書く」「写っていない面は撮影をお願いする」「工事の要否、金額、急ぐべきかを書かない」を入れます。営業はこの下書きを、確かめた結果に合わせて直してから送ります。
出力形式を固定する
1件ごとに、次の形の JSON で受け取ります。 status、kind は enum で決まった文字列に絞り、faces は面の一覧と同じ数を minItems・maxItems で求めます。
{
"inquiry_id": "Q-2026-1187",
"faces": [
{ "face": "南の面", "status": "candidates | none_seen | not_visible | partly_visible", "photos": [2, 3] }
],
"photo_faces": [ { "photo": 1, "face_guess": "東の面" } ],
"findings": [
{ "photo": 3, "box_2d": [480, 220, 700, 260], "face": "南の面",
"kind": "crack | chalking_looking | peeling | blister | sealant_break | moss_mold | rust | fading | stain_streak | unclear",
"note": "窓の下の角から斜め下へ、線のように見える" }
],
"cannot_tell": ["ひびの幅と深さ", "北の面と西の面の状態", "塗膜の浮き", "塗る面積"],
"material_looking": "siding | mortar | unknown"
}
1つ目の理由は、faces をそのまま追加の写真のお願いにできることです。 not_visible と partly_visible の面を、サーバーが「北の面を全体から1枚お願いします」のような文にします。
2つ目は、findings の種類から見積の項目の候補を機械的に引けることです。 サーバーは対応表で次のような下書きを作ります。
| 候補の種類(写真から) | 見積の項目の候補(対応表から) | 数量 | 現地で確かめること |
|---|---|---|---|
crack(南の面) | 下地の補修(ひび) | 現地で測る | ひびの幅・深さ・長さ |
sealant_break(東の面の窓まわり) | シーリングの打ち替えの検討 | 現地で測る | 切れの範囲、目地の長さ |
moss_mold(北の面は not_visible) | 高圧洗浄の前の処理の検討 | - | 北の面の状態 |
| 面の状態にかかわらず | 足場、高圧洗浄、外壁の塗装の工程、付帯部の塗装 | 現地で測る | 塗る面積、付帯部の範囲 |
数量の欄は、すべて「現地で測る」にします。 写真から面積や長さを出さないのは、その数字が見積の金額にそのまま入るからです。 単価も下書きに入れず、現地調査の後に営業が単価の表から入れます。
3つ目は、cannot_tell をそのまま現地調査の確かめる事項の一覧にできることです。 営業は現地で、この一覧の上から確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 問い合わせのフォーム | サーバーが受け取る | 写真、相談の文、送信の番号 |
| メッセージの公式の窓口 | 公式の連携の機能で受け取る | 写真、送り終えた合図、お客様のID |
| Gemini API | API呼び出し(/v1beta/interactions、store=false) | 面ごとの候補、写真では分からないこと、返信の文の下書き |
| 対応表 | 読み取り | 候補の種類から見積の項目の候補 |
| 顧客と案件の台帳 | 書き込み | 営業が確かめた一覧、見積の項目の下書き、返信の日 |
お客様への返信は、営業が送ります。 AIの下書きをそのまま自動で送ると、営業が確かめる前の見立てがお客様に届きます。写真の見え方を言い切った文が一度届けば、現地で違っても取り消せません。
見積の書式へは書き込みません。 見積は現地調査の後に営業が作り、写真の段階の下書きは案件の台帳の欄にとどめます。
人が確認する
- 写っていない面と
face_guessを先に見る … 面の見当が合っているかを確かめ、追加の写真のお願いを決めます - 候補を写真で確かめる … 印の所を見て、「候補として残す」「該当なし」を選びます
- 見積の項目の下書きを確かめる … 対応表から引いた項目を、お客様の文と写真に合わせて足し引きします
- 返信の下書きを直す … 見えたことと現地で確かめることが分かれているか、急がせる言葉が無いかを見ます
- 返信を送り、現地調査の日を決める
4番目を省かないでください。 返信はお客様が最初に受け取る会社の言葉で、写真で言い切ったり、急がせたりした文は、そのまま会社の印象になります。
目標は、150件をならして1件8分です。 写真の少ない相談は数分で済み、アパートのように面と付帯部が多い相談は10分を超えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 写真が暗い・遠い・逆光 | AIに渡さず、撮り方の案内を添えて追加の写真をお願いする |
面の一覧と faces の数が合わない | 呼び直す。2回合わなければ営業が写真を見る |
| 外壁ではない写真(室内の雨じみ、庭など)が混ざる | 一覧に入れず、営業が相談の文と合わせて見る |
| 雨漏りの相談が中心 | 外壁の見立てを止め、雨漏りの調査の案内を営業が書く |
| 隣の家や集合住宅の共用部が写る | 塗りつぶし、お客様の建物の範囲だけを見るよう営業が確かめる |
| 指示に反して工事の要否や数字、急がせる言葉を書いた | その出力を保存せずに捨て、呼び直す |
JSON の値が enum に無い | 候補を出さず、営業が写真を見る |
| API が応答しない | 写真を残したまま時間をおいて呼び直す。1時間たてば営業に知らせる |
上から2行目までが大半を占めます。 どれもAIの精度の問題ではなく、お客様の撮り方と、撮り方の案内の問題です。 6行目は、note と返信の下書きに「必要」「危険」「早め」「放置」の言葉や数字が入っていないかをサーバーで見ます。
記録を残す
- お客様の元の写真と、塗りつぶして AI に渡した写真、届いた日時
- 渡した面の一覧と相談の文、Gemini API が返した JSON
- 候補ごとに営業が付けた「残す」「該当なし」と、直した返信の文
- 対応表から引いた見積の項目の下書きと、そのときの対応表の版
- 現地調査で確かめた結果(写真の見立てと違った点)
最後の行が、撮り方の案内と対応表を直す材料になります。 写真で「ひびに見える」としたものが現地で汚れだった件を数えると、AIが拾いすぎている種類が分かります。写真の見立てと現地の結果の違いは、営業の評価ではなく、案内と指示を直すために使います。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ貼り付けるので、月150件には使えません。確かめるための段階です。 半自動化で、1件20分が12分程度になります。 写真を拡大して探す作業は減りますが、見積の項目の書き出しと返信づくりが残ります。 本格構成で8分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の記録を1か月見ると、どの面が not_visible になりやすいか、どの候補を営業が外すことが多いかが分かります。
05工数削減シミュレーション
導入後 150件 × 8分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 戸建て住宅やアパートの外壁・屋根の塗り替えを請け負い、Webの問い合わせのフォームやメッセージで写真付きの相談を月に百件以上受けている塗装会社。営業が写真を1件ずつ見て傷みのメモと概算の項目を書き、現地調査の案内を返している場合。返信が遅れて、ほかの会社に先に現地調査をされることがある場合。工事の項目と単価の表を社内で持っている場合。
- 問い合わせが月に数件で、営業がすぐに現地へ行ける場合。写真で相談を受けず、紹介や元請けからの仕事が中心の場合。マンションの大規模修繕のように、調査の会社が劣化の診断の報告書を作る仕事が中心の場合。なお、劣化の程度や工事の要否の判断、塗る面積の算出、見積の金額の確定は、この構成では代替できません。
07最小構成で試す方法
- 先月の写真付きの相談から20件を選ぶ(うち数件は、現地調査で写真の見立てと違った相談を入れる)
- その20件について、当時の返信と、現地調査で分かったことを書き出す
- 写真を手元の Gemini の画面に1件ずつ貼り付ける
- 「この写真で、南・東・北・西の面、ベランダの内側、付帯部、屋根のそれぞれについて、ひび、チョーキングに見える粉、剥がれ、シーリングの切れ、こけ、さびを探してください。写っていない面は『写っていない』と答えてください。写真では分からないことも書いてください。工事が必要か、金額、急ぐべきかは書かないでください」と指示する
- 出てきた候補と「写っていない」「分からない」を、当時の返信と現地調査の結果と突き合わせる
20件は必ずやってください。 サーバーを作る前に、「お客様の撮った写真から、面ごとの候補が返せるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 現地で分かった傷みが候補か「写っていない」「分からない」に出た | サーバーと対応表の作成に進む |
| 写っていない面を「傷みなし」と答えた、工事を勧める文を書いた | 指示の書き方で直る。構成は有効 |
| 遠い写真や逆光ばかりで、ほとんどが分からない | 撮り方の案内が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、写真で見立てがぶれていた理由が1つ分かったということです。 撮り方の案内を最初の返信に入れて、次の20件で比べてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 写っていない面が「傷みなし」に紛れる | 面の一覧を渡して面ごとに答えさせ、not_visible を分ける |
| 色あせをチョーキングと言う | 指先の写真があるときだけ候補にし、無ければ cannot_tell に入れる |
| 「早めの塗り替えを」「放置すると危ない」と書く | 指示で禁じ、note と返信の下書きの言葉をサーバーで見る |
| ひびの幅や面積を数字で書く | 指示で禁じ、数量の欄はすべて「現地で測る」にする |
| AIが見積の項目を書き足す | 項目は対応表で機械的に引き、AIには種類だけを返させる |
| 面の見当が外れる | face_guess を営業が確かめる欄に入れる |
| 逆光の写真で「傷みなし」が出る | 前処理で暗さを見て渡さず、追加の写真をお願いする |
| 近所の家や家族が写る | 塗りつぶした写真だけを渡し、現地調査の資料にも使う |
| 返信が自動で飛ぶ | 下書きまでにする。 送信は営業が行う |
| 見立てと現地の違いが営業の評価になる | 違いは案内と指示を直す材料にし、評価に使うかは別に決める |
上の3行が、この構成の失敗のほとんどです。 どれも「写真で見えた」を「そうである」と言い切ることから出ています。写っていない面と写真では分からないことを、別の答えとして返させることが、指示と規則の両方で守る線です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: お客様の名前と住所、家の外観の写真、相談の文、見積の項目の下書きです。写真には家族や通行人の顔、表札、車のナンバー、近所の家が写り込みます。
- 写真に写った人や名前を、個人情報として扱う … 個人情報保護委員会のガイドラインは、個人情報の例として本人が判別できる映像情報を挙げ、個人に関する情報には顔画像のように個人を識別する情報が含まれるとしています。前処理で塗りつぶしてから渡し、元の写真は社内にだけ残します
- 不安をあおる返信をしない … 国民生活センターは、屋根工事の点検商法のトラブルが増えているとして、ずれた瓦の写真やドローンで撮ったという写真を見せられて契約した相談や、屋根・外壁・床下の修繕を次々と勧誘された相談を挙げ、すぐに契約せず十分に検討するよう呼びかけています。この構成はお客様から届いた写真で始まる相談ですが、写真を使って工事を急がせる文は、同じ形に見えます。 返信は見えたことと現地で確かめることだけにし、急がせる言葉をAIにも営業にも使わせません
- この構成は劣化の判断を代替しません … 劣化の程度、工事の要否、塗る面積、金額は、現地調査の結果をもとに営業が決めることです。 この構成が出すのは、写真にどう見えたかという候補だけです
- お客様の家の外観を外に広げない … 写真から住所や家の造りが分かります。写真を見られる人を営業と現地調査の担当に限り、施工事例として使うときは別にお客様の了解を取ります
- 使うのは社内の担当だけにする … AIの結果を見るのは営業だけです。Gemini API の規約は、18歳以上であることを利用の条件とし、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていません。お客様とのやり取りは営業が行い、お客様がAIと直接やり取りする窓口は作りません
- AI側にやり取りを残さない … 有料の利用枠で使い、
store=falseを付けます
誤りが起きた場合のリスクは、写真で言い切った見立てで現地調査の前にお客様を不安にさせることと、写っていない面の傷みを見落として見積の後で項目が増えることの2つです。 前者は見え方を判断として書くと起き、後者は写っていない面を「傷みなし」と扱うと起きます。どちらも、見え方と判断を分けることから外れたときに起きるので、そこを設計で守ります。
10まず何から始めるか
1週目:撮り方の案内と対応表を作る
営業たちで、お客様にお願いする撮り方(四方の全体、近くの1枚、指先の1枚)を案内の文にします。あわせて、候補の種類と見積の項目の対応表を書き出します。
2週目:20件で試す
先月の相談から20件を選び、手元の Gemini の画面に貼って候補を挙げさせます。写っていない面を「傷みなし」と答えていないか、工事を急がせる言葉を書いていないかを最優先で見ます。
3週目:返信の型を決める
「見えたこと」「現地で確かめること」「撮影のお願い」「現地調査の案内」の4つの段からなる返信の型を決めます。急がせる言葉と言い切りの言葉の一覧を作り、サーバーで見る準備をします。
4週目:まとめて一覧を出す
営業が1日分の相談の写真をまとめて API に渡し、面ごとの一覧と印の付いた写真を作るところまで作ります。この時点では返信の下書きも見積の項目も出さず、営業の見立てと並べて見ます。
2か月目: フォームとメッセージの窓口からの受け取りと、対応表での見積の項目の下書きを足します。3か月目以降: 返信の下書きと台帳への書き込みを足し、1件20分が何分になったかを実測します。現地調査の結果を写真の見立てと並べて、撮り方の案内と対応表を見直すようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
対応する画像の形式が PNG・JPEG・WEBP・HEIC・HEIF であること。画像を直接入れる場合は指示の文などを合わせたリクエスト全体が20MBまでであること。1回のリクエストの画像が最大3,600枚であること。位置が [ymin, xmin, ymax, xmax] の順で0〜1000に正規化されて返り、元の大きさに戻して使うこと。384ピクセル以下の画像が258トークンで、それより大きい画像はタイルに分けて数えること。media_resolution が画像1枚あたりのトークンの上限を決めること | Google AI for Developers: Image understanding | 2026-10-28 |
構造化出力を /v1beta/interactions の response_format(mime_type に application/json、schema)で指定すること。文字列の enum、配列の minItems・maxItems が使えること。minLength・maxLength はエラーにならずに外されること。値はアプリ側で検証するよう書かれていること | Google AI for Developers: Structured output | 2026-10-28 |
Interactions API が既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできること。store=false では前のやり取りを引き継ぐ使い方ができないこと | Google AI for Developers: Interactions API | 2026-10-28 |
| 利用には18歳以上であることが必要で、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていないこと。有料のサービスではプロンプトと応答が製品の改善に使われないこと | Gemini API Additional Terms of Service | 2026-10-28 |
| 個人情報の例として本人が判別できる映像情報が挙げられ、個人に関する情報に顔画像など個人を識別する情報が含まれること | 個人情報保護委員会: 個人情報の保護に関する法律についてのガイドライン(通則編) | 2026-10-28 |
| 屋根工事の点検商法のトラブルが増えていること。ずれた瓦の写真やドローンで撮ったという写真を見せられて契約した相談、屋根・外壁・床下等の修繕を次々と勧誘された相談が挙げられていること。すぐに契約せず十分に検討するよう呼びかけていること | 国民生活センター: 屋根工事の点検商法のトラブルが増えています | 2026-10-28 |
どの見え方を見積の項目の候補にするか、返信に何を書くかは、自社の対応表と営業の決まりに合わせて決めてください。 本記事は上の公式の情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2189)についてのご相談はこちらから。
