旅館の夕食のお品書きを毎月の献立替えに合わせて多言語に訳し、食材・調理法とアレルゲンの説明を添えて、原文と照らしてから客室に置く
旅館の夕食・朝食のお品書きを、毎月の献立替えに合わせて英語・中国語・韓国語などに訳します。料理ごとに食材と調理法の短い説明を添え、アレルゲンはレシピ表から表示し、原文と照らしてから客室に置きます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- 宿泊/飲食
- 対象部門
- カスタマーサポート
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 翻訳
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 料理長が翌月の献立を決め、お品書きの原文を作る
- 本部の担当が原文を受け取り、英語に訳す。料理名の訳と短い説明を自分で考える
- 他の4言語は翻訳会社に出し、納品を待つ
- 納品された訳をひな形に流し込み、レイアウトを整える
- 調理場のレシピ表を見て、料理ごとのアレルゲンを各言語の版に書き込む
- 原文と訳を見比べ、料理の数と並びを確かめる
- 印刷して各館に送り、客室に置く
- 人料理長が献立表に翌月の料理を入れ、調理場がレシピ表に食材と調理法、アレルゲンの印を入れる
- 人料理長が献立表の状態を「確定」にする
- 自動状態の変更を拾い、献立表とレシピ表から料理ごとの原文・食材・調理法・アレルゲンの印を集める
- 自動アレルゲンの印を、言語ごとの対訳表で表示の文字に変える(AIを使わない)
- 自動Gemini API が、用語集に沿って料理名を訳し、食材と調理法から説明文を作る
- 自動料理の数・並び・アレルゲンの数を、原文とレシピ表と照らす
- 自動Gemini API が訳を日本語に訳し戻し、原文と意味がずれている料理を拾う
- 自動ひな形に流し込み、言語ごとの版の下書きを作る
- 人本部の担当が照合の結果を見て、ずれの印が付いた料理を直す
- 人英語の版を読み、全体を確かめて印刷に回す
各工程の詳しい説明を読む
- 料理長が翌月の献立を決め、お品書きの原文を作る
- 本部の担当が原文を受け取り、英語に訳す。料理名の訳と短い説明を自分で考える
- 他の4言語は翻訳会社に出し、納品を待つ
- 納品された訳をひな形に流し込み、レイアウトを整える
- 調理場のレシピ表を見て、料理ごとのアレルゲンを各言語の版に書き込む
- 原文と訳を見比べ、料理の数と並びを確かめる
- 印刷して各館に送り、客室に置く
(a)訳が献立替えに追いつかない。 献立が決まってから月初めまでの2週間ほどで、5言語をそろえる必要があります。翻訳会社の納期の都合で、ひと月遅れの訳を置いた月が何度もあります。 料理が替わっているのに、訳は先月のままです。
(b)料理名だけでは伝わらない。 翻訳会社の訳は料理名の直訳が中心で、「Simmered dish」「Grilled dish」のようになりがちです。何を煮たのか、何を焼いたのかが分からず、客室係が配膳のたびに口頭で補っています。 言葉が通じないと、指差しと身振りになります。
(c)アレルゲンの抜けに気づけない。 5番目は、レシピ表を見ながら5言語の版に書き込む作業です。読めない言語の版に書き込むので、抜けや取り違えがあっても誰も気づきません。 客から質問を受けて初めて分かります。
(d)1品抜けても気づかない。 6番目の見比べは、読める言語でしかできません。タイ語の版で1品が抜けていても、日本語しか読めない担当者には分かりません。
- 【人】 料理長が献立表に翌月の料理を入れ、調理場がレシピ表に食材と調理法、アレルゲンの印を入れる
- 【人】 料理長が献立表の状態を「確定」にする
- 【自動】 状態の変更を拾い、献立表とレシピ表から料理ごとの原文・食材・調理法・アレルゲンの印を集める
- 【自動】 アレルゲンの印を、言語ごとの対訳表で表示の文字に変える(AIを使わない)
- 【自動】 Gemini API が、用語集に沿って料理名を訳し、食材と調理法から説明文を作る
- 【自動】 料理の数・並び・アレルゲンの数を、原文とレシピ表と照らす
- 【自動】 Gemini API が訳を日本語に訳し戻し、原文と意味がずれている料理を拾う
- 【自動】 ひな形に流し込み、言語ごとの版の下書きを作る
- 【人】 本部の担当が照合の結果を見て、ずれの印が付いた料理を直す
- 【人】 英語の版を読み、全体を確かめて印刷に回す
4番目をAIの外に置いているのが、この設計の要です。 アレルゲンの表示は、レシピ表の印と対訳表だけで決まります。AIの訳がどうであれ、アレルゲンの表示の文字は変わりません。
9番目で人が見るのは、全文ではありません。 照合で印が付いた料理と、訳し戻しでずれが出た料理を先に見ます。読めない言語の版を、読める形の照合結果で確かめます。
02今回想定するシステム構成
献立表(料理長)+ レシピ表(調理場:食材・調理法・アレルゲンの印) ▼【トリガー】献立表の状態が「確定」(1時間ごとに確認) Google Apps Script ── 料理ごとに原文・食材・調理法・印を集める ├──▶ アレルゲンの印 → 言語ごとの対訳表で表示の文字に変換(AIを使わない) ▼ Gemini API ── ①料理名の訳と説明文(用語集に沿って、5言語) ▼ Google Apps Script ── 料理の数・並び・アレルゲンの数の照合 ▼ Gemini API ── ②訳の日本語への訳し戻しと、原文とのずれの指摘 ▼ 言語ごとの版の下書き(ひな形に流し込み)+ 照合の結果の一覧 ▼ 【本部の担当が確認・修正】──▶ 印刷 ──▶ 客室
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(料理名の訳、説明文、訳し戻しとずれの指摘) | Claude API、OpenAI API |
| 連携 | Google Apps Script(献立表の確認、対訳表での変換、照合、ひな形への流し込み) | Make、Power Automate |
| 連携 | Google スプレッドシート(献立表、レシピ表、用語集、アレルゲンの対訳表) | Microsoft Lists |
| 保管 | Google ドライブ(言語ごとの版の下書き、印刷用の原稿) | Microsoft OneDrive |
最初の準備は、レシピ表にアレルゲンの印の列を持たせることです。 消費者庁の資料では、表示が義務の特定原材料はえび、カシューナッツ、かに、くるみ、小麦、そば、卵、乳、落花生(ピーナッツ)の9品目、表示が推奨される特定原材料に準ずるものはアーモンド、あわび、いか、いくら、オレンジ、キウイフルーツ、牛肉、ごま、さけ、さば、大豆、鶏肉、バナナ、ピスタチオ、豚肉、マカダミアナッツ、もも、やまいも、りんご、ゼラチンの20品目です。この29品目を列にし、料理ごとに印を付けます。
旅館の料理は、法律上の表示の義務の対象ではありません。 消費者庁のハンドブックでは、食物アレルギー表示の対象は容器包装された加工食品で、設備を設けて飲食させる食品(飲食店で提供される食品など)は対象外とされています。それでも、外食・中食での情報提供は消費者庁が取り組みを進めている分野で、訪日客にとってお品書きは、食べる前に読める唯一の情報です。 29品目に合わせておくと、客にも社内にも説明がつきます。品目は改正で変わります(カシューナッツは令和8年4月に特定原材料に、ピスタチオは特定原材料に準ずるものに加わりました)。対訳表の品目は、消費者庁のページで年に一度確かめます。
翻訳の土台は Gemini API です。 いまの公式ページは Interactions の書き方で、/v1beta/interactions に、指示を system_instruction、温度などを generation_config で渡します。構造化出力は、response_format に mime_type として application/json と schema を渡します。すべての JSON Schema の機能に対応しているわけではなく、大きすぎる・深すぎるスキーマは拒否されることがあるので、1回の呼び出しは「1種類のお品書きの1言語分」に分けます。
03どうやって実装するのか
処理の起点を決める
献立表の状態が「確定」に変わったことを起点にします。 料理長は、献立表に翌月の料理を入れ、レシピ表の印が埋まったのを確かめてから「確定」にします。確定にしたのが、原文とレシピ表がそろったという料理長の宣言です。
Google Apps Script の時間主導のトリガーで、1時間ごとに献立表を見て、「確定」で訳がまだ無いお品書きを拾います。インストール型のトリガーは作った人のアカウントで動くので、本部の共用のアカウントで作ります。担当者のアカウントで作ると、異動でトリガーが止まります。
確定の後に献立が変わったら、料理長が状態を「変更」に戻します。 変更を拾ったら、そのお品書きの5言語の版を作り直し、前の版の下書きには「差し替え済み」の印を付けます。 古い版が印刷に回らないようにするためです。
月初めの5日前に、未確定のお品書きを数えます。 確定していないお品書きは、訳の時間が足りなくなる候補として、料理長と本部に知らせます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 献立表 | 館、お品書きの種類、月、料理の順番、原文の料理名、状態 | スプレッドシート |
| レシピ表 | 料理ごとの主な食材、調理法、29品目のアレルゲンの印、その他の食材の注記 | スプレッドシート(調理場) |
| 用語集 | 料理の区分(先付、八寸、椀物、造り、焼物…)や食材の、言語ごとの決まった訳 | スプレッドシート(本部) |
| アレルゲンの対訳表 | 29品目の、言語ごとの表示の文字 | スプレッドシート(本部) |
| 前月までの訳 | 同じ料理を過去に出したときの、確定した訳 | 訳の記録 |
質を決めるのは、レシピ表の「主な食材」と「調理法」の列です。 説明文は、この2つの列から作ります。料理名から食材を推し量らせないので、ここが空だと説明文も空になります。調理場には、客に伝える意味のある食材を2〜4個、調理法を1つ書いてもらいます。
アレルゲンの対訳表は、一度だけ人が作ります。 29品目を5言語に訳し、各言語を読める人か翻訳会社に一度確かめてもらって固定します。 毎月AIに訳させると、「やまいも」が月によって違う言葉になり、客が同じ表示を同じものと読めなくなります。
用語集は、料理の区分と、よく出る食材から始めます。 「椀物」「強肴」「止椀」、「湯葉」「くわい」「のどぐろ」のように、訳が揺れやすい言葉を先に決めます。
データの取得方法を決める
Apps Script で献立表を読み、「確定」のお品書きの料理を順番どおりに取り出します。料理ごとに、レシピ表を料理のIDで引き、主な食材・調理法・アレルゲンの印を付けます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 料理の順番と原文 | 献立表 | 訳の対象と、照合の基準 |
| 主な食材と調理法 | レシピ表(料理のIDで引く) | 説明文の材料 |
| アレルゲンの印 | レシピ表 | 対訳表で表示の文字に変える |
| 決まった訳 | 用語集(原文に含まれる言葉で絞る) | 訳の揺れを抑える |
| 過去の訳 | 訳の記録(料理のIDで引く) | 同じ料理の訳をそろえる |
料理のIDは、献立表とレシピ表で同じものを使います。 料理名で引くと、「鮎の塩焼」と「鮎塩焼き」のような表記の違いで引けません。IDで引けない料理は、訳に進めず料理長に返します。
用語集は、原文に含まれる言葉だけに絞って渡します。 全件を渡すと指示が長くなり、関係のない訳に引きずられることがあります。
過去の訳は、同じIDの料理があれば渡します。 定番の料理は毎年同じ季節に出るので、去年の確定した訳を使えば、訳が年ごとに変わりません。
AIへ渡す前に整形する
- 料理のIDの確認 … 献立表のすべての料理がレシピ表で引けるかを確かめます
- レシピ表の空欄の確認 … 主な食材・調理法が空の料理は、訳に進めず調理場に返します
- アレルゲンの印の確認 … 29品目の列のどれにも印が無い料理は、「該当なし」の印が付いているかを確かめます。空欄と「該当なし」を分けます
- アレルゲンの表示の作成 … 印を対訳表で言語ごとの文字に変えます。ここまでAIを使いません
- 用語集の絞り込み … 原文に含まれる言葉を用語集から取り出します
- 呼び出しの単位を分ける … 1種類のお品書きの1言語分を、1回の呼び出しにします
- 原文の表記の整理 … 原文の料理名にある振り仮名や飾りの記号を外し、料理名と添え書き(「季節の」「名物」など)を分けます
3番目が、この構成の安全の要です。 29品目の列がすべて空の料理は、「アレルゲンが無い」のか「調理場が印を付け忘れた」のかが分かりません。レシピ表に「該当なし」の列を設け、どちらかに必ず印を付けてもらいます。 どちらにも印が無い料理は、訳に進めません。
アレルゲンの表示を訳の前に作っておくのも、同じ理由です。 AIの呼び出しが失敗しても、形が崩れても、アレルゲンの表示は影響を受けません。
AIに処理させる
させるのは2つです。料理名の訳と説明文の作成、そして訳し戻しによる原文とのずれの指摘です。
| 段階 | させること | 判断できないときの扱い |
|---|---|---|
| 料理名の訳 | 用語集の言葉を使い、料理名を訳す | 用語集に無い固有の言葉は、音を写して短い補足を付ける |
| 説明文 | 主な食材と調理法から、1〜2文の説明を作る | 食材や調理法が空なら、説明文を作らない |
| 訳し戻し | 訳を日本語に訳し、原文と意味がずれている料理を挙げる | ずれか言い換えか決められなければ check |
説明文の材料を、レシピ表の2つの列に限っているのが要です。 「鮎の塩焼」の説明に、AIは「蓼酢を添えて」と書きたくなります。蓼酢が出るかはレシピ表に書かれていなければ分からず、書かれていないものを説明に足すと、客は出てこない物を待ちます。
| させないこと | 理由 |
|---|---|
| アレルゲンの推測や表示 | レシピ表の印と対訳表だけで決める |
| レシピ表に無い食材の補足 | 出てこない物を書くことになる |
| 「アレルギーの方も安心」などの表現 | 安全性の判断は調理場と客の確認で行う |
| 料理の順番の入れ替え | 原文の順番のまま訳す |
| 料理の評価や宣伝の文句 | お品書きは説明の文書で、広告ではない |
中国語の版には、別の注意が要ります。 日本の料理名は漢字で書かれているので、そのまま中国語の文字に写すと訳した形になってしまいます。同じ漢字でも、中国語では別の料理を指したり、意味が通じなかったりします。 料理名の漢字を写すだけの訳を避け、説明文で何の料理かが分かるようにさせます。用語集では、中国語の訳に「写すだけで足りるか」の印を付けておきます。
1行目と3行目は、指示にも書き、出力の形でも封じます。 出力のJSONにアレルゲンの欄を作らないので、AIが書いたアレルゲンが版に載る経路がありません。 説明文に「アレルゲン」「安心」「〜不使用」などの言葉が入っていないかは、Apps Script で検査します。
指示内容を固定する
あなたは旅館のお品書きを訳す担当です。
渡された料理の一覧を、{language} に訳してください。
【入力】
- 料理ごとの ID、順番、原文の料理名
- 料理ごとの主な食材と調理法(調理場のレシピ表から)
- 用語集(原文に含まれる言葉の、決まった訳)
- 過去の確定した訳(同じ ID の料理があれば)
【してほしいこと】
1. 料理名を訳す。用語集にある言葉は、用語集の訳を使う。
過去の確定した訳がある料理は、それをそのまま使う。
2. 用語集に無い固有の言葉(料理の区分、地名、魚の名前など)は、
音を写したうえで、何であるかを短く補う。
3. 主な食材と調理法から、1〜2文の説明を作る。
書かれた食材と調理法だけを使う。
【厳守事項】
- レシピ表に無い食材、添え物、たれ、薬味を説明に足さない。
- アレルゲンについて書かない。「〜を含みます」「〜不使用」
「アレルギーの方も安心」のような表現を一切書かない。
- 料理の順番を変えない。料理を足したり省いたりしない。
- 「絶品」「最高級」のような評価や宣伝の言葉を書かない。
- 主な食材か調理法が空の料理は、description を空にする。
- 返すのは入力と同じ数の料理だけ。
【料理の一覧】{dishes}
【用語集】{glossary}
【過去の確定した訳】{past}
「アレルゲンについて書かない」を具体的な言い回しまで挙げて禁じるのは、書かせないと必ず書くからです。 「くるみ味噌」の説明を作らせると、AIは親切に「くるみを含みます」と足します。その一文が対訳表の表示と食い違うと、客はどちらを信じればよいか分かりません。 アレルゲンの情報は、版の決まった場所に、決まった文字でだけ出します。
訳し戻しの指示は、別の短い指示です。 「次の {language} の訳を日本語に訳し、原文と並べて、意味が変わっている料理を挙げてください。言い換えは挙げなくてよい。食材・調理法・数量が違うものを挙げてください」と指示します。
出力形式を固定する
訳は、次の形のJSONで受け取ります。
{
"menu_id": "",
"language": "",
"dishes": [
{ "dish_id": "", "order": 0, "name": "", "description": "",
"glossary_used": [""], "transliterated": [""] }
]
}
訳し戻しは、別のJSONで受け取ります。
{
"menu_id": "",
"language": "",
"checks": [
{ "dish_id": "", "back_translation": "", "status": "ok | check",
"reason": "" }
]
}
スキーマでは status を enum にし、各要素の additionalProperties を false にします。
1つ目の理由は、照合を機械でできることです。 Apps Script は、返った dishes の数と order の並びを献立表と照らします。1品でも数が合わなければ、その言語の版は下書きにせず、呼び出しをやり直します。
2つ目は、アレルゲンの欄が無いことです。 版の下書きでは、料理ごとに name と description をAIの出力から、アレルゲンの表示を対訳表から流し込みます。AIの出力にアレルゲンの欄が無いので、取り違えようがありません。
3つ目は、transliterated で人の確認を絞れることです。 音を写した言葉は、読む人に意味が伝わらないことがあります。担当者はこの欄に入った言葉だけを見て、補足が足りているかを確かめます。
| 照合の項目 | 合わないときの扱い |
|---|---|
| 料理の数 | 下書きにせず、呼び出しをやり直す |
| 料理の並び | 下書きにせず、呼び出しをやり直す |
| アレルゲンの表示の数(レシピ表の印の数と比べる) | 下書きにせず、対訳表を確かめる |
| 説明文の禁止語(アレルゲン・安心・不使用など) | 説明文を空にして、担当者の確認に回す |
訳し戻しの check | 下書きは作り、その料理に印を付ける |
版の下書きは、料理ごとに次の形で流し込みます。 上の2行がAIの出力、下の1行が対訳表からの表示です。
【椀物】
(name)Clear soup with sea bream and yuba
(description)A light dashi broth with sea bream and yuba (soy milk skin).
(アレルゲンの欄)Contains: wheat, soybeans ※対訳表から
アレルゲンの欄は、全言語で同じ位置・同じ書式にします。 欄の見出しも対訳表で固定し、版の下に「この表示は特定原材料と特定原材料に準ずるものの29品目を対象としています。調理場での混入の可能性については係にお尋ねください」の一文を、各言語の固定の訳で添えます。この一文もAIに訳させません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 献立表・レシピ表 | Apps Script で読み取り | 確定したお品書きの料理と、食材・調理法・アレルゲンの印 |
| 用語集・アレルゲンの対訳表 | Apps Script で読み取り | 決まった訳と、表示の文字 |
| Gemini API | Apps Script から呼び出し | 料理名の訳と説明文、訳し戻し |
| 言語ごとの版の下書き | Apps Script で作成 | ひな形への流し込み |
| 訳の記録 | Apps Script で書き込み | 確定した訳を料理のIDで残す |
レシピ表には書き込みません。 調理場の記録は読むだけで、アレルゲンの印を直すのは調理場だけです。
確定した訳は、料理のIDで記録に残します。 担当者が直した訳を確定すると、次に同じ料理が出たときに過去の訳として渡ります。直すほど、次の月の訳が安定します。
人が確認する
下書きは全件を本部の担当が確かめます。 客室に置く文書で、アレルゲンの表示を含むためです。
- 照合の結果を先に見る … 数・並び・アレルゲンの表示の数の照合がすべて通っているかを見ます
- 訳し戻しの
checkを見る … 印の付いた料理の訳し戻しを原文と並べて読み、直します - 音を写した言葉を見る …
transliteratedの言葉に、補足が足りているかを確かめます - 英語の版を通して読む … 読める言語の版で、説明文の書きぶりを確かめます
- 料理長に最終の版を見せる … 料理の説明が調理場の意図と合っているかを確かめます
アレルゲンの表示は、レシピ表の印と見比べます。 対訳表からの変換は機械なので誤りは起きにくいのですが、レシピ表の印そのものが誤っていれば、表示も誤ります。 料理長には、印刷の前にレシピ表の印を確かめてもらいます。
目標は、1件をならして15分です。 印の付いた料理が無い言語の版は、照合の結果を見て数分で終わります。それを大きく超える月は、レシピ表の空欄が多いか、用語集に無い言葉が多い献立です。 前者は調理場に、後者は用語集の担当に返します。
読めない言語の版は、照合と訳し戻しで確かめます。 全文を読める人がいなくても、数・並び・アレルゲンの表示の数と、訳し戻しのずれは確かめられます。年に一度は、各言語を読める人に版を読んでもらい、用語集を直します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 料理のIDがレシピ表に無い | 訳に進めず、料理長に返す |
| 主な食材・調理法が空 | 説明文を作らず、調理場に返す |
| アレルゲンの印も「該当なし」も無い | 訳に進めず、調理場に返す |
| 返った料理の数・並びが合わない | 下書きにせず、呼び出しをやり直す。2回続けば担当者へ |
| 説明文に禁止語が入る | 説明文を空にして担当者の確認に回す |
| 確定の後に献立が変わる | 5言語を作り直し、前の版に「差し替え済み」の印を付ける |
| Gemini API が応答しない・形が崩れる | 状態を「確定」のまま残し、次の回に拾い直す |
| 月初めまでに確定しない | 前月の版を置かず、その月は日本語の版と口頭の説明で対応する |
最後の行を決めておくのが大事です。 間に合わない月に前月の訳を置くと、料理が違うのにアレルゲンの表示も前月のままになります。違う料理の表示を置くくらいなら、置かないほうが安全です。
記録を残す
- 確定した献立表とレシピ表の、その時点の写し
- 言語ごとの訳のJSONと、訳し戻しのJSON、呼び出した日時
- 照合の結果(数・並び・アレルゲンの表示の数・禁止語)
- 担当者が直した訳と、直した理由
- 印刷に回した版と、客室に置いた期間
- 用語集とアレルゲンの対訳表の変更の履歴
客室係が受けた料理の質問も、版と料理のIDに結び付けて残します。 同じ料理で同じ質問が続けば、説明文に足りない情報があるということで、レシピ表の「主な食材」の書き方を調理場と見直す材料になります。
1つ目でレシピ表の写しを残すのは、印が後から直されることがあるためです。 客から問い合わせを受けたときに、その日に置いていた版が、どのレシピ表の印から作られたかを示せます。
04実装レベルの3段階
最小構成では件数がさばけません。 1種類ずつ貼るので、月120件には使えません。確かめるための段階です。 半自動化で、1件40分が25分程度になります。 訳とアレルゲンの表示は自動になりますが、ひな形への流し込みと、原文との見比べが人に残ります。本格構成で15分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の段で、レシピ表の空欄と、用語集に無い言葉が見えます。そこを埋めてから照合と版の下書きに進むほうが、手直しが減ります。
05工数削減シミュレーション
導入後 120件 × 15分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 会席料理や季節の献立を出し、毎月か季節ごとにお品書きを替えている旅館・料亭・ホテルの和食の店。訪日客が増え、お品書きを英語だけでなく中国語・韓国語などにも訳したいが、毎月の献立替えに訳が追いついていない場合。料理名を訳しても何の料理か伝わらず、配膳のたびに口頭で説明している場合。調理場がレシピごとに食材とアレルゲンを表で持っている、または持つ準備ができる場合。
- 献立が年に数回しか変わらず、一度訳せば済む場合。調理場にレシピごとの食材の記録が無く、アレルゲンを料理名から推し量るしかない場合(まず調理場の記録が先です)。重い食物アレルギーのある客への個別の対応を、お品書きの表示で代えたい場合(個別の対応は調理場と客の直接の確認で行います)。なお、料理の安全性の判断や、アレルギーのある客に出してよいかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月のお品書きを1館分(6種類)選ぶ
- 調理場に、料理ごとの主な食材と調理法を書き出してもらう
- 社内で使える生成AIの画面に、原文と食材・調理法と用語集を貼り、英語で料理名と説明文を作らせる
- 出てきた訳を、実際に置いた英語の版と並べる
- 訳を日本語に訳し戻させ、原文と意味がずれている料理を挙げさせる
アレルゲンは、この段階でもAIに訳させません。 試す段階から、レシピ表の印と人が作った対訳で表示する前提で進めます。
| 出てきた内容 | 判断 |
|---|---|
| 料理名と説明が、口頭で補っていた内容に近い | 献立表とレシピ表をつなぐ段に進む |
| レシピ表に無い食材を説明に足した | 指示の書き方で直る。構成は有効 |
| 料理名の訳が揺れる | 用語集を先に作る |
| 説明文がほとんど作れない | レシピ表の食材と調理法の列が先。 AIの問題ではない |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 説明文に「くるみを含みます」などが入る | アレルゲンについて書かないと指示し、禁止語を検査する |
| アレルゲンの表示が説明文と食い違う | アレルゲンは対訳表だけで出し、AIの出力に欄を作らない |
| レシピ表に無い添え物が説明に入る | 説明の材料を食材と調理法の列に限る |
| 印の付け忘れが「アレルゲン無し」に見える | 「該当なし」の列を設け、どちらかに必ず印を付ける |
| 1品抜けた訳に気づかない | 料理の数と並びを機械で照合する |
| 料理名の訳が月ごとに揺れる | 用語集と、料理のIDごとの過去の訳を渡す |
| 料理名で引いてレシピ表が引けない | 献立表とレシピ表で同じ料理のIDを使う |
| 確定の後の変更が反映されない | 状態を「変更」に戻し、5言語を作り直す |
| 間に合わない月に前月の訳を置く | 置かない。 日本語の版と口頭の説明で対応する |
| アレルゲンの品目が改正で変わる | 消費者庁のページで年に一度確かめ、対訳表を直す |
| トリガーが担当者の異動で止まる | 共用のアカウントで作る |
上の4行が、この構成の失敗のほとんどです。 どれもアレルゲンの扱いです。AIの外に置き、印の空欄を許さない、という2つで防ぎます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: お品書きの原文、レシピ表の食材・調理法・アレルゲンの印、用語集です。客の個人情報は扱いません。
- アレルギーのある客への個別の対応を、お品書きで代えない … お品書きの表示は、レシピ表の印をそのまま出したものです。重い食物アレルギーのある客には、予約の段階と当日に、調理場が直接確かめます。 調理場での混入の有無は、お品書きでは分かりません
- AIにアレルゲンを判断させない … 表示は印と対訳表だけで決め、AIの出力が表示に入る経路を作りません
- 「安心」「不使用」を書かない … 説明文にも版のどこにも、安全を約束する言い回しを載せません。安全性の判断は、調理場と客の確認の中でしかできません
- 規約の条件を確かめる … Gemini API の規約は、利用者が18歳以上であることを求め、無償のサービスに送った内容は製品の改善に使われ、人が読むことがあるとしています。レシピ表は社外秘の扱いの館もあるので、有料の利用で使います
- 料理の説明を宣伝にしない … お品書きは説明の文書です。評価の言葉を足すと、料理と説明の食い違いが客の不満になります
- 表示の品目の改正に追随する … 特定原材料と特定原材料に準ずるものは、実態調査を踏まえて見直されます。対訳表の品目を古いままにしない運用を決めます
誤りが起きた場合のリスクは、アレルゲンの表示が抜けることと、料理と違う訳を置くことの2つです。 前者はAIにアレルゲンを書かせると起き、後者は献立の変更や間に合わない月の扱いを決めないと起きます。どちらも、AIの外で決まる部分を先に固めることで防ぎます。
10まず何から始めるか
1週目:レシピ表にアレルゲンの印の列を作る
29品目と「該当なし」の列をレシピ表に設け、翌月の献立から調理場に印を付けてもらいます。 あわせて、主な食材と調理法の列を足します。
2週目:対訳表と用語集を作る
29品目の5言語の対訳表を作り、各言語を読める人に一度確かめてもらって固定します。 用語集は料理の区分とよく出る食材から始めます。
3週目:1館分で試す
先月のお品書きを1館分選び、生成AIの画面で英語の訳と説明文を作らせて、実際に置いた版と比べます。レシピ表に無い食材を説明に足していないかを最優先で見ます。
4週目:献立表とレシピ表から訳までをつなぐ
Apps Script で「確定」のお品書きを拾い、アレルゲンの表示を対訳表で作り、5言語の訳を一覧に書き出すところまで作ります。この時点では版の下書きを作らず、一覧を担当者が見ます。
2か月目: 照合と訳し戻しを足し、ひな形への流し込みまで作ります。3か月目以降: 1件40分が何分になったかを実測します。担当者が直した訳を過去の訳として積み、翌月のお品書きが月初めに5言語そろって客室に置けるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
テキスト生成が /v1beta/interactions で、指示を system_instruction、温度などを generation_config で渡すこと | Gemini API: Text generation | 2026-10-07 |
構造化出力が response_format に mime_type(application/json)と schema を渡す形であること。enum・required・additionalProperties などが使えること。すべての JSON Schema の機能には対応せず、大きすぎる・深すぎるスキーマは拒否されうること | Gemini API: Structured output | 2026-10-07 |
| 利用者は18歳以上であること。無償のサービスでは送った内容が製品の改善に使われ人が読むことがあること。有料のサービスでは製品の改善に使わないこと | Gemini API: Additional Terms of Service | 2026-10-07 |
| 特定原材料を定め、容器包装された加工食品に表示を義務付けていること。令和8年4月1日にカシューナッツを特定原材料に追加したこと。外食・中食の情報提供の取り組みがあること(原文を取得して確認) | 消費者庁: 食物アレルギー表示に関する情報 | 2026-10-07 |
| 特定原材料9品目(えび、カシューナッツ、かに、くるみ、小麦、そば、卵、乳、落花生)と特定原材料に準ずるもの20品目(アーモンド〜ゼラチン、ピスタチオを含む)の一覧。容器包装に入れずに販売する食品や、設備を設けて飲食させる食品(飲食店で提供される食品など)は表示の義務の対象外であること(PDFの原文を取得して確認) | 消費者庁: 加工食品の食物アレルギー表示ハンドブック(令和8年4月) | 2026-10-07 |
| 令和8年4月1日付の事務連絡で、カシューナッツを特定原材料に追加し(2年間の経過措置あり)、ピスタチオを特定原材料に準ずるものに追加したこと(PDFの原文を取得して確認) | 消費者庁: アレルゲンを含む食品に関する表示について(令和8年4月1日事務連絡) | 2026-10-07 |
| 時間主導のトリガーがあること。インストール型トリガーは作成した人のアカウントで動くこと | Apps Script: Installable triggers | 2026-10-07 |
アレルギーのある客への対応は、調理場と客の直接の確認で行ってください。 本記事は公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0833)についてのご相談はこちらから。
