飲食チェーンの本部で、店舗の衛生点検と保健所の立入検査の過去の指摘記録を設備・工程・言葉で探し、似た指摘と効いた是正を根拠付きで店長への指導に使う
店舗の衛生点検や保健所の立入検査で指摘が出たときに、全店の過去の指摘記録から似たものを探します。そのとき行った是正と、次の点検で再び指摘されたかを記録付きで並べ、本部の担当が店長へ指導する材料にします。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- 宿泊/小売/飲食
- 対象部門
- 品質管理
- 対象業務
- 情報検索/比較検討
- 主な課題
- 属人化している/情報が見つからない/確認ミスが多い
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当が点検で指摘を付ける。または店長から保健所の指摘の報告が届く
- 担当が、同じ指摘が他店でもあったかを点検アプリで探す
- 保健所の指摘の報告の表計算も、同じ言葉で探す
- それらしい指摘を開き、是正の報告を読む
- その店の次の点検の記録を開き、同じ指摘が出ていないかを確かめる
- 見つからなければ、ほかの担当に「この指摘、前にあった?」と聞く
- 店長への指導のメモを書き、是正の期限と確かめる点を伝える
- 人担当が点検で指摘を付ける。または店長が保健所の指摘を報告する
- 自動指摘の登録をきっかけに、指摘の文・設備・工程・出どころを受け取る
- 自動設備と工程で絞り、指摘の文に似た過去の指摘を、同義語をそろえて探す
- 自動当たった指摘ごとに、是正の報告と、次回の点検での再指摘の有無を引く
- 自動生成AIが、再指摘の無かった是正を先に並べ、指導の要点の案をまとめる
- 自動結果を点検アプリの指摘に添えて、担当に返す
- 人担当が根拠の指摘と写真を開き、今回の店の事情に合うかを確かめる
- 人担当が指導のメモを直し、店長へ伝える
各工程の詳しい説明を読む
- 担当が点検で指摘を付ける。または店長から保健所の指摘の報告が届く
- 担当が、同じ指摘が他店でもあったかを点検アプリで探す
- 保健所の指摘の報告の表計算も、同じ言葉で探す
- それらしい指摘を開き、是正の報告を読む
- その店の次の点検の記録を開き、同じ指摘が出ていないかを確かめる
- 見つからなければ、ほかの担当に「この指摘、前にあった?」と聞く
- 店長への指導のメモを書き、是正の期限と確かめる点を伝える
(a)言葉が合わない。 点検アプリの指摘は担当が自由に書き、店長の報告は店の呼び方で書かれます。「ダスター」と「台ふきん」、「シンク」と「流し」、「まな板」と「カッティングボード」。同じ指摘を探すのに、言葉を3つも4つも変えなければなりません。
(b)置き場が2つある。 本部の点検と保健所の指摘が別の置き場にあり、保健所で指摘されたことを、本部の点検ではまだ指摘していないことに気づけません。
(c)効いたかを確かめに行く余裕が無い。 5番目は、1件ずつ次の点検の記録を開く作業です。忙しい月は省かれ、是正の報告に「清掃した」と書いてあれば効いたものとして扱われます。
(d)知っているのが受け持ちの担当だけ。 6番目は早いのですが、ほかの担当の受け持ちの店で起きたことは、その担当が覚えていなければ出てきません。 担当が替わると、店の経緯もそこで途切れます。
- 【人】 担当が点検で指摘を付ける。または店長が保健所の指摘を報告する
- 【自動】 指摘の登録をきっかけに、指摘の文・設備・工程・出どころを受け取る
- 【自動】 設備と工程で絞り、指摘の文に似た過去の指摘を、同義語をそろえて探す
- 【自動】 当たった指摘ごとに、是正の報告と、次回の点検での再指摘の有無を引く
- 【自動】 生成AIが、再指摘の無かった是正を先に並べ、指導の要点の案をまとめる
- 【自動】 結果を点検アプリの指摘に添えて、担当に返す
- 【人】 担当が根拠の指摘と写真を開き、今回の店の事情に合うかを確かめる
- 【人】 担当が指導のメモを直し、店長へ伝える
4番目を機械で引いているのが、この設計の分かれ目です。 再指摘の有無は、次回の点検で同じ設備・同じ工程の指摘があったかで決まります。生成AIに是正の報告から「効いたか」を読ませると、「清掃した」を効いたものとして読みます。
7番目を人に残しているのも、意図してのことです。 ほかの店で効いた是正でも、設備の型や厨房の広さが違えば同じやり方は取れません。 店の事情を知っているのは受け持ちの担当です。
02今回想定するシステム構成
衛生点検のアプリ(本部の点検)/保健所の指摘の報告 ▼【トリガー】指摘の登録 AWS Lambda ── 指摘の文・設備・工程・出どころを取り出す ▼ Amazon OpenSearch Service(全店の指摘の索引) ├─ 絞り込み:設備の区分、工程(keyword) ├─ 言葉:Sudachi で語に分け、同義語の辞書でそろえる └─ 似た指摘:more_like_this ▼ AWS Lambda ── 指摘ごとに是正の報告と次回の点検での再指摘の有無を引く ▼ OpenAI API ── Structured Outputs で指導の要点の案をまとめる ▼ 点検アプリの指摘に添えて担当へ返す
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(Sudachi、同義語の辞書、more_like_this) | Azure AI Search、Vertex AI Search(Agent Search) |
| 生成AI | OpenAI API(Structured Outputs で指導の要点の案を返す) | Claude API、Gemini API |
| 連携 | AWS Lambda(指摘の受け取り、検索、再指摘の照会、返却) | AWS Step Functions |
| 点検 | 既存の衛生点検のアプリ | ― |
| 保管 | Amazon S3(索引に入れる前の指摘と是正の写し、同義語の辞書、検索の記録) | ― |
点検アプリと保健所の報告の置き場は、新しく足すものではありません。 この構成は、両方の写しを1つの索引に入れ、結果を指摘に添えて返すだけです。指摘や是正の報告を書き換えることはしません。
衛生管理の記録を振り返りに使うことは、制度の側でも求められています。 厚生労働省のページでは、令和3年6月1日から、原則としてすべての食品等事業者がHACCPに沿った衛生管理に取り組むことになったとされています。営業者が実施することとして、衛生管理計画の作成と従業員への周知、必要に応じた手順書の作成、実施状況の記録と保存、そして計画と手順書の効果を定期的に(工程に変更が生じた際等にも)検証し、必要に応じて見直すことが挙がっています。この構成は、4つ目の振り返りに、全店の記録を材料として持ち込むものです。
日本語の本文は、Sudachi で語に分けます。 Amazon OpenSearch Service の対応プラグインの一覧では、Sudachi Analysis が日本語向けに推奨とされています。
03どうやって実装するのか
処理の起点を決める
点検アプリに指摘が登録されたことを起点にします。 本部の担当が点検で指摘を付けたとき、点検アプリから通知を受けます。巡回は日中に行われるので、担当が店を出るころには、似た指摘の結果がそろっているようにします。
保健所の指摘は、店長の報告の登録を起点にします。 表計算の様式を受付フォームに置き換え、送信されたら同じ流れで探します。保健所の指摘には「保健所」の印を付け、結果の先頭に出します。 行政の指導は、本部の点検の指摘より先に手当てが要るからです。
索引の更新は別に動かします。 是正の報告が上がったとき、その指摘の是正の欄だけを入れ直します。次回の点検が終わったら、前回の指摘ごとに再指摘の有無を書き込みます。 これは夜に1日分をまとめて行います。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 新しい指摘 | 指摘の文、設備、工程、店舗、出どころ(本部の点検・保健所)、写真 | 点検アプリ/保健所の指摘の受付フォーム |
| 過去の指摘 | 指摘の文、設備、工程、店舗、日付、出どころ | 点検アプリと保健所の報告の写し |
| 是正の報告 | 何をしたか、いつしたか、写真、店長の名前ではなく店舗 | 点検アプリ |
| 再指摘の有無 | 次回の点検で同じ設備・同じ工程の指摘があったか | 点検アプリから夜に作る |
| 店舗の情報 | 業態、厨房の広さ、主な設備の型 | 店舗の一覧と設備の台帳 |
質を決めるのは、設備と工程の区分です。 指摘の文は自由に書かれますが、設備と工程を選択肢で付けておけば、絞り込みで外さなくなります。 点検アプリの指摘の入力に、設備と工程の選択欄を必須で置きます。
店舗の設備の型も、索引に持たせます。 食器洗浄機の指摘は、型によって効く是正が違います。同じ型の店の是正を先に見られるようにします。
データの取得方法を決める
過去の指摘は、是正の報告が上がっているものを中心に入れます。 是正の無い指摘も入れますが、結果では「是正の報告なし」と分かるようにします。 是正の無い指摘を外すと、是正が進まなかった店の傾向が見えなくなります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 新しい指摘の文と区分 | 点検アプリ/受付フォーム | 検索の言葉と絞り込み |
| 過去の指摘と是正 | 点検アプリの書き出し、保健所の報告の写し | 検索の対象と引用の元 |
| 再指摘の有無 | 夜の処理で作る項目 | 効いた是正を先に並べる |
| 同義語の辞書 | 本部で作るテキストのファイル | 言葉の揺れをそろえる |
同義語の辞書は、パッケージとしてドメインに対応付けます。 公式のドキュメントでは、同義語のファイルを Amazon S3 に置いてパッケージとして取り込み、ドメインに対応付けると、analyzers/<パッケージのID> を synonyms_path に指定して使えるとされています。辞書の書き方は synonym_graph のフィルタで、synonyms か synonyms_path のどちらかを指定し、format の既定は solr、expand の既定は true です。
辞書は、検索のときだけ効かせます。 公式のドキュメントでは、"updateable": true は検索のアナライザーにだけ使え、OpenSearch 7.8 以降のドメインで検索のアナライザーだけに使っていれば、パッケージを更新すると _plugins/_refresh_search_analyzers で索引が自動で更新されるとされています。索引を作り直さずに言葉を足せるので、担当が新しい呼び方に気づいたその週に辞書へ足せます。
辞書は、1行に同じ意味の言葉をカンマで並べる形で書きます。
製氷機, 製氷器, アイスメーカー
ダスター, 台ふきん, 台拭き
シンク, 流し, 洗い場
まな板, カッティングボード
食器洗浄機, 食洗機, ディッシュウォッシャー
グリストラップ, 阻集器, グリス阻集器
行は設備と道具の名前に限ります。 「汚れ」「ぬめり」「カビ」のような状態の言葉を同じ行に入れると、別々の指摘がまとめて当たり、効いた是正の並びが崩れます。 状態の言葉は辞書に入れず、指摘の文の一致に任せます。索引に入れる側のアナライザーには辞書を入れず、検索の側だけに入れます。 これで辞書を直しても、索引の中身は変わりません。
AIへ渡す前に整形する
- 区分をそろえる … 設備と工程を選択肢の値にそろえます。自由入力の古い指摘は、辞書で区分の候補を付けます
- 出どころを付ける … 本部の点検か保健所かを
keywordの項目に入れます - 再指摘を結び付ける … 同じ店舗・同じ設備・同じ工程で、次回の点検に指摘があったかを
recurredに入れます - 名前を外す … 店長や従業員の名前は、探すのに要りません。店舗の番号に置き換えます
- 写真は索引に入れない … 写真は点検アプリに残し、索引には写真への参照だけを入れます
3番目が、この構成の要です。 「次回の点検」は、その店で指摘の日より後に行われた最初の巡回の点検とします。次回の点検がまだ無い指摘は recurred を空にし、「未確認」と出します。 空を「再指摘なし」と読むと、まだ確かめていない是正が効いたものに見えます。
保健所の指摘の再指摘は、本部の次回の点検で見ます。 保健所の立入検査は毎月あるわけではないので、保健所の次回の検査を待つと、いつまでも未確認のままです。本部の点検票で同じ設備・同じ工程に指摘が出なければ「再指摘なし」とし、出どころが違うことを recurred_by に残します。
再指摘の結び付けは、次回の点検で同じ設備の点検項目を実際に見たときだけ行います。 巡回の時間が足りず、その設備の項目を飛ばした点検もあります。見ていないのに指摘が無いのは、効いたのではなく見ていないだけなので、その場合も未確認にします。
AIに処理させる
似た指摘を探すのは OpenSearch の more_like_this です。 問い合わせは、たとえば次の形になります。
{
"query": {
"bool": {
"filter": [
{ "term": { "equipment": "{設備}" } },
{ "terms": { "process": ["{工程}"] } }
],
"must": [
{
"more_like_this": {
"fields": ["finding_text"],
"like": "{新しい指摘の文}",
"min_term_freq": 1,
"min_doc_freq": 2,
"max_query_terms": 25
}
}
],
"should": [
{ "term": { "recurred": false } },
{ "term": { "source": "health_center" } }
]
}
}
}
min_term_freq を1に下げるのが、この問い合わせの要です。 公式のドキュメントでは、more_like_this は入力の中で出現が少なすぎる語を無視し、その既定は2とされています。指摘の文は「製氷機の内側にぬめり」のように短く、同じ語が2回出ることはまずありません。 既定のままだと、どの語も選ばれず何も当たりません。min_doc_freq(既定5)も、珍しい設備の指摘を拾うために下げます。 max_query_terms の既定は25、minimum_should_match の既定は30%です。
設備と工程は、点数ではなく絞り込みで効かせます。 冷蔵庫の指摘を探しているのに、言葉が似ているだけの製氷機の指摘が上に来ては困ります。should の再指摘なしと保健所の印は、同じくらい似た指摘の中で順を上げるためだけに使います。
生成AIにさせるのは、当たった指摘を3つの見出しで並べ、指導の要点の案を書くことだけです。
| 見出し | 中身 |
|---|---|
| 効いた是正 | 再指摘が無かった指摘の是正の報告から、何をしたか |
| 効かなかった是正 | 再指摘があった指摘の是正の報告と、再指摘の内容 |
| 指導の要点の案 | 効いた是正を、今回の店に伝える形にした2〜3点 |
| させないこと | 理由 |
|---|---|
| 是正が効いたかの判断 | recurred の値をそのまま使わせる |
| 営業や食品の扱いを止めるかの判断 | 本部の責任者と保健所の指導に従う |
| 根拠に無い是正の提案 | 記録に無いやり方を作らない |
| 店舗や人の責任の評価 | 指導の材料であり、評価の材料ではない |
1行目が、この構成の線引きです。 是正の報告は店長が書いたもので、「徹底した」「注意した」と書けば効いたように読めます。 効いたかは記録から決まった値だけを使わせます。
指示内容を固定する
あなたは飲食チェーンの本部の品質管理部で、店舗への衛生の指導を準備する担当を手伝う立場です。
渡した過去の指摘と是正の記録だけを根拠にしてください。
【今回の指摘】店舗:{store}/設備:{equipment}/工程:{process}
出どころ:{source}/指摘の文:{finding}
【今回の店の設備の型】{equipment_model}
【過去の指摘】指摘ごとに、指摘の文・是正の報告・recurred を渡します。
recurred = false ... 次回の点検で同じ設備・同じ工程の指摘なし
recurred = true .... 次回の点検で再び指摘あり
recurred = null .... 次回の点検がまだ無い(未確認)
【やること】
1. recurred が false の指摘の是正を「効いた是正」に、true の指摘の是正を
「効かなかった是正」に分けてください。null のものは「未確認」に入れてください。
2. 効いた是正をもとに、今回の店長に伝える指導の要点の案を2〜3点書いてください。
【厳守事項】
- 渡した記録に書かれていない是正のやり方を書かないでください。
- 是正が効いたかどうかは recurred の値だけで決めてください。
是正の報告の書きぶり(「徹底した」など)で判断しないでください。
- 営業を止める、食品を廃棄する、といった判断を書かないでください。
- 店長や従業員の責任を評価する言葉を書かないでください。
- 設備の型が今回の店と違う記録は、その違いを書き添えてください。
- 根拠にした記録の番号を、それぞれに付けてください。
「recurred の値だけで決める」を明記しないと、報告の書きぶりで分けます。 「清掃を徹底し、毎日確認するよう指導した」と書かれた是正は、生成AIには効いたものに見えます。その店が次の点検で同じ指摘を受けていても、です。
「設備の型の違いを書き添える」は、担当の確認を速くするためです。 型が違う店の是正をそのまま伝えると、店長は「うちの機械ではできない」と受け取ります。
出力形式を固定する
生成AIの応答は、OpenAI API の Structured Outputs で受け取ります。 公式のドキュメントでは、Responses API で text.format に type: "json_schema"、strict: true とスキーマを指定します。安全のために応答を断ることがあり、そのときは refusal の項目が返り、指定したスキーマに従うとは限らないので、別に扱う必要があります。上限のトークン数に達して応答が途中で終わることもあるため、解析の前に状態を確かめます。
{
"finding_id": "",
"effective": [
{ "record_id": "", "store": "", "action": "", "same_model": true }
],
"not_effective": [
{ "record_id": "", "store": "", "action": "", "recurred_finding": "" }
],
"unconfirmed": [
{ "record_id": "", "store": "", "action": "" }
],
"guidance_points": ["", ""],
"health_center_related": false
}
1つ目の理由は、効いた・効かなかった・未確認を別の配列に置けることです。 点検アプリでは、効いた是正を上に、効かなかった是正を折りたたんで表示します。担当は、効かなかったやり方を店長に勧めずに済みます。
2つ目は、health_center_related で保健所に関係する指摘を目立たせられることです。 当たった指摘に保健所の印のものがあれば、「保健所でも指摘された内容」と見出しに出します。
3つ目は、record_id で根拠に戻れることです。 担当はその番号から、元の指摘の写真と是正の写真を点検アプリで開きます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 衛生点検のアプリ | 指摘の登録の通知、結果の添付 | 指摘を受け、結果を指摘に添える |
| 保健所の指摘の受付フォーム | 送信の通知 | 保健所の指摘を受ける |
| Amazon OpenSearch Service | 検索 | more_like_this で似た指摘を探す |
| OpenAI API | API呼び出し | Structured Outputs で並べる |
| Amazon S3 | パッケージの元 | 同義語の辞書を置く |
点検アプリへは、結果の添付だけを書き込みます。 指摘の重さや是正の期限は、担当が決めて入力します。
同義語の辞書は、担当が直せる形にします。 辞書のファイルを本部の共有の場所に置き、担当が足した言葉を週に1回まとめてパッケージに反映します。反映の前に、足した言葉で過去の指摘がいくつ増えて当たるかを確かめます。
人が確認する
- 根拠の確認(担当) … 結果の記録の番号から、元の指摘と是正の写真を開きます
- 店の事情との照合(担当) … 効いた是正が、今回の店の設備と厨房で取れるかを確かめます
- 指導の要点の確定(担当) … 案を直して、店長へ伝える言葉にします
- 当たり外れの記録(担当) … 次回の点検で、伝えた是正が効いたかを点検アプリに残します
目安は、1件あたり6分です。 根拠の指摘を2件ほど開き、写真を見て、指導の要点の案を直す時間です。保健所の指摘に関わるものは、時間をかけて確かめます。
4番目は、自動で残るようにします。 次回の点検の結果から再指摘の有無が書き込まれるので、担当が別に入力する手間はありません。 その値が、次に同じ指摘が出たときの材料になります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 似た指摘が1件も無い | 「似た指摘なし」と返す。無理に並べない |
| 設備や工程が選ばれていない | 絞り込みを外して探し、「区分なしで探した」と添える |
| 当たった指摘がすべて未確認 | 「効いたかは未確認」と見出しに出す |
| 同義語の辞書で意図しない指摘が当たる | 辞書の行を見直し、週1回の反映で直す |
| 生成AIが応答を断る、途中で終わる | 当たった指摘の番号と是正の報告だけを返す |
| 同じ店で同じ指摘が3回続いている | 結果の先頭に「繰り返し」と出し、担当の上長にも知らせる |
| 点検アプリの通知が届かない | 夜の処理で、結果の付いていない指摘を拾って探し直す |
| 保健所の指摘で、営業に関わる指導がある | 結果を待たず、本部の責任者へすぐ知らせる |
最後の行は、この仕組みの外で動かします。 保健所から営業や食品の扱いに関わる指導を受けたときは、似た指摘を探すより先に責任者が動く必要があります。
記録を残す
- 受け取った指摘と、検索に使った設備・工程・指摘の文
- 返した過去の指摘の番号と点数
- 生成AIに渡した記録の番号と、返った応答
- 担当が直した指導の要点と、店長へ伝えた日
- 辞書を反映した日と、足した言葉
辞書を反映した日を残すのは、当たり方が変わるからです。 同じ指摘でも、辞書を足した後は当たる記録が増えます。指導の質の変化を振り返るときに、いつから言葉がそろったかが分かります。
04実装レベルの3段階
半自動化で、1件20分が12分程度になります。 似た指摘は探しやすくなりますが、次の点検の記録を開いて効いたかを確かめること、指導のメモを書くことが残ります。本格構成で6分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月回すと、設備と工程が付いていない古い指摘と、辞書に無い呼び方が分かります。そこを直してから再指摘の結び付けまで進むほうが、効いた是正の並びが正しくなります。
05工数削減シミュレーション
導入後 120件 × 6分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 直営店を数十から数百持つ飲食チェーンで、本部の品質管理の担当が店舗の衛生点検を巡回で行い、指摘と是正を点検アプリや表計算に数年分ためている場合。保健所の立入検査で受けた指摘も本部に報告させているが、他店の同じ指摘と結び付けて見られていない場合。店舗ごとに設備や道具の呼び方がばらばらで、言葉で探しても過去の指摘が出てこない場合。
- 店舗が数店で、本部の担当が全店の指摘を覚えていられる場合。点検の記録が紙のまま本部に集まっておらず、指摘の文と是正の文が残っていない場合(先に記録の置き場をそろえるのが先です)。是正の後に同じ指摘が出たかを追っていない場合(効いた是正を見分けられません)。なお、店舗の営業や食品の扱いを止めるかどうかの判断は本部の責任者と保健所の指導に従い、この構成はそれを代わりに行いません。
07最小構成で試す方法
- 先月の指摘から20件を選ぶ(うち数件は保健所の指摘を入れる)
- それぞれについて、同じ設備・同じ工程の過去の指摘を、点検アプリから20件ずつ書き出す
- 書き出した指摘ごとに、その店の次の点検で同じ指摘があったかを人が調べて印を付ける
- 手元のAIサービスの画面に、今回の指摘と20件の指摘・是正・印を貼り付け、「印の値だけで効いた是正と効かなかった是正に分け、指導の要点を2〜3点書いてください。記録に無いやり方は書かないでください」と指示する
- 受け持ちの担当が実際に伝えた指導と比べる
最小構成で確かめたいのは、是正の記録から指導の要点が作れるかです。 似た指摘を探すのはまだ人です。
| 出てきた内容 | 判断 |
|---|---|
| 担当の指導に近い要点が出た | 索引と同義語の辞書の仕組みに進む |
| 報告の書きぶりで効いたと分けた | 印を別に渡す設計で直る。構成は有効 |
| 是正の報告が「清掃した」だけで要点が作れない | 是正の報告の書き方を直すのが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 是正の報告の様式に、何を・どの頻度で・誰が、の3つを書く欄を足すだけで、次の月から変わります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| more_like_this で何も当たらない | min_term_freq の既定は2。 短い指摘の文では1に下げる |
| 珍しい設備の指摘が当たらない | min_doc_freq(既定5)を下げる |
| 店ごとの呼び方で当たらない | 同義語の辞書を検索のアナライザーに入れる |
| 辞書を直すたびに索引を作り直している | 検索のアナライザーに "updateable": true を付ける |
| 是正の報告の書きぶりで効いたと読む | 再指摘の有無を機械で結び付け、その値だけを使わせる |
| 次回の点検が無い指摘を「効いた」と扱う | 空は「未確認」として分ける |
| 次回の点検でその設備を見ていないのに「再指摘なし」になる | 点検項目を実際に見たときだけ結び付ける |
| 状態の言葉を辞書に入れ、別の指摘がまとめて当たる | 辞書は設備と道具の名前に限る |
| 言葉が似ているだけの別の設備の指摘が上に来る | 設備と工程は絞り込みで効かせる |
| 保健所の指摘が本部の点検に埋もれる | 出どころの印を付け、見出しに出す |
| 応答を断られたときに処理が止まる | refusal を別に扱い、記録の番号だけを返す |
上の3行が、この構成の失敗のほとんどです。 どれも、短い指摘の文と、店ごとにばらばらの言葉から来ています。既定の値のまま動かすと、何も当たらないか、言葉が違うだけで当たらないかのどちらかになります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 店舗の衛生点検の指摘と写真、是正の報告、保健所の立入検査の指摘と指導です。店舗の名前と指摘が結び付いた記録で、社外に出れば店の評判に関わります。
- 名前を索引に入れない … 店長や従業員の名前は、探すのに要りません。店舗の番号に置き換えてから索引と生成AIに渡します
- 写真を生成AIに渡さない … この構成で生成AIに渡すのは文だけです。写真は点検アプリの中に残します
- 生成AIの入力の扱いを確かめる … APIの利用条件とデータの保持を、社内の基準で確かめてから使います
- 評価に使わない … 指摘の件数を店長の評価に直結させると、指摘を上げない、是正の報告を飾る方向に動きます。この構成の結果は指導の材料に限ります
- 営業や食品の扱いの判断を代替させない … 結果は過去の記録の整理までです。止めるかどうかは本部の責任者と保健所の指導に従います
誤りが起きた場合のリスクは、効かなかった是正を効いたものとして伝えることと、保健所の指摘を本部の点検の1件として埋もれさせることの2つです。 前者は再指摘の有無を機械で結び付けることで、後者は出どころの印を見出しに出すことで防ぎます。
10まず何から始めるか
1週目:指摘に設備と工程の選択欄を置く
点検アプリの指摘の入力に、設備と工程の選択欄を必須で置きます。保健所の指摘の報告も、同じ選択肢の受付フォームに置き換えます。
2週目:20件で試す
先月の指摘20件について、過去の指摘と是正、次の点検での再指摘の印を手元のAIサービスに貼り、指導の要点を並べさせます。報告の書きぶりで効いたと分けていないかを最優先で見ます。
3週目:同義語の辞書を作る
6名の担当が、受け持ちの店で使われている呼び方を書き出し、設備ごとの同義語の辞書にします。最初は設備の30種ほどで足ります。
4週目:直近2年の指摘を索引に入れる
指摘と是正を索引に入れ、辞書を対応付けて、more_like_this で探せるようにします。この時点では点検アプリに返さず、担当が検索の画面で当たり方を確かめます。
2か月目: 再指摘の有無を夜に結び付け、生成AIの整理を足して、点検アプリの指摘に添えます。3か月目以降: 辞書を週1回直し、1件20分が何分になったかを実測します。受け持ちの店でなくても、同じ指摘に何が効いたかを担当が根拠付きで店長に伝えられるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 令和3年6月1日から、原則としてすべての食品等事業者がHACCPに沿った衛生管理に取り組むこと。営業者が実施することとして、衛生管理計画の作成と周知、手順書の作成、実施状況の記録と保存、計画と手順書の効果の定期的な検証(振り返り)と見直しが挙がっていること | 厚生労働省: HACCP(ハサップ) | 2026-10-09 |
| Amazon OpenSearch Service の対応プラグインの一覧で、Sudachi Analysis が日本語向けに推奨されていること | Amazon OpenSearch Service: Plugins by engine version | 2026-10-09 |
同義語のファイルを S3 に置いてパッケージとして取り込み、analyzers/<ID> を synonyms_path に指定して使えること。"updateable": true が検索のアナライザーにだけ使えること。7.8 以降で検索のアナライザーだけに使っていれば、更新時に _plugins/_refresh_search_analyzers で自動で更新されること | Amazon OpenSearch Service: Importing and managing packages | 2026-10-09 |
synonym_graph のフィルタで synonyms か synonyms_path のどちらかを指定すること。expand の既定が true、lenient の既定が false、format の既定が solr であること | OpenSearch Documentation: Synonym graph token filter | 2026-10-09 |
more_like_this の min_term_freq の既定が2、min_doc_freq の既定が5、max_query_terms の既定が25、minimum_should_match の既定が30%であること | OpenSearch Documentation: More like this | 2026-10-09 |
Responses API で text.format に json_schema と strict: true を指定すること。応答を断るときに refusal が返り、スキーマに従うとは限らないこと。上限のトークン数で応答が途中で終わることがあり、状態を確かめる必要があること | OpenAI API: Structured Outputs | 2026-10-09 |
衛生管理の基準と保健所の指導への対応は、自社の衛生管理計画と所轄の保健所の指導に従ってください。 本記事は公開仕様と厚生労働省のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1166)についてのご相談はこちらから。
