紙の代理店が、印刷会社・製本会社からの銘柄・連量・寸法の問い合わせを OpenSearch で引き、在庫と代わりの紙を違いを添えて返す
印刷会社・製本会社から届く「この紙はありますか」「無ければ代わりは」という問い合わせを、銘柄・紙の種類・連量と判・目・寸法・枚数に読み替え、在庫を探します。欠品のときは、代わりの紙の候補を違いを添えて並べます。
- 生成AI
- Azure OpenAI Service/ChatGPT/Claude
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- その他/商社/製造
- 対象部門
- 営業
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/検索時間短縮/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 営業の担当が問い合わせを受け、銘柄・連量・判・目・寸法・枚数・納期をメモする
- 在庫の管理の仕組みを銘柄で引く。略称で書かれていれば正式名を思い出して引き直す
- 判が違う連量で書かれていれば、頭の中か換算表で直してから品目を探す
- 倉庫ごとの在庫と、引き当て済みの数を見て、出せる数を確かめる
- 欠品なら、同じ種類で厚さの近い銘柄を思い浮かべ、1つずつ在庫を引く
- 在庫と納期、代わりの紙の候補を回答する
- 人営業の担当が問い合わせの本文か電話のメモを画面に貼り、検索のボタンを押す(受発注の画面からのものは自動で動く)
- 自動生成AIが問い合わせから、銘柄・紙の種類・連量・判・目・寸法・枚数・納期を書かれたまま取り出す
- 自動Lambda が連量と判から米坪を計算し、目と判の書き方をそろえる
- 自動OpenSearch が商品の索引を、銘柄の略称をそろえて引き、在庫のある品目を返す
- 自動欠品のときは、同じ種類・同じ目・同じ判で、米坪の近いものほど上に来るように代わりの紙を引く
- 自動在庫の管理の仕組みに、候補の品目の出せる数を照会する
- 自動生成AIが、候補を記録のまま並べ、元の紙との違いと聞き返すべき項目を書いた回答の下書きを作る
- 人営業の担当が候補と違いを確かめ、代わりの紙は印刷会社と相談して回答する
各工程の詳しい説明を読む
- 営業の担当が問い合わせを受け、銘柄・連量・判・目・寸法・枚数・納期をメモする
- 在庫の管理の仕組みを銘柄で引く。略称で書かれていれば正式名を思い出して引き直す
- 判が違う連量で書かれていれば、頭の中か換算表で直してから品目を探す
- 倉庫ごとの在庫と、引き当て済みの数を見て、出せる数を確かめる
- 欠品なら、同じ種類で厚さの近い銘柄を思い浮かべ、1つずつ在庫を引く
- 在庫と納期、代わりの紙の候補を回答する
(a)略称と判の違いで在庫が引けない。 2番目と3番目で、略称の正式名を思い出せない、四六判の連量を菊判の品目で探す、という引き違いが起きます。在庫があるのに「ありません」と答えることになります。
(b)目の取り違え。 縦目と横目は、「T目」「Y目」「タテ」「ヨコ」「縦」「横」と書き方がばらばらです。製本では紙の目が仕上がりに関わるので、目を取り違えた紙を出すと刷り直しになりかねません。
(c)代わりの紙がベテラン頼み。 5番目は、銘柄の特徴を覚えている営業にしかできません。ベテランが外回りの日は、代わりの紙の相談が翌日に回ります。
(d)電話が途切れない。 1件6分の問い合わせが1日に50件を超えます。調べているあいだに次の電話が鳴り、折り返しが遅れます。
- 【人】 営業の担当が問い合わせの本文か電話のメモを画面に貼り、検索のボタンを押す(受発注の画面からのものは自動で動く)
- 【自動】 生成AIが問い合わせから、銘柄・紙の種類・連量・判・目・寸法・枚数・納期を書かれたまま取り出す
- 【自動】 Lambda が連量と判から米坪を計算し、目と判の書き方をそろえる
- 【自動】 OpenSearch が商品の索引を、銘柄の略称をそろえて引き、在庫のある品目を返す
- 【自動】 欠品のときは、同じ種類・同じ目・同じ判で、米坪の近いものほど上に来るように代わりの紙を引く
- 【自動】 在庫の管理の仕組みに、候補の品目の出せる数を照会する
- 【自動】 生成AIが、候補を記録のまま並べ、元の紙との違いと聞き返すべき項目を書いた回答の下書きを作る
- 【人】 営業の担当が候補と違いを確かめ、代わりの紙は印刷会社と相談して回答する
3番目の米坪の計算をAIにさせないのは、計算の誤りが見えにくいからです。 連量と判の面積からの計算は、Lambda の式で決まった答えが出ます。AIが計算すると、桁や判の取り違えが文の中に紛れます。
5番目で「近いほど上」にするのは、ちょうど同じ米坪の紙が無いことのほうが多いからです。 米坪で絞り込むと、2g違うだけの紙が候補から消えます。近さで並べ、違いを数字で示して、使えるかは人が決めます。
02今回想定するシステム構成
販売と在庫の管理の仕組み(品目・銘柄・種類・連量・判・目・寸法・倉庫ごとの在庫) ▼【トリガー】1時間ごとの取り込み(品目の追加・在庫の変化) AWS Lambda ── 連量と判から米坪を計算し、目・判の書き方をそろえる ▼ Amazon OpenSearch Service │ 商品の索引:銘柄(kuromoji+略称の辞書)・種類・米坪・判・目・寸法 │ 在庫の有無・倉庫・製紙会社 ▼【人】営業の担当が問い合わせを貼る AWS Lambda ├──▶ Claude(Amazon Bedrock)── 問い合わせを条件に読み替える ├──▶ 米坪の計算 ──▶ OpenSearch ── 在庫を引く/代わりの紙を米坪の近さで引く ├──▶ 在庫の管理の仕組み ── 出せる数の照会 ├──▶ Claude(Amazon Bedrock)── 記録のまま回答の下書き ▼ 営業の画面 ──【人】確かめて回答/引き当て
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(kuromoji、synonym_graph、function_score の gauss) | 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 の解析のプラグインが全ドメインに含まれるとされています。銘柄名は kuromoji で区切り、全角と半角の混ざった表記は ICU でそろえます。
銘柄の略称は、辞書のファイルとして取り込みます。 AWS の公式ページでは、同義語などの辞書のファイルを S3 からパッケージとして取り込み、ドメインに関連付けると、synonyms_path に analyzers/<パッケージの ID> を指定して使えるとされています。営業が「この略称で出なかった」と気づいたら辞書に足す運用にします。
03どうやって実装するのか
処理の起点を決める
起点は2つあります。1時間ごとの商品と在庫の取り込みと、営業の担当の検索のボタンです。
取り込みは、販売と在庫の管理の仕組みから、品目の追加と在庫の変化を書き出して索引を更新します。索引の在庫は「あるか無いか」の目安にだけ使い、回答に書く数は必ず照会で取り直します。 1時間の間に別の営業が引き当てた分は、索引には入っていないからです。
検索のボタンは、営業の担当が問い合わせを貼るか電話のメモを打ち込んだ後に押します。受発注の画面から来た問い合わせは、品目の番号が付いていればそのまま照会し、自由記述なら読み替えから動かします。 FAX は担当者が読んで打ち込みます。略称の辞書は週に1回更新します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせ | 得意先の言葉のままの本文、または電話のメモ | 営業が貼る・打ち込む/受発注の画面 |
| 品目 | 品目の番号、銘柄、製紙会社、紙の種類(コート・マット・上質など)、連量、判、目、寸法、包装の枚数 | 販売と在庫の管理の仕組み |
| 在庫 | 倉庫ごとの在庫、引き当て済みの数、入荷の予定 | 販売と在庫の管理の仕組み(照会) |
| 判の寸法の表 | 四六判・菊判・A判・B判などの寸法と面積 | 営業で作る表 |
| 略称の辞書 | 銘柄の正式名と、得意先が使う略称・旧名 | 営業で作る表 |
| 目と判の書き方の表 | 「T目」「タテ」「縦」、「Y目」「ヨコ」「横」などの書き方と、そろえた値 | 営業で作る表 |
質を決めるのは、判の寸法の表です。 米坪の計算はこの表の面積で決まります。断裁した寸法の品目は、判ではなく実際の寸法の面積で計算します。 表に無い判の品目は、米坪を空のまま残します。
得意先の名前と担当者の名前は、生成AIに渡しません。 問い合わせの本文に書かれていれば、伏せてから渡します。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 銘柄で合う品目 | 商品の索引 | match(brand。検索の分析器で略称の辞書を使う) |
| 判・目・寸法の合う品目 | 商品の索引 | filter の term(size_class・grain) |
| 米坪の近い代わりの紙 | 商品の索引 | function_score の gauss(basis_weight。元の紙の米坪を中心に) |
| 同じ種類の紙 | 商品の索引 | filter の term(paper_type) |
| 米坪の記録がある品目 | 商品の索引 | filter の exists(basis_weight) |
代わりの紙は function_score の gauss で米坪の近さを点数にします。 OpenSearch の公式のドキュメントでは、減衰の関数は origin からの距離で点数を下げ、offset の内側は点数1、scale+offset の距離で decay(既定0.5)の点数になるとされています。元の紙の米坪を origin に、±2g を offset に、8g を scale にすると、±2g は同じ扱い、±10g で点数が半分になります。
ここで大事なのが、exists の絞り込みです。 公式のドキュメントでは、減衰の関数は項目の無い文書に点数1を返すとされています。米坪が空の品目は、元の紙とちょうど同じ米坪の品目と同じ点数で上位に並びます。exists で米坪のある品目に絞り、空の品目は別に「米坪の記録なし」として出します。
GET /papers/_search
{
"size": 10,
"query": { "function_score": {
"query": { "bool": {
"filter": [
{ "term": { "paper_type": "matte" } },
{ "term": { "grain": "T" } },
{ "term": { "size_class": "shiroku" } },
{ "term": { "in_stock": true } },
{ "exists": { "field": "basis_weight" } } ],
"must_not": [ { "term": { "item_no": "元の品目の番号" } } ] } },
"functions": [
{ "gauss": { "basis_weight": { "origin": 104.7, "offset": 2, "scale": 8, "decay": 0.5 } } } ],
"boost_mode": "replace" } }
}
判・目・種類・在庫は filter に置きます。 点数に関わらない絞り込みなので、米坪の近さの順をくずしません。目を絞り込みに入れるのは、目の違う紙を「近い紙」として上に出さないためです。 目の違う紙も見たいという得意先には、目の条件を外した2回目の検索を別に示し、画面で分けて並べます。
boost_mode は replace にします。 公式のドキュメントでは、boost_mode の既定は multiply で、replace にすると問い合わせの点数を無視して関数の点数だけを使うとされています。絞り込みだけの問い合わせでは問い合わせの点数に意味が無いので、米坪の近さだけで並べます。
AIへ渡す前に整形する
- 米坪を計算する … 品目の連量と判の面積から、米坪=連量÷(面積×1,000枚)で計算し、小数1桁で持ちます
- 判と目をそろえる … 「四六」「4/6」「46判」を
shiroku、「T目」「タテ」「縦目」をTにします - 元の米坪を残す … 製紙会社が米坪を示している銘柄は、その値を
basis_weight_makerに残し、計算の値と並べます - 板紙を分ける … 五條製紙のページでは、板紙の1連は100枚で、板紙連量=米坪×面積×100枚とされています。板紙の品目は洋紙と別の式で計算します
- 空の値を空のまま持つ … 目や寸法が品目に無いものは、値を入れずに残します
1番目の計算の例です。 四六判(面積0.860㎡)の110kgは、110÷(0.860×1,000)で約127.9g/㎡、菊判(面積0.597㎡)の76.5kgは、76.5÷(0.597×1,000)で約128.1g/㎡です。連量の数字は110と76.5で大きく違いますが、米坪にすれば0.2gの差で、同じ厚さの紙として引けます。 問い合わせの側も同じ式で米坪に直してから引きます。
3番目で計算の値と製紙会社の値を並べるのは、ずれを見るためです。 判の面積を小数3桁に丸めると、計算の米坪は製紙会社の示す値と少しずれます。ずれが大きい品目は、判の寸法の表か品目の記録の誤りを疑います。
4番目を忘れると、板紙の米坪が10分の1になります。 洋紙の式で板紙を計算すると、厚い板紙が薄い洋紙の代わりの候補に出ます。
AIに処理させる
AIの仕事は2つです。 問い合わせを探す条件に読み替えることと、候補を記録のまま並べて違いを書いた回答の下書きを作ることです。
| させること | させないこと |
|---|---|
| 銘柄・種類・連量・判・目・寸法・枚数・納期を書かれたまま取り出す | 書かれていない判や目を、連量の数字から推し量ること |
| 略称は略称のまま写す | 連量から米坪を計算すること |
| 候補を記録のまま並べ、米坪の差・目・判・在庫の倉庫を書く | 代わりの紙が「使えます」「同等です」と言うこと |
| 聞き返すべき項目をまとめる | 紙の風合い・印刷の仕上がりを評すること、価格と納期を約束すること |
「同等です」と言わせないのが、この構成でいちばん大事な線です。 米坪が同じでも、紙厚・白さ・表面の加工は銘柄で違います。印刷会社は「同等」と言われた紙で刷り、仕上がりが違えば代理店に戻ってきます。 違いを数字で示し、判断は印刷会社に委ねます。
判を連量から推し量らせないのも同じ理由です。 「110kg」と書かれていれば四六判のことが多いですが、菊判の110kgという紙もあります。 判が無ければ聞き返します。
指示内容を固定する
1回目(問い合わせの読み替え)の指示です。
あなたは紙の代理店で、印刷会社・製本会社からの問い合わせを整理する立場です。
【問い合わせ】から、在庫を探すための条件を取り出してください。
【取り出すもの】
- brand: 銘柄。書かれたまま(略称でもそのまま)
- paper_type: 紙の種類(コート・マット・上質など)。書かれたまま
- weight_raw: 連量・米坪の数字と単位。書かれたまま(「110kg」「128g」など)
- size_raw: 判・寸法。書かれたまま
- grain_raw: 目。書かれたまま(「T目」「タテ」など)
- quantity / due: 枚数・連数と納期。書かれたまま
- want_alternative: 代わりの紙を求めているか(yes / no / unknown)
- missing: 書かれていない項目の名前
【厳守事項】
- 書かれていない判・目を、連量の数字から推し量らないでください。
- 連量を米坪に計算しないでください。数字は書かれたまま写してください。
- 略称を正式名に直さないでください。
- 得意先の会社名・人の名前は写さないでください。
【問い合わせ】{inquiry_text}
2回目(回答の下書き)の指示です。
あなたは紙の代理店で、得意先への回答の下書きを作る立場です。
【候補】は商品の記録と、元の紙との違い(diff)と、照会した在庫の数です。
【書き方】
- 在庫のある品目は、銘柄・連量と判・目・寸法・出せる数を記録のまま書いてください。
- 代わりの紙は、元の紙との違い(米坪の差、目、判)を diff のまま書いてください。
- 代わりの紙には「印刷・加工への適否はご確認ください」と添えてください。
- 聞き返す項目があれば、最後にまとめて書いてください。
【厳守事項】
- 「同等です」「代わりに使えます」「問題ありません」と書かないでください。
- 紙の風合い・白さ・仕上がりについて書かないでください。
- 記録に無い数字を書かないでください。
- 価格・値引き・納期の約束を書かないでください。
【問い合わせの条件】{conditions}
【候補】{candidates}
「印刷・加工への適否はご確認ください」を添えさせないと、AIは候補を勧める文にします。 得意先は、代理店が勧めた紙は使えるものと読みます。勧めずに違いを並べることが、この下書きの役目です。
出力形式を固定する
Bedrock の Converse API の outputConfig.textFormat に JSON スキーマを渡し、2回目は次の形で受け取ります。
{
"inquiry_no": "",
"requested": { "brand": "", "weight": "", "size": "", "grain": "", "quantity": "" },
"in_stock": [ { "item_no": "", "listed": "", "available": "" } ],
"alternatives": [
{ "item_no": "", "listed": "",
"diff": { "basis_weight": "", "grain": "same | different | not_recorded",
"size": "same | different" },
"available": "" } ],
"ask_back": [""],
"draft": ""
}
AWS の公式ページでは、outputConfig.textFormat に JSON スキーマを渡すと応答がスキーマに沿い、enum が使えます。すべての object に additionalProperties: false が要り、数値の minimum・maximum には対応していません。 diff と available は Lambda の計算と照会の結果を文字のまま渡して写させ、AIには計算させません。
1つ目の理由は、listed と available を記録と照合できることです。 品目の記録と照会の結果と同じかを Lambda で確かめ、違えば下書きを出さずに作り直します。 在庫の数を取り違えた下書きは、ここで止まります。
2つ目は、diff の grain で目の違いを先に見られることです。 目が different の代わりの紙は、営業の画面で色を変えて示します。製本の得意先には、目の違う紙を出す前に必ず確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 販売と在庫の管理の仕組み | 品目と在庫の書き出し(1時間ごと)、出せる数の照会(読み取りのみ) | 商品の索引の元、回答の数 |
| Amazon OpenSearch Service | Lambda からの登録・検索 | 商品の索引、略称の辞書のパッケージ |
| Amazon Bedrock | Converse API(Claude) | 読み替えと下書き |
| 営業の画面 | 社内の画面 | 問い合わせの貼り付け、候補と違い、下書き |
略称の辞書のパッケージは、S3 のファイルを更新してから適用します。 AWS の公式ページでは、S3 に新しい版を置いただけではパッケージは更新されず、OpenSearch Service の側でパッケージを更新し、ドメインに適用する必要があるとされています。updateable: true を付けた検索の分析器だけで使っていれば、適用で索引は自動で更新されます。
人が確認する
- 読み替えを見る … 銘柄・連量・判・目が、問い合わせのとおりに取り出されているかを確かめます
- 米坪の計算を見る … 判が書かれていなかった問い合わせでは、どの判で計算したかを確かめます
- 目の違う候補を確かめる …
grainがdifferentかnot_recordedの代わりの紙は、得意先の用途を聞いてから出します - 代わりの紙は得意先と相談する … 違いを伝え、試し刷りの要否を含めて得意先に決めてもらいます
- 下書きを直して回答し、引き当てる … 価格と納期は営業が書き足します
3番目を省かないでください。 目の違いは、刷った後の折りや製本で分かることがあります。数字の違いより、目の違いのほうが戻ってきたときの損が大きくなります。
2番目も、判の書かれていない問い合わせでは欠かせません。 下書きは判を聞き返す形になっているはずですが、営業が電話のメモに判を書き忘れただけのこともあります。得意先の過去の注文の判を見て、聞き返すか、営業の判断で判を入れて引き直すかを決めます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 判が書かれていない | 米坪を計算せず、判を聞き返す項目を下書きに入れる |
| 略称の辞書に無い銘柄 | 「辞書に無い銘柄」と出し、営業が正式名を選んで辞書の候補に足す |
| 米坪の記録が無い品目しか無い | 「米坪の記録なし」として別に並べ、営業が品目の記録を確かめる |
| 代わりの紙が0件 | 種類の条件を外した件数と、入荷の予定を示す |
| 照会と索引の在庫が違う | 照会の数を使い、索引は次の取り込みで直る |
| 断裁した寸法の問い合わせ | 判の品目から断裁できるかは営業が決める。候補には判の品目と断裁品を分けて並べる |
| 枚数が在庫を超える | 出せる数と入荷の予定を並べ、分納か代わりの紙かを営業が得意先と決める |
| 構造化出力が返らない | 候補の一覧と違いだけを出し、下書きは営業が書く |
2行目の記録が、略称の辞書を育てる材料になります。 1行目は、判を推し量らずに聞き返すための行です。「110kg なら四六判だろう」と決めて計算すると、菊判の紙を探していた得意先に、厚さの違う紙を出すことになります。
記録を残す
- 問い合わせごとの、問い合わせの文(得意先の名前を伏せたもの)、1回目の JSON、営業が直した箇所
- 計算した米坪と使った判、検索の条件と候補、2回目の JSON と照合の結果
- 得意先が代わりの紙を採ったか、断ったか、その理由
- 回答した品目と、その後の返品や刷り直しの連絡の有無
3つ目は、代わりの紙の並べ方を見直す材料になります。 米坪が近くても断られ続ける組み合わせがあれば、紙の種類の分け方が粗すぎます。 種類を細かく分けるか、断られた組を記録して並べ方に戻します。
04実装レベルの3段階
半自動化で、1件6分が4分程度になります。 在庫の引き直しはほぼなくなりますが、代わりの紙を探す作業と回答を書く作業が残ります。本格構成で2分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化を1か月使うと、どの略称で出なかったか、どの品目に米坪の記録が無いかが残ります。辞書と品目の記録をそこで直してから本格構成に進むほうが、代わりの紙の候補が確かになります。
05工数削減シミュレーション
導入後 1,200件 × 2分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の製紙会社の銘柄を扱い、印刷会社・製本会社から在庫と納期の問い合わせが毎月千件前後届く紙の代理店。商品の記録と倉庫ごとの在庫はあるのに、銘柄の略称や連量の判の違い、目の書き方のゆれで引き直す時間がかかっている場合。欠品のときに代わりの紙を挙げるのがベテランの営業に頼っている場合。AWS を使える担当か委託先がいる場合。
- 扱う銘柄が数十で、営業の担当が在庫を把握している場合。商品の記録に米坪か連量と判、目、寸法が入っておらず、銘柄名と在庫数しか無い場合(先に商品の記録を整えます)。特殊な加工の紙が中心で、毎回製紙会社に確かめる必要がある場合。なお、代わりの紙が印刷・加工に使えるかの判断、価格と納期の約束は、この構成では代替できません。商品と在庫の記録から候補を探し、違いを記録のまま並べるまでです。
07最小構成で試す方法
- 先月の問い合わせから30件を選ぶ(在庫があったもの、欠品で代わりを出したもの、「無い」と答えたものを混ぜる)
- それぞれについて、実際に回答した品目と、代わりの紙が採られたかを書き出す
- 品目の一覧を表計算に書き出し、判の寸法の表で米坪の列を計算して足す
- 30件の問い合わせを手元のAIサービスに貼り、「銘柄・種類・連量・判・目・寸法・枚数を書かれたまま取り出してください。判や目を推し量らず、米坪を計算しないでください」と指示する
- 取り出した条件で表計算を米坪で引き、実際に回答した品目が見つかるかを見る
- 「無い」と答えた件について、米坪で引けば在庫があったかを見る
6番目で見つかった在庫が、この構成で取り戻せる注文です。 判の違う連量で引いて見落としていたものが多ければ、米坪にそろえる効き目がそのまま見えます。
3番目で米坪を計算したら、製紙会社の見本帳やカタログの値とも何品目か見比べてください。 判の寸法の表の誤りや、品目の連量の入れ違いは、この段階で見つけておくと、索引を作った後に「近いはずの紙が出てこない」と悩まずに済みます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の回答の品目が見つかり、「無い」と答えたものの一部にも在庫があった | OpenSearch の索引に進む |
| 判を推し量った・米坪を計算した | 指示の書き方で直る。構成は有効 |
| 品目に判や目の記録が無いものが多い | 品目の記録の整備が先 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 判の違う連量で同じ紙が引けない | 品目も問い合わせも米坪にそろえて引く |
| 米坪が空の品目が上位に並ぶ | 減衰の関数は項目の無い文書に1を返す。exists で絞る |
| 板紙の米坪が10分の1になる | 板紙は1連100枚の式で計算する |
| 略称で銘柄が出ない | 略称の辞書を検索の分析器に入れ、辞書に無い銘柄を記録する |
| 目の書き方がばらばらで絞れない | 書き方の表で T・Y にそろえ、空は空のまま持つ |
| AIが「同等です」と書く | 指示で禁じ、違いを数字で写させる |
| 索引の在庫の数を回答に書く | 回答の数は必ず照会で取り直す |
上の3行は、米坪にそろえることにまつわる失敗です。 どれも検索がきれいに動いているように見えて、違う紙を近い紙として出してしまいます。 6行目は、得意先の判断を代理店が先に下してしまう失敗です。
最後の行は、索引の在庫を信じたくなる場面で起きます。 索引は1時間ごとにしか変わらず、その間に別の営業が同じ品目を引き当てていることがあります。「あります」と答えた後で足りないと分かると、得意先の印刷の日程が崩れます。 回答の数は、必ず回答の直前の照会で取り直してください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 得意先からの問い合わせ(会社名、担当者、印刷の予定)、品目と在庫の記録です。問い合わせには、得意先の得意先の仕事の内容が書かれていることがあります。
- 得意先の情報を外す … 得意先の会社名と担当者の名前は、Claude に渡す前に伏せます。印刷物の名前や発注元が書かれていれば、それも伏せます。どの会社がいつ何を刷るかは、得意先にとって外に出したくない情報です
- 代わりの紙を勧めない … 回答は違いを並べるまでにし、使えるかは得意先が決めます
- 数字はAIに作らせない … 米坪の計算も在庫の数も Lambda と照会の結果で、AIは写すだけです
- 価格は扱わない … 得意先ごとの価格は索引に入れず、下書きにも書かせません
- 辞書の手入れの担当を決める … 略称の辞書に誤った言い換えが入ると、違う銘柄が候補に出ます。足す前に営業が確かめます
- 索引への接続を限る … OpenSearch のドメインには、Lambda と営業の担当だけが接続できるようにします
誤りが起きた場合のリスクは、在庫があるのに「無い」と答えること、目や判の違う紙を同じ紙のように出すこと、代わりの紙を勧めて刷り直しになることの3つです。 米坪にそろえた索引、exists と目の確かめ、違いだけを並べる下書きの3つで防ぎます。
10まず何から始めるか
1週目:品目の記録を見る
品目を書き出し、連量・判・目・寸法の欄が空の品目の数を数えます。判の寸法の表を作り、米坪を計算して、製紙会社の示す値とずれる品目を拾います。
2週目:30件で試す
第8章のとおり、先月の問い合わせ30件で、当時の回答の品目が見つかるか、「無い」と答えた件に在庫があったかを見ます。判や目を推し量っていないかを最優先で見ます。
3週目:辞書と書き方の表を作る
問い合わせの多い銘柄から略称の辞書を作り、目と判の書き方の表を作ります。代わりの紙の並べ方(同じ種類・同じ目・米坪の近さ)を、ベテランの営業と決めます。
4週目:索引を作る
OpenSearch に商品の索引を作り、略称と判の違いを気にせず在庫を引けるようにします。この時点では、代わりの紙の検索と下書きは使いません。
2か月目: 米坪の近さでの代わりの紙の検索、在庫の照会、下書きを足します。3か月目以降: 代わりの紙が採られた割合、目の違いで戻ってきた件数、「無い」と答えた件数を毎月数えます。ベテランのいない日にも代わりの紙の相談がその日のうちに返せた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 連量が1連(洋紙1,000枚・板紙100枚)の重さ(kg)で、米坪が1平方メートルあたりの重さ(g/㎡)であること。洋紙連量=米坪×面積×1,000枚、板紙連量=米坪×面積×100枚であること。四六判788×1,091mm、菊判636×939mm、A判625×880mm、B判765×1,085mm であること | 五條製紙: 紙の豆知識(紙の基礎知識) | 2026-10-27 |
減衰の関数(gauss など)の origin・offset・scale・decay(既定0.5)の意味。項目の無い文書に点数1を返すこと。boost_mode の既定が multiply で、replace で関数の点数だけを使うこと | OpenSearch: Function score query | 2026-10-27 |
synonym_graph が複数の語の同義語を扱い、検索の分析器でだけ使うべきこと | OpenSearch: Synonym graph token filter | 2026-10-27 |
辞書のファイルを S3 からパッケージとして取り込み、synonyms_path に analyzers/<ID> で使えること。S3 に新しい版を置いただけでは更新されず、更新と適用が要ること。updateable: true の検索の分析器なら適用で自動で更新されること | AWS: Importing and managing packages in Amazon OpenSearch Service | 2026-10-27 |
| OpenSearch Service のドメインに Japanese(kuromoji)と ICU の解析のプラグインが全ドメインに含まれること | AWS: Plugins by engine version in Amazon OpenSearch Service | 2026-10-27 |
Converse API の outputConfig.textFormat で JSON スキーマに沿った出力が得られ、enum が使えること。additionalProperties: false が要ること。数値の minimum・maximum に対応しないこと | AWS: Structured outputs(Amazon Bedrock) | 2026-10-27 |
代わりの紙が印刷・加工に使えるか、価格と納期は、営業の担当と得意先が判断してください。 本記事は上記のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1932)についてのご相談はこちらから。
