空港の遺失物の窓口が、利用者から届く遺失物の問い合わせを拾得物の台帳と OpenSearch で照らし、特徴の近い拾得物の候補を出す
空港の遺失物の窓口に届く問い合わせを、品目・色・特徴・なくした日時と場所の条件に読み替え、拾得物の台帳から特徴の近い候補を探します。候補は台帳の記録のまま並べ、本人を確かめる聞き返しの下書きを添えて担当に渡します。
- 生成AI
- Azure OpenAI Service/ChatGPT/Claude
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- その他/宿泊/物流
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 人手が足りない/問い合わせが多い/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/検索時間短縮/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当者が電話を受けるか、フォームとメールを開き、品目・色・特徴・なくした日時と場所をメモする
- 外国語の問い合わせは、翻訳の画面で日本語にしてからメモする
- 遺失物の管理の仕組みを品目と日付で引き、出なければ言い方を変えて引き直す
- 出てきた拾得物の特徴を問い合わせと見比べ、合いそうなものは保管庫で現物か写真を見る
- 合いそうなものがあれば、本人であることを確かめるために中身や付属品を聞き返す
- 見つからなければ「届いていません」と答え、届いたら連絡すると伝える
- 自動15分ごとに、遺失物の管理の仕組みから新しく入った拾得物と状態の変わった拾得物を取り込み、索引を更新する
- 自動フォームとメールの問い合わせが届くと処理が動く。電話は担当者がメモを画面に打ち込んで検索のボタンを押す
- 自動生成AIが問い合わせから、品目・色・ブランド・特徴・なくした日時と場所を書かれたまま取り出し、検索用の日本語の文を作る
- 自動OpenSearch が、言葉の一致と意味の近さのハイブリッド検索で台帳を引き、拾得の日付の幅で絞る
- 自動候補ごとに、品目の分類・色・拾得の区域を規則で照らし、「一致」「不一致」「記録なし」を付けて、近さの段階(A・B・C)を決める
- 自動生成AIが、候補を台帳の記録のまま担当者向けに並べ、利用者への聞き返しの下書きを作る
- 人担当者が候補を見て、保管庫の現物か写真を確かめ、聞き返しを直して返事をする
- 自動候補が無かった問い合わせは「照らし直し待ち」として残し、新しい拾得物が入るたびに同じ検索をかけ直す
各工程の詳しい説明を読む
- 担当者が電話を受けるか、フォームとメールを開き、品目・色・特徴・なくした日時と場所をメモする
- 外国語の問い合わせは、翻訳の画面で日本語にしてからメモする
- 遺失物の管理の仕組みを品目と日付で引き、出なければ言い方を変えて引き直す
- 出てきた拾得物の特徴を問い合わせと見比べ、合いそうなものは保管庫で現物か写真を見る
- 合いそうなものがあれば、本人であることを確かめるために中身や付属品を聞き返す
- 見つからなければ「届いていません」と答え、届いたら連絡すると伝える
(a)言い方の違いで台帳が引けない。 3番目で、「リュック」「バックパック」「デイパック」、「メガネ」「眼鏡」「サングラス」、「充電器」「モバイルバッテリー」のような言い換えを思いつかなければ出てきません。担当者が何通り試したかで、答えが変わります。
(b)外国語の問い合わせは、翻訳の質で答えが変わる。 2番目で、ブランド名や色の言い方が訳し方で変わり、「navy」が「紺」になるか「ネイビー」になるかで、台帳を引いた結果が違います。
(c)見つからなかった問い合わせが追えない。 6番目で「届いたら連絡します」と答えても、その後に届いた拾得物と、前の問い合わせを照らす仕組みがありません。 担当者が覚えていれば連絡し、覚えていなければそのままです。
(d)電話とメールが途切れない。 1件10分の問い合わせが1日に30件ほど届きます。台帳を引き直しているあいだに次の電話が鳴り、メールの返事が翌日に回ります。
- 【自動】 15分ごとに、遺失物の管理の仕組みから新しく入った拾得物と状態の変わった拾得物を取り込み、索引を更新する
- 【自動】 フォームとメールの問い合わせが届くと処理が動く。電話は担当者がメモを画面に打ち込んで検索のボタンを押す
- 【自動】 生成AIが問い合わせから、品目・色・ブランド・特徴・なくした日時と場所を書かれたまま取り出し、検索用の日本語の文を作る
- 【自動】 OpenSearch が、言葉の一致と意味の近さのハイブリッド検索で台帳を引き、拾得の日付の幅で絞る
- 【自動】 候補ごとに、品目の分類・色・拾得の区域を規則で照らし、「一致」「不一致」「記録なし」を付けて、近さの段階(A・B・C)を決める
- 【自動】 生成AIが、候補を台帳の記録のまま担当者向けに並べ、利用者への聞き返しの下書きを作る
- 【人】 担当者が候補を見て、保管庫の現物か写真を確かめ、聞き返しを直して返事をする
- 【自動】 候補が無かった問い合わせは「照らし直し待ち」として残し、新しい拾得物が入るたびに同じ検索をかけ直す
5番目を規則で行うのは、「近い」の根拠を誰が見ても同じにするためです。 品目の分類と色と区域が一致すれば A、品目の分類だけが一致すれば B。AIが「おそらくこちらのお品物です」と言い切る余地を作りません。
8番目が、いまは無い仕事です。 見つからなかった問い合わせを残しておき、翌日以降に届いた拾得物と照らし直します。第3章の(c)がここで埋まります。
02今回想定するシステム構成
遺失物の管理の仕組み(管理番号・品目・色・特徴・拾得の日時と場所・保管の場所・状態) ▼【トリガー】15分ごとの取り込み AWS Lambda ── 品目の分類・色・区域の書き方をそろえ、検索用の文を作る ├──▶ Amazon Titan Text Embeddings V2 ── 検索用の文をベクトルにする ▼ Amazon OpenSearch Service │ 拾得物の索引:説明の文(kuromoji+言い換えの辞書) │ 説明のベクトル(knn_vector) │ 品目の分類・色・区域・拾得の日時・状態 ▼【トリガー】フォーム・メールの受信/担当者の検索のボタン AWS Lambda ├──▶ Claude(Amazon Bedrock)── 問い合わせを条件と日本語の検索文に読み替える ├──▶ OpenSearch ── hybrid(match+knn)+日付の絞り込み → 規則で近さの段階 ├──▶ Claude(Amazon Bedrock)── 候補の一覧と聞き返しの下書き ▼ 窓口の担当の画面 ──【人】現物を確かめて返事/引渡しの手配
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(hybrid クエリ、normalization-processor、k-NN、kuromoji) | Azure AI Search、Vertex AI Search(Agent Search) |
| 生成AI | Claude(Amazon Bedrock の Converse API、構造化出力) | Azure OpenAI(Microsoft Foundry)、OpenAI API |
| 埋め込み | Amazon Titan Text Embeddings V2(Amazon Bedrock) | Cohere Embed(Amazon Bedrock。日本語は自社データで試す) |
| 連携 | AWS Lambda(取り込み、読み替えと検索の呼び出し、照らし直し) | AWS Step Functions |
| 保管 | Amazon S3(取り込みの写し、問い合わせと候補と下書きの記録) | 社内のファイルサーバー |
遺失物の管理の仕組みには、この構成から書き込みません。 引渡しの記録、警察署長への提出、状態の更新は、担当者がいつもの画面で行います。
日本語の説明の文を言葉で引くには、形態素解析が要ります。 AWS の公式ページでは、OpenSearch Service のドメインには Japanese(kuromoji)と ICU の解析のプラグインが全ドメインに含まれるとされています。k-NN と Neural Search のプラグインも一覧に載っています。
意味の近さで引くための埋め込みは、Titan Text Embeddings V2 を使います。 AWS の公式ページでは、このモデルは英語に最適化され、日本語を含む多言語に対応するとされ(100以上の言語はプレビュー)、言語をまたぐ検索(ある言語の知識ベースを別の言語で引く)は最適でない結果になると書かれています。英語や中国語の問い合わせを、先に日本語の検索文にしてから引く理由がここにあります。
03どうやって実装するのか
処理の起点を決める
起点は3つあります。15分ごとの台帳の取り込み、問い合わせの受信、担当者の検索のボタンです。
台帳の取り込みは、遺失物の管理の仕組みから、前回から増えた拾得物と状態の変わった拾得物(引渡し済み・警察署長へ提出済み・保管の場所の移動)を書き出して索引を更新します。引渡し済みの拾得物が候補に出続けると、すでに持ち主に返ったものを「ございます」と答えることになります。 返事の前に、候補の状態だけは管理の仕組みに照会し直します。
問い合わせの受信は、フォームの送信と共有のメールボックスへの到着です。電話は担当者がメモを打ち込んでからボタンを押します。 電話の録音を文字にして自動で流す形にはしません。聞き取りの途中で担当者が聞き返した答えが、メモにしか残らないためです。
照らし直しは、取り込みのたびに動かします。 「照らし直し待ち」の問い合わせのうち、なくした日から30日以内のものだけに、新しく入った拾得物を相手にした同じ検索をかけます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせ | 利用者の言葉のままの本文、電話のメモ、言語、搭乗した便名(あれば) | フォーム、メール、担当者の打ち込み |
| 拾得物 | 管理番号、品目、色、ブランド、特徴の文、拾得の日時と場所(区域)、保管の場所、状態、写真のURL | 遺失物の管理の仕組み |
| 本人確認用の特徴 | 財布の中身、付属品、名入れ、待受け画面など | 遺失物の管理の仕組み(別の欄。索引には入れない) |
| 品目の分類の表 | 社内の分類(かばん・財布・電子機器・衣類・眼鏡・鍵など)と、言い方の一覧 | 窓口の担当で作る表 |
| 区域の表 | ターミナルの区域(保安検査場・搭乗待合室・手荷物受取所など)と、利用者が使う呼び方(「ゲートの前」「荷物が出てくるところ」) | 窓口の担当で作る表 |
質を決めるのは、拾った担当が書く特徴の文です。 「黒いかばん」とだけ書かれた拾得物は、どれだけ検索を工夫しても B より上がりません。ブランドの刻印、ファスナーの色、付いているキーホルダーなど、見て分かることを書く決まりが、この構成の土台です。
本人確認用の特徴は、索引に入れません。 索引に入れれば検索に当たり、候補の説明として画面や下書きに出てきます。担当者が候補を開いたときに、管理の仕組みの側で見るだけにします。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 言葉の合う拾得物 | 拾得物の索引 | match(description。kuromoji と言い換えの辞書) |
| 意味の近い拾得物 | 拾得物の索引 | knn(description_vec。問い合わせの日本語の検索文のベクトル) |
| なくした日の前後の拾得物 | 拾得物の索引 | hybrid の filter に range(found_at。なくした日の前日から7日後まで) |
| まだ保管しているもの | 拾得物の索引 | filter に terms(status。保管中・警察署長へ提出済み) |
| 品目の分類・色・区域 | 取り出した候補 | 検索では絞らず、規則で照らす |
2つの検索の点数は、そのままでは足せません。 OpenSearch の公式のドキュメントでは、hybrid クエリは複数のクエリの関連度の点数を1つにまとめるもので、検索パイプラインで点数をそろえて合わせるとされています。normalization-processor の既定は min_max(各クエリの点数を0〜1にそろえる)と arithmetic_mean で、weights は合計が1.0になるように指定します。
PUT /_search/pipeline/lost-item-hybrid
{
"phase_results_processors": [
{ "normalization-processor": {
"normalization": { "technique": "min_max" },
"combination": { "technique": "arithmetic_mean",
"parameters": { "weights": [0.4, 0.6] } } } }
]
}
GET /found_items/_search?search_pipeline=lost-item-hybrid
{
"size": 20,
"query": {
"hybrid": {
"queries": [
{ "match": { "description": "黒 リュック 保安検査場 ノートパソコン" } },
{ "knn": { "description_vec": { "vector": [0.012, -0.044], "k": 50 } } }
],
"filter": { "bool": { "filter": [
{ "range": { "found_at": { "gte": "2026-10-19", "lte": "2026-10-27" } } },
{ "terms": { "status": ["stored", "submitted_to_police"] } } ] } }
}
}
}
hybrid クエリはいちばん外側に置きます。 公式のドキュメントでは、hybrid クエリは function_score や constant_score などの複合クエリの中に入れられないとされています。新しい拾得物の点数を上げたくなっても、hybrid の中では行わず、取り出した後に規則で並べ替えます。 1つの hybrid に入れられるクエリは5つまでで、filter はすべてのクエリにかかります。
knn の filter を別に書かないのは、hybrid の filter で足りるからです。 k-NN の公式のドキュメントでは、knn の filter は faiss か lucene のエンジンでだけ使えるとされています。索引を作るときのエンジンの選び方と合わせて確かめます。
AIへ渡す前に整形する
- 品目の分類をそろえる … 台帳の品目を、品目の分類の表で社内の分類(
bag、wallet、deviceなど)に置き換えてcategoryに入れます。表に無い品目はcategoryを空にして残します - 色をそろえる … 「黒系」「ブラック」「黒」を
blackに、「紺」「ネイビー」をnavyにします。「暗い色」のような書き方は、値を入れずに説明の文に残します - 区域をそろえる … 拾得の場所を区域の表で
security、gate_area、baggage_claimなどにします - 検索用の文を作る … 品目・色・ブランド・特徴の文をつないだ1つの文にし、本人確認用の特徴は入れません
- ベクトルにする … 検索用の文を Titan Text Embeddings V2 に渡し、1,024次元のベクトルを
description_vecに入れます - 問い合わせから個人の情報を外す … 名前、電話番号、メールアドレス、住所は、Claude に渡す前に伏せます
2番目で、空の色に推測の値を入れないでください。 「暗い色」を black にすると、紺の問い合わせで出なくなります。分からない値は空のまま残し、規則で「記録なし」にします。
AIに処理させる
AIの仕事は2つです。 問い合わせを探す条件と日本語の検索文に読み替えることと、規則で照らした候補を台帳の記録のまま並べ、聞き返しの下書きを書くことです。
| させること | させないこと |
|---|---|
| 品目・色・ブランド・特徴・なくした日時と場所を書かれたまま取り出す | 書かれていない日付や場所を補うこと |
| 外国語の問い合わせから日本語の検索文を作る | ブランド名を別のブランドに読み替えること |
| 言い方の別の候補(リュック、バックパックなど)を挙げる | 「荷物が出てくるところ」を区域のコードに決めること |
| 候補を台帳の記録のまま担当者向けに並べる | 「こちらがお客様のお品物です」と言い切ること |
| 本人を確かめる聞き返しの項目を書く | 候補の特徴や本人確認用の特徴を利用者向けの文に書くこと |
「候補の特徴を利用者向けの文に書かない」が、この構成でいちばん大事な線です。 「黒いリュックで、青いキーホルダーが付いたものがございます」と返せば、次に問い合わせてきた人は青いキーホルダーと言うだけで本人になれます。 聞き返しは「かばんの中身と、付いている飾りの色をお知らせください」の形にします。
指示内容を固定する
1回目(問い合わせの読み替え)の指示です。
あなたは空港の旅客ターミナルビルの遺失物の窓口で、問い合わせを整理する立場です。
【問い合わせ】から、拾得物の台帳を探すための条件を取り出してください。
【取り出すもの】
- language: 問い合わせの言語
- item / color / brand / features: 書かれたまま(原文の言語のまま)
- lost_date_raw / lost_place_raw / flight_no: 書かれたまま
- query_ja: 品目・色・ブランド・特徴をつないだ日本語の検索文
- item_variants_ja: 品目の別の言い方の候補(日本語)
- missing: 書かれていない項目の名前
【厳守事項】
- 書かれていない日付・場所・便名を補わないでください。
- ブランド名は原文の綴りのまま写し、日本語の検索文にも原文の綴りで入れてください。
- 色は書かれた色だけを訳し、似た色を足さないでください。
- 場所を空港の区域の名前に置き換えないでください。書かれたまま写してください。
- 名前・電話番号・メールアドレス・住所は写さないでください。
【問い合わせ】{inquiry_text}
2回目(候補の一覧と聞き返しの下書き)の指示です。
あなたは空港の遺失物の窓口で、担当者が使う候補の一覧と、利用者への返事の下書きを作る立場です。
【候補】は拾得物の台帳の記録と、規則で照らした結果と、近さの段階です。
【担当者向けの一覧】
- 候補ごとに、管理番号・品目・色・拾得の日時と区域・保管の場所・近さの段階を、台帳の記録のまま書いてください。
- 一致した項目と、記録なしの項目を分けて書いてください。
【利用者への下書き】
- 問い合わせの言語で書いてください。
- 候補があるときは「お問い合わせの内容に近いお品物があるか確認しています」とだけ書き、
本人の確認のために聞き返す項目を2〜3個書いてください(中身、付属品、名入れなど)。
- 候補が無いときは、引き続き確認する旨と、機内の場合は航空会社の窓口になる旨を書いてください。
【厳守事項】
- 利用者への下書きに、候補の色・ブランド・特徴・付属品・保管の場所を書かないでください。
- 「お客様のお品物です」「見つかりました」と言い切らないでください。
- 送付・引取り・費用の約束を書かないでください。
- 台帳の記録に無い特徴を書かないでください。
【問い合わせの条件】{conditions}
【候補】{candidates}
「利用者への下書きに候補の特徴を書かない」を明記しないと、AIは親切のつもりで候補の説明を返事に書きます。 利用者に安心してもらうための一文が、本人の確認を崩します。 聞き返す項目だけを書かせ、特徴は担当者向けの一覧にだけ置きます。
出力形式を固定する
Bedrock の Converse API の outputConfig.textFormat に JSON スキーマを渡し、2回目は次の形で受け取ります。
{
"inquiry_no": "",
"candidates": [
{ "item_no": "",
"level": "A | B | C",
"match": { "category": "match | mismatch | not_recorded",
"color": "match | mismatch | not_recorded",
"area": "match | mismatch | not_recorded" },
"listed": { "item": "", "color": "", "found_at": "", "area": "", "storage": "" } }
],
"verify_questions": [""],
"reply_draft": "",
"reply_language": ""
}
AWS の公式ページでは、outputConfig.textFormat に JSON スキーマを渡すと応答がスキーマに沿い、enum が使えます。すべての object に additionalProperties: false が要り、数値の minimum・maximum には対応していません。新しいスキーマは最初の呼び出しで組み立てに最大90秒ほどかかり、24時間キャッシュされるので、最初の呼び出しの待ち時間を120秒以上にしておきます。 level と match は Lambda の規則の結果を写させ、AIには決めさせません。
| 近さの段階 | 規則 |
|---|---|
| A | 品目の分類と色と区域が一致し、拾得の日がなくした日の当日か翌日 |
| B | 品目の分類が一致し、色か区域のどちらかが記録なし |
| C | ハイブリッド検索の上位だが、品目の分類が記録なし |
| 外す | 品目の分類か色が不一致 |
1つ目の理由は、reply_draft を機械で検査できることです。 下書きに候補の listed の色・ブランド・保管の場所の文字列が含まれていないかを Lambda で調べ、含まれていれば下書きを捨てて担当者に知らせます。 本人確認の線は、指示だけでなく検査でも守ります。
2つ目は、listed を台帳と照合できることです。 値が台帳と違えば作り直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 遺失物の管理の仕組み | 変わった拾得物の書き出し(15分ごと)、状態の照会(読み取りのみ) | 索引の元、引渡し済みの確かめ |
| Amazon OpenSearch Service | Lambda からの登録・検索 | 拾得物の索引、検索パイプライン |
| Amazon Bedrock | Titan Text Embeddings V2、Converse API(Claude) | ベクトル化、読み替え、一覧と下書き |
| 問い合わせのフォーム・メール | 受信を Lambda に渡す | 問い合わせの起点 |
| 窓口の担当の画面 | 社内の画面 | 候補と写真、聞き返しの下書き、照らし直し待ちの一覧 |
返事は担当者が送ります。 下書きを自動で送る経路を作りません。
人が確認する
- 読み替えを見る … 品目・色・日付・場所が問い合わせのとおりに取り出されているかを確かめます
- 候補を現物か写真で確かめる … 段階が A でも、保管庫の現物か写真を見てから返事をします
- 聞き返しの答えで本人を確かめる … 管理の仕組みの本人確認用の特徴と、利用者の答えを担当者が照らします
- 引渡しと送付は担当者が決める … 引取りのときの本人確認、送付の方法は、いつもの手順で行います
- 警察署長へ提出済みの候補は、提出先を案内する … 窓口では返せないので、提出した警察署を伝えます
3番目を省かないでください。 拾得物の返還は、遺失物法でも施設占有者が遺失者に返還するか警察署長に提出するものとされています(第13条)。返す相手を誤れば、本当の持ち主の物を渡すことになります。 AIが出すのは候補までです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 候補が0件 | 日付の幅を前後14日に広げた件数を示し、「照らし直し待ち」に入れる |
| 機内での忘れ物と思われる | 便名があれば、該当の航空会社の窓口を案内する文を下書きに入れる |
| 現金・貴重品の問い合わせ | 候補を出さず、担当者がすぐに対応する一覧に回す |
| 運転免許証・旅券など身分を証する物 | 候補の一覧には出し、下書きでは品目も書かない |
| 候補が引渡し済み・提出済み | 返事の前の照会で引渡し済みは外し、提出済みは提出先を表示する |
| 外国語の問い合わせで日付の書き方が曖昧 | 「10/11」のような書き方は、日付を決めずに聞き返す |
| 構造化出力が返らない | 候補の一覧だけを出し、下書きは担当者が書く |
4行目の身分を証する物は、遺失物法でも拾った人が所有権を得られない物とされています(第35条)。 持ち主に返すか警察に届けるしかない物なので、取り違えたときの重さが違います。
記録を残す
- 問い合わせごとの、問い合わせの文(個人の情報を伏せたもの)、1回目の JSON、担当者が直した箇所
- 候補と照らし合わせの結果、近さの段階、2回目の JSON と下書きの検査の結果
- 本人確認で聞き返した項目と、確認できたかどうか(特徴そのものは残さない)
- 照らし直しで新たに出た候補と、連絡した日時
- 引き渡した拾得物の管理番号と、そのときの近さの段階
最後の行は、規則と言い換えの辞書を直す材料になります。 段階が C で引き渡しになった拾得物が多ければ、品目の分類の表が足りていません。
04実装レベルの3段階
半自動化で、1件10分が6分程度になります。 引き直しはほぼなくなりますが、候補の見比べと返事を書く作業が残ります。本格構成で4分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化を1か月使うと、どの言い方で出なかったか、どの品目の特徴の文が短いかが分かります。品目の分類の表と台帳の書き方をそこで直してから本格構成に進むほうが、段階 A の候補が増えます。
05工数削減シミュレーション
導入後 900件 × 4分 ÷ 60 = 60 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 年間の乗降客が数百万人規模の空港で、旅客ターミナルビルの遺失物の窓口が拾得物の受付と保管を担い、月に数百件から千件の問い合わせを少人数で受けている会社。拾得物の台帳は品目・色・特徴・拾得の日時と場所を入れて管理しているのに、利用者の言い方と台帳の書き方が合わず、担当者が言い換えて何度も台帳を引き直している場合。訪日の旅行者から英語や中国語の問い合わせが増えている場合。AWS を使える担当か委託先がいる場合。
- 拾得物が1日に数件で、窓口の担当が保管庫の中身を覚えている小さな空港や施設。拾得物の台帳が紙で、品目と拾得の日付しか書かれていない場合(先に台帳の項目をそろえます)。航空機の機内での忘れ物の問い合わせが大半の場合(機内の忘れ物は航空会社の窓口で扱われることが多く、この構成の台帳には入りません)。なお、問い合わせてきた人が本当の持ち主かどうかの確認、拾得物の引渡し、警察署長への提出や届出の判断は、この構成では代替できません。台帳から特徴の近い拾得物を探し、記録のまま並べるまでです。
07最小構成で試す方法
- 先月の問い合わせから30件を選ぶ(引き渡せたもの、見つからなかったもの、外国語のものを混ぜる)
- それぞれについて、実際に引き渡した拾得物の管理番号を書き出す
- 台帳を表計算に書き出し、品目の列に社内の分類を手で足す
- 30件の問い合わせを手元のAIサービスに貼り、「品目・色・ブランド・特徴・なくした日時と場所を書かれたまま取り出し、日本語の検索文と品目の別の言い方を挙げてください。書かれていない日付や場所を補わないでください」と指示する
- 取り出した条件で表計算を引き、実際に引き渡した拾得物が上位に出るかを見る
- 見つからなかった問い合わせのうち、その後に届いた拾得物と合うものがあったかを見る
6番目が、照らし直しの効き目を見積もる材料になります。
| 出てきた内容 | 判断 |
|---|---|
| 当時の拾得物が条件で引け、見つからなかったものの一部も見つかった | OpenSearch の索引に進む |
| 日付や場所を補った・ブランド名を変えた | 指示の書き方で直る。構成は有効 |
| 台帳の特徴の文が短く、条件で引いても候補が絞れない | 台帳の書き方の決まりが先 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 言い方の違いで拾得物が出ない | 言い換えの辞書と意味の近さの検索を併せて使う |
| 英語の問い合わせで意味の近さが効かない | 先に日本語の検索文にしてから引く |
| hybrid を function_score に入れて失敗する | hybrid はいちばん外側に置き、並べ替えは取り出した後に行う |
| 2つの点数の重みが合わない | 引き渡せた問い合わせで weights を試し、合計1.0で決める |
| 空の色に推測の値を入れる | 分からない値は空のまま、規則で「記録なし」にする |
| 下書きに候補の特徴が出る | 指示で禁じ、listed の文字列が含まれていないかを検査する |
| 引渡し済みを「ございます」と答える | 返事の前に状態を照会する |
上の4行は検索の側の失敗です。 下の3行は、本人の確認と、返した後の取り違えに直結する失敗で、検索の精度より先に守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 問い合わせの本文(名前・連絡先・便名)、拾得物の台帳、本人確認用の特徴です。財布やかばんの中身には、身分証やカードが入っていることがあります。
- 問い合わせから個人の情報を外す … 名前、電話番号、メールアドレス、住所は、Claude に渡す前に伏せます
- 本人確認用の特徴を索引にも生成AIにも渡さない … 管理の仕組みの別の欄に置き、担当者だけが見ます
- 候補の特徴を利用者に返さない … 下書きは聞き返しだけにし、検査で確かめます
- 返還と提出の判断は担当者が行う … 遺失物法では、施設占有者は遺失者に返還するか警察署長に提出するものとされています。特例施設占有者に当たる事業者は、二週間以内に警察署長へ届け出て自ら保管できるとされています(第17条)。自社がどちらに当たるか、期限をどう管理するかは、管理の仕組みの側で扱います
- 掲示の項目と合わせる … 不特定多数が利用する施設では、物件の種類及び特徴、拾得の日時及び場所を掲示するとされています(第16条)。掲示に載せる範囲と、本人確認用に伏せる範囲を分けて決めておきます
- 索引への接続を限る … OpenSearch のドメインには、Lambda と窓口の担当だけが接続できるようにします
誤りが起きた場合のリスクは、保管しているのに「届いていません」と答えること、本当の持ち主でない人に渡すこと、問い合わせの個人の情報が外へ出ることの3つです。 ハイブリッド検索と照らし直し、特徴を伏せた聞き返し、個人の情報を伏せることの3つで防ぎます。
10まず何から始めるか
1週目:台帳の書き方を見る
遺失物の管理の仕組みから先月の拾得物を書き出し、特徴の文の長さと、色・ブランドの欄の埋まり方を見ます。短い品目から、拾った担当が書く項目の決まりを直します。
2週目:30件で試す
第8章のとおり、先月の問い合わせ30件で、当時の拾得物が引けるか、見つからなかった問い合わせに後から合う拾得物があったかを見ます。日付や場所を補っていないかを最優先で見ます。
3週目:表を作る
品目の分類の表と区域の表を、窓口のベテランと作ります。本人確認用の特徴を、管理の仕組みの別の欄に分ける運用を決めます。
4週目:索引を作る
OpenSearch に拾得物の索引と検索パイプラインを作り、担当者が言い方を気にせず引けるようにします。この時点では、問い合わせの読み替えと下書きは使いません。
2か月目: 読み替え、近さの段階、聞き返しの下書きと検査を足します。3か月目以降: 照らし直しを足し、引き渡せた件数、照らし直しで見つかった件数、段階ごとの件数を毎月数えます。新しい担当者でも、ベテランと同じくらいの件数を引き渡せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 施設占有者が交付を受けた物件を速やかに遺失者に返還するか警察署長に提出すること(第13条)。不特定多数が利用する施設で物件の種類及び特徴、拾得の日時及び場所を掲示すること(第16条)。特例施設占有者が二週間以内に警察署長に届け出て自ら保管できること(第17条)。個人の身分を証する文書などは所有権を取得できないこと(第35条) | e-Gov 法令API: 遺失物法 | 2026-10-27 |
hybrid クエリが複数のクエリの点数を検索パイプラインで1つにまとめること。クエリは5つまでで、filter が全クエリにかかること。function_score などの中に入れられないこと | OpenSearch: Hybrid query | 2026-10-27 |
normalization-processor の既定が min_max と arithmetic_mean であること。weights が0〜1で合計1.0であること | OpenSearch: Normalization processor | 2026-10-27 |
knn クエリの vector・k の書き方。filter が faiss か lucene のエンジンでだけ使えること | OpenSearch: k-NN query | 2026-10-27 |
| Japanese(kuromoji)と ICU の解析のプラグインが全ドメインに含まれること。k-NN と Neural Search のプラグイン | AWS: Plugins by engine version in Amazon OpenSearch Service | 2026-10-27 |
| Titan Text Embeddings V2 が英語に最適化され、日本語を含む多言語に対応すること(100以上の言語はプレビュー)。言語をまたぐ検索は最適でない結果になること。出力が1,024次元(既定)であること | AWS: Amazon Titan Text Embeddings models | 2026-10-27 |
Converse API の outputConfig.textFormat で JSON スキーマに沿った出力が得られること。additionalProperties: false が要ること。数値の minimum・maximum に対応しないこと。新しいスキーマの組み立てに最大90秒ほどかかり、24時間キャッシュされること | AWS: Structured outputs(Amazon Bedrock) | 2026-10-27 |
本人であることの確認、拾得物の引渡し、警察署長への提出や届出の判断は、窓口の担当者と自社の手順で行ってください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1934)についてのご相談はこちらから。
