ビル清掃の会社が共用部の清掃のあとに撮った写真を Gemini で見て、仕様書と照らした仕上がりの点検の記録と手直しの一覧を作る
清掃員が共用部の清掃のあとに場所ごとに撮った写真を Gemini API で見て、仕様書のその日の作業ごとに仕上がりの見え方と手直しの候補を返させます。清掃員への手直しの一覧と、管理会社に出す作業報告の下書きを作ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/不動産/小売
- 対象部門
- 品質管理
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 業務の担当がチャットを開き、物件ごとに届いた写真を場所ごとに並べ直す
- 仕様書を開き、その日に予定された作業(毎日・週次・月次)の写真がそろっているかを見当をつける
- 写真を1枚ずつ拡大し、床の拭き残し、ごみの残り、鏡や金属の水あと、便器の汚れを探す
- 気になる所を、写真を添えて清掃員にチャットで返す
- 手直しの写真が届いたら、どの指摘のものかを探して見比べる
- 日ごとの確認の結果を控えに書き、月末に作業報告の書式に写真と実施の記録を貼り込む
- 上長が読み直し、管理会社に送る
- 人清掃員が、作業の終わった場所ごとに決まった撮り方で写真を撮り、場所を選んで送る
- 自動清掃の終わりの合図で、サーバーが仕様書からその物件のその日の作業の一覧を作る
- 自動写真の向きと大きさを整え、人の顔や郵便受けの名前が写っていれば塗りつぶす
- 自動Gemini API が、作業ごとの仕上がりの見え方と、手直しの候補と枠、写っていない作業を返す
- 自動サーバーが候補に番号を振り、写真に印を描いて、物件ごとの点検の記録を作る
- 人業務の担当が候補を写真で確かめ、「手直しする」「該当なし」を選び、写っていない作業を清掃員に確かめる
- 自動「手直しする」になった候補を、清掃員へチャットで返す
- 自動手直しの写真が番号つきで届いたら、Gemini API が前後を見比べる
- 人月末に、担当が作業報告の下書きを読み直して上長に回す
各工程の詳しい説明を読む
- 業務の担当がチャットを開き、物件ごとに届いた写真を場所ごとに並べ直す
- 仕様書を開き、その日に予定された作業(毎日・週次・月次)の写真がそろっているかを見当をつける
- 写真を1枚ずつ拡大し、床の拭き残し、ごみの残り、鏡や金属の水あと、便器の汚れを探す
- 気になる所を、写真を添えて清掃員にチャットで返す
- 手直しの写真が届いたら、どの指摘のものかを探して見比べる
- 日ごとの確認の結果を控えに書き、月末に作業報告の書式に写真と実施の記録を貼り込む
- 上長が読み直し、管理会社に送る
(a)予定された作業の写真が無いことに気づかない。 3番目は、写っている汚れを探す作業です。その日が階段の手すりの拭き上げの日だったのに、その写真が1枚も無くても、写真を見ているだけでは分かりません。 月末に作業報告を作るときに、写真の足りない日が見つかります。
(b)見る目が担当ごとに違う。 床の拭きむらをどこから手直しとするか、ガラスの指紋をどこまで許すかは、担当の経験で決まっています。 同じ清掃員が、担当によって返されたりされなかったりします。
(c)作業報告が月末にまとめて来る。 6番目は、1か月分の写真から選んで貼る作業です。18棟分が月末の数日に集中し、担当は日中の巡回と夜の報告書づくりを抱えます。
(d)写真の中に人が写る。 マンションのエントランスやエレベーターでは、住人や来訪者が写り込みます。 作業報告に貼る写真を選ぶとき、担当が1枚ずつ見て外しています。
- 【人】 清掃員が、作業の終わった場所ごとに決まった撮り方で写真を撮り、場所を選んで送る
- 【自動】 清掃の終わりの合図で、サーバーが仕様書からその物件のその日の作業の一覧を作る
- 【自動】 写真の向きと大きさを整え、人の顔や郵便受けの名前が写っていれば塗りつぶす
- 【自動】 Gemini API が、作業ごとの仕上がりの見え方と、手直しの候補と枠、写っていない作業を返す
- 【自動】 サーバーが候補に番号を振り、写真に印を描いて、物件ごとの点検の記録を作る
- 【人】 業務の担当が候補を写真で確かめ、「手直しする」「該当なし」を選び、写っていない作業を清掃員に確かめる
- 【自動】 「手直しする」になった候補を、清掃員へチャットで返す
- 【自動】 手直しの写真が番号つきで届いたら、Gemini API が前後を見比べる
- 【人】 月末に、担当が作業報告の下書きを読み直して上長に回す
6番目と9番目が、この設計の分かれ目です。 AIが返すのは見え方と候補までで、手直しにするか、作業を実施したと報告するかは担当が決めます。 担当の時間は、写真の中から汚れを探す作業から、印の付いた所と写っていない作業を確かめる作業に移ります。
2番目でその日の作業の一覧を先に作るのも、意図してのことです。 一覧があれば、写真の無い作業がその日のうちに分かり、清掃員がまだ現場にいるうちに撮り直しを頼めます。
02今回想定するシステム構成
清掃のあとの写真(清掃員がチャットで場所を選んで送る) ▼【トリガー】清掃の終わりの合図 Python のサーバー ├── 仕様書から、その物件のその日の作業の一覧を作る ├── 写真の向き・大きさを整える、人の顔や名前を塗りつぶす ▼ Gemini API(画像の理解・構造化出力)── 1棟1日分の写真と作業の一覧 │ 作業ごとの見え方、手直しの候補と枠、写っていない作業 ▼ Python ── 候補に番号を振り、写真に印を描く、点検の記録を作る ▼ 【人】業務の担当が確かめる → 清掃員へ手直しの依頼 ▼ 手直しの写真(候補の番号つき)→ Gemini API で前後を見比べる ▼ 月末:作業報告の下書き → 【人】担当と上長が確かめる → 管理会社へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(作業ごとの仕上がりの見え方と手直しの候補を返し、前後を見比べ、作業報告の文の下書きを作る) | Claude API、OpenAI API |
| 連携 | Python(写真の受け取り、仕様書の読み取り、前処理、呼び出し、印の描画、記録と報告の組み立て) | Google Apps Script |
| 仕様書 | 物件ごとの清掃の仕様書と物件の台帳(スプレッドシート) | - |
| 連絡 | 清掃員が写真を送るチャット | - |
新しく足すのは、Python のサーバーと Gemini API の契約です。 仕様書・物件の台帳・作業報告の書式は今のものを使い、写真を送るときに場所を選ぶ決まりだけを足します。
写真を見る土台は、Gemini API の画像の理解です。 公式の案内では、対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示の文や画像を合わせたリクエスト全体が20MBまでです。1回のリクエストに入れられる画像は最大3,600枚とされていますが、大きさの上限があるので、1棟1日分ずつ、多ければ階ごとに分けて呼びます。
位置は枠で返させます。 枠は [ymin, xmin, ymax, xmax] の順で、画像の大きさに対して0〜1000に正規化され、元の大きさに戻して使うよう案内されています。
出力は構造化出力で受けます。 /v1beta/interactions に送り、response_format で mime_type を application/json にし、schema にスキーマを入れます。文字列の enum、配列の minItems・maxItems が使えます。一方で minLength・maxLength は効かず、エラーにならずに外されるとされているので、文の長さはサーバーで見ます。値が正しいかはアプリ側で検証するよう公式に書かれています。
03どうやって実装するのか
処理の起点を決める
清掃員が「この物件の今日の清掃が終わった」と送ったときに、1棟1日分をまとめて動かします。 チャットの決まった言葉か、写真を送る画面の「終了」のボタンを合図にします。写真が1枚届くたびに動かすと、まだ撮っていない場所の作業を「写っていない」と返し、清掃員への問い合わせが無駄に飛びます。
清掃の予定の時刻を過ぎても合図の無い物件を、1日に2回数えます。 昼と夕方に、その日に清掃の予定がある物件のうち合図の届いていないものを担当に知らせます。合図の送り忘れと、清掃そのものが行われていないことを、その日のうちに分けられるようにします。
手直しの写真は、別の合図で動きます。 清掃員が候補の番号を付けて写真を送ったら、その番号の候補だけを見比べます。番号の付いていない写真は見比べに回さず、担当に「どの候補の写真か」を聞く一覧に入れます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 清掃のあとの写真 | 場所ごとの全体と、作業の対象の近く。送るときに選んだ場所の名前 | 写真を送るチャット |
| 清掃の仕様書 | 物件ごとの場所、作業(床の掃き拭き、トイレの清掃、ガラスの拭き上げなど)、頻度(毎日・週の曜日・月の日) | 物件ごとのスプレッドシート |
| その日の作業の一覧 | 仕様書と日付から作った「場所×作業」の一覧(例:1階エントランス-床の拭き上げ、2階トイレ-鏡) | サーバーが作る |
| 物件の情報 | 物件の種類(オフィス・マンション・商業)、清掃員、管理会社、作業報告の書式 | 物件の台帳 |
| 候補の種類の一覧 | 床の拭き残し・拭きむら、ごみ・ほこりの残り、鏡・金属の水あと、便器・洗面台の汚れ、ガラスの指紋・くもり、ごみ置き場の散らかり、備品(ペーパー・石けん)の切れに見える所 | サーバーに持たせる |
| 社内の手直しの基準 | どの見え方から手直しにするかの決まり(担当たちで書き出したもの) | スプレッドシート |
質を決めるのは、仕様書をその日の作業の一覧に直す部分です。 仕様書に「階段:手すり拭き 週1回(水曜)」とあれば、水曜の一覧にだけ入れます。曜日が書かれていない「週1回」は、物件ごとに曜日を決めてから一覧にします。 決めないと、毎日「写っていない」が出るか、一度も出ないかのどちらかになります。
写真を送るときに場所を選ばせるのも、質を決める部分です。 場所が分かれば、AIは写真と作業を結び付けられます。場所の名前は、仕様書の書き方にそろえた選択肢から選ぶ形にします。
データの取得方法を決める
写真は、チャットの決まった部屋(物件ごと)からサーバーが受け取ります。 写真と一緒に、送った人、送った時刻、選んだ場所を受け取ります。チャットの製品によって写真の受け取り方が違うので、使っている製品の連携の機能(ボットやWebhookなど)に合わせて個別に作ります。
仕様書と物件の台帳は、サーバーがスプレッドシートから読みます。 物件の番号で仕様書の行を引き、日付から曜日と月の日を出して、その日の作業の一覧を作ります。祝日や物件の休館日に清掃を休む決まりがあれば、物件の台帳に持たせます。
Gemini API へは、1棟1日分の写真と作業の一覧をまとめて渡します。 写真には番号と選ばれた場所を添えます。写真が多い物件は、階ごとに分けて呼びます。 全体の写真と近くの写真を同じ呼び出しに入れると、近くの写真の汚れがどの場所のものかを全体の写真と結び付けて返せます。
有料の利用枠で使い、store を false にします。 Gemini API の規約では、有料のサービスではプロンプトと応答が製品の改善に使われないとされています。Interactions API は既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできると案内されています。store=false にすると前の回のやり取りを引き継ぐ使い方はできないので、呼び出しは毎回、必要な写真と一覧をそろえて送ります。
AIへ渡す前に整形する
- 向きの補正 … スマートフォンの写真の向きの情報で回転しているだけのものは、画素を回転させます
- 縮小 … 全体の写真は長い辺を1,600ピクセル程度に縮めます。鏡や便器の近くの写真は、水あとが分かるよう大きめに残します
- 塗りつぶし … 住人・来訪者・テナントの社員の顔、郵便受けや掲示板の名前、エレベーターの中の人を塗りつぶします
- 暗さとぶれの確認 … 照明の落ちた階段や、手ぶれの大きい写真は、AIに渡さずに撮り直しの候補にします
- 場所の確認 … 選ばれた場所が、その日の作業の一覧にあるかを見ます。一覧に無い場所の写真は、別に分けておきます
- 大きさの確認 … 1回分の写真と指示の文を合わせて20MBを超えないかを見ます。超えるときは階ごとに分けます
3番目を省かないでください。 マンションのエントランスは、朝の清掃の時間が住人の出勤や通学の時間と重なります。 子どもを含む住人が写った写真が、そのままAIに渡り、作業報告に貼られる形を避けます。塗りつぶした写真だけを渡し、作業報告にも塗りつぶした写真を使います。
AIに処理させる
させるのは、作業ごとに見え方を返すこと、手直しの候補を枠で返すこと、手直しの前後を見比べることだけです。
| 返すもの | 中身 | 判断できないときの扱い |
|---|---|---|
| 作業ごとの状態 | その日の作業の一覧の1行ずつに finished_looking(仕上がって見える)/candidates(手直しの候補あり)/not_visible(写っていない) | 一部しか写っていなければ partly_visible |
| 候補 | 写真の番号、枠、作業、種類、見え方の短い説明 | 汚れか床の模様か分からなければ unclear |
| 一覧に無い気づき | 作業の一覧に無いが目に付いた所(照明の切れ、壁の落書き、設備の破損に見える所) | 管理会社への連絡の候補として返す |
| 手直しの前後 | 候補ごとに fixed_looking/remaining_looking/not_comparable | 角度や明るさが違えば not_comparable |
作業ごとに finished_looking と not_visible を分けて返させるのが、この構成の要です。 写っていない作業を「仕上がって見える」と同じに扱うと、第3章の(a)がそのまま残り、作業報告に写真の無い作業が「実施」と載ります。 not_visible と partly_visible が残る物件は、サーバーが担当の確認の一覧の先頭に置きます。
3行目の「一覧に無い気づき」は、清掃の点検とは別に扱います。 照明が切れている、手すりが外れかけて見える、といった所は清掃員の手直しの対象ではなく、管理会社への連絡の候補です。サーバーは清掃員への一覧に混ぜず、担当の画面の別の欄に出します。
| させないこと | 理由 |
|---|---|
| 作業を実施したかどうかの断定 | 写真から分かるのは見え方まで。実施の記録は清掃員の報告と担当の確認で残す |
| 手直しが必要かどうかの判断 | 社内の基準と契約の仕様で決まる。担当が決める |
| におい、床のすべり、衛生の状態を書くこと | 写真には写らない |
| 設備の故障の原因や修理の方法を書くこと | 清掃の会社の範囲を超える。管理会社に事実だけを伝える |
| 清掃員の腕や責任について書くこと | 手直しの一覧が人への評価の文になってしまう |
| 住人や来訪者について書くこと | 点検の対象ではない |
1行目がいちばん起きやすい失敗です。 床がきれいに写っていると、AIは「清掃は適切に実施されています」と書きたがります。その言葉が作業報告に入ると、写真の1枚で作業の実施を保証することになります。 返すのは見え方までにし、作業報告に「実施」と書くかは、清掃員の報告と担当の確認で決めます。
指示内容を固定する
あなたはビルの共用部の清掃の会社で、清掃のあとの写真を見る手伝いをする係です。
物件の種類は {分譲マンション} です。
写真の番号と、清掃員が選んだ場所は次のとおりです。
{1: 1階エントランス 全体, 2: 1階エントランス 床の近く, 3: 1階エントランス 自動扉のガラス,
4: 2階廊下 全体, 5: ごみ置き場 全体 ...}
【今日の作業の一覧】
{1階エントランス-床の拭き上げ, 1階エントランス-自動扉のガラス拭き,
1階エントランス-郵便受けの前の掃き, 各階廊下-掃き, 階段-手すり拭き,
ごみ置き場-床の洗い・整頓, エレベーター-床と鏡}
【やること】
1. 作業の一覧の1行ずつについて、finished_looking / candidates / not_visible /
partly_visible のどれかを選ぶ。一覧にない作業を足さない。一覧の作業を飛ばさない。
2. 次の種類の候補を探し、写真の番号と枠を [ymin, xmin, ymax, xmax] の順で、
0〜1000 に正規化して返す。作業と種類、見え方を短く書く。
床の拭き残し・拭きむら、ごみ・ほこりの残り、鏡・金属の水あと、
便器・洗面台の汚れ、ガラスの指紋・くもり、ごみ置き場の散らかり、
備品の切れに見える所
3. 作業の一覧に無いが目に付いた所(照明の切れ、落書き、設備の破損に見える所)が
あれば、others に書く。
【厳守事項】
- 写真に写っていない作業を finished_looking にしないでください。
not_visible にしてください。
- 暗い写真、ぶれた写真だけで見た作業は partly_visible にしてください。
- 汚れか床の模様・反射か分からないものは、kind を unclear にしてください。
- 作業を実施した、清掃が適切だ、と書かないでください。
- 手直しが必要か、設備の故障の原因や修理の方法を書かないでください。
- におい、すべり、衛生の状態を書かないでください。
- 清掃員の腕や責任について書かないでください。
- 人、郵便受けや掲示板の名前については何も書かないでください。
「一覧の作業を飛ばさない」「写っていない作業を finished_looking にしない」を並べているのは、どちらも同じ失敗を防ぐためです。 何も言わないと、AIは候補のあった作業だけを返し、残りの作業について何も言いません。 その沈黙をサーバーが「仕上がって見える」と読むと、写真の無い手すり拭きが作業報告に「実施」と載ります。
手直しの前後の見比べは、別の指示で呼びます。 候補の番号、作業、前の写真の枠、後の写真を渡し、「前の枠の所の見え方が、後の写真で直って見えるか、まだ残って見えるか、比べられないかを選ぶ。後の写真がほかの場所を写していると思えば not_comparable にする」と指示します。
作業報告の文の下書きは、月末に別の呼び出しで作ります。 担当が確かめた点検の記録だけを渡し、「作業の名前は仕様書の言葉をそのまま使う」「確かめた範囲は写真に写った範囲と書く」「適切に実施しました、問題ありません、のような言い切りをしない」を入れます。実施の日付は記録から機械で入れ、AIには書かせません。
出力形式を固定する
1棟1日分ごとに、次の形の JSON で受け取ります。 status、kind は enum で決まった文字列に絞り、tasks は作業の一覧と同じ数を minItems・maxItems で求めます。
{
"site_id": "M-012",
"date": "2026-10-28",
"tasks": [
{ "task": "1階エントランス-自動扉のガラス拭き",
"status": "finished_looking | candidates | not_visible | partly_visible", "photos": [3] }
],
"findings": [
{ "photo": 3, "box_2d": [420, 300, 560, 410], "task": "1階エントランス-自動扉のガラス拭き",
"kind": "floor_streak | debris_left | water_spot | toilet_stain | glass_fingerprint | waste_area_mess | supply_empty_looking | unclear",
"note": "左の扉の取っ手の下に、手のあとのようなくもりが見える" }
],
"others": [ { "photo": 4, "note": "廊下の奥の天井の照明が1つ消えて見える" } ]
}
1つ目の理由は、tasks をそのまま「その日の点検の記録」にできることです。 作業の数がそろっていなければサーバーが呼び直し、not_visible の作業は清掃員への確かめの一覧に自動で入ります。 清掃員がまだ現場にいる時間に届けば、撮り直しで済みます。
2つ目は、findings に番号を振れば、手直しの依頼と前後の見比べの鍵になることです。 サーバーは候補に「M-012-1028-02」のような番号を振り、清掃員への依頼と後の写真の受け取りに同じ番号を使います。
3つ目は、1か月分の記録から作業報告の表をそのまま組み立てられることです。
| 作業(仕様書から) | 頻度 | 写真で確かめた日 | 手直し | 備考 |
|---|---|---|---|---|
| 1階エントランス-床の拭き上げ | 毎日 | 20日/20日 | 2回(前後の写真あり) | - |
| 階段-手すり拭き | 毎週水曜 | 3日/4日 | なし | 1日は写真なし(清掃員の報告では実施) |
2行目の備考のように、写真が無い日を隠さずに書きます。 作業報告の中で「写真で確かめた日」と「実施の報告」を分けておけば、管理会社が帳簿に何を書き写すかを、管理会社の側で判断できます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 写真を送るチャット | サーバーが受け取る・投稿する | 写真と場所の受け取り、清掃員への手直しの依頼と確かめ |
| 仕様書と物件の台帳 | 読み取り | 場所・作業・頻度、休みの日、清掃員、管理会社 |
| Gemini API | API呼び出し(/v1beta/interactions、store=false) | 作業ごとの見え方、候補、前後の見比べ、作業報告の文の下書き |
| 点検の記録 | 書き込み | 担当が確かめた後の作業ごとの状態と候補 |
| 作業報告の書式 | 書き込み | 月末の表と、塗りつぶした写真の組 |
清掃員への依頼は、担当が「手直しする」にした候補だけを送ります。 AIの候補をそのまま送ると、床の模様や照明の反射まで手直しとして届き、清掃員の時間と担当への信頼が両方減ります。
管理会社への作業報告は、下書きまでにします。 担当と上長が読み直してから送ります。「一覧に無い気づき」も、担当が写真で確かめたものだけを、事実として書き添えます。
人が確認する
not_visibleとpartly_visibleを先に見る … 清掃員に、撮り忘れか、作業をしていないかを確かめます- 候補を写真で確かめる … 印の所を見て「手直しする」「該当なし」を選びます
- 一覧に無い気づきを確かめる … 管理会社に知らせるものを選びます
- 手直しの前後を確かめる …
fixed_lookingも含めて前後の組を見ます - 月末に作業報告を読み直す … 写真で確かめた日と実施の報告が分けて書かれているかを見て、上長に回します
1番目を省かないでください。 not_visible は撮り忘れのことが多いのですが、作業そのものが抜けていることもあります。 清掃員が現場にいるうちに確かめれば、その日のうちに作業を足せます。
目標は、360件をならして1件3分です。 候補の少ないオフィスビルは1分ほどで済み、住人の多いマンションやごみ置き場の散らかりやすい物件は5分を超えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 暗い・ぶれた写真が多い | AIに渡さず、清掃員に撮り直しを頼む |
作業の一覧と tasks の数が合わない | 呼び直す。2回合わなければ担当が写真を見る |
| 仕様書に頻度の曜日が無い | 一覧に入れず、担当に曜日を決めてもらう |
| 選ばれた場所が一覧に無い | 別に分け、担当が場所の選び間違いかを確かめる |
| 清掃の終わりの合図が来ない | 昼と夕方に担当へ知らせる。写真だけ届いていれば担当が手で動かす |
| 後の写真に候補の番号が無い | 見比べに回さず、担当に「どの候補の写真か」を聞く |
| 指示に反して「実施済み」「適切」や修理の方法を書いた | その出力を保存せずに捨て、呼び直す |
JSON の値が enum に無い | 候補を出さず、担当が写真を見る |
| API が応答しない | 写真を残したまま時間をおいて呼び直す |
上から2行目までが大半を占めます。 どれもAIの精度の問題ではなく、撮り方と仕様書の書き方の問題です。 7行目は、note に「実施」「適切」「修理」の言葉が入っていないかをサーバーで見ます。
記録を残す
- 1棟1日分の元の写真と、塗りつぶして AI に渡した写真
- 渡した作業の一覧と、Gemini API が返した JSON
- 候補ごとに担当が付けた「手直しする」「該当なし」と、
not_visibleについて清掃員が答えた内容 - 手直しの前後の写真の組と、見比べの結果
- そのときの仕様書の版と社内の手直しの基準の版、送った作業報告
3つ目が、仕様書と撮り方を直す材料になります。 同じ作業で not_visible が続くなら、撮り方の決まりにその作業の写真が入っていません。物件ごとの手直しの件数も出せますが、清掃員の評価に使うかは、別に話し合って決めます。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ貼り付けるので、毎日16件には使えません。確かめるための段階です。 半自動化で、1件8分が5分程度になります。 写真を並べて仕様書と照らす作業は減りますが、清掃員への返しと作業報告づくりが残ります。 本格構成で3分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の記録を1か月見ると、どの作業で not_visible が多いか、どの候補を担当が外すことが多いかが分かります。
05工数削減シミュレーション
導入後 360件 × 3分 ÷ 60 = 18 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- オフィスビル・マンション・商業ビルの共用部の日常清掃を十数棟以上請け負い、清掃員が作業のあとに写真を撮って事務所に送っているビルメンテナンスの会社。業務の担当が写真を1枚ずつ見て仕様書と照らし、管理会社やオーナーへの作業報告を作っている場合。清掃の仕様書(場所・作業・頻度の一覧)を物件ごとに持っている場合。
- 請け負う物件が数棟で、業務の担当が毎日巡回して目で確かめている場合。仕様書が無く、どこを何回掃除するかが清掃員の経験にしかない場合。におい・床のすべり・機械の動きなど、写真に写らない点の確認が中心の場合。なお、清掃の品質が契約に合っているかの判断、建築物の衛生の管理の帳簿の記載の責任、手直しの要否の最終の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の写真から、3棟の10日分(30件)を選ぶ(うち数件は、管理会社から指摘のあった日を入れる)
- その30件について、当時の担当の確認の結果と、管理会社からの指摘を書き出す
- 仕様書からその日の作業の一覧を手で作り、写真と一緒に手元の Gemini の画面に貼り付ける
- 「この作業の一覧の1つずつについて、仕上がって見える・手直しの候補あり・写っていない、のどれかを答えてください。写っていない作業を仕上がって見えるとしないでください。清掃が適切だとは書かないでください」と指示する
- 出てきた結果を、当時の確認の結果と管理会社からの指摘と突き合わせる
30件は必ずやってください。 サーバーを作る前に、「今の撮り方の写真から、作業ごとの見え方が返せるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 管理会社から指摘された所が候補か「写っていない」に出た | サーバーと作業の一覧の作成に進む |
| 写っていない作業を「仕上がって見える」と答えた | 指示の書き方で直る。構成は有効 |
| 全体の写真ばかりで、水あとや拭きむらが分からない | 撮り方の決まりが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、担当が写真を拡大して時間をかけていた理由が1つ分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 写っていない作業が「仕上がって見える」に紛れる | その日の作業の一覧を渡して作業ごとに答えさせ、not_visible を分ける |
| 写真1枚で「実施済み」と作業報告に載る | 写真で確かめた日と実施の報告を分けて書く |
| 床の模様や反射を汚れと言う | unclear を許し、担当が外した理由を記録する |
| 「適切に清掃されています」と書く | 指示で禁じ、note の言葉をサーバーで見る |
「週1回」の作業が毎日 not_visible になる | 仕様書に曜日を書き足してから一覧にする |
| 住人が写った写真が作業報告に貼られる | 塗りつぶした写真だけを渡し、報告にも使う |
| 照明の切れを清掃員に返してしまう | 一覧に無い気づきは別の欄に出し、管理会社への連絡の候補にする |
| 後の写真がどの指摘のものか分からない | 候補の番号で受け取り、番号の無い写真は見比べない |
| 写真が多く20MBを超える | 階ごとに分けて呼ぶ |
| 手直しの一覧が清掃員への評価になる | 人について書かせず、見え方だけを送る |
| 手直しの基準が担当の頭の中にしかない | 1週目に書き出し、振り分けの表にしてから AI をつなぐ |
上の2行が、この構成の失敗のほとんどです。 どちらも「写真に汚れが無い」を「作業をした」と読むことから出ています。写っていない作業を、仕上がりとは別の答えとして返させることが、指示と規則の両方で守る線です。
下の行も、早く効いてきます。 基準が言葉になっていないまま候補を出すと、担当ごとに返す・返さないが分かれ、第3章の(b)が残ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 物件の共用部の写真、清掃の仕様書、点検の記録、作業報告です。マンションやオフィスの共用部では、住人・来訪者・テナントの社員の顔、郵便受けや掲示板の名前が写り込みます。住人には子どもも含まれます。
- 写真に写った人や名前を、個人情報として扱う … 個人情報保護委員会のガイドラインは、個人情報の例として本人が判別できる映像情報を挙げ、個人に関する情報には顔画像のように個人を識別する情報が含まれるとしています。前処理で塗りつぶしてから渡し、元の写真は社内にだけ残します。 撮るときに人が写らない向きを選ぶ決まりも、清掃員に伝えます
- 物件の中を外に広げない … オートロックの操作盤、防犯カメラの位置、管理室の中が写ります。写真を見られる人を業務部に限り、作業報告は管理会社にだけ送ります
- 帳簿の記載の責任は管理する側にある … 建築物の衛生の管理の施行規則は、特定建築物の掃除を日常のほか大掃除を6か月以内ごとに1回行うとし、清掃の状況を記載した帳簿書類を備えておくことを特定建築物所有者等に求めています。作業報告はその材料であり、帳簿に何を書くかは管理会社やオーナーが判断します。 写真で確かめた日と実施の報告を分けて出すのは、そのためです
- 清掃員への言葉に気を配る … 手直しの一覧には見え方だけを書き、誰が掃除したかや腕についてAIに書かせません
- 使うのは社内の担当だけにする … AIの結果を見るのは業務の担当と上長だけです。Gemini API の規約は、18歳以上であることを利用の条件とし、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていません。清掃員のチャットには担当が選んだ依頼だけを流し、住人や管理会社がAIに触れる画面は作りません
- AI側にやり取りを残さない … 有料の利用枠で使い、
store=falseを付けます
誤りが起きた場合のリスクは、行われていない作業を作業報告に「実施」と載せることと、問題の無い所を清掃員にやり直させることの2つです。 前者は写っていない作業を仕上がりと扱うと起き、後者はAIの候補をそのまま清掃員に送ると起きます。どちらも、見え方と判断を分けることから外れたときに起きるので、そこを設計で守ります。
10まず何から始めるか
1週目:手直しの基準と仕様書の頻度をそろえる
担当たちで、どの見え方から手直しにするかを書き出し、振り分けの表にします。あわせて、18棟分の仕様書の「週1回」「月1回」に曜日と月の日を書き足します。
2週目:30件で試す
先月の写真から3棟10日分を選び、作業の一覧と一緒に手元の Gemini の画面に貼って答えさせます。写っていない作業を「仕上がって見える」と答えていないか、「適切」と書いていないかを最優先で見ます。
3週目:撮り方と場所の選び方を決める
場所ごとに全体と近くを撮る決まりを、仕様書の作業から逆算して作ります。手すり拭きの日は手すりの近くを1枚、のようにします。場所の選択肢を仕様書の書き方にそろえ、清掃員に伝えます。
4週目:まとめて点検の記録を出す
担当が1日分の写真をまとめて API に渡し、作業ごとの点検の記録と印の付いた写真を作るところまで作ります。この時点では清掃員への依頼も作業報告も出さず、担当の目の確認と並べて見ます。
2か月目: 清掃の終わりの合図のトリガーと、清掃員への手直しの依頼を足します。3か月目以降: 前後の見比べと月末の作業報告の下書きを足し、1件8分が何分になったかを実測します。管理会社からの指摘を、作業ごとの点検の記録と並べて見直すようになった時点で、この構成は完成です。
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 |
| 掃除は日常行うもののほか、大掃除を6月以内ごとに1回、定期に、統一的に行うものとすること(第4条の5)。特定建築物所有者等が、清掃の状況を記載した帳簿書類を備えておかなければならないこと(第20条) | e-Gov 法令API: 建築物における衛生的環境の確保に関する法律施行規則 | 2026-10-28 |
どの見え方を手直しにするか、作業報告に何を書くかは、契約の仕様と管理会社との取り決めに合わせて決めてください。 本記事は上の公式の情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2187)についてのご相談はこちらから。
