置き配の配達完了写真をAIで点検し、指定場所との違い・写りの不備・表札や部屋番号の写り込みを問い合わせの前に拾う
ドライバーが撮った置き配の配達完了写真を、上がってきた直後にAIが1枚ずつ見て、指定場所との違い・写りの不備・表札や部屋番号の写り込みを拾います。事務担当は全件を目で見る代わりに、引っかかった写真だけを確かめます。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Power Automate
- 対象業界
- EC/小売/物流
- 対象部門
- カスタマーサポート/物流
- 対象業務
- 内容確認・チェック/分類・仕分け
- 主な課題
- 人手が足りない/問い合わせが多い/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- ドライバーが置き配をし、アプリで写真を撮って配達完了にする
- 写真が配送管理システムに保存され、配達完了の一覧に並ぶ
- 業務課の事務担当が、一覧から写真を1枚ずつ開く
- 注文の置き場所の指定を見て、写真の場所が合っているかを確かめる
- 荷物が写っているか、場所が判別できるか、写ってはいけないものが無いかを見る
- 問題があれば、メモに残してドライバーに連絡し、必要なら撮り直しや置き直しを頼む
- 受取人から問い合わせが来たら、お客様窓口が写真を探して答える
- 人ドライバーが置き配をし、アプリで写真を撮って配達完了にする
- 自動写真が保管先に保存されたことをきっかけにワークフローが動く
- 自動配送管理システムから、その荷物の置き場所の指定と住所の種類(戸建て/集合住宅)を引く
- 自動写真の形式とサイズを確かめ、必要なら変換する
- 自動Azure OpenAI の画像を読めるモデルが、置き場所・置き方・写り・写り込みを項目ごとに判定する
- 自動項目ごとの結果から、`pass` / `retake` / `needs_review` を規則で決める
- 自動`retake` はドライバーのアプリに撮り直しを依頼する。写り込みがあるものは荷主への連携を止める
- 人事務担当が `needs_review` の写真だけを開き、置き方の問題かを判断する
- 人指定と違う置き方なら、お客様窓口から受取人へ先に連絡する
- 自動`pass` と、撮り直して `pass` になったものを荷主へ連携する
各工程の詳しい説明を読む
- ドライバーが置き配をし、アプリで写真を撮って配達完了にする
- 写真が配送管理システムに保存され、配達完了の一覧に並ぶ
- 業務課の事務担当が、一覧から写真を1枚ずつ開く
- 注文の置き場所の指定を見て、写真の場所が合っているかを確かめる
- 荷物が写っているか、場所が判別できるか、写ってはいけないものが無いかを見る
- 問題があれば、メモに残してドライバーに連絡し、必要なら撮り直しや置き直しを頼む
- 受取人から問い合わせが来たら、お客様窓口が写真を探して答える
(a)全件を見るのが追いつかない。 月3,600枚を4名で見ると、1枚2分でも月120時間です。夕方に配達が集中すると、写真を見るのは翌日になります。 そのころにはドライバーは別の地区を回っており、撮り直しはできません。
(b)指定と違う置き方が、問い合わせで初めて分かる。 宅配ボックスの指定なのに玄関前に置いた、メーターボックスの指定なのに扉の外に置いた。写真を見れば分かることが、受取人からの電話で分かります。 先に分かっていれば、こちらから連絡できました。
(c)写り込みは見落としやすい。 置き場所の確認に目が向いていると、画面の端に写った表札や、荷物に貼られた送り状の宛名には気づきません。 決まりを守れていない写真が、そのまま荷主と受取人に渡ります。
(d)見る人によって基準が違う。 少し暗い写真を通す人も、撮り直しを求める人もいます。ドライバーから見ると、日によって言われることが違います。
- 【人】 ドライバーが置き配をし、アプリで写真を撮って配達完了にする
- 【自動】 写真が保管先に保存されたことをきっかけにワークフローが動く
- 【自動】 配送管理システムから、その荷物の置き場所の指定と住所の種類(戸建て/集合住宅)を引く
- 【自動】 写真の形式とサイズを確かめ、必要なら変換する
- 【自動】 Azure OpenAI の画像を読めるモデルが、置き場所・置き方・写り・写り込みを項目ごとに判定する
- 【自動】 項目ごとの結果から、
pass/retake/needs_reviewを規則で決める - 【自動】
retakeはドライバーのアプリに撮り直しを依頼する。写り込みがあるものは荷主への連携を止める - 【人】 事務担当が
needs_reviewの写真だけを開き、置き方の問題かを判断する - 【人】 指定と違う置き方なら、お客様窓口から受取人へ先に連絡する
- 【自動】
passと、撮り直してpassになったものを荷主へ連携する
8番目が、この設計の分かれ目です。人が見るのは全件ではありません。 事務担当が見るのは、指定場所と違う可能性があるものと、AIが判断できなかったものだけです。全件を人が確かめる設計にすると、120時間はほとんど減りません。
7番目で、撮り直しをAIの判定から直接ドライバーに頼むのは、時間が勝負だからです。 ドライバーが現場を離れる前に依頼が届けば、その場で撮り直せます。 写真の問題だけを機械に任せ、置き方の問題は人が判断する、という線引きです。
02今回想定するシステム構成
ドライバーのアプリ(配達完了の写真) │ ▼【トリガー】保管先への写真の保存 Azure Blob Storage(写真のコンテナー) │ ▼ Azure Logic Apps(Blob のトリガー) ├──▶ 配送管理システムから置き場所の指定と住所の種類を引く ├──▶ 形式・サイズの確認(HEIC は JPEG に変換) ▼ Azure OpenAI(Microsoft Foundry)の画像を読めるモデル │ ① 置き場所が指定と合うか ② 置き方に問題が無いか │ ③ 写りに不備が無いか ④ 写ってはいけないものが無いか │ Structured Outputs で項目ごとのJSONを返す ▼ Azure Logic Apps ── 規則で判定(pass / retake / needs_review) ├──▶ retake:ドライバーのアプリへ撮り直しの依頼 ├──▶ needs_review:業務課の確認一覧へ ▼ pass のものだけ荷主へ連携
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Azure Logic Apps(Blob のトリガー、判定の規則、通知) | Power Automate |
| 保管 | Azure Blob Storage(写真のコンテナー) | 既存の写真の保管先 |
| 配送管理 | 既存の配送管理システム | 各社の製品 |
配送管理システムとドライバーのアプリは、今あるものを使います。 新しく足すのは、写真の保管先から判定までの流れです。最初の準備は、配送管理システムから「置き場所のコード」と「住所の種類」を引けるようにすることです。
判定に使うのは、Azure OpenAI の画像を読めるモデルです。 公式の説明では、現在の画像対応モデルは o シリーズ、GPT-5 シリーズ、GPT-4.1 シリーズ、GPT-4.5、GPT-4o シリーズで、画像について質問すると文章で答えます。 画像は公開されたURLか、Base64 で符号化した画像データで渡します。
入力の条件も確かめておきます。 形式は JPEG、PNG、GIF(最初のコマのみ)、WEBP、1枚の上限は 20MB、1回のリクエストで渡せる画像は 10枚までです。スマートフォンが既定で保存する形式によっては、このままでは渡せません。
データの扱いは、導入の可否に直結します。 Microsoft Foundry で Azure が販売するモデル(Azure OpenAI を含む)では、入力と出力は他の顧客にも OpenAI にも提供されず、許可なく基盤モデルの学習には使われないとされています。
03どうやって実装するのか
処理の起点を決める
写真が保管先のコンテナーに保存されたことを起点にします。 Azure Logic Apps の Azure Blob Storage コネクタにはトリガーが用意されており、ロジックアプリの種類で名前と動き方が違います。
| ロジックアプリ | トリガー | 動き方 |
|---|---|---|
| Consumption | When a blob is added or modified (properties only) | ルートフォルダーだけを見る。設定時点の既存の写真は無視する |
| Standard(組み込み) | When a blob is added or updated | 入れ子のフォルダーも見る。設定時点の既存の写真をすべて処理する |
組み込みのトリガーを使うときは、既存の写真に注意してください。 何か月分もの写真が入ったコンテナーに設定すると、すべてが一度に判定に回り、費用と確認の一覧が一気に膨らみます。 新しいコンテナーを用意するか、管理されたトリガーを使います。
夕方の集中に追いつくかも見ておきます。 組み込みのトリガーはベストエフォートで大規模な処理には向かないとされ、より速く確実に処理したい場合は Azure Event Grid のトリガーが勧められています。 月3,600枚なら組み込みで足りますが、荷主が増えたら切り替えを検討します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 配達完了の写真 | 画像と撮影日時、ドライバーのID | 保管先のコンテナー |
| 置き場所の指定 | 置き場所のコード(玄関前/宅配ボックス/メーターボックス/車庫/物置) | 配送管理システム |
| 住所の種類 | 戸建て/集合住宅、オートロックの有無 | 配送管理システム |
| 撮影の決まり | 写すもの・写さないものの一覧 | 自社で用意する文書 |
質を決めるのは、2つ目と3つ目です。 置き場所の指定が無ければ、写真の場所が合っているかを判定できません。住所の種類が無いと、集合住宅の共用廊下に置かれた荷物を「玄関前」として合っているかが決まりません。
住所そのものと受取人の氏名は渡しません。 判定に要るのは置き場所の種類だけで、誰の家かは要りません。
データの取得方法を決める
写真は、トリガーのあとに Blob の内容を取得する操作で読みます。管理されたコネクタの操作は50MB以下のファイルを扱い、それを超えると分割での転送が必要になります。 配達完了の写真なら通常は収まります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 写真の中身 | Blob の内容を取得する操作 | Base64 にしてモデルへ渡す |
| 置き場所のコードと住所の種類 | 配送管理システムの照会 | 指示に差し込む |
| ドライバーのID | 写真のメタデータ | 撮り直しの依頼先 |
写真はURLではなく Base64 で渡します。 公式の説明では、画像のURLは公開されている必要があり、プライベートエンドポイントやファイアウォールで制限されたURLは使えません。 受取人の家が写った写真のURLを公開するわけにはいかないので、中身を取り出して符号化して渡します。
管理されたトリガーには、見張るフォルダーの写真が3万枚までという上限があります。 超えると新しい写真でトリガーが動かないことがあるため、判定が終わった写真は日付ごとのフォルダーへ移します。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、GIF、WEBP 以外(スマートフォンの HEIC など)は JPEG に変換します
- サイズの確認 … 20MBを超えるものは縮小します
- 向きの補正 … 撮影時の向きの情報に従って回転させてから渡します
- 細部の設定 …
detailをhighにします - 重複の確認 … 同じ荷物で複数枚上がったときは、まとめて1回で判定します(10枚まで)
4番目を軽く見ないでください。 detail を low にすると、512×512の低い解像度で処理され、速く安くなりますが、画像内の物体や文字の認識の精度に影響しうるとされています。表札の文字や部屋番号を拾うのがこの構成の目的なので、ここで費用を削りません。 high では、低い解像度で全体を見たあと512×512の区画ごとに詳しく見ます。
3番目は、写真が横倒しのまま判定されるのを防ぎます。 横倒しの写真では、ドアや表札の文字が読みにくくなります。
AIに処理させる
させるのは、4つの観点で写真を見て、項目ごとに ok / ng / cannot_judge を付け、根拠を短く書くことだけです。
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| ① 置き場所 | 写真の場所が、指定の置き場所の種類と合うか | 場所が写っていなければ cannot_judge |
| ② 置き方 | 宅配ボックスの扉が閉まっているか、通路をふさいでいないか、屋外で地面に直に置いていないか | 見えなければ cannot_judge |
| ③ 写り | 荷物が写っているか、ブレ・暗さで判別できないことがないか | ― |
| ④ 写り込み | 表札の氏名、部屋番号、人の顔、車のナンバー、送り状や郵便物の宛名 | 文字らしきものが読めなければ ng 寄りに扱う |
④の右端が、他の観点と逆向きになっていることに注意してください。 置き場所は迷ったら人に回しますが、写り込みは「読めないが文字らしきものがある」ときも、写っているものとして扱います。 見落としたときの害のほうが大きいからです。
①の判定には、住所の種類を必ず添えます。 戸建ての「玄関前」は門の内側の玄関ドアの前ですが、集合住宅の「玄関前」は共用廊下に面した住戸のドアの前です。同じ「玄関前」でも、写真に写るべきものが違います。 住所の種類を渡さないと、共用廊下の写真を「建物の入口」と取り違え、正しく置いた荷物を ng にします。
| させないこと | 理由 |
|---|---|
| ドライバーの責任の判断 | 指定と違う置き方には、受取人の追加の依頼など事情がある場合がある |
| 盗難・紛失の可能性の判断 | 補償に関わる。人が判断する |
| 写り込みの文字の書き起こし | 氏名や部屋番号を記録に残さない。「ある」とだけ返す |
| 写真の加工・塗りつぶし | 届けた証拠を変えない。差し替えは撮り直しで行う |
| 撮り直しで十分かの最終判断 | retake は規則で決め、2回目も不備なら人に回す |
3行目がいちばん起きやすい失敗です。 「表札があるか」と聞くと、モデルは親切に「表札に『山田』と書かれています」と答えます。その文字列がログに残った時点で、写真から取り除きたかった情報が、文字として社内に増えます。
指示内容を固定する
あなたは配送センターで、置き配の配達完了写真を点検する担当です。
写真と、この荷物の置き場所の指定だけを見て判定してください。
【この荷物の情報】
置き場所の指定:{place_code}
住所の種類:{address_type}
【点検する4つの観点】
1. place ......... 写真の場所が、置き場所の指定と合っているか
2. handling ...... 宅配ボックスの扉が閉まっているか、通路をふさいでいないか、
屋外で地面に直に置かれていないか
3. photo_quality . 荷物が写っているか。ブレや暗さで場所が判別できなくないか
4. exposure ...... 表札の氏名、部屋番号、人の顔、車のナンバー、
送り状や郵便物の宛名が写っていないか
【status の選び方】
- ok ............ 問題が無いと写真から言える
- ng ............ 問題があると写真から言える
- cannot_judge .. 写真から判断できない
迷ったときに ok を選ばないでください。
【厳守事項】
- exposure では、文字らしきものが写っていて読めない場合も ng にしてください。
- 表札・部屋番号・宛名・ナンバーに書かれた文字を書き起こさないでください。
「表札がある」「宛名ラベルがある」のように、種類だけを書いてください。
- 人の顔があっても、その人について説明しないでください。
- 写真に写っていないことを推測しないでください。
例:荷物が写っていないのに「玄関前に置かれたと思われる」と書かない。
- ドライバーの責任や、盗難のおそれについては書かないでください。
- 置き配の写真でないと判断した場合は、点検せず image_type に種類を書いてください。
【返し方】
指定されたJSONの形だけで返してください。
reason は各20字程度で、写真の中の何を見たかを書いてください。
「文字を書き起こさない」を明記しないと、ほぼ必ず書き起こします。 根拠を書けと言われれば、モデルは見えた文字を根拠として写すのが自然だからです。禁じるのは、根拠の書き方そのものです。
「迷ったときに ok を選ばない」は、写りの観点に効きます。 暗い写真で荷物らしき影があると、何も言わなければ「荷物が写っている」とします。cannot_judge を選べる道を用意し、そちらへ寄せます。
出力形式を固定する
次の形のJSONで受け取ります。 Azure OpenAI の Structured Outputs では、Chat Completions は response_format、Responses は text.format にスキーマを定義し、strict: true を指定します。すべての項目を required に入れ、オブジェクトには additionalProperties: false を付けます。
{
"image_type": "delivery_proof",
"checks": {
"place": { "status": "ok | ng | cannot_judge", "reason": "" },
"handling": { "status": "ok | ng | cannot_judge", "reason": "" },
"photo_quality": { "status": "ok | ng | cannot_judge", "reason": "" },
"exposure": { "status": "ok | ng | cannot_judge", "reason": "",
"kinds": ["nameplate | room_number | face | plate | label"] }
}
}
1つ目の理由は、判定と行き先を別の層に置けることです。 checks はモデルが埋め、行き先は Logic Apps の規則が決めます。
| 条件 | 行き先 |
|---|---|
photo_quality または exposure が ng、ほかは ok | retake:ドライバーへ撮り直しの依頼。荷主への連携を止める |
place または handling が ng | needs_review:業務課が確認し、受取人への連絡を判断 |
どれかが cannot_judge | needs_review |
すべて ok | pass:荷主へ連携 |
撮り直しの2枚目も retake の条件 | needs_review |
2つ目は、kinds で写り込みの種類だけを持てることです。 何が写っていたかは残し、何と書いてあったかは残しません。 月ごとに kinds を数えれば、送り状が写りやすいのか表札が写りやすいのかが分かり、撮影の決まりのどこを伝え直すかが決まります。
3つ目は、項目の欠けが起きないことです。 公式の説明では、スキーマはオブジェクトのプロパティが合計100個まで、入れ子は5段までで、minLength や pattern などのキーワードは使えません。 上の形はこの範囲に収まります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Azure Blob Storage | Logic Apps のトリガーと内容の取得 | 写真の保存を検知し、中身を読む |
| 配送管理システム | 照会のAPI、または連携用のファイル | 置き場所のコードと住所の種類を引く |
| Azure OpenAI | API呼び出し | 4観点の判定を返す |
| ドライバーのアプリ | 配送管理システムの通知 | retake の依頼 |
| 業務課の確認一覧 | 一覧への行の追加 | needs_review を並べる |
| 荷主への連携 | 既存の連携 | pass のものだけを送る |
配送管理システムへの書き込みは、「連携を止める」印だけにします。 配達完了の状態そのものは変えません。AIの判定で配達が未完了に戻るような経路は作りません。
受取人への連絡は、お客様窓口の人が行います。 needs_review から受取人への連絡まで自動でつなぐと、正しく置いた荷物について謝る連絡が出ていきます。
人が確認する
人が開くのは needs_review の写真だけです。 retake はドライバーが撮り直し、pass は件数を見るだけにします。
placeのngを先に見る … 受取人への連絡が要る可能性があり、時間がたつほど問い合わせが先に来ます- ドライバーに事情を聞く … 指定の宅配ボックスが満杯だった、受取人から直接頼まれた、などの事情を確かめます
- 受取人に連絡するかを決める … 連絡するならお客様窓口へ回します
cannot_judgeを見る … 多くは写真の問題で、撮り直しで解決します- 判定を覆したら記録する … どの観点を、どちらに変えたかを残します
2番目を省かないでください。 指定と違う置き方の多くには、現場でしか分からない理由があります。 写真だけで是正を求めると、ドライバーは理由を言わなくなります。
目標は、3,600枚をならして1枚0.5分です。 開くのは1〜2割という想定で、それより多い月は、撮影の決まりが伝わっていないか、置き場所のコードが実態と合っていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 対応していない形式(HEIC など) | JPEG に変換してから判定する |
| 20MBを超える | 縮小してから判定する |
| 置き配の写真でない | image_type を見て、業務課へ回す |
| 置き場所の指定が引けない | 判定せず needs_review。指定が無いまま判定しない |
| ドライバーがすでに現場を離れた | retake を needs_review に切り替え、写り込みがあれば連携を止めたまま人が判断する |
| 撮り直しの2枚目も不備 | needs_review に回す |
| 応答が途中で切れた・フィルタが働いた | 完了の理由を確かめ、判定せず needs_review |
| モデルが応答しない | 写真は判定待ちとして残し、時間をおいて再実行 |
5行目が運用でいちばん起きます。 撮り直しの依頼が届くまでの時間が長いと、ドライバーは次の配達先に向かっています。依頼が届くまでの時間を毎週測り、遅い時間帯を見つけます。
日没後の写真にも注意します。 冬の夕方以降は、フラッシュを使わない写真が photo_quality の cannot_judge になりやすいと考えられます。判定の基準を緩めるのではなく、撮影の決まりにフラッシュの使い方を足します。
記録を残す
- 元の写真と、変換・縮小した場合はその写真
- 判定に使った置き場所のコードと住所の種類
- モデルが返したJSONの全文と、規則で決めた行き先
- 人が判定を覆した記録 … どの観点を、どちらに変えたか
- 撮り直しの依頼から2枚目が上がるまでの時間
- ドライバーごと・地区ごとの
kindsの件数
ログに写り込みの文字は残りません。 指示で書き起こしを禁じ、出力の形も種類だけにしているからです。それでも元の写真には写っているので、写真の保存期間と見られる人は別に決めます。
最後の行は、ドライバーへの声かけの材料になります。 特定のドライバーで送り状の写り込みが続くなら、撮る角度の癖です。 判定を厳しくするより、1回の声かけで直ります。
04実装レベルの3段階
半自動化で、1枚2分が1分程度になります。 判定は自動になりますが、一覧を見てドライバーに連絡する作業が残ります。本格構成で0.5分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、どの置き場所のコードで取り違えが多いか、どのドライバーで写り込みが多いかが分かります。 そこを直してから撮り直しの自動依頼を入れないと、ドライバーに依頼が殺到します。
05工数削減シミュレーション
導入後 3,600件 × 0.5分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 置き配を扱う配送会社・EC事業者の自社配送部門で、ドライバーが配達完了の写真を撮って配送管理システムに上げている場合。センターの事務担当が写真を目で確かめていて、件数が月に数千件ある場合。「指定した場所に置かれていない」「荷物がどこにあるか分からない」という受取人からの問い合わせが繰り返し来ている場合。写真の保管先にクラウドのストレージを使える場合。
- 置き配が月に数百件以下で、目視で足りる場合。配達完了の写真を撮っていない、または撮っても保存していない場合。写真を外部のクラウドで処理することが荷主との契約で認められていない場合。なお、荷物の紛失・盗難の責任の判断や、受取人への補償の判断はこの構成では代替できません。
07最小構成で試す方法
- 先月の置き配の写真から50枚を選ぶ(問い合わせが来たもの、写り込みがあったものを必ず混ぜる)
- 写真に写った表札や宛名に問題が無いかを確かめ、社内で試せる範囲の写真にする
- Microsoft Foundry のプレイグラウンドで画像を読めるモデルを開き、第7章のプロンプトを貼る
- 置き場所の指定を書き添えて、写真を1枚ずつ渡す
- 出てきた判定を、当時の目視と問い合わせの記録に突き合わせる
50枚は必ずやってください。 ワークフローを組む前に、「写真から置き場所の種類が見分けられるか」を確かめます。 宅配ボックスとメーターボックスは、写り方によって見分けにくいことがあります。
| 出てきた内容 | 判断 |
|---|---|
問い合わせが来た写真で place が ng になった | Logic Apps との連携に進む |
| 表札の文字を書き起こした | 指示の書き方で直る。構成は有効 |
| 宅配ボックスとメーターボックスを取り違える | 撮影の決まりが先。 扉と荷物を一緒に写す |
3行目が出たら、撮り方を変えます。 判定を賢くするより、写真に写る情報を増やすほうが確実です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 表札や宛名の文字がログに残る | 書き起こしを禁じ、出力を種類だけにする |
| 写り込みを見落とす | detail を high にする。low は文字の認識の精度に影響しうる |
| スマートフォンの写真が渡せない | 対応形式は JPEG、PNG、GIF、WEBP。HEIC は変換する |
| 画像のURLを渡すと失敗する | URLは公開が必要。 Base64 で渡す |
| 既存の写真が一斉に判定に回る | 組み込みのトリガーは既存の写真を処理する。新しいコンテナーで始める |
| 新しい写真でトリガーが動かない | 管理されたトリガーは3万枚まで。判定済みは別フォルダーへ移す |
| 宅配ボックスとメーターボックスを取り違える | 撮影の決まりで、扉と荷物を一緒に写す |
| 置き場所の指定が無いまま判定する | 指定が引けなければ判定せず人へ |
| 撮り直しの依頼が遅れて届く | 依頼が届くまでの時間を測り、遅い時間帯を見つける |
| 正しく置いたのに受取人へ謝罪が出る | 置き方の問題と写真の問題を分け、受取人への連絡は人が決める |
上の2行が、この構成の失敗のほとんどです。 どちらも写り込みの扱いで、拾い損ねれば受取人の情報が外へ出て、拾い方を誤れば社内に文字として増えます。 種類だけを拾う設計を最初から守ってください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 受取人の住まいの玄関まわりの写真、置き場所の指定、そして写真に写り込むことのある表札の氏名、部屋番号、人の顔、車のナンバー、送り状の宛名です。写真はどこに住む誰が、いつ留守だったかを示しうる情報です。
- 外部へ渡す範囲を写真と置き場所の種類に限る … 住所と受取人の氏名は渡しません。判定に要るのは置き場所の種類だけです
- 写り込みの文字を記録に残さない … 指示と出力の形の両方で、種類だけを返させます
- 写真をURLで公開しない … Base64 で渡し、保管先のコンテナーは公開しません
- データの扱いを確かめておく … Azure が販売するモデルでは、入力と出力は他の顧客にも OpenAI にも提供されず、許可なく基盤モデルの学習に使われないとされています。一方で、不正利用の監視のために、検知されたものについては承認された担当者が確認する場合があるとされ、条件を満たす顧客はこの監視の変更を申請できます。Global や DataZone のデプロイでは処理する地域が広がるため、荷主との契約に照らしてデプロイの種類を選びます
- この構成は責任の判断をしない … 紛失・盗難の責任と補償は、荷主との契約と自社の規程に従って人が判断します。 この構成が出すのは、写真が決まりどおりかという事実だけです
- 写真の保存期間を決める … 問い合わせに答えるために要る期間と、荷主との取り決めから決めます
誤りが起きた場合のリスクは、写り込みのある写真が受取人や荷主に渡ることと、正しく置いた荷物について受取人やドライバーに誤った連絡をすることの2つです。 前者は写り込みを ng 寄りに扱って連携を止めれば防げ、後者は置き方の判断を人に残せば防げます。
10まず何から始めるか
1週目:撮影の決まりと置き場所のコードを見直す
撮影の決まりを1枚にまとめ、写すもの(荷物と置き場所が一緒に分かる構図)と写さないもの(表札・部屋番号・顔・ナンバー・宛名)を絵で示します。あわせて、配送管理システムから置き場所のコードと住所の種類を引けるかを確かめます。
2週目:50枚で試す
先月の写真から50枚を選び、プレイグラウンドで4観点を判定させます。問い合わせが来た写真で place が ng になるか、表札の文字を書き起こしていないかを最優先で見ます。
3週目:行き先の規則を決める
retake / needs_review / pass の条件を、業務課とお客様窓口と決めます。 特に、写り込みのある写真を荷主への連携から止める手順を、荷主と相談して決めます。
4週目:保管先から判定までをつなぐ
新しいコンテナーを用意し、Logic Apps のトリガーから Azure OpenAI を呼んで、判定を一覧に書き出すところまで作ります。この時点では撮り直しの依頼を出さず、一覧だけを見ます。
2か月目: 行き先の規則と撮り直しの依頼を足し、1地区のドライバーで運用します。3か月目以降: 全地区に広げ、荷主への連携の停止を入れます。1枚2分が何分になったか、置き方についての問い合わせのうち、先に連絡できた割合を実測した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Azure OpenAI の画像対応モデルが o シリーズ、GPT-5 シリーズ、GPT-4.1 シリーズ、GPT-4.5、GPT-4o シリーズであること。画像を公開URLか Base64 で渡せること。1回に10枚まで、1枚20MBまで、形式が JPEG・PNG・GIF(最初のコマ)・WEBP であること。画像のURLは公開されている必要があり、プライベートエンドポイントやファイアウォールで制限されたURLは使えないこと。detail に low/high/auto を指定でき、low は512×512で処理し文字の認識の精度に影響しうること、high は512×512の区画ごとに詳しく見ること。トークン単位で課金されること | Microsoft Learn: How to use vision-enabled chat models | 2026-10-05 |
Azure OpenAI の Structured Outputs が Chat Completions では response_format、Responses では text.format で指定でき、strict: true を使うこと。すべての項目を必須にし、additionalProperties: false を付けること。オブジェクトのプロパティは合計100個まで、入れ子は5段までで、minLength・pattern などが使えないこと | Microsoft Learn: How to use structured outputs | 2026-10-05 |
| Azure が販売するモデル(Azure OpenAI を含む)で、入力と出力が他の顧客にも OpenAI にも提供されず、許可なく基盤モデルの学習に使われないこと。不正利用の監視で、検知されたものについて承認された担当者が確認する場合があること。条件を満たす顧客が監視の変更を申請できること。Global・DataZone のデプロイでは処理する地域が広がること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-05 |
| Azure Logic Apps の Azure Blob Storage コネクタで、Consumption のトリガーが「When a blob is added or modified (properties only)」でルートフォルダーを見て既存の Blob を無視すること。Standard の組み込みトリガー「When a blob is added or updated」が入れ子のフォルダーも見て既存の Blob をすべて処理すること。管理されたコネクタの操作が50MB以下のファイルを扱うこと。管理されたトリガーが見張るフォルダーの Blob 3万件までに制限されること。組み込みトリガーがベストエフォートで、より速く確実な処理には Azure Event Grid のトリガーが勧められていること | Microsoft Learn: Connect to Azure Blob Storage from workflows | 2026-10-05 |
置き配の撮影の決まり、写真の保存期間、紛失・盗難の際の責任と補償は、荷主との契約と自社の規程によって異なります。この部分は自社の運送約款と荷主との取り決めに応じた個別対応が必要です。 写真に写り込んだ個人に関する情報の扱いは、自社の個人情報の取扱規程と、必要に応じて専門家の確認に従ってください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0413)についてのご相談はこちらから。
