海外から新しい引合いが来たときに、過去の輸出取引の条件とクレームの記録から近い取引を検索し、見積の条件とリスクの根拠を示す
海外から新しい引合いが来たときに、仕向地・品目・数量・希望の条件が近い過去の輸出取引を検索します。当時の貿易条件・支払条件・梱包と輸送の指定、起きたクレームを取引番号付きで並べ、見積の条件とリスクの根拠にします。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- 商社/製造
- 対象部門
- 営業
- 対象業務
- 情報検索/比較検討
- 主な課題
- 判断に時間がかかる/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 判断支援/属人化解消/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 引合いのメールを読み、仕向地・品目・数量・希望の条件を確かめる
- 販売管理システムで、同じ取引先か同じ国への過去の受注を探す
- 見つかった取引のフォルダを開き、契約書とプロフォーマインボイスで貿易条件・支払条件・梱包の指定を読む
- 同じ国・同じ品目でクレームが無かったかを、品質保証部の報告書や先輩への問い合わせで確かめる
- 見積の条件の案を作り、リスクのある点を課長に相談する
- 課長の了承を得て、見積を送る
- 人担当者が引合いのメールを検索画面に貼る(または引合いの受付から自動で取り込む)
- 自動Claude API が仕向地・港・品目の分類・数量・重量・希望の条件を取り出す
- 自動Amazon OpenSearch Service が、仕向地の地域と品目の分類で絞ったうえで、条件の近い過去の取引を検索する
- 自動同じ絞り込みで、貿易条件・支払条件・クレームの種類の件数を集計する
- 自動上位の取引について、条件・梱包の指定・クレーム・回収の記録を取引番号付きで取り出す
- 自動Claude API が、見積の条件の論点と、それぞれの根拠になる取引番号を並べる
- 人担当者が根拠を読み、見積の条件の案を作る
- 人課長がリスクのある点を確かめ、見積を送る
各工程の詳しい説明を読む
- 引合いのメールを読み、仕向地・品目・数量・希望の条件を確かめる
- 販売管理システムで、同じ取引先か同じ国への過去の受注を探す
- 見つかった取引のフォルダを開き、契約書とプロフォーマインボイスで貿易条件・支払条件・梱包の指定を読む
- 同じ国・同じ品目でクレームが無かったかを、品質保証部の報告書や先輩への問い合わせで確かめる
- 見積の条件の案を作り、リスクのある点を課長に相談する
- 課長の了承を得て、見積を送る
(a)探す範囲が狭い。 販売管理システムで引けるのは取引先と品目の名前の一致だけです。「別の取引先だが、同じ港へ同じくらいの重量物を出した取引」は探せません。 結局、自分の課の取引だけを見ることになります。
(b)クレームが見積に届かない。 品質保証部のクレームの報告書は、品質の改善のために書かれています。営業が見積の前に読む形になっていません。 同じ港での荷役の損傷が、別の担当者の取引で繰り返されます。
(c)条件の根拠が説明できない。 課長に「なぜ送金の後払いでよいのか」と聞かれたとき、「前もそうだったので」としか答えられません。 前の取引が回収に手間取っていたかどうかは、経理に聞かないと分かりません。
(d)条件の言葉が取引ごとに違う。 支払条件は「T/T 30 days after B/L date」「30 days from BL」「net 30 B/L」のように書かれ、同じ条件かどうかを読み比べないと分かりません。
(e)聞かれる側の時間が奪われる。 課長とベテランの数名に、「前にあの国へ出したときはどうだったか」という問い合わせが毎日届きます。返事を待つ間、見積は止まります。 課長が出張中の週は、新しい相手への見積が目に見えて遅れます。
- 【人】 担当者が引合いのメールを検索画面に貼る(または引合いの受付から自動で取り込む)
- 【自動】 Claude API が仕向地・港・品目の分類・数量・重量・希望の条件を取り出す
- 【自動】 Amazon OpenSearch Service が、仕向地の地域と品目の分類で絞ったうえで、条件の近い過去の取引を検索する
- 【自動】 同じ絞り込みで、貿易条件・支払条件・クレームの種類の件数を集計する
- 【自動】 上位の取引について、条件・梱包の指定・クレーム・回収の記録を取引番号付きで取り出す
- 【自動】 Claude API が、見積の条件の論点と、それぞれの根拠になる取引番号を並べる
- 【人】 担当者が根拠を読み、見積の条件の案を作る
- 【人】 課長がリスクのある点を確かめ、見積を送る
4番目が、この設計の分かれ目です。 条件の分布は、検索基盤の集計で数えます。 AIに「多いのはどれか」と聞くと、渡された数件だけを見て答えます。件数はプログラムが数え、AIはその数字を読むだけにします。
6番目で出すのは「論点」で、「答え」ではありません。 「支払条件:過去の同じ地域・同じ品目の18件のうち L/C が13件。送金の後払いだった5件のうち2件で回収が30日以上遅れた(取引番号)」のように並べます。決めるのは担当者と課長です。
02今回想定するシステム構成
引合いのメール(英文) ▼ AWS Lambda ▼ Claude API ── 仕向地・品目・数量・希望の条件を取り出す(構造化出力) ▼ Amazon Bedrock(Titan Text Embeddings V2)── 引合いの要約の埋め込み ▼ Amazon OpenSearch Service ├── ハイブリッド検索(単語の一致 + k-NN)で近い取引 └── terms 集計で条件とクレームの分布 ▼ 上位の取引の条件・梱包・クレーム・回収の記録 ▼ Claude API ── 見積の条件の論点と根拠の取引番号 ▼ 検索画面 ──【人】担当者が条件の案を作る ──【人】課長の確認
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(ハイブリッドクエリ、k-NN、terms 集計) | Azure AI Search、Vertex AI Search(Agent Search) |
| 埋め込み | Amazon Titan Text Embeddings V2(Amazon Bedrock) | Cohere Embed、OpenAI の埋め込みモデル |
| 生成AI | Claude API(引合いの項目の取り出しと、論点の整理) | Azure OpenAI(Microsoft Foundry)、Gemini API |
| 連携 | AWS Lambda(取引の記録の取り込み、検索画面とのつなぎ) | AWS Step Functions |
| 保管 | Amazon S3(取引ごとの書類の写し) | 海外営業部のファイルサーバー |
販売管理システムには、この構成から書き込みません。 取引の記録を読み取るだけで、見積は担当者が今まで通り作ります。
土台になるのは、取引ごとに1件の文書にまとめた索引です。 販売管理システムの条件と金額、契約書から取り出した梱包と輸送の指定、品質保証部のクレームの報告、経理の回収の記録を、取引番号で1つの文書にまとめてから索引に入れます。 3か所に分かれた記録を検索のたびに集めるのではなく、入れる時点で1つにします。
検索はハイブリッドクエリで、絞り込みは全体にかける filter で行います。 ハイブリッドクエリに入れられる検索は最大5つで、全体の filter は1つの検索の形で書き、複数の条件は bool にまとめます。 k-NN の検索には、HNSW のグラフで絞り込みを効率よく扱う仕組みがあり、絞り込んだ後の件数によって、正確な検索か近似の検索かを自動で選びます。
条件の分布は terms 集計で数えます。 項目の値ごとに件数を返す集計で、keyword などの項目に使えます。返すバケットの数は既定で10です。 支払条件の言い方が取引ごとに違うと集計が割れるので、索引に入れる前に決まった区分にそろえておきます(第7章の前処理)。
03どうやって実装するのか
処理の起点を決める
担当者が引合いを検索画面に貼り、「過去の取引を探す」を押したときに動かします。 引合いには、すぐに断るもの、カタログを送れば済むものも混ざります。見積を検討すると担当者が決めたものだけを対象にします。
もう1つの起点は、取引の締めです。 出荷・請求・入金が終わった取引を、毎月の締めのあとに索引に足します。クレームはその後に起きることがあるので、品質保証部の報告書が保存されたときに、該当の取引の文書を更新します。 経理の回収の記録も、入金の消込が終わった時点で更新します。
取引の文書は、出荷したときに一度作り、後から足していく形にします。 入金とクレームが確定するまで待つと、直近の取引がいつまでも検索に出ません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 引合い | 英文のメール。取引先、仕向地、品目、数量、希望の条件、希望の納期 | 検索画面 |
| 取引の文書 | 取引番号、取引先の区分、国・地域・仕向港、品目の分類、数量・重量、貿易条件と場所、支払条件の区分、梱包の指定、輸送の手段 | 取引の索引(OpenSearch) |
| クレームの記録 | 種類(損傷・数量不足・品質・遅延)、原因、費用の負担、再発防止 | 品質保証部の報告書から取り出して取引の文書に入れる |
| 回収の記録 | 期日からの遅れの日数、督促の有無 | 経理の記録から取り出して取引の文書に入れる |
| 取引の要約 | 取引の条件と結末を200字程度にまとめた文。埋め込みの元 | 取り込み時に作る |
質を決めるのは、3行目と4行目です。 条件だけの索引なら、販売管理システムの検索と大差がありません。結末が付いているから、見積の前に読む意味があります。
回収の記録は、遅れの日数だけを持たせます。 取引先の与信の情報そのものは、この索引に入れません。与信は経理と与信管理の担当の仕事で、営業の検索画面から見える必要はありません。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 条件の近い取引 | 取引の索引 | ハイブリッドクエリ(要約の match + 要約の埋め込みの knn)、上位10件 |
| 条件の分布 | 取引の索引 | 同じ filter で terms 集計(貿易条件・支払条件・クレームの種類) |
| 同じ取引先の過去の取引 | 取引の索引 | 取引先コードで term 検索 |
| 取引の書類 | S3 | 上位の取引の契約書の写しへのリンク |
集計と検索は、同じ filter で行います。 上位10件の取引と、集計の母数が違う範囲だと、「上位に出た取引は全部 L/C なのに、分布では送金が多い」という読みにくい結果になります。 filter には地域・品目の分類・取引の年を入れます。
検索の形は、次のようになります。
POST /export-deals/_search?search_pipeline=deal-hybrid
{
"size": 10,
"_source": ["deal_id", "summary", "incoterm", "named_place", "payment_class",
"packing", "claims", "collection_delay_days", "shipped_on"],
"query": {
"hybrid": {
"queries": [
{ "match": { "summary": "spindle bearing housing Middle East Jebel Ali 2 pallets" } },
{ "knn": { "summary_vector": { "vector": [0.0], "k": 30 } } }
],
"filter": {
"bool": {
"filter": [
{ "term": { "region": "middle_east" } },
{ "term": { "product_class": "machine_parts" } },
{ "range": { "shipped_on": { "gte": "now-5y" } } }
]
}
}
}
}
}
集計は別の問い合わせで、size を0にして件数だけを取ります。terms 集計の missing を指定すると、項目が空の取引を1つのバケットにまとめて数えられます。 支払条件が台帳に入っていない取引が何件あるかが分かり、分布をどこまで信じてよいかの目安になります。
取引の索引の1件は、次のような形にします。
{
"deal_id": "EX-2024-1187",
"customer_class": "distributor",
"region": "middle_east",
"country": "AE",
"port_of_discharge": "Jebel Ali",
"product_class": "machine_parts",
"weight_kg": 820,
"incoterm": "CIF",
"named_place": "Jebel Ali",
"payment_class": "LC_AT_SIGHT",
"packing": "wooden_crate",
"transport": "sea_container_lcl",
"claims": [
{ "type": "damage", "cause": "荷役中の木枠の破損", "cost_bearer": "insurer" }
],
"collection_delay_days": 0,
"summary": "",
"summary_vector": [0.0],
"shipped_on": "2024-11-05",
"access_group": "overseas_sales"
} AIへ渡す前に整形する
- 取引の文書へのまとめ … 販売管理システム・契約書・クレームの報告・回収の記録を、取引番号で1つにします
- 支払条件の区分へのそろえ … 「T/T 30 days after B/L」「net 30 B/L」などを
TT_AFTER_BL_30のような決まった区分にします。そろえられなかったものはOTHERにして原文を残します - 貿易条件の確認 … 貿易条件と場所(例:CIF Jebel Ali)を分けて持ちます。版(2020年版など)が契約書に書かれていれば一緒に持ちます
- クレームの分類 … 報告書の本文から種類・原因・費用の負担を取り出します
- 取引の要約と埋め込み … 条件と結末を200字程度の文にし、Titan Text Embeddings V2 で埋め込みを作ります
- 取引先を特定する情報の扱い … 取引先の名前は取引先コードにし、担当者の名前と連絡先は入れません
2番目が、集計の質を決めます。 区分にそろえないまま集計すると、同じ条件が5つのバケットに割れます。区分の一覧は経理と決め、そろえる処理はプログラムで行います。 決まった言い方に当たらないものだけを、生成AIで区分の候補に当て、人が確かめます。
AIに処理させる
させるのは2つです。引合いから検索に使う項目を取り出すことと、検索と集計の結果から見積の条件の論点を並べることです。
| させること | 中身 |
|---|---|
| 引合いの項目の取り出し | 取引先、仕向国・港、品目、数量、重量の目安、希望の貿易条件・支払条件・納期 |
| 論点の整理 | 貿易条件、支払条件、梱包、輸送、保険について、過去の取引と分布から読み取れることを並べる |
| 根拠の付与 | 論点ごとに根拠の取引番号と、集計の件数を書く |
| リスクの抽出 | 近い取引で起きたクレームと回収の遅れを、取引番号付きで挙げる |
| 引合いとの違い | 引合いの希望の条件が、過去の取引と違う点を挙げる |
| させないこと | 理由 |
|---|---|
| 見積の条件の決定 | 担当者と課長が取引先との関係と与信を見て決める |
| 件数の集計 | 検索基盤の集計で数える |
| 与信・制裁・輸出管理の判断 | それぞれの担当の仕事。この構成の外で行う |
| 根拠の無い取引の引用 | 検索結果に無い取引番号を示さない |
| 引合いに無い条件の推測 | 希望が書かれていなければ「記載なし」とする |
AIの整理とは別に、引合いの希望の条件に対して、決まった規則で注意の印をプログラムが付けます。 規則は国際商業会議所の規則の文面に沿って、営業部と貿易の担当で決めます。
| 引合いの希望 | プログラムが付ける注意の印 |
|---|---|
| FOB・CFR・CIF で、輸送がコンテナ | コンテナ貨物を船積前に運送人へ渡すなら FCA が勧められている。引き渡しの場所を確かめる |
| CIF | 売手が手配する保険は協会貨物約款(C)が最低限。過去に損傷のクレームがある品目なら補償の範囲を相談する |
| CIP | 保険は協会貨物約款(A)が既定。保険料の見込みを見積に入れる |
| 貿易条件の版が書かれていない | 契約書で版を明記するよう印を付ける |
2行目を「させない」に置くのが、この設計で大事なところです。 AIに渡すのは上位10件の取引ですが、分布は数百件の母数から数えたものです。AIに数えさせると、上位10件の傾向を全体の傾向として書きます。
指示内容を固定する
あなたは専門商社の海外営業部で、見積を作る担当者のために、
過去の輸出取引の記録から見積の条件の論点を整理する立場です。
見積の条件を決めないでください。決めるのは担当者と課長です。
【やること】
1. 引合いの希望の条件と、検索で見つかった過去の取引を読んでください。
2. 次の論点ごとに、過去の取引から読み取れることを書いてください。
貿易条件/支払条件/梱包/輸送/保険
3. 各論点に、根拠にした取引番号(deal_id)を必ず付けてください。
4. 分布を書くときは、渡された集計の件数をそのまま使ってください。
5. 近い取引で起きたクレームと回収の遅れを、取引番号付きで挙げてください。
6. 引合いの希望の条件が、過去の取引と違う点を挙げてください。
【厳守事項】
- 件数を自分で数えないでください。集計の結果に無い件数を書かないでください。
- 検索結果に無い取引番号を示さないでください。
- 引合いに書かれていない希望の条件を推測しないでください。「記載なし」としてください。
- 与信、制裁、輸出管理(該非)について判断を書かないでください。
関係がありそうな場合は、確認先として「与信管理」「輸出管理」と書くだけにしてください。
- 貿易条件は、売手と買手の費用と危険の分担を決めるものです。
支払条件や所有権の移転は貿易条件では決まらないので、別の論点として扱ってください。
- 根拠の取引が3件未満の論点は、confidence を low にしてください。
【引合い】{inquiry}
【検索結果(取引の文書、上位10件)】{deals}
【集計(同じ絞り込みでの件数)】{aggregations}
「件数を自分で数えない」を明記しないと、上位10件から割合を書きます。 集計の結果を渡していても、手元の取引のほうが具体的なので、そちらを数えたくなります。
「支払条件は貿易条件で決まらない」を書くのは、取り違えを防ぐためです。 貿易条件の規則は売買契約そのものではなく、支払の条件や、所有権の移転を扱いません。 「CIF だから代金は船積後」のような書き方をさせないために、論点を分けさせます。
出力形式を固定する
Claude API の構造化出力で、次の形のJSONを受け取ります。
{
"inquiry": {
"customer_code": "", "country": "", "port": "", "product_class": "",
"quantity": "", "requested_incoterm": "", "requested_payment": "", "requested_delivery": ""
},
"issues": [
{
"topic": "incoterm | payment | packing | transport | insurance",
"finding": "",
"evidence_deals": [],
"counts_used": "",
"confidence": "high | low",
"differs_from_request": ""
}
],
"risks": [
{ "deal_id": "", "type": "damage | shortage | quality | delay | collection", "summary": "" }
],
"check_with": []
}
1つ目の理由は、論点ごとに根拠の取引番号を照らせることです。 evidence_deals の取引番号が検索結果に含まれているかを、プログラムで確かめます。 含まれていない番号があれば、その論点は表示しません。
2つ目は、counts_used で件数の出どころが分かることです。 AIが書いた件数が、集計の結果と一致するかをプログラムで照らします。一致しない論点は「件数の確認が要る」と印を付けて出します。
3つ目は、check_with で他の担当への確認が漏れないことです。 与信管理・輸出管理・品質保証部など、この構成の外で確かめることを一覧にします。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 検索画面 | 社内のWeb画面 | 引合いの貼り付け、論点と根拠の表示 |
| Claude API | Messages API の構造化出力 | 引合いの項目の取り出し、論点の整理 |
| Amazon Bedrock | Titan Text Embeddings V2 の呼び出し | 引合いの要約と取引の要約の埋め込み |
| Amazon OpenSearch Service | 検索パイプラインを指定した _search、集計 | 近い取引と分布 |
| 販売管理システム | 毎月の締めのあとに書き出し | 取引の条件と金額の取り込み |
| 品質保証部・経理の記録 | 保存・消込の通知で Lambda を起動 | クレームと回収の記録の更新 |
人が確認する
- 根拠の取引を開く … 論点に付いた取引番号のうち、少なくとも上位の2〜3件は文書を開いて読みます
confidenceが low の論点を慎重に扱う … 根拠の取引が少ない論点は、課長に相談しますcheck_withの確認先に回す … 与信・輸出管理の確認は、この検索の結果と関係なく行います- 課長がリスクの点を確かめる … 回収の遅れやクレームが出ている論点を中心に見ます
- 見積の条件を担当者が決める … 過去と違う条件で出す場合は、理由を見積の記録に残します
1番目を省かないでください。 論点の整理は要約です。同じ港の損傷のクレームでも、木枠を変えてからは起きていない、という事情は文書を読まないと分かりません。
目標は、160件をならして1件12分です。 論点と根拠を読むのに6分、条件の案を作って課長に回すのに6分という見込みです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 近い取引が無い(新しい国・新しい品目) | 「近い取引なし」と出し、地域や品目の分類を広げた結果を別に出す |
| 根拠の取引が3件未満 | confidence を low にし、課長に相談する論点として表示 |
| 取引番号が検索結果に無い | その論点を表示しない。ログに残す |
| 件数が集計と一致しない | 「件数の確認が要る」の印を付けて出す |
支払条件の区分が OTHER の取引が多い | 区分の一覧を見直す。集計の信頼の目安として件数を表示する |
| 引合いが英文以外 | 項目の取り出しは行うが、取り出した項目を担当者が確かめてから検索する |
構造化出力が refusal や max_tokens で終わる | 受け付けず再実行 |
記録を残す
- 引合い(受け付けた日時、担当者)と、取り出した項目
- 検索の条件(
filter、重み)と、上位の取引番号と点数 - 集計の結果
- Claude API の出力と、そのとき使った指示の版
- 表示しなかった論点と、その理由(取引番号の不一致、件数の不一致)
- 担当者が実際に出した見積の条件と、過去と違う条件にした理由
最後の行が、次の検索の質を上げます。 見積の条件と理由が残れば、その取引が締まったとき、条件と結末と当時の判断がそろった文書になります。
04実装レベルの3段階
半自動化で、1件30分が18分程度になります。 探す時間はほぼ消えますが、クレームと回収の記録を取引に足す作業が手作業で残ります。本格構成で12分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月使うと、区分にそろわない支払条件と、クレームが紐付いていない取引が分かります。そこを直してから自動の更新を足します。
05工数削減シミュレーション
導入後 160件 × 12分 ÷ 60 = 32 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 機械部品・素材・化学品などを海外へ輸出する専門商社やメーカーの海外営業部門で、月に百件を超える引合いが届き、見積の貿易条件・支払条件・梱包の指定を担当者の経験で決めている場合。過去の取引の記録が取引台帳・契約書・クレームの報告に分かれて残っていて、似た取引を探すのに時間がかかる場合。AWS を社内で使っている場合。
- 取引先が数社に固定され、条件が長期の基本契約で決まっている場合。輸出の件数が月に数件で、担当者が過去の取引を覚えていられる場合。過去の取引の記録が担当者のメールにしか残っておらず、取引ごとにまとまっていない場合(先に取引台帳の整備が要ります)。なお、与信の判断、輸出管理の該非判定、制裁の確認、契約の条件を受け入れるかの判断は、この構成では代替できません。
07最小構成で試す方法
- 過去3年の輸出取引から、地域と品目の分類ごとに20件ずつ選ぶ(クレームや回収の遅れがあった取引を必ず含める)
- 1件ずつ、条件・梱包・クレーム・回収の遅れを1行にまとめた表を作る
- 先月の引合いから10件を選ぶ
- 手元のAIサービスに表と引合いを渡し、「この引合いに近い過去の取引を表から選び、貿易条件・支払条件・梱包について、根拠の取引番号付きで論点を挙げてください。見積の条件は決めないでください」と指示する
- 出てきた論点を、そのとき担当者が実際に決めた条件と、課長が指摘した点と比べる
| 出てきた内容 | 判断 |
|---|---|
| 課長が指摘した点が論点に出た | 索引と集計の仕組みづくりに進む |
| 表に無い取引や件数を書いた | 指示と後段の照合で直る。構成は有効 |
| 支払条件の書き方がばらばらで比べられない | 区分へのそろえを先に行う |
3行目が出ることは珍しくありません。 それは失敗ではなく、集計の前に区分をそろえる作業が要るということが分かったということです。
試すときは、引合いを受けた担当者と課長の両方に論点を見てもらってください。 担当者が「これなら課長に聞かずに済んだ」と言える論点がいくつあるか、課長が「これは足りない」と言う論点が何か。後者が、取引の文書に足すべき項目です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが上位の取引から件数を数える | 集計の結果を渡し、件数を照合する |
| 支払条件の言い方で集計が割れる | 取り込み時に区分にそろえる。OTHER の件数を表示する |
| 検索と集計の母数が違う | 同じ filter で行う |
| クレームが取引に紐付いていない | 品質保証部の報告書に取引番号の欄を必須にする |
| 回収の記録から与信の情報が見える | 遅れの日数だけを持たせ、与信の情報は入れない |
| 貿易条件と支払条件を混同した論点が出る | 指示で論点を分けさせる |
| 新しい国・品目で何も出ない | 分類を広げた結果を別に出し、「近い取引なし」と明示する |
| 直近の取引が検索に出ない | 出荷時に文書を作り、クレームと回収は後から足す |
| 古い取引の条件が今も通じると読まれる | 出荷日を表示し、取引の年で絞る範囲を画面で変えられるようにする |
| コンテナ貨物に FOB をそのまま写す | 注意の印をプログラムで付け、引き渡しの場所を担当者が確かめる |
上の3行が、この構成の失敗のほとんどです。 どれも「件数」をどこで数えるかの問題です。数えるのは検索基盤、読むのはAI、決めるのは人、という分担を守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 取引先ごとの価格以外の取引条件、クレームの内容と費用の負担、回収の遅れです。取引先にとっても自社にとっても、外に出せない情報です。
- 見られる範囲を部門で分ける … OpenSearch のきめ細かなアクセス制御で、役割ごとに見られる文書と項目を絞れます。回収の遅れの項目は、課長以上に限ることもできます
- 金額は索引に入れない … 論点の整理に単価は要りません。価格は販売管理システムでだけ見る形にします
- 外部の生成AIに渡す範囲を絞る … 渡すのは取引先コードにした取引の文書と引合いだけです。担当者の名前と連絡先は入れません
- 与信・制裁・輸出管理の確認を省かない … この構成は過去の取引を並べるだけで、それぞれの担当の確認の代わりになりません
- 見積の条件は人が決めて記録する … 過去と違う条件にした理由を残し、後から説明できるようにします
誤りが起きた場合のリスクは、根拠の無い条件で見積を出すことと、取引先の情報が他の部門に広がることの2つです。 前者は取引番号と件数の照合で、後者は権限の設計で防ぎます。
10まず何から始めるか
1週目:支払条件と梱包の区分を決める
経理と一緒に、支払条件を10前後の区分にまとめます。梱包と輸送の手段も同じように区分を決めます。過去の取引の言い方を集め、どの区分に当たるかの表を作ります。
2週目:60件で試す
地域と品目の分類ごとに取引を選び、条件と結末を1行にまとめた表を作ります。先月の引合い10件で論点を挙げさせ、課長が当時指摘した点と比べます。
3週目:取引の文書を作る
販売管理システムの書き出しと、クレームの報告書・回収の記録を取引番号でつなぎます。取引番号が付いていないクレームの報告書は、品質保証部と一緒に付け直します。
4週目:索引と検索をつなぐ
OpenSearch に取引の索引を作り、ハイブリッド検索と集計を同じ filter で行うところまで作ります。この時点では論点の整理を出さず、近い取引と分布だけを見ます。
2か月目: 論点の整理と、取引番号・件数の照合を足します。3か月目以降: クレームと回収の記録の自動の更新を足し、1件30分が何分になったかを実測します。課長が「なぜこの条件か」と聞いたときに、担当者が取引番号で答えられるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
ハイブリッドクエリの検索が最大5つで、全体の filter は1つの検索の形で書き複数条件は bool にすること、最上位のクエリとして使うこと | OpenSearch: Hybrid query | 2026-10-13 |
| k-NN の検索で絞り込みを効率よく扱え、絞り込み後の件数などから正確な検索か近似の検索かが選ばれること | OpenSearch: Efficient k-NN filtering | 2026-10-13 |
terms 集計が値ごとにバケットを作ること、対象が keyword などの項目であること、size の既定が10、missing で項目が空の文書を数えられること | OpenSearch: Terms aggregation | 2026-10-13 |
| きめ細かなアクセス制御で、索引・文書・項目の単位の権限と項目のマスキングが使えること | AWS: Fine-grained access control | 2026-10-13 |
| Titan Text Embeddings V2 の入力上限と出力の次元、英語に最適化され多言語に対応すること | AWS: Amazon Titan Text Embeddings models | 2026-10-13 |
構造化出力を output_config.format で指定すること、refusal・max_tokens で終わるとスキーマに合わないことがあること | Claude: Structured outputs | 2026-10-13 |
| インコタームズ2020が売買契約そのものではなく、支払条件や所有権の移転を扱わないこと、11の規則のうち FAS・FOB・CFR・CIF が海上・内陸水路の輸送用であること、コンテナ貨物で船積前に運送人に引き渡す場合は FOB より FCA が勧められること、CIF の保険が協会貨物約款(C)、CIP が(A)であること | ICC: Incoterms® 2020 Introduction | 2026-10-13 |
見積の条件、与信、輸出管理、制裁の確認は、それぞれの担当者と必要に応じて専門家が判断してください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1420)についてのご相談はこちらから。
