設計と購買から出る「この部品の代わりに使える承認済みの品番は」「この仕入先は承認済みか」の質問に、承認済み部品・仕入先の一覧(AVL)と変更の記録を根拠にチャットで答え、未承認のものを品質保証へ回す
設計と購買から出る「この部品の代わりに使える承認済みの品番は」「この仕入先は承認済みか」の質問に、承認済み部品・仕入先の一覧と承認書・変更通知を根拠にチャットで答えます。一覧に無いものは品質保証へ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 商社/製造
- 対象部門
- 品質管理/研究開発/購買
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/情報が見つからない/確認ミスが多い
- AIで行う処理
- 検索(RAG)
- 主な効果
- 判断支援/対応スピード向上/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 設計者か購買担当が窓口のチャットに質問を書く(「品番 C-10-4471 の代わりに使える承認済みはある?」)
- 品質保証の担当が質問を読み、品番の書き方(社内品番かメーカーの型番か)を確かめる
- 一覧で社内品番を引き、同じ用途で承認済みの代替品の行を探す
- 代替品の行の承認書の番号から、文書管理の仕組みで承認書を開き、条件を読む
- その部品に新しい変更通知が届いていないかを、文書管理の仕組みで探す
- 仕入先の質問では、仕入先の行の状態と、直近の監査の結果を確かめる
- 承認の状態と条件を書いて返事をする。一覧に無ければ「承認申請を出してください」と返す
- 人設計者か購買担当が窓口のチャットで、質問の種類(代替品/仕入先)を選び、品番か仕入先と、使う製品を書く
- 自動中継プログラムが品番の書き方をそろえ、品目マスタと一覧を品番・仕入先コードで引く
- 自動一覧の行から承認の状態を決める(承認/条件付き承認/停止・取消/一覧に無い)
- 自動状態が承認か条件付き承認の行について、承認書と変更通知を品番で絞り込んで探させ、条件と経緯を引用付きで返させる
- 自動引用した承認書の番号と、一覧の行の承認書の番号が一致するかを照らす
- 自動一覧に無いもの、停止・取消のもの、評価中の変更通知があるもの、条件が使う製品に当てはまるか読み取れないものを品質保証の待ち行列へ回す
- 人質問した人が引用の原文を開き、条件と使う製品を確かめる
- 人品質保証の担当が回ってきた質問に答え、必要なら承認申請を受ける
各工程の詳しい説明を読む
- 設計者か購買担当が窓口のチャットに質問を書く(「品番 C-10-4471 の代わりに使える承認済みはある?」)
- 品質保証の担当が質問を読み、品番の書き方(社内品番かメーカーの型番か)を確かめる
- 一覧で社内品番を引き、同じ用途で承認済みの代替品の行を探す
- 代替品の行の承認書の番号から、文書管理の仕組みで承認書を開き、条件を読む
- その部品に新しい変更通知が届いていないかを、文書管理の仕組みで探す
- 仕入先の質問では、仕入先の行の状態と、直近の監査の結果を確かめる
- 承認の状態と条件を書いて返事をする。一覧に無ければ「承認申請を出してください」と返す
(a)品番の書き方がそろわない。 設計者はメーカーの型番で、購買は社内品番で、工場は図面の部品番号で聞きます。メーカーの型番は、末尾の包装の記号やRoHS対応の記号が付くかどうかで別の行になります。 2番目で品番を確かめるだけで、聞き返しが要ることがあります。
(b)条件を読み落とす。 4番目で、承認書の本文の「適用範囲」に書かれた製品の限定を読み落とし、別の製品に使えると答えてしまうことがあります。 一覧の状態の欄には「条件付き承認」としか出ないからです。
(c)変更通知を見落とす。 5番目は、文書管理の仕組みで品番を検索しても、変更通知はメーカーの型番で登録されていることが多く、社内品番で探すと当たりません。
(d)答えられるのが数名だけ。 承認書の書き方は年代と担当者で違い、どこに条件が書いてあるかを知っているのは、長く担当している数名です。 その人が監査で不在の日は、質問が翌日まで待ちになります。
- 【人】 設計者か購買担当が窓口のチャットで、質問の種類(代替品/仕入先)を選び、品番か仕入先と、使う製品を書く
- 【自動】 中継プログラムが品番の書き方をそろえ、品目マスタと一覧を品番・仕入先コードで引く
- 【自動】 一覧の行から承認の状態を決める(承認/条件付き承認/停止・取消/一覧に無い)
- 【自動】 状態が承認か条件付き承認の行について、承認書と変更通知を品番で絞り込んで探させ、条件と経緯を引用付きで返させる
- 【自動】 引用した承認書の番号と、一覧の行の承認書の番号が一致するかを照らす
- 【自動】 一覧に無いもの、停止・取消のもの、評価中の変更通知があるもの、条件が使う製品に当てはまるか読み取れないものを品質保証の待ち行列へ回す
- 【人】 質問した人が引用の原文を開き、条件と使う製品を確かめる
- 【人】 品質保証の担当が回ってきた質問に答え、必要なら承認申請を受ける
3番目が、この設計の分かれ目です。 承認の状態は、一覧の行が決めます。検索の仕組みが状態を書いても、一覧と食い違えば一覧を正とし、食い違いそのものを品質保証へ知らせます。 生成AIに状態を判断させる経路を作りません。
5番目を人ではなくプログラムに置いているのも、意図してのことです。 似た品番の承認書が引用されても、読む人は気づきにくいからです。引用した承認書の番号が一覧の行と一致しなければ、その答えは返しません。
02今回想定するシステム構成
設計者・購買担当(社内のチャット。質問の種類・品番・使う製品を書く) │ ▼【トリガー】質問の送信 中継プログラム(Python/Cloud Run) ├──▶ 品番の書き方をそろえる(包装・RoHSの記号、社内品番とメーカー型番の対応) ├──▶ 一覧(BigQuery の表)を品番・仕入先コードで引き、承認の状態を決める ▼ Agent Search(Vertex AI Search)の answer メソッド │ 代替品の承認書/変更通知(PCN)/評価報告書/仕入先の監査報告 から │ 品番で絞り込んで、条件と経緯を探す。答えと引用を返す ▼ 中継プログラム ── 引用した承認書の番号と一覧の行を照らす ▼ 判定(そのまま返す answered / 品質保証へ回す escalate) ├──▶ チャットへ(状態、条件の引用、承認書の番号) └──▶ 品質保証の待ち行列へ(質問と一覧の行、検索の結果を添える)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、チャット・一覧・検索・待ち行列をつなぐ) | Node.js で同じものを書く |
| 保管 | BigQuery(一覧の写し)、Cloud Storage(承認書・変更通知の写しとメタデータ、質問と回答の記録) | ─ |
一覧と文書管理の仕組みは、新しく作るものではありません。 一覧は品質保証部が今の仕組みで更新し、その写しを毎晩 BigQuery に置きます。この構成は一覧も承認書も書き換えません。 最初の準備は、承認書と変更通知に、対象の品番(社内品番とメーカーの型番の両方)と文書の種類をメタデータとして付けることです。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 公式のドキュメントでは、answer メソッドは検索の結果から回答を作ります。引用を付ける設定(includeCitations)は既定で無効なので、必ず有効にします。根拠の強さを返す設定と、根拠の弱い回答を落とす設定もあります。
一覧は検索の対象にせず、中継プログラムが表を直接引きます。 公式のドキュメントでは、構造化データは BigQuery か Cloud Storage の JSON Lines(NDJSON)から取り込めますが、この構成で一覧に求めるのは「この品番の行があるか、状態は何か」の完全一致です。 検索は似たものを並べる仕組みなので、似た品番の行を返されると困る用途には使いません。
03どうやって実装するのか
処理の起点を決める
起点は、設計者か購買担当が窓口のチャットで質問を送ったことです。 画面は社内の ID でログインした人だけが使います。送信の前に、質問の種類を「代替品」「仕入先」の2つから選ばせ、品番か仕入先の欄と、使う製品の欄を必須にします。
使う製品の欄を必須にするのは、条件付きの承認があるからです。 「製品Aの電源基板に限る」という条件は、使う製品が分からなければ当てはまるかを決められません。欄が空なら、条件の引用だけを返し、「当てはまるかは使う製品で確かめてください」と添えます。
索引の更新は別に動かします。 代替品の承認書が承認されたとき、変更通知が文書管理の仕組みに登録されたときに、その文書だけを入れ直します。一覧の写しは毎晩の更新に加え、品質保証部が状態を「停止」「取消」に変えたときは、その行だけをすぐに写します。 停止した部品が翌朝まで「承認」として返るのを防ぐためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 質問の種類、品番か仕入先、使う製品、本文 | 窓口のチャット |
| 一覧の行 | 品番、メーカー、型番、仕入先コード、状態、承認日、条件の有無、承認書の番号 | 一覧の写し(BigQuery) |
| 品目マスタ | 社内品番とメーカーの型番の対応、品目の分類 | 生産管理の仕組み |
| 代替品の承認書 | 元の品番、代替の品番、適用範囲(製品・顧客・期限)、評価の結果、承認者 | 文書管理の仕組み(PDF・DOCX) |
| 変更通知(PCN) | 対象のメーカー型番、変更の内容、実施の時期、自社の評価の状態 | 文書管理の仕組み(PDF) |
| 仕入先の監査報告 | 仕入先コード、監査の日、結果、是正の期限 | 文書管理の仕組み(PDF) |
質を決めるのは、品目マスタの「社内品番とメーカーの型番の対応」です。 承認書は社内品番で、変更通知はメーカーの型番で書かれていることが多く、対応が無いと、同じ部品の文書を一度に引けません。 メタデータには両方の番号を入れます。
変更通知には「自社の評価の状態」を必ず持たせます。 メーカーの通知は届いた時点では自社の評価が終わっていません。評価中の変更通知がある部品は、一覧の状態が承認でも、品質保証へ回します。
データの取得方法を決める
承認書と変更通知は、文書ごとにメタデータを付けて Cloud Storage に置きます。 公式のドキュメントでは、メタデータは JSON Lines の形で1行1文書とし、id、structData(または jsonData)、content(mimeType と Cloud Storage の uri)を書きます。非構造化データは1ファイル200MBまでで、1回に10万ファイルまで取り込めます。
| メタデータの項目 | 例 | 何に使うか |
|---|---|---|
doc_type | substitution/pcn/evaluation/audit | 質問の種類での絞り込み |
part_no | C-10-4471、C-10-4472(配列) | 社内品番での絞り込み |
mfr_part_no | GRM31CR71H475KA12(配列。末尾の記号を除いた形) | 型番での絞り込み |
supplier_code | S-0182 | 仕入先の絞り込み |
approval_doc_no | QA-SUB-2025-0418 | 一覧の行との照らし合わせ |
pcn_eval_status | open/closed | 評価中の変更通知の検出 |
issued_on | 2025-11-04 | 新しい順の並べ替え |
絞り込みに使う項目は、データストアのスキーマで索引可能にしておきます。 公式のドキュメントでは、文字の項目は ANY() で完全一致、数値と日付は比較の演算子で比べ、AND/OR と NOT で組み合わせます。日付は ISO 8601 の文字列で書けます。索引可能にしても、絞り込みに使えない項目があるとされているので、試しに絞り込みを投げて確かめます。
| 質問の種類 | 絞り込み |
|---|---|
| 代替品 | part_no: ANY("C-10-4471") AND doc_type: ANY("substitution", "evaluation") |
| 変更通知の確認 | mfr_part_no: ANY("GRM31CR71H475KA12") AND doc_type: ANY("pcn") |
| 仕入先 | supplier_code: ANY("S-0182") AND doc_type: ANY("audit") |
ANY() は完全一致なので、メタデータの品番は書き方をそろえた形で入れます。 末尾の包装の記号を除いた形と、元の形の両方を持たせ、絞り込みにはそろえた形を使います。
AIへ渡す前に整形する
- 品番の書き方をそろえる … 全角と半角、ハイフンの有無、末尾の包装の記号(テープ・リールなど)を、品目マスタの規則で同じ形にします
- 社内品番と型番を結ぶ … 品目マスタの対応から、質問の品番をもう一方の番号にも置き換え、両方で一覧を引きます
- 一覧を引く … 品番と仕入先コードの完全一致で行を取ります。一致が無いときに、近い品番を探しに行きません
- 承認書を見出し付きで分割する … 承認書の「適用範囲」の段落に、承認書の番号と見出しが付くようにします
- 変更通知の評価の状態を付ける … 品質保証部の評価の台帳から
pcn_eval_statusを付け直します - 古い承認書を確かめる … スキャンした古い承認書は、適用範囲が読めているかを20件ほど抜き出して確かめます
4番目は、データストアを作る前に決めます。 公式のドキュメントでは、レイアウトパーサーは PDF・DOCX などの表と見出しを検出し、分割の大きさは100〜500トークン(既定は500)で、includeAncestorHeadings は既定で無効、分割の設定はデータストアを作った後に切り替えられません。 適用範囲の段落に承認書の番号が付いていないと、どの承認書の条件か分からない引用が返ります。
3番目を守るのが、この構成でいちばん大事な前処理です。 一覧に行が無いことは、それ自体が答えです。近い品番を並べると、読む人は「承認済みの候補」として受け取ります。
AIに処理させる
検索と回答の作成は、answer メソッドに任せます。 中継プログラムが渡すのは、質問の文、絞り込み、指示の前置き(preamble)です。承認の状態は前置きの中で「一覧ではこう」と渡し、AIには状態を判断させません。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 答えの文ごとに引用を付ける。既定は無効 |
ignoreLowRelevantContent | 有効 | 関連の薄い結果しか無いときは答えを作らない |
ignoreNonAnswerSeekingQuery | 有効 | あいさつや雑談に答えを作らない |
groundingSpec の filteringLevel | FILTERING_LEVEL_HIGH | 根拠の弱い答えを落とす |
includeGroundingSupports | 有効 | 文ごとの根拠のスコアを受け取る |
maxReturnResults | 10 | 既定は10、上限は25 |
関連の薄い結果しか無いとき、answer は答えの代わりに理由を返します。 公式のドキュメントでは、関連が薄いと NO_RELEVANT_CONTENT、根拠の基準に届かないと LOW_GROUNDED_CONTENT が answerSkippedReasons に入ります。どちらも「承認書が見つからない」として品質保証へ回します。
生成AIにさせることは、3つに限ります。
| させること | 中身 |
|---|---|
| 条件の引用 | 承認書の適用範囲(製品・顧客・期限)を原文のまま |
| 経緯の引用 | 評価の結果と承認した日、承認書の番号 |
| 変更通知の要旨 | 評価中の変更通知があれば、変更の内容と実施の時期を原文のまま |
| させないこと | 理由 |
|---|---|
| 承認済みかの判断 | 状態は一覧の行が決める |
| 代替品として使えるかの判断 | 特性・形状・信頼性の同等性は品質保証と設計が評価する |
| 似た品番の提案 | 末尾の記号が違えば別の部品。承認の外のものを候補に見せない |
| 条件を使う製品に当てはめる結論 | 適用範囲の書き方はばらばら。当てはまるかは人が読む |
3行目がいちばん起きやすい失敗です。 「C-10-4471 の代替は」と聞くと、生成AIは同じ容量の別メーカーの部品を「候補」として挙げがちです。承認の外の部品を候補として見せると、それだけで設計者は試作に使い始めます。
指示内容を固定する
answer メソッドの promptSpec の preamble に、次の指示を入れます。{} の中は中継プログラムが埋めます。
あなたは品質保証部で、部品と仕入先の承認の条件を社内に案内する立場です。
検索結果(代替品の承認書、変更通知、評価報告書、仕入先の監査報告)に
書かれていることだけを根拠にしてください。
【一覧で決まっていること(変えないでください)】
対象の品番:{part_no} 一覧の状態:{avl_status}
一覧に記録された承認書の番号:{approval_doc_no}
使う製品:{product}
【答え方】
1. 最初に、根拠にした承認書の番号を書いてください。
2. 承認書の「適用範囲」に書かれた製品・顧客・期限の条件を、
原文のまま書いてください。言い換えたりまとめたりしないでください。
3. 評価が終わっていない変更通知があれば、変更の内容と実施の時期を
原文のまま書いてください。
【厳守事項】
- 承認済みかどうかを、あなたが判断して書かないでください。
状態は上の一覧の状態だけです。
- 一覧に記録された番号と違う承認書を根拠にしないでください。
- 検索結果に無い部品や、似た品番を候補として挙げないでください。
- 代替品として性能や形状が同等かを書かないでください。
- 使う製品が条件に当てはまるかを結論として書かないでください。
条件の原文を示すだけにしてください。
- 条件が書かれていなければ「記載なし」としてください。
「承認済みかを判断しない」と「似た品番を挙げない」を両方書くのは、別の失敗だからです。 前者は状態の取り違え、後者は承認の外への広がりです。どちらか一方だけを禁じると、もう一方の形で出てきます。
一覧の状態を前置きで渡すのは、答えの文の中で状態と矛盾させないためです。 渡さないと、承認書の本文の「承認する」という文を根拠に、停止中の部品を「承認済み」と書くことがあります。
出力形式を固定する
answer の応答と一覧の行から、中継プログラムが次の形に組み立ててチャットへ返します。 公式のドキュメントでは、応答の citations に答えの中の位置(startIndex・endIndex)と出典の参照が入り、references に分割の本文(chunkInfo の content)と文書のメタデータが入ります。位置は文字ではなく UTF-8 のバイトで数えられるので、日本語の答えはバイト列で切り出します。
{
"question_id": "",
"question_type": "substitute | supplier",
"part_no": "",
"product": "",
"avl": {
"row_found": true,
"status": "approved | conditional | suspended | revoked | not_listed",
"approval_doc_no": "",
"supplier_code": ""
},
"conditions_quoted": "",
"open_pcn": [{ "pcn_no": "", "change": "", "effective": "" }],
"sources": [{ "doc_type": "", "doc_no": "", "quoted_text": "" }],
"doc_no_check": "matched | mismatch",
"route": "answered | escalate",
"escalate_reason": "not_listed | suspended | open_pcn | doc_mismatch | no_document | product_unclear"
}
1つ目の理由は、avl と conditions_quoted を別の層に置けることです。 avl は一覧から機械的に入り、conditions_quoted は検索の結果から入ります。画面では状態を一覧の側から表示し、AIの文は条件の欄にしか出しません。
2つ目は、doc_no_check で取り違えを止められることです。 sources の承認書の番号が avl.approval_doc_no と一致しなければ mismatch にし、答えを返さずに escalate にします。
3つ目は、escalate_reason で品質保証の待ち行列を仕分けられることです。 一覧に無いものは承認申請の受付、停止中のものは代わりの部品の相談、評価中の変更通知は評価の担当と、することが違います。
avl.status | 返し方 |
|---|---|
approved | 状態と承認書の番号を返す。評価中の変更通知があれば escalate |
conditional | 状態と条件の引用を返す。使う製品が空なら product_unclear を添える |
suspended/revoked | 答えを作らず escalate |
not_listed | 「一覧に無い」と返し、承認申請の案内を添えて escalate |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 窓口のチャット | 質問の受け取りと返事 | 質問の種類・品番・使う製品を受け、答えを返す |
| 一覧の写し(BigQuery) | 読み取り | 品番と仕入先コードの完全一致で行を引く |
| 品目マスタ | 読み取り | 社内品番と型番の対応を引く |
| Agent Search の answer メソッド | 中継プログラムからの呼び出し | 絞り込みと前置きを付けて条件を引かせる |
| 文書管理の仕組み | 登録の通知と読み取り | 承認書・変更通知の登録を受けて入れ直す |
| 品質保証の待ち行列 | 書き込み | 回す質問と一覧の行、検索の結果を渡す |
一覧へは書き込みません。 検索の結果と一覧が食い違っていても、一覧を直すのは品質保証部の担当です。 食い違いは待ち行列に「一覧の更新漏れの疑い」として渡します。
承認申請の起票もしません。 一覧に無い品番は、申請の様式への案内を返すだけにします。申請を出すかどうかは、設計と購買が決めることです。
人が確認する
- 引用の確認(質問した人) … 条件の引用から承認書を開き、使う製品が適用範囲に入るかを確かめます
- 回ってきた質問への回答(品質保証の担当) … 一覧に無いもの、停止中のもの、評価中の変更通知があるものに答えます
- 一覧の更新漏れの確認(品質保証の担当) … 食い違いが出た行を確かめ、一覧を直します
- 答えの当たり外れ(質問した人) … 答えが役に立ったかを、チャットのボタンで残します
目安は、360件をならして1件8分です。 質問した人が承認書を開いて条件を確かめる時間と、品質保証の担当が回ってきた質問に答える時間を合わせた平均です。回る質問は2割強という想定で、それより多い月は、メタデータの品番が足りていないか、変更通知の評価が滞っています。
条件付きの承認は、必ず原文を開いてもらいます。 引用は適用範囲の段落だけなので、別紙で条件が足されている承認書は、本文を開かないと分かりません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 一覧に行が無い | not_listed。近い品番を探さず、承認申請の案内を添えて品質保証へ |
| 状態が停止・取消 | 答えを作らず品質保証へ。停止の理由は品質保証が伝える |
| 評価中の変更通知がある | open_pcn。変更の内容だけを添えて品質保証へ |
| 引用の承認書の番号が一覧と違う | doc_mismatch。一覧の更新漏れの疑いとして品質保証へ |
承認書が見つからない(NO_RELEVANT_CONTENT) | no_document。承認書の登録漏れを疑う |
根拠が弱い(LOW_GROUNDED_CONTENT) | 答えを返さず、検索の結果の文書名だけを添えて品質保証へ |
| 品番が品目マスタに無い | 打ち間違いを疑い、質問した人に聞き返す |
| answer の応答が失敗する | 一覧の状態だけを返し、条件は品質保証へ回す |
最後の行で一覧の状態だけを返せるのは、状態を検索の仕組みに頼っていないからです。 検索が止まっても、「承認済みか」には答えられます。
記録を残す
- 受け取った質問、質問の種類、品番、使う製品、質問した人
- そのとき引いた一覧の行の内容
- 渡した絞り込みと前置き、answer の応答の全文(答え、引用、根拠のスコア、
answerSkippedReasons) - 承認書の番号の照合の結果と、回した理由
- 質問した人が付けた当たり外れと、品質保証が答えた内容
2行目で一覧の行を残すのは、状態が後から変わるためです。 部品が後で停止になったとき、質問の時点で承認だったのか、すでに停止だったのかが分からないと、誤った答えだったのかを確かめられません。
04実装レベルの3段階
半自動化で、1件25分が15分程度になります。 承認書と変更通知は探しやすくなりますが、品質保証の担当が一覧を引くこと、検索の画面を開くこと、返事を書くことが残ります。本格構成で8分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月回すと、品目マスタに型番の対応が無い部品と、適用範囲の書き方がそろっていない承認書の数が分かります。
05工数削減シミュレーション
導入後 360件 × 8分 ÷ 60 = 48 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 電子機器・制御機器・産業機械などのメーカーや、部品を組み込んで出荷する商社で、承認済み部品・仕入先の一覧(AVL)を品質保証部が持ち、設計と購買から「代わりに使える品番は」「この仕入先は使えるか」の質問が毎日届く場合。代替品の承認書・部品メーカーからの変更通知(PCN)・評価報告書が文書として残っており、一覧と文書を照らす作業が品質保証の数名に集まっている場合。部品の入手難や生産終了で、代替品の相談が月に数百件ある場合。
- 承認済み部品の一覧が無く、どの品番が承認済みかを担当者の記憶で決めている場合(先に一覧を作るのが先です)。代替品として使えるかの技術的な評価(電気的特性・形状・信頼性の同等性の判断)までAIに任せたい場合(この構成は承認の状態と条件を引くだけで、同等性を判断するのは品質保証と設計です)。品番の数が数百件で、一覧の表計算ファイルを検索すれば足りる場合。
07最小構成で試す方法
- 先月の窓口のチャットから、質問を20件選ぶ(代替品15件、仕入先5件。条件付きの承認を5件以上入れる)
- それぞれについて、一覧の行と、当時根拠にした承認書・変更通知を集める
- 手元のAIサービスの画面に、承認書と変更通知だけを貼り付け、一覧の状態は文で添える
- 「一覧の状態は変えずに、承認書の適用範囲の条件を原文のまま示してください。似た品番を挙げないでください」と指示する
- 当時の品質保証の担当の答えと比べる
最小構成で確かめたいのは、承認書の書き方で条件を引けるかです。 一覧を引くのはまだ人です。
| 出てきた内容 | 判断 |
|---|---|
| 当時の答えと同じ条件が出た | メタデータを付けて検索の仕組みに進む |
| 似た品番を候補として挙げた | 指示の書き方で直る。構成は有効 |
| 適用範囲が承認書に書かれておらず答えられない | 承認書の様式を直すのが先。 AIの問題ではない |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 似た品番の承認書を根拠に「承認済み」と書く | 状態は一覧から引き、引用の承認書の番号を一覧と照らす |
| 承認の外の部品を「候補」として挙げる | 前置きで禁じ、一覧に無ければ近い品番を探さない |
| 末尾の記号の違いで絞り込みから漏れる | メタデータに、そろえた形と元の形の両方を入れる |
| 変更通知が型番でしか登録されていない | 品目マスタの対応で、社内品番も付ける |
| 停止にした部品が翌朝まで承認で返る | 停止・取消はその行だけをすぐに写す |
| 適用範囲の段落に承認書の番号が付かない | includeAncestorHeadings を有効にする。作った後は変えられない |
| 引用の位置で日本語が文字化けする | 位置は UTF-8 のバイトで数えられる。バイト列で切り出す |
| 使う製品が条件に当てはまると結論を書く | 条件の原文だけを示させ、当てはまるかは人が読む |
上の2行が、この構成の失敗のほとんどです。 どちらも、承認の判断がAIの側に漏れ出すことから来ています。状態を一覧に、同等性の評価を品質保証に置いたままにできるかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 承認済み部品・仕入先の一覧、代替品の承認書、評価報告書、部品メーカーからの変更通知、仕入先の監査報告です。変更通知は部品メーカーから秘密保持契約のもとで受け取っていることがあります。
- 変更通知の扱いを部品メーカーとの契約で確かめる … 社内の検索の仕組みに入れてよいか、見られる人を限る必要があるかを、先に購買部と確かめます
- 仕入先の監査報告は見られる人を限る … 監査の結果と是正の内容は、仕入先との関係に関わります。質問した人には監査の結果の有無だけを返し、本文は品質保証の画面で見る設計にできます
- 答えを承認の代わりに使わせない … 答えは一覧の状態と承認書の条件の案内までです。新しい部品を使うかどうかは、承認申請の手続きで決めます
- 顧客の承認が要る製品を区別する … 顧客との品質の取り決めで、部品の変更に顧客の承認が要る製品があります。その製品の質問は、条件が引けても品質保証へ回す規則を足します
誤りが起きた場合のリスクは、承認されていない部品を使ってしまうことと、条件の外の製品に使ってしまうことの2つです。 前者は状態を一覧から引き番号を照らすことで、後者は条件の原文を見せて人に読ませることで防ぎます。
10まず何から始めるか
1週目:品番の対応を確かめる
品目マスタで、社内品番とメーカーの型番の対応がそろっているかを、質問の多い上位300品番で確かめます。末尾の包装やRoHSの記号をどう扱うかの規則を、品質保証部と購買部で決めます。
2週目:20件で試す
先月の質問20件について、当時の承認書を手元のAIサービスに貼り、条件を引用させます。似た品番を候補として挙げていないかを最優先で見ます。
3週目:メタデータと絞り込みを決める
メタデータの項目(第7章の表)と、質問の種類ごとの絞り込みを決めます。分割の設定と includeAncestorHeadings も、ここで決めます。
4週目:承認書だけで索引を作る
有効な代替品の承認書を取り込み、品質保証の担当が検索の画面で条件を引けるかを試します。一覧の状態はまだ人が引きます。
2か月目: 変更通知と監査報告を入れ、一覧の写しと番号の照合を足し、窓口のチャットにつなぎます。3か月目以降: 品質保証へ回った理由を毎週数え、型番の対応と承認書の様式を直し、1件25分が何分になったかを実測します。品質保証の数名に聞かなくても、承認の状態と条件を承認書の番号付きで返せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが検索結果から回答を作ること。構造化・非構造化のアプリに Enterprise エディションが要ること。includeCitations(既定は無効)、ignoreLowRelevantContent、ignoreNonAnswerSeekingQuery、promptSpec の preamble、searchParams の filter と maxReturnResults(既定10、上限25)。groundingSpec の includeGroundingSupports と filteringLevel(FILTERING_LEVEL_LOW/HIGH)。answerSkippedReasons の NO_RELEVANT_CONTENT と LOW_GROUNDED_CONTENT。citations の位置が UTF-8 のバイト単位であること。references の chunkInfo と文書のメタデータ | Google Cloud: Get answers and follow-ups | 2026-10-09 |
構造化データを BigQuery か Cloud Storage の JSON Lines(NDJSON)から取り込めること。非構造化データの対応形式と、1ファイル200MB・1回10万ファイルまでであること。メタデータを JSON Lines で id・structData(または jsonData)・content(mimeType・uri)として書くこと | Google Cloud: Prepare data for ingesting | 2026-10-09 |
絞り込みの ANY() が完全一致であること、比較の演算子、AND/OR、NOT、日付を ISO 8601 の文字列で比べられること、項目を索引可能にする必要があり、索引可能でも絞り込みに使えない項目があること | Google Cloud: Filter search for structured or unstructured data | 2026-10-09 |
レイアウトパーサーが表と見出しを検出すること。分割の大きさが100〜500トークン(既定500)、includeAncestorHeadings が既定で無効、分割の設定がデータストアの作成後に切り替えられないこと | Google Cloud: Parse and chunk documents | 2026-10-09 |
部品の採否と代替品の同等性の評価は、各社の手順に沿って品質保証と設計が行ってください。 本記事は Google Cloud の公式ドキュメントで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1226)についてのご相談はこちらから。
