運送会社と荷主の出荷担当から出る「この貨物は危険物として運べるか、何が要るか」の質問に、社内規程・SDS・運送約款を根拠にチャットで答え、判断の要るものを安全管理の担当へ回す
配車や営業の担当と荷主の出荷担当から出る「この貨物は運べるか、何が要るか」という質問に、社内の危険物取扱規程・荷主のSDS・運送約款を探して出典付きでチャットで答えます。引き受けるかどうかの判断が要る質問は、答えずに安全管理の担当者へ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 商社/物流/製造
- 対象部門
- 品質管理/物流
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 判断に時間がかかる/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 配車や営業の担当、荷主の出荷担当が、チャットやメールで安全管理課に質問する
- 安全管理課の担当者が、質問の貨物の品名と数量を確かめる
- 荷主のSDSのフォルダから該当する製品のSDSを探し、危険有害性、適用法令、輸送上の注意の項を読む
- 社内の危険物取扱規程の該当する章を開き、表示・容器・混載・数量の基準を確かめる
- 必要なら運送約款の危険品の条項を確かめる
- 答えを書いて返す。引受けの判断が要るものは、自分で判断して返す
- 同じような質問が来たら、また1から調べる
- 人社内の担当は社内チャットのボットに、荷主の出荷担当はログイン付きの問い合わせ画面に質問する
- 自動中継プログラムが、利用者の所属(社内か、どの荷主か)を確かめる
- 自動質問が、担当者へ回す規則(引受けの可否、混載の可否、数量の判断、品名が分からない)に当たるかを確かめる
- 自動当たらなければ、検索の対象を絞り込み、Vertex AI Search(Agent Search)の answer メソッドに質問を渡す
- 自動規程の条文・SDSの項・約款の条を根拠にした答えと、出典、裏付けの強さの値が返る
- 自動裏付けが弱い答え、出典の無い答え、答えが返らなかった質問は、担当者へ回す
- 自動答えに出典の文書名・条や項・SDSの版の日付を添えて返す
- 人安全管理課の担当者が、回ってきた質問を、集めた根拠を見ながら判断して返す
- 人毎週、答えた質問の一覧を見て、規程の書き足しやSDSの更新の依頼を決める
各工程の詳しい説明を読む
- 配車や営業の担当、荷主の出荷担当が、チャットやメールで安全管理課に質問する
- 安全管理課の担当者が、質問の貨物の品名と数量を確かめる
- 荷主のSDSのフォルダから該当する製品のSDSを探し、危険有害性、適用法令、輸送上の注意の項を読む
- 社内の危険物取扱規程の該当する章を開き、表示・容器・混載・数量の基準を確かめる
- 必要なら運送約款の危険品の条項を確かめる
- 答えを書いて返す。引受けの判断が要るものは、自分で判断して返す
- 同じような質問が来たら、また1から調べる
(a)調べれば分かる質問が多い。 「第4類の危険物を運ぶときの表示は何か」「SDSのどこを見ればよいか」は、規程とSDSに書いてあります。しかし、どこに書いてあるかを知っているのが2名だけなので、2名が答えています。
(b)SDSを探すのに時間がかかる。 荷主150社分のSDSがフォルダに入っていますが、製品名の書き方が荷主の社内の呼び名と違うことがあり、探すだけで数分かかります。版が更新された古いSDSが残っていることもあります。
(c)返事が遅れて出荷や配車が止まる。 2名が現場の立会いや監査の対応で席を外すと、質問が半日たまります。 その間、見積も配車も出荷も止まります。
(d)答えが記録に残らない。 チャットやメールで返した答えは個人の履歴に埋もれ、同じ質問に、別の日に少し違う答えが返ることがあります。
- 【人】 社内の担当は社内チャットのボットに、荷主の出荷担当はログイン付きの問い合わせ画面に質問する
- 【自動】 中継プログラムが、利用者の所属(社内か、どの荷主か)を確かめる
- 【自動】 質問が、担当者へ回す規則(引受けの可否、混載の可否、数量の判断、品名が分からない)に当たるかを確かめる
- 【自動】 当たらなければ、検索の対象を絞り込み、Vertex AI Search(Agent Search)の answer メソッドに質問を渡す
- 【自動】 規程の条文・SDSの項・約款の条を根拠にした答えと、出典、裏付けの強さの値が返る
- 【自動】 裏付けが弱い答え、出典の無い答え、答えが返らなかった質問は、担当者へ回す
- 【自動】 答えに出典の文書名・条や項・SDSの版の日付を添えて返す
- 【人】 安全管理課の担当者が、回ってきた質問を、集めた根拠を見ながら判断して返す
- 【人】 毎週、答えた質問の一覧を見て、規程の書き足しやSDSの更新の依頼を決める
3番目が、この設計の分かれ目です。 判断の要る質問を検索に渡す前に分けます。検索に渡すと、もっともらしい答えが返り、それが判断として読まれます。 回すかどうかを答えのあとで決めるのではなく、質問の段階で決めます。
8番目で担当者が見るのは、質問と、検索で集めた条文とSDSの該当箇所です。 担当者は調べる作業から始めず、判断から始められます。
02今回想定するシステム構成
社内チャットのボット / 荷主向けの問い合わせ画面(ログイン付き) │ 質問(品名・数量・積み合わせる物など) ▼ 中継プログラム(Python) ├─ 利用者の所属を確かめる(社内/荷主ID) ├─ 担当者へ回す規則に当たるか ──▶ 当たる:安全管理課の受付の一覧へ ▼ 当たらない Vertex AI Search(Agent Search)── answer メソッド │ 絞り込み:doc_type(規程・約款・SDS)、shipper_id、status │ データストア:危険物取扱規程/運送約款/荷主ごとのSDS ▼ 中継プログラム ── 裏付けの強さ・出典の有無を確かめる ├─ 弱い・出典なし ──▶ 安全管理課の受付の一覧へ(集めた根拠を添えて) ▼ 答えを返す(出典・SDSの版の日付を添える)/会話と引継ぎを記録
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッドとデータストア | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。チャット・問い合わせ画面と検索基盤と受付の一覧をつなぐ) | Node.js で同じものを書く |
| 集計 | Python(会話と引継ぎの記録の月次の集計) | Google Apps Script |
| 保管 | Cloud Storage(規程・約款・SDSのPDFとメタデータ) | ─ |
配車のシステムや荷主の出荷のシステムには、つなぎません。 個別の出荷の情報をチャットから引かないことで、どの荷主が何をどれだけ出したかという情報が、この構成を通らないようにします。
土台になるのは、Vertex AI Search の answer メソッドです。 公式のドキュメントには「Vertex AI Search is being renamed to Agent Search.」とあり、製品は Agent Search へ改称されつつあるため、両方の名前を併記します。 answer メソッドは検索結果に基づいて答えを生成し、答えの文ごとに出典を示す引用を作ります。 セッションを使った複数回のやり取りにも対応します。
この構成で特に効くのは、裏付けの強さの値です。 答えの各文(claim)について、データストアのデータにどれだけ裏付けられているかを0から1の値で返すことができ、答え全体の値も返ります。さらに、裏付けの強さのしきい値を低・高の2段階から選び、満たさない答えを返さない設定ができます。 危険物の取扱いでは「それらしいが根拠の弱い答え」がいちばん危ないため、この仕組みを入口に置きます。
SDSの絞り込みは、メタデータのフィルタで行います。 構造化データやメタデータ付きの非構造化データでは、索引付けの対象にしたフィールドで検索の対象を絞れます。shipper_id: ANY("S0123") のような式で、その荷主のSDSだけを対象にできます。
03どうやって実装するのか
処理の起点を決める
質問の送信が起点です。 社内の担当は社内チャットのボットに、荷主の出荷担当はログイン付きの問い合わせ画面に書きます。どちらも中継プログラムが受け、同じ流れで処理します。
質問の入力欄は、自由文だけにしません。「品名またはSDSの製品名」「数量と容器(例:18Lの缶×20)」「同じ車に積む予定の物」の3つの欄を任意で置きます。 自由文だけだと数量が書かれず、答えが「数量によります」で終わります。欄があると、担当者へ回す規則の判定にも使えます。
荷主向けの画面は、ログインを必須にします。 ログインした利用者の所属から荷主IDを決め、検索の絞り込みに使う荷主IDを、利用者が入力できないようにします。 社内の担当は、質問のときに荷主を選びます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 危険物取扱規程 | 引受けの基準、表示、容器、積載と混載、数量の扱い、事故時の連絡 | 安全管理課が管理するPDF |
| 運送約款 | 危険品についての荷送人の通知と明記、危険品等の処分の条項 | 自社の運送約款 |
| 荷主のSDS | 製品ごとのSDS。危険有害性の要約、組成、輸送上の注意、適用法令など | 荷主から受け取ったPDF |
| メタデータ | doc_type、shipper_id、製品名と荷主の社内の呼び名、SDSの版の日付、status(有効/旧版) | 安全管理課が付ける |
| 質問 | 自由文、品名、数量と容器、積み合わせる物、利用者の所属 | チャット・問い合わせ画面 |
質を決めるのは、規程の書きぶりです。 規程の条文が「関係法令に従う」とだけ書かれていると、検索で見つかっても答えになりません。「第4類の危険物を運ぶときは、容器に品名・危険等級・数量・注意事項を表示する」のように、条文が具体的であるほど、答えも具体的になります。
SDSで答えの根拠になるのは、主に輸送上の注意と適用法令の項です。 厚生労働省の資料では、JIS Z 7253 のSDSの記載項目の14番目が「輸送上の注意」で、輸送に関する国際規制の情報を含め、国内規制がある場合にはその情報を記載するとされています。15番目の「適用法令」とあわせて、どの法令の対象になるかの手がかりがここに集まります。
規程は、取り込む前に章立てを見直します。 1つの章に表示も容器も混載も書かれていると、検索で見つかった箇所に、質問と関係の薄い条文が混ざります。「引受けの基準」「表示」「容器」「積載と混載」「数量」「事故時の連絡」のように、問いの単位で章を分け、章ごとに見出しを付けておくと、出典の示し方も分かりやすくなります。 見出しは、質問者がそのまま引用元として読めるように、社内の呼び方で書きます。
データの取得方法を決める
規程と約款: 安全管理課が管理するPDFを、Cloud Storage に置き、データストアに取り込みます。改訂のたびに差し替え、旧版は status を旧版にして検索の対象から外します。 消さずに残すのは、過去の答えの根拠を後から示すためです。
SDS: 荷主から受け取ったSDSを、荷主ごとのフォルダに置き、メタデータを付けて取り込みます。製品名に加えて、荷主の社内の呼び名をメタデータに入れます。 荷主の出荷担当は、自社の呼び名で質問するからです。
メタデータの索引付け: shipper_id、doc_type、status を索引付けの対象にし、フィルタに使えるようにします。フィルタの式は中継プログラムが組み立てます。
| 利用者 | 中継プログラムが組み立てるフィルタ |
|---|---|
| 荷主の出荷担当 | (doc_type: ANY("rule","tariff") OR shipper_id: ANY("<その荷主のID>")) AND status: ANY("active") |
| 社内の担当(荷主を選んだとき) | 同上(選んだ荷主のID) |
| 社内の担当(荷主を選ばないとき) | doc_type: ANY("rule","tariff") AND status: ANY("active")(SDSは対象にしない) |
3行目の、荷主を選ばないときにSDSを対象にしない設定が大事です。 社内の担当であっても、質問に関係ない荷主のSDSが答えに混ざると、別の荷主の製品の情報を見せることになります。
AIへ渡す前に整形する
- 利用者の所属の確認 … ログインの情報から社内か荷主かと荷主IDを決めます
- 担当者へ回す規則の判定 … 質問の文と欄から、次のどれかに当たれば検索に渡さず担当者へ回します
- 「運べるか」「引き受けられるか」「積んでよいか」のように、可否の判断を求める質問 - 数量の欄に、規程が定める判断の目安を超える数量が書かれている質問 - 積み合わせる物の欄に、異なる危険物の類や高圧ガス、毒物・劇物が書かれている質問 - 品名もSDSの製品名も書かれていない質問
- SDSの照合 … 品名から、その荷主のSDSを製品名と社内の呼び名で探します。見つからない、または版の日付が古いものしか無いときは、答えに添えて担当者にも知らせます
- 個人情報の除去 … 質問の文に電話番号や個人名が含まれていれば、検索に渡す前に伏せます
2番目の規則を、質問の言い回しだけで決めないでください。 「積んでよいか」と書かれていなくても、積み合わせる物の欄に別の類の危険物があれば、それは混載の判断を求める質問です。 欄の中身で判定する規則を必ず持ちます。消防庁のページは、危険物の運搬の基準として、混載(他の類の危険物、高圧ガス等を一緒に積載して運搬すること)の禁止事項等が定められていることを挙げています。混載にかかわる質問は、機械で答えない領域として最初から分けます。
AIに処理させる
させるのは、規程・約款・SDSから、質問に関係する箇所を探し、そこに書かれていることだけで答えることです。
| 質問の種類 | AIが答えること | 担当者へ回すもの |
|---|---|---|
| 表示・容器 | 規程に書かれた表示の項目、容器の基準の条 | 規程に無い容器の扱い |
| SDSの読み方 | その製品のSDSの輸送上の注意・適用法令の項の内容 | SDSの記載が空欄・不足のもの |
| 書類と手続 | 荷送人が通知・明記すべきこと(約款の条) | 約款に無い特約の扱い |
| 事故時の連絡 | 規程に書かれた連絡先と手順 | 事故の発生そのもの(チャットではなく電話で) |
| 可否・混載・数量 | 答えない | すべて |
最後の行が、この構成の線引きです。 可否・混載・数量の判断は、規程の条文の当てはめと、貨物の具体的な状態の確認が要ります。検索で見つかった条文を並べて「運べます」と言わせない設計にします。
答えには、必ず出典を添えさせます。 規程なら章と条、SDSなら製品名と項の番号と版の日付、約款なら条の番号です。出典の無い文は答えから外します。
続けての質問は、セッションで受けます。 「この塗料の表示は」と聞いたあとに「では容器は」と続けると、同じ製品についての質問として扱えます。ただし、続けての質問でも、担当者へ回す規則の判定は毎回やり直します。 最初は表示の質問でも、2回目に「それなら同じ車に積めるか」と聞かれれば、それは混載の判断です。セッションの文脈があることを理由に、判定を省かないでください。
指示内容を固定する
answer メソッドでは、答え方の指示を preamble に書きます。
あなたは運送会社の安全管理課の窓口です。
社内の危険物取扱規程、運送約款、荷主から受け取ったSDSだけを根拠に、
国内のトラック輸送での危険物の取扱いについての質問に答えます。
【答えてよいこと】
- 規程・約款・SDSに書かれている、表示、容器、書類、連絡の手順
- SDSの「輸送上の注意」「適用法令」などの項に書かれている内容
【答えてはいけないこと】
- 貨物を運べるか、引き受けられるか、同じ車に積んでよいかの結論
これらを聞かれたら「この質問は安全管理課の担当者が判断します」と答え、
関係しそうな規程の条とSDSの項の名前だけを挙げてください。
- 数量が基準を超えるか超えないかの計算
- 文書に書かれていない法令の解釈、一般的な知識による補足
【書き方】
- 各文の根拠になった文書の名前と、章・条・項を必ず示してください。
- SDSを根拠にするときは、製品名と版の日付を示してください。
- 文書に書かれていないことは「文書に記載がありません」と書いてください。
推測で補わないでください。
- 箇条書きで、短く書いてください。
「一般的な知識による補足」を禁じるのは、生成のモデルが危険物について一般的な知識を持っているからです。 文書に無い補足は、正しくても自社の規程と食い違うことがあり、どちらが正しいかを質問者は判断できません。
可否を聞かれたときの返し方を、文言まで決めておくのも大事です。 決めていないと、「一般的には運べますが、担当者に確認してください」と書きます。前半だけが読まれます。
出力形式を固定する
answer メソッドの応答から、中継プログラムが次の形にまとめます。
{
"session": "projects/.../sessions/123",
"user": { "kind": "shipper | internal", "shipper_id": "S0123" },
"question": "",
"routed_before_search": false,
"answer_text": "",
"citations": [
{ "doc_type": "rule | tariff | sds", "title": "", "section": "",
"sds_version_date": "", "support_score": 0.86 }
],
"answer_support_score": 0.81,
"answer_skipped_reasons": [],
"handoff": { "required": false, "reason": "" }
}
引用(includeCitations)を有効にし、裏付けの強さの値を返す設定(groundingSpec の includeGroundingSupports)にします。 さらに filteringLevel に FILTERING_LEVEL_HIGH を指定すると、しきい値を満たさない答えは返りません。 指定しなければ、裏付けの強さによる絞り込みはかかりません。
答えが返らなかった理由は answerSkippedReasons に入ります。 中継プログラムはこれを見て、理由が何であれ担当者へ回します。 関係の薄い内容しか見つからないときに決まった答えを返す ignoreLowRelevantContent も有効にしておき、「分からない」を答えとして返せる状態にします。
handoff を出力の中に持たせるのが要です。 引継ぎが要るかは、規則(3番目の判定)、裏付けの強さ、出典の有無の3つから中継プログラムが決めます。生成のモデルに「担当者に回すべきか」を判断させません。 routed_before_search が真の質問は検索をしていないので、citations は空のまま記録し、受付の一覧に添える根拠は別の検索の結果として持ちます。2つを同じ欄に入れると、答えた質問と引き継いだ質問の区別が記録から消えます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 社内チャット | ボットの受信と返信 | 社内の担当の質問と答え |
| 荷主向けの問い合わせ画面 | ログイン付きの画面 | 荷主の出荷担当の質問と答え |
| Vertex AI Search(Agent Search) | answer メソッド | フィルタ付きの検索と答えの生成 |
| 安全管理課の受付の一覧 | 中継プログラムが書き込む | 引継ぎの質問と集めた根拠 |
| 会話の記録 | 中継プログラムが保存 | 質問、答え、出典、値、引継ぎ |
安全管理課の受付の一覧には、質問と一緒に、検索で集めた条文とSDSの該当箇所を添えます。 引継ぎの質問でも、answer メソッドとは別に検索だけを行い、関係しそうな箇所を担当者に渡します。 担当者が調べ直す時間を減らすためです。
引継ぎになったことは、質問者にもすぐ伝えます。 「この質問は安全管理課の担当者が判断します。受付番号は○○です」と返し、担当者が返すまでの目安の時間も添えます。 質問者が答えを待っているのか、もう来ないのかが分からないと、同じ質問を電話やメールで重ねて送り、受付が二重になります。担当者には、引継ぎが入るたびに社内チャットで知らせます。
担当者が判断して返した答えは、質問者に返すと同時に、記録にも残します。 同じ質問がまた来たときに、過去の判断を担当者が参照できるようにします。 ただし、その判断を検索のデータストアには入れません。個別の貨物についての判断は、別の貨物に当てはまるとは限らないからです。
人が確認する
人が見るのは、引継ぎになった質問と、毎週の答えの一覧です。
- 引継ぎの質問(担当者) … 添えられた根拠を見て、判断して返します。判断の理由と根拠にした条を記録します
- 答えの抜き取り(担当者) … 毎週、答えた質問から20件を抜き取り、出典と答えが合っているかを見ます
- 規程の書き足しの判断(安全管理課) … 引継ぎが多い質問の種類を見て、規程に書けば答えられるものかを決めます
- SDSの更新の依頼(安全管理課) … 版の日付が古いSDSが根拠になった質問を数え、荷主に最新版を依頼します
2番目の抜き取りを省かないでください。 答えが返っている質問は、誰の目も通っていません。出典は合っているのに要約が条文とずれている、という答えは、抜き取りでしか見つかりません。
目標は、600件をならして1件4分です。 引継ぎが3割前後という想定で、それより多い月は、規程の条文が抽象的か、SDSのメタデータが足りていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 可否・混載・数量の判断を求める質問 | 検索に渡さず引継ぎ。決まった文言で返す |
答えが返らない(answerSkippedReasons あり) | 引継ぎ。理由を記録する |
| 裏付けの強さがしきい値に届かない | 答えが返らないので引継ぎ |
| 出典の無い文が答えに含まれる | その文を外し、残りが無ければ引継ぎ |
| その荷主のSDSが見つからない | 答えに「SDSが登録されていません」と添え、担当者と荷主に知らせる |
| SDSの版の日付が古い | 答えに版の日付を添え、更新の依頼の一覧に載せる |
| 荷主の社内の呼び名が登録されていない | 製品の候補を示して選んでもらう。候補を勝手に選ばない |
| 事故や漏えいの発生を伝える質問 | チャットで答えず、規程の緊急連絡先を示して電話を促す |
| 検索基盤が応答しない | 質問を受付の一覧に積み、担当者が答える |
8行目は、最初から作り込んでください。 「荷台で缶から漏れている」という質問に、チャットで丁寧に条文を返している場合ではありません。事故の言葉を含む質問は、検索より先に判定して、緊急連絡先を返します。
記録を残す
- 質問、利用者の所属、組み立てたフィルタ
- answer メソッドの応答(答え、引用、文ごとと全体の裏付けの強さ、答えが返らなかった理由)
- 引継ぎの理由と、担当者の判断・根拠にした条・返した日時
- 答えの根拠になった文書の版(規程の改訂番号、SDSの版の日付)
- 毎週の抜き取りの結果
- 月ごとの集計(件数、引継ぎの割合、質問の種類、SDSが見つからなかった件数)
4つ目の版を残すのは、規程とSDSが改訂されるためです。 後から「この答えは正しかったか」を問われたとき、当時の版に何が書いてあったかが分からないと、答えの誤りか、文書の改訂かを区別できません。
月ごとの集計は、引継ぎの理由の内訳で見ます。 「可否の判断」「数量」「混載」のように規則で回したもの、「裏付けが弱い」「答えが返らない」のように検索の結果で回したものを分けて数えます。前者が多いのは窓口として正常で、後者が多いのは文書の側に答えが無いということです。 後者の質問を章ごとに並べると、規程のどこを書き足せばよいかが見えます。荷主ごとに「SDSが見つからない」件数を並べれば、SDSの提出を依頼する先も決まります。
04実装レベルの3段階
最小構成では、使えるのは担当者だけです。 調べる時間は減りますが、質問が2名に集まる構図は変わりません。 半自動化で、1件10分が6分程度になります。 社内の担当が自分で答えを得られるようになりますが、荷主からの質問は従来どおり担当者が受けます。 本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、荷主の出荷担当からの質問が、件数の半分近くを占めるからです。
05工数削減シミュレーション
導入後 600件 × 4分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 塗料・溶剤・燃料・化学品・電池などを含む貨物を日常的に預かる運送会社で、配車や営業の担当と荷主の出荷担当から「この貨物は運べるか」「何を表示し、何を積み合わせてはいけないか」という質問が安全管理の担当者に集中している場合。社内の危険物取扱規程があり、荷主からSDSを受け取って保管している場合。Google Cloud を使える場合。
- 危険物を含む貨物をほとんど預からない運送会社。社内の危険物取扱規程が無く、引受けの基準そのものが決まっていない場合は、規程づくりが先です。なお、貨物を引き受けるかどうか、どの法令の対象になるかの最終の判断は安全管理の担当者が行うもので、この構成では代替できません。
07最小構成で試す方法
- 過去1か月に安全管理課へ来た質問から30件を選ぶ(可否を聞くもの、表示を聞くもの、SDSの読み方を聞くものを混ぜる)
- 規程のPDFと、質問に関係する荷主のSDSを数件用意する
- 手元のAIサービスに規程とSDSを読み込ませ、次のように指示する
- 「添付の規程とSDSだけを根拠に答えてください。根拠の条や項を必ず示してください。運べるか、積んでよいかの結論は書かないでください。書かれていないことは『記載がありません』と答えてください」
- 30件の答えを、当時の担当者の答えと見比べる
SDSは、荷主の了解を得たものか、自社の製品のものだけを使ってください。 試す段階で、他社から預かった情報を外部のサービスに出すことは避けます。
| 出てきた内容 | 判断 |
|---|---|
| 表示・容器・SDSの読み方の質問に、出典付きで正しく答えた | 検索基盤のデータストアに進む |
| 可否を聞く質問に「運べます」と答えた | 指示だけでは防げない。本番では質問の段階で分ける |
| 規程に答えが書かれておらず「記載がありません」が多い | 規程の条文が抽象的。 書き足しが先 |
| SDSの項が読み取れない | SDSがスキャンの画像。テキストのPDFを荷主に依頼する |
2行目が出たら、この構成の設計が正しいことの確認になります。 指示で抑えても、言い回しを変えた質問ですり抜けます。だから判定を検索の前に置きます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 可否を聞く質問に答えてしまう | 質問の段階で判定して検索に渡さない。 欄の中身でも判定する |
| 他の荷主のSDSが答えに混ざる | フィルタを利用者の所属から機械で組み立てる |
| それらしいが根拠の弱い答えが返る | FILTERING_LEVEL_HIGH で返さない |
| 一般的な知識で補足する | preamble で禁じ、出典の無い文を外す |
| 「数量によります」で答えが終わる | 数量と容器の欄を置く |
| 荷主の社内の呼び名で探せない | 呼び名をSDSのメタデータに入れる |
| 旧版のSDSが根拠になる | status で旧版を外し、答えに版の日付を添える |
| 規程が抽象的で「記載がありません」が多い | 規程の条文を具体的に書き直す |
| 事故の連絡がチャットに来る | 事故の言葉を先に判定し、緊急連絡先を返す |
| 担当者の個別の判断をデータストアに入れる | 入れない。 記録として残すだけにする |
上の2行が、この構成の失敗のほとんどです。 どちらも、機械に任せてはいけない線を、機械の判断の中に置いてしまうことから起きます。線は中継プログラムの規則の側に引きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 社内の危険物取扱規程、荷主から預かったSDS、質問の文。SDSには製品の組成が書かれ、荷主にとっては営業上の情報です。
- 引受けの判断をAIに渡さない … 標準貨物自動車運送約款は、荷送人が爆発、発火その他運送上の危険を生ずるおそれのある貨物について、その旨を外部に明記し、あらかじめ品名、性質その他の安全な運送に必要な情報を通知しなければならないと定めています。通知を受けて引き受けるかを決めるのは運送会社の担当者で、チャットではありません
- 荷主ごとのSDSを混ぜない … フィルタは利用者の所属から機械で組み立て、利用者が荷主IDを入力できる作りにしないでください。 荷主向けに公開する前に、荷主ごとに他社のSDSが答えに出ないことを確かめます
- 一般的な知識で答えさせない … 文書に無い補足は、正しくても自社の規程と食い違うことがあります。答えは規程・約款・SDSに書かれた範囲にとどめます
- 事故の連絡をチャットで受けない … 消防庁のページは、指定数量以上の危険物の運搬について、運搬中の事故発生時の応急措置と消防機関等への通報義務が定められていることを挙げています。事故の連絡は電話の経路に誘導し、チャットはその入口になるだけにします
- 答えの記録と版を残す … 誤った答えが後から見つかったとき、どの版の文書を根拠にしたかが分からないと、影響の範囲を決められません
- 荷主との取り決め … 預かったSDSを検索の対象にすることを、荷主に説明し、了解を得てから取り込みます
誤りが起きた場合のリスクは、判断の要る質問に機械が答えて、それが引受けの判断として使われることと、他の荷主の情報が答えに出ることの2つです。 どちらも中継プログラムの規則とフィルタで防ぎます。生成のモデルの振る舞いには頼りません。
10まず何から始めるか
1週目:過去の質問を分ける
過去3か月に安全管理課へ来た質問を、「調べれば分かるもの」と「判断が要るもの」に分けます。この割合が、この構成の効果の見込みになります。 判断が要るものの言い回しと欄の書き方を集め、引継ぎの規則の原型にします。
2週目:規程を書き直す
「調べれば分かるもの」なのに規程に答えが無かった質問を拾い、条文を具体的に書き足します。 安全管理課の2名が頭の中に持っている答えを、文書にする作業です。
3週目:30件で試す
規程と自社の製品のSDSを手元のAIサービスに読み込ませ、30件の質問に答えさせます。可否を聞く質問に結論を書いていないかを最優先で見ます。
4週目:社内向けのチャットを作る
規程と約款をデータストアに入れ、answer メソッドと中継プログラムで、社内の担当だけが使うチャットにします。SDSはまだ入れません。 引継ぎの規則と、裏付けの強さの絞り込みを先に固めます。
2か月目: 荷主の了解を得たSDSから、メタデータを付けて取り込み、社内の担当が荷主を選んで質問できるようにします。引継ぎの割合を毎週数えます。3か月目以降: 荷主向けの画面を、了解を得た荷主から順に開きます。安全管理課の2名に届く質問が、判断の要るものだけになっている状態で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search に改称されつつあること。answer メソッドが検索結果に基づいて答えを生成し、文ごとの引用を作ること。セッションによる複数回のやり取り。答えの各文と全体について0から1の裏付けの強さ(support score)を返せること。filteringLevel に FILTERING_LEVEL_LOW または FILTERING_LEVEL_HIGH を指定してしきい値を満たさない答えを返さないようにでき、指定しなければ絞り込みがかからないこと。includeCitations、includeGroundingSupports、filter、ignoreLowRelevantContent、answerSkippedReasons、preamble | Google Cloud: Get answers and follow-ups(answer メソッド) | 2026-10-07 |
構造化データやメタデータ付きの非構造化データで、索引付けの対象にしたフィールドを使って検索を絞り込めること。category: ANY("...") の形式のフィルタ式 | Google Cloud: Filter custom search for structured or unstructured data | 2026-10-07 |
| 危険物を国内で運搬する場合、消防法第16条に基づく運搬の基準(運搬容器・積載方法・運搬方法)を守る必要があること。積載方法の基準に、運搬容器への品名・数量等の表示、混載(他の類の危険物、高圧ガス等を一緒に積載して運搬すること)の禁止事項等が含まれること。運搬方法の基準に、指定数量以上の危険物を運搬する場合の標識の掲示・消火設備の準備、事故発生時の応急措置と消防機関等への通報義務等が含まれること | 総務省消防庁: 危険物運搬の概要 | 2026-10-07 |
| 標準貨物自動車運送約款(最終改正 令和6年国土交通省告示第210号)第15条:荷送人は、爆発、発火その他運送上の危険を生ずるおそれのある貨物について、その旨を外部の見やすい箇所に明記し、あらかじめその旨及び品名、性質その他の安全な運送に必要な情報を通知しなければならないこと。第30条:通知及び明記をしなかった貨物について、取卸し、破棄その他の処分ができること | 国土交通省 近畿運輸局: 標準貨物自動車運送約款 | 2026-10-07 |
| JIS Z 7253:2019 のSDSの記載項目(16項目)に「14 輸送上の注意」「15 適用法令」があること。輸送上の注意には輸送に関する国際規制の情報を含め、国内規制がある場合にはその情報を記載するとされていること | 厚生労働省: 労働安全衛生法のSDSの記載内容と課題 | 2026-10-07 |
危険物の引受けの可否、混載の可否、数量の判断は、消防法などの関係法令と自社の規程によります。この部分は安全管理の担当者の確認が必要です。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0721)についてのご相談はこちらから。
