自動車リサイクル部品の販売会社が、整備工場からのばらばらな書き方の問い合わせを車の型式と部品の条件に読み替え、在庫の中古部品から適合の候補を根拠付きで返す
整備工場から届く書き方のばらばらな問い合わせを、車の型式・年式・部品名・左右・色・仕様の条件に読み替え、在庫の中古部品から候補を探します。取り外し元の車の情報と照らした適合の根拠を、在庫の記録のまま添えて返します。
- 生成AI
- Azure OpenAI Service/ChatGPT/Claude
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- その他/小売
- 対象部門
- 営業
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/情報が見つからない/確認ミスが多い
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/検索時間短縮/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当者が問い合わせを受け、車名・型式・年式・部品名・左右・色をメモする
- 在庫の管理の仕組みを車名と部品名で引き、出なければ部品名を言い換えて引き直す
- 出てきた部品の取り外し元の車の型式・年式・類別区分番号を、問い合わせの車と見比べる
- 左右・色・仕様(電動格納・ウインカー・カメラ・コネクタのピン数など)を、記録と写真で確かめる
- 合いそうな部品の品質のランクと価格を伝える。分からない項目があれば工場に聞き返す
- 在庫が無ければ「ありません」と答える
- 人担当者が問い合わせの本文か電話のメモを画面に貼り、検索のボタンを押す
- 自動生成AIが問い合わせから、車名・型式・年式・類別区分番号・部品名・左右・色・仕様を書かれたまま取り出す
- 自動OpenSearch が在庫の索引を、部品名の言い換えと型式の表記ゆれをそろえて引く
- 自動候補ごとに、取り外し元の車の型式・年式・類別区分番号・左右・カラーコード・仕様を規則で照らし、「一致」「不一致」「記録なし」を付ける
- 自動一致の項目の組み合わせで、適合の根拠の段階(A・B・C)を規則で付ける
- 自動生成AIが、候補を在庫の記録のまま並べ、聞き返すべき項目を書いた回答の下書きを作る
- 人担当者が候補と根拠を確かめ、記録なしの項目は写真か現物で確かめて回答する
各工程の詳しい説明を読む
- 担当者が問い合わせを受け、車名・型式・年式・部品名・左右・色をメモする
- 在庫の管理の仕組みを車名と部品名で引き、出なければ部品名を言い換えて引き直す
- 出てきた部品の取り外し元の車の型式・年式・類別区分番号を、問い合わせの車と見比べる
- 左右・色・仕様(電動格納・ウインカー・カメラ・コネクタのピン数など)を、記録と写真で確かめる
- 合いそうな部品の品質のランクと価格を伝える。分からない項目があれば工場に聞き返す
- 在庫が無ければ「ありません」と答える
(a)言い換えと書き方の違いで在庫が引けない。 2番目で、「オルタ」「オルタネーター」「ダイナモ」、「セルモーター」「スターター」のような言い換えを思いつかなければ出てきません。型式も「DBA-ZVW30」と「ZVW30」で別のものとして扱われます。担当者が言い換えを何通り試したかで、答えが変わります。
(b)左右・色・仕様の取り違え。 4番目で、「運転席側」を右と決めて探す、色名からカラーコードを思い込みで決める、カメラ付きのミラーにカメラ無しを出す。届いてから付かないと分かり、返品と再送になります。
(c)一致した根拠が残らない。 5番目で「付きます」と答えた根拠は、担当者の頭の中だけです。返品になったとき、何を見て付くと判断したのかが分かりません。
(d)電話が途切れない。 1件12分の問い合わせが1日に30件近く来ます。調べているあいだに次の電話が鳴り、折り返しが遅れます。
- 【人】 担当者が問い合わせの本文か電話のメモを画面に貼り、検索のボタンを押す
- 【自動】 生成AIが問い合わせから、車名・型式・年式・類別区分番号・部品名・左右・色・仕様を書かれたまま取り出す
- 【自動】 OpenSearch が在庫の索引を、部品名の言い換えと型式の表記ゆれをそろえて引く
- 【自動】 候補ごとに、取り外し元の車の型式・年式・類別区分番号・左右・カラーコード・仕様を規則で照らし、「一致」「不一致」「記録なし」を付ける
- 【自動】 一致の項目の組み合わせで、適合の根拠の段階(A・B・C)を規則で付ける
- 【自動】 生成AIが、候補を在庫の記録のまま並べ、聞き返すべき項目を書いた回答の下書きを作る
- 【人】 担当者が候補と根拠を確かめ、記録なしの項目は写真か現物で確かめて回答する
4番目と5番目を規則で行うのは、「付くかどうか」の根拠を誰が見ても同じにするためです。 型式と類別区分番号が一致すれば A、型式と年式だけが一致すれば B、部品名と車名だけが合えば C。AIが「同じプリウスなので付きます」と書く余地を、最初から作りません。
6番目の「聞き返すべき項目」が、電話の往復を減らします。 類別区分番号が無いために B に留まった候補があれば、「類別区分番号をお知らせいただければ確かめられます」と下書きに書きます。
02今回想定するシステム構成
在庫の管理の仕組み(部品・取り外し元の車・ランク・価格・写真) ▼【トリガー】1時間ごとの取り込み(入庫・売約の反映) AWS Lambda ── 型式の書き方と仕様の書き方をそろえる ▼ Amazon OpenSearch Service │ 在庫の索引:部品名(kuromoji+部品名の言い換えの辞書) │ 型式(normalizer で排出ガスの記号を外す)・年式・類別区分番号 │ 左右・カラーコード・仕様・ランク・価格・販売の状態 ▼【人】担当者が問い合わせを貼る AWS Lambda ├──▶ Claude(Amazon Bedrock)── 問い合わせを条件に読み替える ├──▶ OpenSearch ── 在庫を引く → 規則で一致を照らし、根拠の段階を付ける ├──▶ Claude(Amazon Bedrock)── 記録のまま回答の下書き ▼ 担当者の画面 ──【人】確かめて回答/取置き
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(kuromoji、synonym_graph、normalizer、bool) | Azure AI Search、Vertex AI Search(Agent Search) |
| 生成AI | Claude(Amazon Bedrock の Converse API、構造化出力) | Azure OpenAI(Microsoft Foundry)、OpenAI API |
| 連携 | AWS Lambda(取り込み、読み替えと検索の呼び出し、販売の状態の照会) | AWS Step Functions |
| 保管 | Amazon S3(取り込みの写し、言い換えの辞書の元、問い合わせと候補と下書きの記録) | 社内のファイルサーバー |
在庫の管理の仕組みには、この構成から書き込みません。 取置きと売約の登録は、担当者がいつもの画面で行います。
日本語の部品名を引くには、形態素解析と文字の正規化が要ります。 AWS の公式ページでは、OpenSearch Service のドメインには Japanese(kuromoji)と ICU の解析のプラグインが全ドメインに含まれるとされています。全角と半角の混ざった型式や「R」「右」の書き方を ICU でそろえ、部品名は kuromoji で区切ります。
部品名の言い換えは、辞書のファイルとして OpenSearch Service に取り込みます。 AWS の公式ページでは、同義語などの辞書のファイルを S3 からパッケージとして取り込み、ドメインに関連付けると、synonyms_path に analyzers/<パッケージの ID> を指定して使えるとされています。担当者が「この言い方で出なかった」と気づいたら辞書に足す運用にします。
03どうやって実装するのか
処理の起点を決める
起点は2つあります。1時間ごとの在庫の取り込みと、担当者の検索のボタンです。
在庫の取り込みは、在庫の管理の仕組みから入庫・売約・取置きが変わった部品を書き出し、索引を更新します。中古部品は1点ものなので、売れた部品が候補に出続けると、そのまま「あります」と答えてしまいます。 1時間の間に売れた部品に備えて、回答の前に販売の状態だけは在庫の管理の仕組みに照会します。
検索のボタンは、担当者が問い合わせを貼るか電話のメモを打ち込んだ後に押します。FAX は担当者が読んで打ち込みます。 読み取りまで自動にすると、手書きの型式の読み違いがそのまま検索に入るためです。言い換えの辞書は週に1回更新します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせ | 工場の言葉のままの本文、または電話のメモ | 担当者が貼る・打ち込む |
| 在庫 | 管理番号、部品名(社内の標準名)、左右・前後、仕様、品質のランク、状態のメモ、価格、写真のURL、販売の状態、純正品番(あれば) | 在庫の管理の仕組み |
| 取り外し元の車 | 車名、型式、年式、類別区分番号、カラーコード、走行距離 | 在庫の管理の仕組み(部品に結び付けて記録) |
| 部品名の言い換えの表 | 社内の標準名と、工場が使う言い方(ドアミラー=サイドミラー、オルタネーター=オルタ=ダイナモなど) | 受注の担当で作る表 |
| 仕様の書き方の表 | 「電格」「電動格納」、「ウインカー付」「ターン付」などの書き方と、そろえた値 | 受注の担当で作る表 |
質を決めるのは、入庫のときの取り外し元の車の記録です。 類別区分番号が入っていない部品は、どれだけ検索を工夫しても A の根拠になりません。入庫の決まりで、型式・年式・類別区分番号・カラーコードを必ず入れることが、この構成の土台です。
工場の名前と連絡先は、生成AIに渡しません。 問い合わせの本文に工場の名前やお客さんの車のナンバーが書かれていれば、伏せてから渡します。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 部品名で合う部品 | 在庫の索引 | match(part_name。検索の分析器で言い換えの辞書を使う) |
| 型式で合う部品 | 在庫の索引 | term(model_code。normalizer で排出ガスの記号を外した値どうしで比べる) |
| 年式の幅 | 在庫の索引 | should の range(year。前後2年の幅で点数を上げる) |
| 類別区分番号・カラーコード・左右・仕様 | 在庫の索引 | 検索では絞らず、取り出してから規則で照らす |
| 売れていないもの | 在庫の索引 | filter の term(stage: available) |
型式の表記ゆれは、normalizer でそろえます。 OpenSearch の公式のドキュメントでは、normalizer は分析器に似ていますが1つのトークンだけを出すもので、keyword の項目での一致の検索に使え、pattern_replace や mapping の文字のフィルタ、lowercase・uppercase・cjk_width などのトークンのフィルタを使えます。一方で、同義語の置き換えはできないとされています。型式は pattern_replace で先頭の排出ガスの記号とハイフンを外し、cjk_width と uppercase で全角と小文字をそろえます。 索引の値にも問い合わせの値にも同じ normalizer がかかるので、「dba-zvw30」と「ZVW30」が同じ値になります。
類別区分番号と左右とカラーコードは、検索の条件で絞りません。 「右」で絞ると、左右の記録が空の部品が消えます。記録が空の部品は、写真を見れば右かもしれません。 候補として残し、規則で「記録なし」を付けて担当者に回します。
PUT /parts
{
"settings": { "analysis": {
"char_filter": {
"strip_prefix": { "type": "pattern_replace",
"pattern": "^[A-Za-z0-9]{2,4}-", "replacement": "" } },
"normalizer": {
"model_norm": { "type": "custom", "char_filter": ["strip_prefix"],
"filter": ["cjk_width", "uppercase"] } },
"filter": {
"part_syn": { "type": "synonym_graph",
"synonyms_path": "analyzers/F111111111", "updateable": true } },
"analyzer": {
"ja_index": { "type": "custom", "char_filter": ["icu_normalizer"],
"tokenizer": "kuromoji_tokenizer" },
"ja_search": { "type": "custom", "char_filter": ["icu_normalizer"],
"tokenizer": "kuromoji_tokenizer", "filter": ["part_syn"] } } } },
"mappings": { "properties": {
"part_name": { "type": "text", "analyzer": "ja_index", "search_analyzer": "ja_search" },
"model_code": { "type": "keyword", "normalizer": "model_norm" },
"year": { "type": "integer" },
"class_no": { "type": "keyword" },
"color_code": { "type": "keyword" },
"side": { "type": "keyword" },
"options": { "type": "keyword" },
"stage": { "type": "keyword" } } }
}
言い換えの辞書は、検索の分析器だけに入れます。 OpenSearch の公式のドキュメントでは、synonym_graph は複数の語からなる同義語を扱えるもので、検索の分析器でだけ使うよう書かれています。AWS の公式ページでは、updateable: true は検索の分析器にだけ使え、パッケージの更新を適用すると索引が自動で更新されるとされています。週1回の辞書の更新で、索引を作り直さずに済みます。
AIへ渡す前に整形する
- 左右・前後の書き方をそろえる … 在庫の記録の「右」「R」「RH」を
side: rightにし、「運転席側」「助手席側」と書かれた記録は書かれたままside_rawに残してsideを入れません - 仕様の書き方をそろえる … 仕様の書き方の表で「電格」「電動格納」を
power_foldに、「カメラ付」をcameraにします。書かれていなければ値を入れません - 年式を西暦にする … 「H22」「平成22年」を2010にします
- カラーコードを文字のまま持つ … 先頭の0を落とさないよう、数値ではなく文字で持ちます
- 問い合わせから個人の情報を外す … 工場の名前、お客さんの名前、車のナンバーは、Claude に渡す前に伏せます
1番目で「運転席側」を右に直さないことが大事です。 在庫の取り外し元が輸入車なら、運転席側は左のことがあります。取り外し元の車の情報を見ずに置き換えると、記録の段階で左右が入れ替わります。
2番目で、空の仕様に「無し」を入れないでください。 カメラの有無が書かれていない部品を camera: no にすると、カメラ付きの問い合わせに「カメラ無し」と答えることになります。
AIに処理させる
AIの仕事は2つです。 問い合わせを探す条件に読み替えることと、規則で照らした候補を在庫の記録のまま並べて回答の下書きを書くことです。
| させること | させないこと |
|---|---|
| 車名・型式・年式・類別区分番号・部品名・左右・色・仕様を書かれたまま取り出す | 書かれていない型式や年式を車名から補うこと |
| 部品名の別の言い方の候補を挙げる | 「運転席側」を右・左に置き換えること |
| 色名は色名のまま、カラーコードはコードのまま分けて写す | 色名からカラーコードを決めること |
| 候補を在庫の記録のまま並べ、記録なしの項目を書く | 「付きます」「適合します」と言い切ること |
| 根拠の段階を上げるために聞き返す項目を書く | 部品の状態を評価すること、値引きに触れること |
「付きますと言い切らない」が、この構成でいちばん大事な線です。 取り外し元の車と型式が同じでも、年の途中の仕様の変更で、コネクタの形や取付けの穴が変わることがあります。 根拠の段階を示し、最後に確かめるのは担当者と工場です。
指示内容を固定する
1回目(問い合わせの読み替え)の指示です。
あなたは自動車リサイクル部品の販売会社で、整備工場からの在庫の問い合わせを整理する立場です。
【問い合わせ】から、在庫を探すための条件を取り出してください。
【取り出すもの】
- maker / car_name / model_code / year_raw(書かれたまま)/ class_no
- part_name: 部品名。書かれたまま。part_name_variants に別の言い方の候補
- side_raw: 左右・前後の書き方。書かれたまま(「右」「運転席側」など)
- color_name / color_code: 色名とカラーコードを分けて、書かれたまま
- options: 仕様(電動格納、ウインカー、カメラ、ピン数など)。書かれたまま
- missing: 書かれていない項目の名前
【厳守事項】
- 書かれていない型式・年式・類別区分番号を、車名から補わないでください。
- 「運転席側」「助手席側」を右・左に置き換えないでください。
- 色名からカラーコードを決めないでください。
- 部品名を社内の標準名に直さず、そのまま写してください。
- 工場の名前、お客さんの名前、車のナンバーは写さないでください。
【問い合わせ】{inquiry_text}
2回目(回答の下書き)の指示です。
あなたは自動車リサイクル部品の販売会社で、整備工場への回答の下書きを作る立場です。
【候補】は在庫の記録と、取り外し元の車との照らし合わせの結果と、根拠の段階です。
【書き方】
- 候補ごとに、管理番号・部品名・左右・仕様・品質のランク・価格を、在庫の記録のまま書いてください。
- 根拠の段階(A・B・C)と、一致した項目・記録なしの項目を書いてください。
- 記録なしの項目は「写真・現物で確認のうえご連絡します」と書いてください。
- 根拠の段階を上げるために工場に聞くべき項目があれば、最後にまとめて書いてください。
【厳守事項】
- 「付きます」「適合します」「間違いありません」と書かないでください。
- 在庫の記録に無い仕様・状態を書かないでください。
- 部品の状態を「きれい」「美品」などと評価しないでください。
- 値引きや納期の約束を書かないでください。
【問い合わせの条件】{conditions}
【候補】{candidates}
「記録なしの項目は確認のうえご連絡します、と書く」を明記しないと、AIは空の項目を飛ばして書きます。 工場は書かれていない項目を「問い合わせのとおり」と読みます。飛ばされたカメラの有無が、届いてからの返品になります。
出力形式を固定する
Bedrock の Converse API の outputConfig.textFormat に JSON スキーマを渡し、2回目は次の形で受け取ります。
{
"inquiry_no": "",
"candidates": [
{ "stock_no": "",
"evidence_level": "A | B | C",
"match": { "model_code": "match | mismatch | not_recorded",
"class_no": "match | mismatch | not_recorded",
"side": "match | mismatch | not_recorded",
"color_code": "match | mismatch | not_recorded",
"options": "match | mismatch | not_recorded" },
"listed": { "part_name": "", "side": "", "options": "", "grade": "", "price": "" } }
],
"ask_back": [""],
"draft": ""
}
AWS の公式ページでは、outputConfig.textFormat に JSON スキーマを渡すと応答がスキーマに沿い、enum が使えます。すべての object に additionalProperties: false が要り、数値の minimum・maximum には対応していません。evidence_level と match の値は Lambda の規則の結果をそのまま渡して写させ、AIには決めさせません。
| 根拠の段階 | 規則 |
|---|---|
| A | 型式と類別区分番号が一致し、左右と仕様に不一致が無い |
| B | 型式が一致し、年式が前後2年以内。類別区分番号は記録なしか問い合わせに無い |
| C | 車名と部品名だけが合う。型式は記録なしか問い合わせに無い |
| 外す | 型式・左右・仕様のどれかが不一致 |
1つ目の理由は、listed を在庫の記録と照合できることです。 listed の値が記録と同じかを Lambda で確かめ、違えば下書きを出さずに作り直します。 記録に無い仕様を書いた下書きは、ここで止まります。
2つ目は、ask_back で聞き返しが1回で済むことです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 在庫の管理の仕組み | 変わった部品の書き出し(1時間ごと)、販売の状態の照会(読み取りのみ) | 在庫の索引の元、売約の確かめ |
| Amazon OpenSearch Service | Lambda からの登録・検索 | 在庫の索引、言い換えの辞書のパッケージ |
| Amazon Bedrock | Converse API(Claude) | 読み替えと下書き |
| 担当者の画面 | 社内の画面 | 問い合わせの貼り付け、候補と根拠と写真、下書き |
言い換えの辞書のパッケージは、S3 のファイルを更新してから適用します。 AWS の公式ページでは、S3 に新しい版を置いただけではパッケージは更新されず、OpenSearch Service の側でパッケージを更新し、ドメインに適用する必要があるとされています。週1回の更新は、この2つを Lambda から行います。
人が確認する
- 読み替えを見る … 型式・年式・左右・色が、問い合わせのとおりに取り出されているかを確かめます
- 記録なしの項目を確かめる …
not_recordedの項目だけ、写真か現物で確かめます - 「運転席側」の問い合わせは車の向きを確かめる … 問い合わせの車と取り外し元の車が、どちらも右ハンドルかを確かめてから左右を決めます
- 下書きを直して回答する … 価格と取置きの案内は、担当者が書き足します
- 根拠の段階が C の候補は、工場に聞き返してから出す … 型式が分からないまま出しません
3番目を省かないでください。 輸入車の部品を国産車と同じ感覚で左右を決めると、根拠の段階が A でも、反対側の部品が届きます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 候補が0件 | 部品名の別の言い方で引き直し、それでも無ければ年式の幅を広げた件数を示す |
| 型式が問い合わせに無い | 根拠の段階は C までとし、型式を聞き返す項目を下書きに入れる |
| 候補が多すぎる(20件を超える) | 根拠の段階とランクで並べた上位10件を出し、残りは件数だけ出す |
| 候補が売約済み・取置き中 | 回答の前の照会で売約済みは外し、取置き中は印を付けて残す |
| 言い換えの辞書に無い部品名 | 「辞書に無い部品名」と出し、担当者が標準名を選んで辞書の候補に足す |
| 左右の記録が「運転席側」で残っている | side を記録なしとし、写真で確かめる |
| 構造化出力が返らない | 候補の一覧と根拠の段階だけを出し、下書きは担当者が書く |
5行目の記録が、言い換えの辞書を育てる材料になります。
記録を残す
- 問い合わせごとの、問い合わせの文(個人の情報を伏せたもの)、1回目の JSON、担当者が直した箇所
- 候補と照らし合わせの結果、根拠の段階、2回目の JSON と照合の結果
- 担当者が写真・現物で確かめて直した項目
- 回答した部品の管理番号と、その後の返品の有無と理由
返品の理由は、根拠の段階の規則を直す材料にします。 根拠の段階が A なのに返品になった部品が続くなら、型式と類別区分番号だけでは見分けられない仕様の違いがあります。 その仕様を照らす項目に足します。
04実装レベルの3段階
半自動化で、1件12分が8分程度になります。 引き直しはほぼなくなりますが、取り外し元の車との見比べと、回答を書く作業が残ります。本格構成で5分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化を1か月使うと、どの言い方で出なかったか、どの項目が記録なしになりやすいかが残ります。言い換えの辞書と入庫の決まりをそこで直してから本格構成に進むほうが、根拠の段階が A になる候補が増えます。
05工数削減シミュレーション
導入後 600件 × 5分 ÷ 60 = 50 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 使用済みの車を解体して部品を取り外し、数万点の中古部品の在庫を持って整備工場・鈑金工場に販売している会社。在庫は取り外し元の車の型式・年式・色とあわせて管理しているのに、問い合わせの書き方が工場ごとにばらばらで、部品名の言い換えや型式の書き方の違いで在庫を引き直すのに時間がかかっている場合。左右・色・仕様の取り違えによる返品が毎月出ている場合。AWS を使える担当か委託先がいる場合。
- 在庫が数千点で、担当者が棚の部品を把握している場合。在庫の記録に取り外し元の車の型式や年式が入っておらず、部品名と価格しか無い場合(先に入庫の記録の決まりを作ります)。新品の部品だけを扱い、純正品番で在庫を引ける場合。なお、その部品が問い合わせの車に付くかの最終的な確認、部品の状態の評価、価格の決定は、この構成では代替できません。在庫の記録から問い合わせに近い部品を探し、記録のまま並べるまでです。
07最小構成で試す方法
- 先月の問い合わせから30件を選ぶ(回答できたもの、在庫が無かったもの、返品になったものを混ぜる)
- それぞれについて、実際に回答した部品の管理番号と、返品の有無を書き出す
- 在庫を表計算に書き出し、型式の列に排出ガスの記号を外した列を手で足す
- 30件の問い合わせを手元のAIサービスに貼り、「車名・型式・年式・類別区分番号・部品名・左右・色・仕様を書かれたまま取り出し、部品名の別の言い方を挙げてください。運転席側を右や左に置き換えないでください」と指示する
- 取り出した条件で表計算を引き、実際に回答した部品が見つかるかを見る
- 返品になった問い合わせについて、取り外し元の車の記録のどの項目を照らしていれば止められたかを見る
6番目が、規則の表を作る材料になります。 返品の多くは、記録にあったのに照らさなかった項目か、記録に無かった項目のどちらかです。
| 出てきた内容 | 判断 |
|---|---|
| 当時の回答の部品が見つかり、在庫が無かったものの一部も見つかった | OpenSearch の索引に進む |
| 運転席側を右に置き換えた・色名からコードを決めた | 指示の書き方で直る。構成は有効 |
| 在庫の記録に類別区分番号やカラーコードが無い部品が多い | 入庫の記録の決まりが先 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 部品名の言い方で在庫が出ない | 言い換えの辞書を検索の分析器に入れ、辞書に無い部品名を記録する |
| 排出ガスの記号の有無で型式が一致しない | normalizer の pattern_replace で記号を外し、索引と問い合わせの両方にかける |
| 「右」で絞って左右の記録が空の部品が消える | 左右・類別区分番号・色は絞らず、規則で not_recorded を付ける |
| 空の仕様を「無し」にしてしまう | 書かれていなければ値を入れない |
| 「運転席側」を右に置き換える | 書かれたまま残し、車の向きを担当者が確かめる |
| 売れた部品を「あります」と答える | 回答の前に販売の状態を照会する |
| AIが「付きます」と書く | 指示で禁じ、根拠の段階を規則で付けて写させる |
上の3行は、検索の側の失敗のほとんどです。 4行目と5行目は、書かれていないことや書き方の違いを、事実に置き換えてしまう失敗で、返品に直結します。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 整備工場からの問い合わせ(工場の名前、お客さんの車の情報)、在庫の記録、取り外し元の車の情報です。問い合わせには、お客さんの名前や車のナンバーが書かれていることがあります。
- 問い合わせから個人の情報を外す … 工場の名前、お客さんの名前、車のナンバーは、Claude に渡す前に伏せます
- 取り外し元の車の持ち主の情報を索引に入れない … 在庫の索引に入れるのは車の型式や年式までで、元の持ち主の情報は入れません
- 適合を言い切らない … 回答は根拠の段階と記録のままの項目で、「付きます」とは書きません
- 状態と価格はAIに評価させない … 品質のランクと価格は在庫の記録のままです
- 辞書の手入れの担当を決める … 言い換えの辞書に誤った言い換えが入ると、違う部品が候補に出ます。足す前に担当者が確かめます
- 索引への接続を限る … OpenSearch のドメインには、Lambda と受注の担当だけが接続できるようにします
誤りが起きた場合のリスクは、在庫があるのに「ありません」と答えること、付かない部品を付くものとして出して返品になること、お客さんの情報が外へ出ることの3つです。 言い換えと表記ゆれをそろえた索引、根拠の段階の規則、個人の情報を伏せることの3つで防ぎます。
10まず何から始めるか
1週目:在庫の記録を見る
在庫の管理の仕組みから全在庫を書き出し、類別区分番号・カラーコード・左右・仕様の欄が空の部品の数を見ます。空の多い欄から、入庫の決まりを直します。
2週目:30件で試す
第8章のとおり、先月の問い合わせ30件で、当時の回答の部品が見つかるか、返品を止められたかを見ます。運転席側を置き換えていないか、色名からコードを決めていないかを最優先で見ます。
3週目:表を作る
問い合わせの多い部品から、部品名の言い換えの表と仕様の書き方の表を作ります。根拠の段階の規則を、ベテランの担当と決めます。
4週目:索引を作る
OpenSearch に在庫の索引を作り、担当者が言い換えと型式の表記ゆれを気にせず引けるようにします。この時点では、問い合わせの読み替えと下書きは使いません。
2か月目: 読み替えと、取り外し元の車との照らし合わせ、根拠の段階、下書きを足します。3か月目以降: 根拠の段階ごとの件数、記録なしで写真を見た件数、返品の件数と理由を毎月数えます。新しい担当者の返品の件数が、ベテランと同じくらいまで減った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| OpenSearch Service のドメインに Japanese(kuromoji)と ICU の解析のプラグインが全ドメインに含まれること | AWS: Plugins by engine version in Amazon OpenSearch Service | 2026-10-26 |
辞書のファイルを S3 からパッケージとして取り込み、synonyms_path に analyzers/<ID> で使えること。updateable: true が検索の分析器にだけ使え、更新の適用で索引が自動で更新されること。S3 に新しい版を置いただけでは更新されないこと | AWS: Importing and managing packages in Amazon OpenSearch Service | 2026-10-26 |
normalizer が1つのトークンだけを出し、keyword の一致の検索に使えること。pattern_replace・mapping・lowercase・uppercase・cjk_width などが使え、同義語の置き換えはできないこと | OpenSearch: Normalizers | 2026-10-26 |
synonym_graph が複数の語の同義語を扱い、検索の分析器でだけ使うべきこと | OpenSearch: Synonym graph token filter | 2026-10-26 |
bool の filter が点数に関わらない絞り込みで、should が点数を上げること | OpenSearch: Boolean query | 2026-10-26 |
Converse API の outputConfig.textFormat で JSON スキーマに沿った出力が得られ、enum が使えること。additionalProperties: false が要ること。数値の minimum・maximum に対応しないこと | AWS: Structured outputs(Amazon Bedrock) | 2026-10-26 |
その部品が問い合わせの車に付くかの最終的な確認、部品の状態の評価、価格は、担当者と整備工場が判断してください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1852)についてのご相談はこちらから。
