物流会社が荷主へ毎月出す品質報告の下書きを、事故の記録と原因の分析から作り、件数と原因の説明を記録と照らしてから送る
物流会社が荷主へ毎月出す品質報告の下書きを、出荷の実績、事故の台帳、原因の分析の記録から作ります。誤出荷・破損・遅延の件数と率はプログラムで数え、AIは主な事故の経緯・原因・対策の説明文を書きます。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 対象業界
- EC/小売/物流
- 対象部門
- 物流
- 対象業務
- 書類作成/集計・分析
- 主な課題
- 人手が足りない/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 月初に、品質管理の担当が倉庫管理システムから前月の荷主ごとの出荷の実績(件数・行数・個数)を書き出す
- 事故の台帳から、その荷主の前月の事故を抜き出し、種別ごとに数える
- 配送の完了の記録から、荷主の定義に合わせて遅延を数える
- 件数と率を計算し、前月・前年同月と比べる表を作る
- 主な事故について、経緯・原因・対策を台帳から書き起こし、荷主向けの文章に整える
- 前月の報告で約束した対策の進捗を、台帳の対策の状況から書く
- センター長の確認を受けて、荷主の窓口へ送る
- 自動毎月第2営業日の朝、前月の出荷の実績、事故の台帳、配送の完了の記録を取り込む
- 自動プログラムが荷主ごとに、誤出荷・破損・遅延の件数と率、前月・前年同月との比較を計算する
- 自動プログラムが、報告に載せる主な事故を選び、前月の報告で約束した対策の一覧を作る
- 自動Azure OpenAI が、概況、主な事故ごとの経緯・原因・対策、前月の対策の進捗の説明文を、数字を差し込み記号にして書く
- 自動プログラムが差し込み記号に集計の値を入れ、本文の原因の説明が台帳の原因の分析に基づいているかを照合する
- 自動荷主ごとの様式に流し込み、下書きを品質管理の担当に知らせる
- 人品質管理の担当が、照合で印の付いた箇所を中心に下書きを読み、直す
- 人センター長が確認し、荷主の窓口へ送る
各工程の詳しい説明を読む
- 月初に、品質管理の担当が倉庫管理システムから前月の荷主ごとの出荷の実績(件数・行数・個数)を書き出す
- 事故の台帳から、その荷主の前月の事故を抜き出し、種別ごとに数える
- 配送の完了の記録から、荷主の定義に合わせて遅延を数える
- 件数と率を計算し、前月・前年同月と比べる表を作る
- 主な事故について、経緯・原因・対策を台帳から書き起こし、荷主向けの文章に整える
- 前月の報告で約束した対策の進捗を、台帳の対策の状況から書く
- センター長の確認を受けて、荷主の窓口へ送る
(a)数え直しで数字が食い違う。 台帳の抜き出しと出荷の実績の書き出しを別々に行うので、月をまたいだ事故や、荷主が後から申し出た事故の扱いで、件数が担当者ごとにずれます。 表と本文で数字が違う報告書を荷主に指摘されることがあります。
(b)原因の説明が台帳とずれる。 台帳の原因の分析は現場の言葉で書かれているので、荷主向けに書き直すときに意味が変わることがあります。「ロケーションの表示が見づらかった」が「作業者の確認不足」に書き換わると、対策の向きまで変わります。
(c)書きぶりが担当者で違う。 あるセンターの報告は事故ごとに経緯を詳しく書き、別のセンターは件数の表だけで済ませています。同じ荷主を複数のセンターで受けていると、荷主の側で報告の質の差がはっきり見えます。
(d)月初に集中する。 60件の報告が月初の数日に集中し、締め切りに追われて5番と6番が薄くなります。 荷主が本当に知りたいのは、件数よりも「なぜ起きて、何をしたか」です。
- 【自動】 毎月第2営業日の朝、前月の出荷の実績、事故の台帳、配送の完了の記録を取り込む
- 【自動】 プログラムが荷主ごとに、誤出荷・破損・遅延の件数と率、前月・前年同月との比較を計算する
- 【自動】 プログラムが、報告に載せる主な事故を選び、前月の報告で約束した対策の一覧を作る
- 【自動】 Azure OpenAI が、概況、主な事故ごとの経緯・原因・対策、前月の対策の進捗の説明文を、数字を差し込み記号にして書く
- 【自動】 プログラムが差し込み記号に集計の値を入れ、本文の原因の説明が台帳の原因の分析に基づいているかを照合する
- 【自動】 荷主ごとの様式に流し込み、下書きを品質管理の担当に知らせる
- 【人】 品質管理の担当が、照合で印の付いた箇所を中心に下書きを読み、直す
- 【人】 センター長が確認し、荷主の窓口へ送る
4番目の「数字を差し込み記号にして書く」が、この設計の分かれ目です。 AIは「今月の誤出荷は {misship_count} 件で、前月から {misship_diff} 件減りました」のように書き、数字そのものは書きません。 数字はプログラムが一度だけ計算し、表と本文の両方に同じ値を入れます。
7番目で担当が見るのは、照合で印の付いた箇所です。 全文を一から読み直すのではなく、原因の説明が台帳とずれている疑いのある文や、「調査中」になっている事故から見ます。
02今回想定するシステム構成
倉庫管理システム(出荷の実績)/事故の台帳/配送の完了の記録 │ ▼【トリガー】毎月第2営業日の朝(タイマー) Azure Functions ├──▶ 荷主ごとの件数と率、前月・前年同月との比較(プログラム) ├──▶ 主な事故の選定と、前月の対策の一覧(プログラム) └──▶ 荷主ごとの遅延の定義の適用(設定) ▼ Azure OpenAI(Microsoft Foundry) │ ① 概況 ② 主な事故ごとの経緯・原因・対策 │ ③ 前月の対策の進捗(数字は差し込み記号で書く) ▼ Azure Functions ── 差し込み記号への値の挿入、原因の説明の照合、様式への流し込み ▼ 【品質管理の担当が直し、センター長が確認】 ▼ 荷主の窓口へ送る
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Azure Functions(取り込み、件数と率の計算、照合、様式への流し込み) | Azure Logic Apps |
| 保管 | SharePoint(下書き、確定版、入出力の控え) | 社内のファイルサーバー |
| 倉庫管理 | 既存の倉庫管理システム(出荷の実績の書き出し) | ― |
倉庫管理システムと事故の台帳は、新しく足すものではありません。 この構成は書き出しと台帳を読むだけで、台帳の原因の分析や対策の状況を書き換えません。 報告書の確定版も、センター長の確認を経てから人が保存します。
生成AIを Azure OpenAI にするのは、荷主の出荷の情報を社内の取り決めに乗せて扱うためです。 公式のページでは、プロンプトと出力は他のお客様に提供されず、OpenAI にも提供されず、モデルやサービスの改善に使われないとされています。荷主の出荷の件数や事故の内容は、荷主から預かった情報です。
出力の形は構造化出力で固定します。 公式のページでは、構造化出力は指定した JSON スキーマに従わせる機能で、Chat Completions API では response_format、Responses API では text.format でスキーマを定義するとされています。事故ごとの説明と、使った差し込み記号の一覧がそろっていないと、照合ができません。
03どうやって実装するのか
処理の起点を決める
毎月第2営業日の朝に、前月分をまとめて動かします。 第1営業日にしないのは、前月の最終日の出荷の配送の完了が、翌日の夕方まで記録に入りきらないことがあるからです。遅延の件数が確定する前に動かすと、報告の後で件数が変わります。
荷主ごとに1件ずつ順に処理し、途中で止まった荷主は翌朝にもう一度処理します。 完了した荷主には作成済みの印を付け、二重に下書きを作らないようにします。
荷主から後から申し出のあった事故は、翌月の報告に「前月分の追加」として載せます。 確定した報告を作り直すと、荷主の手元の報告と数字が合わなくなるからです。この扱いは荷主ごとの取り決めに合わせ、設定に持たせます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 出荷の実績 | 荷主、出荷日、出荷の件数・行数・個数 | 倉庫管理システムの書き出し |
| 事故の台帳 | 発生日、荷主、種別、内容、経緯、原因の分析、対策、対策の期限と状況、荷主への初報の日 | 事故の台帳(表) |
| 配送の完了の記録 | 出荷の番号、指定の日時、配達の完了の日時、配送の会社 | 配送の会社からの完了のデータ |
| 荷主ごとの設定 | 率の分母(件数・行数・個数)、遅延の定義、報告の様式、主な事故の選び方 | 品質管理の担当が管理する設定の表 |
| 前月の報告 | 前月に約束した対策と期限 | 報告書の保管 |
質を決めるのは、事故の台帳の「原因の分析」の列です。 ここが「確認不足」の一言だけでは、AIがどう書いても荷主の知りたい説明になりません。台帳の入力の段で、「何が起きたか」「なぜ気づけなかったか」「なぜそうなる仕組みだったか」を分けて書く欄にしておくと、報告の説明文の質がそろいます。
荷主ごとの設定のうち、遅延の定義がいちばん大事です。 国の標準貨物自動車運送約款は、発送・輸送・集配の期間から引渡期間を定め、その満了後に引き渡したときを延着としています。荷主との間で時間帯の指定や納品の時刻を取り決めているなら、報告の遅延はその取り決めで数えます。 どちらで数えたかを、報告書の注記にも書きます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 前月の出荷の実績 | 倉庫管理システムの書き出し(荷主・日ごと) | 率の分母 |
| 前月の事故 | 事故の台帳(発生日が前月のもの) | 種別ごとの件数、主な事故の説明 |
| 前月の追加の事故 | 事故の台帳(発生日が前々月以前で、登録が前月のもの) | 「前月分の追加」の欄 |
| 遅延 | 配送の完了の記録を荷主の定義で判定 | 遅延の件数 |
| 前年同月の件数 | 前年同月の確定した報告 | 比較の表 |
| 前月の対策 | 前月の確定した報告と、台帳の対策の状況 | 対策の進捗 |
「前月の事故」と「前月の追加の事故」を分けて取るのは、(a)の食い違いを止めるためです。 発生日で数えるか登録日で数えるかを、プログラムの中で決めておきます。担当者ごとの判断に任せていた境目を、設定の一行にします。
荷主ごとの設定の表は、たとえば次のような行で持ちます(項目名は自社の表に合わせます)。
【荷主 A(通信販売)】
率の分母 ........ 出荷の件数(100万件あたりで表示)
遅延の定義 ...... 配達の完了が、注文時に指定された時間帯の終わりを過ぎたもの
月の数え方 ...... 発生日で数える。前月以前の発生で前月に登録されたものは「前月分の追加」
主な事故 ........ 誤出荷と破損はすべて。遅延は同じ日・同じ地域で3件以上のもの
【荷主 B(小売のチェーン)】
率の分母 ........ 出荷の行数(1万行あたりで表示)
遅延の定義 ...... 店舗への納品が、納品の時刻表の時刻を30分以上過ぎたもの
月の数え方 ...... 登録日で数える
主な事故 ........ 店舗から申し出のあったものすべて
この表があれば、担当者が変わっても同じ数え方で報告が続きます。 逆にこの表を作らずに始めると、プログラムの中に荷主ごとの例外が書き込まれ、誰も全体を説明できない集計になります。
前年同月の件数は、確定した報告から取ります。 台帳を数え直すと、後から足された事故が入って前年の報告と数字が合わなくなります。荷主の手元にあるのは前年の報告の数字です。
AIへ渡す前に整形する
- 荷主ごとの絞り込み … 出荷の実績・事故・配送の完了の記録を荷主ごとに分けます
- 件数と率の計算 … 種別ごとの件数と、荷主の分母(件数・行数・個数)で率を計算します。率は荷主の様式に合わせ、100万件あたりなどの単位にします
- 遅延の判定 … 荷主の定義で、配送の完了の記録を遅延とそうでないものに分けます
- 比較の計算 … 前月・前年同月との増減を計算します
- 主な事故の選定 … 荷主の設定に従い、重さ・損害の額・荷主からの申し出の有無で、報告で説明する事故を選びます
- 届け先の情報の除去 … 事故の経緯にある届け先の氏名・住所・電話番号を取り除きます
- 差し込み記号の表の作成 … 計算した値ごとに
misship_countのような記号を付けた表を作ります
2番目から4番目の結果は、この段階で確定させます。 AIには差し込み記号の名前と意味だけを渡し、値そのものは渡しません。 値を渡すと、AIはその値を本文に書き写し、表と本文で桁や丸め方が違う報告ができます。
6番目は、通信販売の荷主で特に大事です。 誤出荷の経緯には「◯◯様宛の商品を△△様に送った」のような記述が入りがちです。荷主への報告に、届け先の個人の情報は要りません。
AIに処理させる
させるのは、集計の結果と事故の記録から、荷主に送る報告の説明文を書くことです。
| 書くもの | 書き方 | 材料が足りないときの扱い |
|---|---|---|
| 概況 | 種別ごとの増減の傾向を、差し込み記号を使って2〜3文で | 前月・前年同月の値が無ければ比較に触れない |
| 主な事故の経緯 | 台帳の経緯を、荷主が読んで分かる言葉にする | 経緯の記録が無ければ needs_input |
| 原因 | 台帳の原因の分析に書かれていることだけを書く | 原因の分析が空なら「調査中」と書き、cause_pending |
| 対策 | 台帳の対策と期限を書く | 対策が未定なら「検討中」と書き、needs_input |
| 前月の対策の進捗 | 前月の約束と台帳の状況を照らして書く | 状況が更新されていなければ needs_input |
3行目の「台帳に書かれていることだけ」が、この構成でいちばん効くところです。 AIには、原因の分析の文を言い換えるときも、原因の向き(人・手順・設備・表示・システム)を変えないよう指示します。「表示が見づらかった」を「作業者の確認不足」に書き換えると、荷主は人の教育を対策だと受け取ります。
| させないこと | 理由 |
|---|---|
| 数字を書くこと | プログラムが計算した値を差し込む。書かせると表と本文が食い違う |
| 原因の推測 | 荷主に送った原因は再発防止の約束になる |
| 責任の所在や賠償への言及 | 契約と約款に基づいて人が判断すること |
| 事故の重さの判断 | 主な事故の選定はプログラムと設定で行う |
| 作業者の氏名を書くこと | 報告は事故の仕組みに対して行う |
1行目がいちばん起きやすい失敗です。 差し込み記号を使うよう指示しても、AIは文の流れで「2件」と書いてしまうことがあります。後段で本文に数字がそのまま書かれていないかを確かめ、見つかれば下書きを止めます。
指示内容を固定する
あなたは物流会社の品質管理の担当として、荷主に毎月送る品質報告の
説明文を書く立場です。
件数・率・増減の数字は、すでにプログラムが計算しています。
あなたの仕事は、その数字と事故の記録を、荷主が読んで分かる説明にすることです。
【書くもの】
1. overview ......... 今月の概況(2〜3文)
2. incidents ........ 主な事故ごとの経緯・原因・対策
3. previous_actions . 前月の報告で約束した対策の進捗
【厳守事項】
- 数字を本文に書かないでください。
件数・率・増減・日付の数字は、【差し込み記号】の記号を {misship_count} の形で
書いてください。記号の表に無い数字は書かないでください。
- 原因は、【事故の記録】の cause_analysis に書かれていることだけを書いてください。
言い換えるときも、原因の向き(人・手順・設備・表示・システム)を変えないでください。
- cause_analysis が空の事故は、原因を「調査中」とし、status を cause_pending にしてください。
ありそうな原因を書かないでください。
- 対策は countermeasure と due に書かれたものだけを書いてください。
- 責任の所在、損害の賠償、運送約款や契約の解釈に触れないでください。
- 作業者や配送の担当者の氏名を書かないでください。
- 荷主を責める書き方や、言い訳に読める書き方をしないでください。
- 各文に、根拠にした事故の記録の incident_id を付けてください。
【荷主の情報】{shipper_profile}
【差し込み記号(記号と意味。値は渡しません)】{placeholders}
【事故の記録】{incidents}
【前月に約束した対策と台帳の状況】{previous}
【報告の様式の決まり】{format_rules}
「値は渡しません」と記号の表に書いておくのは、AIが値を推測して書くのを防ぐためです。 値を渡さなければ、AIには書き写す数字がありません。数字が本文に現れたら、それはAIが作った数字だと分かります。
「荷主を責める書き方をしない」を入れているのは、荷主の側の事情が原因の事故もあるからです。 出荷の指示の誤りや、荷姿の問題が原因なら、それは台帳の原因の分析にそう書かれています。事実として書くことと、責める書き方をすることは別です。
出力形式を固定する
次の形のJSONで受け取ります。
{
"shipper_code": "",
"period": "",
"overview": [
{ "text": "", "placeholders_used": [""] }
],
"incidents": [
{
"incident_id": "",
"category": "misship | damage | delay",
"background": "",
"cause": "",
"countermeasure": "",
"status": "ready | cause_pending | needs_input"
}
],
"previous_actions": [
{ "action_id": "", "progress": "", "status": "ready | needs_input" }
]
}
1つ目の理由は、差し込みと照合ができることです。 placeholders_used に挙がった記号が記号の表にあるかを確かめ、本文に記号以外の数字が無いかを確かめてから値を差し込みます。
2つ目は、原因の照合ができることです。 incident_id ごとに、cause と台帳の原因の分析を並べて担当に示します。プログラムは、原因の向きを表す語(表示、手順、設備、システム、作業者など)が台帳と本文で一致しているかを見て、違えば印を付けます。
3つ目は、status で担当の作業が分かることです。 cause_pending と needs_input の事故だけを先に見れば、送る前に埋めるべき箇所が一覧になります。
構造化出力のスキーマでは、公式のページにあるとおり、すべての項目を必須にし、additionalProperties: false を設定します。 主な事故が無い月は、incidents を空の配列で返させます。
差し込みを終えた本文は、たとえば次のようになります。
【今月の概況】
今月の誤出荷は2件で、前月から3件減りました。出荷100万件あたりでは12.4件です。
破損は1件、遅延は0件でした(遅延は、お取り決めの指定時間帯の到着で数えています)。
【主な事故】誤出荷(隣接ロケーションの類似品の取り違え)
経緯:同じ棚の上下段に、色違いの同じ形の商品が保管されていました。
原因:棚の表示が商品名だけで、色の区別が表示されていませんでした。
対策:棚の表示に色の区別を加えます(今月末まで)。 システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 倉庫管理システム | 書き出しファイルの読み取り | 前月の出荷の実績 |
| 事故の台帳 | 読み取り | 事故の記録、原因の分析、対策の状況 |
| 配送の完了の記録 | 読み取り | 指定の日時と配達の完了の日時 |
| Azure OpenAI | API呼び出し(構造化出力) | 概況、主な事故の説明、対策の進捗 |
| SharePoint | ファイルの保存 | 下書き、確定版、入出力の控え |
事故の台帳には書き込みません。 原因の分析や対策の状況を直すのは、品質管理の担当が台帳で行います。報告書の側で原因を直したら、台帳も同じように直す運用にし、報告と台帳がずれないようにします。
荷主へ送るのは人です。 送り方は荷主ごとの取り決め(メール、荷主の取引先向けの仕組みへの登録など)に従います。下書きを自動で荷主へ送る経路は作りません。
人が確認する
品質管理の担当が、照合で印の付いた箇所から読みます。
cause_pendingを確かめる … 原因の分析がまだの事故です。報告の送付までに分析が終わるなら台帳を埋めて作り直し、終わらないなら「調査中」と報告の予定日を書きます- 原因の向きの印を確かめる … 台帳と本文で原因の向きが違うと判定された文です。台帳の言葉に戻します
- 数字を表と見比べる … 差し込みが正しく入っているかを、表と本文で一度だけ見ます
- 前月の対策の進捗を確かめる … 台帳の状況が更新されていない対策は、現場に確かめます
- 全体を荷主の目で読む … 言い訳に読める文、荷主を責めるように読める文を直します
センター長は、主な事故の説明と対策が、荷主に約束してよい内容かを見ます。 対策の期限は、そのまま荷主との約束になります。設備の改修のように予算の要る対策は、社内で決まる前に期限を書かないでください。
目標は、60件をならして1件30分です。 事故の無い荷主は数分で確認が終わり、事故の多い荷主に時間を使います。
例外に対処する
| 起きること | 対応 |
|---|---|
| 配送の完了の記録が前月分そろっていない | 遅延の件数を出さず、「集計中」として担当に知らせる |
| 荷主の設定に遅延の定義が無い | 下書きを作らず、設定の不足として担当に知らせる |
| 事故の台帳の荷主の欄が空 | その事故を集計から外し、一覧に表示して担当が直す |
| 本文に記号以外の数字がある | 下書きを止め、作り直す。続けば指示を見直す |
| 原因の分析が空の事故がある | 「調査中」で下書きを作り、cause_pending として担当へ |
| 前月の報告が見つからない | 対策の進捗の欄を空にし、needs_input として担当へ |
| 出荷の実績が0件の荷主 | 率を計算せず、「出荷なし」として件数だけを示す |
| Azure OpenAI が応答しない | 集計の表だけで下書きを作り、説明文は再実行する |
上から3行目までが大半を占めます。 どれもAIの問題ではなく、記録のそろい方と設定の問題です。 下書きを止めた理由は、荷主ごとに一覧に残して担当へ知らせます。 配送の完了の記録が遅れる配送の会社があるなら、取り込みの日をその会社に合わせます。
記録を残す
- 取り込んだ出荷の実績・事故の台帳・配送の完了の記録の版
- 計算した件数と率、差し込み記号の表、使った荷主の設定の版
- AIへの入力と出力のJSONの全文
- 担当とセンター長が直した差分 … どの事故の、どの欄を、どう直したか
- 荷主へ送った報告の確定版と、送った日
- 原因の向きの印が付いた文の件数と、直された件数
2つ目で「荷主の設定の版」を残すのは、遅延の定義が途中で変わることがあるためです。 定義が変われば前年同月との比較の意味も変わります。どの定義で数えたかが残っていないと、荷主から問われたときに説明できません。
最後の行は、台帳の付け方を直す材料になります。 印が多く付く事故の種別は、台帳の原因の分析の書き方が荷主向けの言葉とかけ離れています。 台帳の欄の分け方を見直す合図です。
04実装レベルの3段階
最小構成では、①と②の45分が残ります。 確かめるための段階です。 半自動化で、1件90分が50分程度になります。 表は自動になりますが、説明文と表の数字の突き合わせ、前月の対策の進捗の記述が手作業で残ります。本格構成で30分になり、この段階が本記事の想定です。 差が大きいのは、表と本文の数字を見比べる作業と、前月の報告を開き直す作業が、荷主ごとの手作業だからです。 段階を飛ばさないでください。 半自動化の期間に、荷主ごとの遅延の定義と率の分母を設定の表にそろえておくと、本格構成で差し込む値が荷主の手元の数字と一致します。
05工数削減シミュレーション
導入後 60件 × 30分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の荷主から保管・出荷・配送を請け負い、荷主ごとに誤出荷・破損・遅延の件数と原因を毎月報告している物流会社(3PL、倉庫と配送を併せて受ける運送会社)。事故の記録と原因の分析は台帳に残っているのに、報告書を書くたびに出荷の実績と台帳を突き合わせて数え直している場合。センターや担当者によって報告の書きぶりが違い、荷主から説明の不足を指摘されている場合。
- 荷主が数社で、報告が月に数件しかない場合。事故の記録が紙の報告書のままで、件数を数えられる形で残っていない場合(まず事故の台帳を作るのが先です)。なお、事故の原因の判断、損害の賠償の扱い、荷主との契約上の責任の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月報告した荷主から5社を選ぶ(事故の多い荷主と少ない荷主を混ぜる)
- その5社について、件数と率の表は今までどおり手で作る
- 事故の台帳から先月の主な事故の行を写し、届け先の情報を消す
- 社内で利用を認められた Azure OpenAI の画面に、台帳の行と表を貼り付ける
- 「表の数字は本文に書かず、【件数】のように表の項目名で示してください。原因は台帳の原因の分析に書かれたことだけを書き、言い換えても原因の向きを変えないでください。原因の分析が空の事故は『調査中』としてください」と指示する
- 出てきた説明文を、実際に送った報告と並べてセンター長に読んでもらう
5社は必ずやってください。 ワークフローを組む前に、台帳の記録だけで荷主に送れる説明が書けるのかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 実際の報告と同じ水準の説明が出た | 集計の自動化と連携に進む |
| 本文に数字が書かれた | 指示の書き方で直る。記号の表だけを渡す形にする |
| 原因の説明が薄い | 台帳の原因の分析が先。 欄の分け方を見直す |
3行目が出るのは、台帳の側の問題です。 原因の分析が「確認不足」の一言なら、誰が書いても説明は薄くなります。この試験は、台帳の記録の質を確かめる試験でもあります。 説明が薄かった事故について、現場の担当に「何が起きたか」「なぜ気づけなかったか」「なぜそうなる仕組みだったか」を聞き直して台帳を埋め、同じ指示でもう一度書かせてみてください。説明がどこまで変わるかで、台帳の欄を分ける価値が分かります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 本文に数字が書かれ、表と食い違う | 差し込み記号で書かせ、値を渡さない。数字があれば止める |
| 台帳に無い原因が書かれる | 原因の分析が空なら「調査中」と書かせる |
| 原因の向きが言い換えで変わる | 向きを表す語を台帳と本文で照合する |
| 遅延の件数が荷主の認識と違う | 荷主ごとの定義を設定に持たせ、注記に書く |
| 月をまたいだ事故の数え方がずれる | 発生日と登録日の扱いを設定で決め、「前月分の追加」の欄を作る |
| 前年同月の数字が前年の報告と違う | 前年同月は確定した報告から取る |
| 届け先の個人の情報が報告に残る | 前処理で取り除く |
| 配送の完了の記録が遅れて届く | 取り込みを第2営業日にし、そろっていなければ遅延を集計中にする |
| 言い訳に読める文が出る | 書き方の指示を入れ、担当が荷主の目で読む |
| 報告で直した原因が台帳に戻らない | 報告で直したら台帳も直す運用にする |
上の3行が、この構成の失敗のほとんどです。 どれも、AIが記録に無いことを書いたときに起きます。数字の食い違いは荷主がすぐに気づきますが、原因の向きの変化は気づかれないまま対策が進みます。 後者のほうが、見つかったときの手戻りは大きくなります。数字は記号に、原因は台帳の言葉に縛るかどうかで、荷主に送れる報告になるかが決まります。
最後の行は、数か月たつと効いてきます。 報告の原因と台帳の原因がずれたままだと、次に同じ種類の事故が起きたとき、過去の原因と対策を台帳から正しく引けなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 荷主の出荷の件数と商品、事故の内容と経緯、届け先の情報(前処理で取り除く)、作業者や配送の担当者の情報です。
- 届け先と作業者の情報を入力に混ぜない … 報告に要るのは事故の仕組みで、届け先の氏名や作業者の氏名は前処理で取り除きます
- 処理の地域を決めておく … 公式のページでは、グローバルやデータ ゾーンのデプロイの種類を使う場合を除き、プロンプトと応答は指定した地域内で処理されるとされています。どのデプロイの種類を使うかを、社内の取り決めに書きます
- 荷主との契約で、外部のサービスで扱ってよいかを確かめる … 荷主の出荷の情報は預かっている情報です。荷主との契約の秘密保持の条項を確かめてから始めます
- 責任と賠償の判断を混ぜない … 運送約款は、貨物の受取から引渡しまでの滅失・損傷・延着について責任を定め、延着の損害賠償の額は運賃・料金等の総額を限度とするとしています。こうした扱いは契約と約款に基づいて人が判断することで、報告書の説明文には書かせません
- 荷主ごとに情報を分ける … 1回の処理で扱うのは1つの荷主の記録だけにし、他の荷主の事故が混ざらないようにします
- 保存先と閲覧の範囲を絞る … 下書きと入出力の控えは、品質管理の担当とセンター長だけが読める場所に置きます
誤りが起きた場合のリスクは、誤った件数や推測の原因が荷主に届くことと、報告が責任の認否のように読まれることの2つです。 前者は差し込み記号と原因の照合で、後者は責任と賠償に触れさせない指示と、センター長の確認で防ぎます。
10まず何から始めるか
1週目:荷主ごとの設定をそろえる
荷主ごとの契約と覚書から、遅延の定義、率の分母、報告の様式、主な事故の選び方を拾い、設定の表にします。事故の多い上位10社から始めます。
2週目:5社で試す
先月の報告から5社を選び、社内で認められた Azure OpenAI の画面で説明文を書かせます。本文に数字が書かれていないか、台帳に無い原因が書かれていないかを最優先で見ます。
3週目:集計を作る
倉庫管理システムの書き出しと事故の台帳、配送の完了の記録から、荷主ごとの件数と率、前月・前年同月との比較を計算するプログラムを作ります。計算の結果を、先月の確定した報告の数字と照らします。
4週目:集計から下書きまでをつなぐ
Azure Functions で取り込み、集計、説明文、差し込み、様式への流し込みまでを作ります。この時点では原因の向きの照合を入れず、担当が台帳と本文を並べて読みます。
2か月目: 原因の向きの照合と、前月の対策の進捗を足します。3か月目以降: 事故の台帳の原因の分析の欄を見直し、印の付く件数を毎月数えます。1件90分が何分になったかを実測し、荷主から数字の食い違いを指摘されなくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 標準貨物自動車運送約款(最終改正 令和6年国土交通省告示第210号)で、引渡期間を発送期間・輸送期間・集配期間の合算とし、その満了後に引き渡したときを延着とすること(第5条)。貨物の受取から引渡しまでの滅失・損傷・延着について損害を賠償する責任を負うこと(第40条)。貨物が延着した場合の損害賠償の額は運賃、料金等の総額を限度とすること。事故の際の措置(第29条)と事故証明書の発行(第31条)が定められていること | 国土交通省 近畿運輸局: 標準貨物自動車運送約款 | 2026-10-08 |
構造化出力が指定した JSON スキーマに従わせる機能で、Chat Completions API では response_format、Responses API では text.format でスキーマを定義すること。すべてのフィールドを必須にし、additionalProperties: false を設定すること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-08 |
| プロンプトと出力が他のお客様や OpenAI に提供されず、モデルやサービスの改善に使われないこと。グローバルやデータ ゾーンのデプロイの種類を除き、指定した地域内で処理されること | Microsoft Learn: Azure が販売する Foundry モデルのデータ、プライバシー、セキュリティ | 2026-10-08 |
遅延の定義、率の分母、報告の様式は、各荷主との契約と覚書に合わせてください。 本記事は標準貨物自動車運送約款で確認できた範囲だけを扱っています。各社が実際に使っている運送約款は、標準約款と異なる場合があります。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1052)についてのご相談はこちらから。
