漆器の工房が修理の相談(欠け・剥がれ・色あせ)に、修理の手引きと過去の修理の記録から Azure OpenAI のチャットで答え、職人に渡す相談票を作る
漆器の工房の Web サイトに、修理の相談を受けるチャットを置きます。Azure OpenAI が工房の修理の手引きと過去の修理の記録を検索して答え、品物と傷のようすを聞き取って、職人に渡す相談票にまとめます。
- 生成AI
- Azure OpenAI Service/Claude
- 対象業界
- EC/小売/製造
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 人手が足りない/問い合わせが多い/属人化している
- AIで行う処理
- 対話
- 主な効果
- 対応スピード向上/属人化解消/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 問い合わせのフォームかメールで相談が届く。電話のときは店のスタッフがメモを取る
- 職人がメールを開き、品物・傷の場所と大きさ・使い方が書かれているかを見る
- 足りないことを尋ねる返信を書き、写真を頼む
- 返事と写真が届いたら、修理の記録のファイルを開いて似た修理を探す
- 修理の手引きを見ながら、修理の種類の候補と日数・料金の幅を返信に書く
- 送ってもらうときの包み方と、それまでの扱い方(使わない、洗い方)を書き添える
- お客様が修理を頼むと決めたら、修理の受付の台帳に書き写す
- 人お客様が工房の Web サイトのチャットを開き、相談を書く
- 自動チャットが品物・傷の種類・場所・大きさ・使い方・自社の品か、を順に聞き取る
- 自動聞き取った内容で、修理の手引きと過去の修理の記録を検索する
- 自動Azure OpenAI が検索結果を根拠に、修理の種類の候補、似た修理の例、それまでの扱い方を答える
- 人お客様が写真をチャットに添える
- 自動聞き取った内容と写真と会話を相談票にまとめ、受付の台帳に「職人の確認待ち」で入れる
- 人職人が相談票と写真を見て、修理できるか、どの直し方か、日数と料金を決めて返信する
- 人手引きにも記録にも無い相談、自社の品でない相談、苦情の気配のある相談は、店のスタッフが先に読む
各工程の詳しい説明を読む
- 問い合わせのフォームかメールで相談が届く。電話のときは店のスタッフがメモを取る
- 職人がメールを開き、品物・傷の場所と大きさ・使い方が書かれているかを見る
- 足りないことを尋ねる返信を書き、写真を頼む
- 返事と写真が届いたら、修理の記録のファイルを開いて似た修理を探す
- 修理の手引きを見ながら、修理の種類の候補と日数・料金の幅を返信に書く
- 送ってもらうときの包み方と、それまでの扱い方(使わない、洗い方)を書き添える
- お客様が修理を頼むと決めたら、修理の受付の台帳に書き写す
(a)職人が制作の手を止める。 2番から6番は、いまは職人にしかできません。1日に数件の相談でも、そのたびに漆を扱う手を止めて、手を洗ってから返信を書きます。 漆は乾き方に合わせて手を入れる仕事で、途中で止めると戻るのに時間がかかります。
(b)何往復もする。 3番の返信に返事が来るのは翌日か数日後で、写真が足りなければもう1往復です。1件の相談が修理の話に入るまでに、1週間かかることもあります。
(c)答え方が職人ごとに違う。 同じ色あせの相談に、ある職人は「塗り直しになります」と書き、別の職人は「拭き漆で戻ることもあります」と書きます。手引きはあるのに、返信にそのまま使える形になっていないからです。
(d)似た修理を探すのに時間がかかる。 修理の記録のファイルは2,400行あり、品物の名前の書き方がそろっていません。「椀」「お椀」「汁椀」「吸物椀」で検索し直すことになります。
- 【人】 お客様が工房の Web サイトのチャットを開き、相談を書く
- 【自動】 チャットが品物・傷の種類・場所・大きさ・使い方・自社の品か、を順に聞き取る
- 【自動】 聞き取った内容で、修理の手引きと過去の修理の記録を検索する
- 【自動】 Azure OpenAI が検索結果を根拠に、修理の種類の候補、似た修理の例、それまでの扱い方を答える
- 【人】 お客様が写真をチャットに添える
- 【自動】 聞き取った内容と写真と会話を相談票にまとめ、受付の台帳に「職人の確認待ち」で入れる
- 【人】 職人が相談票と写真を見て、修理できるか、どの直し方か、日数と料金を決めて返信する
- 【人】 手引きにも記録にも無い相談、自社の品でない相談、苦情の気配のある相談は、店のスタッフが先に読む
7番で職人が読むのは、相談票と写真だけです。 足りないことを尋ねる往復は、チャットの中で済んでいます。職人の時間は「どう直すか」の判断に集まります。
4番でチャットが答えるのは、手引きと記録に書いてあることだけです。 修理できるか、いくらか、はチャットでは決めません。チャットの答えには、必ず「最終的には職人が写真を見て決めます」を添えます。
02今回想定するシステム構成
工房の Web サイトのチャット画面 ▼【トリガー】お客様の発言 Azure Functions ── 会話の状態と聞き取りの項目を持ち、次の処理を呼ぶ ├──▶ Azure AI Search ── 修理の手引きと過去の修理の記録をハイブリッド検索 ▼ Azure OpenAI(Microsoft Foundry)── 検索結果を根拠に答え、聞き取りの項目を埋める ▼ Azure Functions ── 引用した文書の照合、引き継ぎの判定 ├──▶ Azure Blob Storage ── 写真と会話の記録 ▼ 相談票(受付の台帳に「職人の確認待ち」)+ 担当への通知 ▼ 【職人が写真を見て修理の可否・直し方・日数と料金を決めて返信】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API(Amazon Bedrock) |
| 連携 | Azure Functions(会話の状態、検索と回答の順番、引用の照合、相談票の作成) | AWS Lambda |
| 文書検索 | Azure AI Search(ハイブリッド検索、日本語のアナライザー) | Azure OpenAI の埋め込みと自前の全文検索の組み合わせ |
| 画面 | 工房の Web サイトに埋め込むチャットの画面 | 問い合わせのフォームの後に開くチャット |
| 保管 | Azure Blob Storage(写真、会話の記録、手引きの原本) | 工房の文書管理 |
| 台帳 | 修理の受付の台帳(表計算のファイルから Azure のデータベースへ移す) | いまの表計算のファイル |
修理の手引きと修理の記録は、いまあるものです。 足すのは、手引きをお客様向けの言葉に直した版と、記録の品物の名前をそろえる作業です。最初の準備作業は、修理の記録の「品物」と「傷の種類」の列を、決まった言葉に置き換えることです。
検索は、Azure AI Search のハイブリッド検索で行います。 Microsoft のページでは、ハイブリッド検索は全文検索とベクトル検索を1つの要求で並行して実行し、結果を Reciprocal Rank Fusion(RRF)で1つに統合するとされています。全文検索は品番や専門の言葉、日付のような完全一致に強いとも書かれています。「刻苧」「錆付け」のような修理の言葉は全文検索で、「縁が少し欠けた」のような言い方はベクトル検索で拾います。ハイブリッド検索でも絞り込み(filter)が使えるので、文書の種類と品物で絞ってから探せます。
日本語の文の項目には、日本語のアナライザーを設定します。 Azure AI Search の言語アナライザーには、日本語向けに ja.microsoft と ja.lucene が用意されています。
品物の扱い方の案内は、消費者庁の家庭用品品質表示法のページに沿えます。 漆やカシュー樹脂塗料などを塗った食事用・食卓用・台所用の器具の取扱い上の注意として、使用後は湯または水で洗い柔らかい布でふきとること、直射日光等を避けて保存すること、たわしや磨き粉で磨かないこと、酸性の強いものを入れると変質しつやがなくなることがあること、電子レンジに入れないこと、食器洗い機に入れて洗わないこと、が挙がっています。
同じページでは、品名の付け方も決まっています。 表面の塗装に天然の漆だけを使ったものは「漆器」、天然の漆以外の塗料を使ったものは「合成漆器」など、併用したものは「漆器」とは表示できないとされています。チャットで「品物の裏や箱に『漆器』『合成漆器』のどちらが書いてあるか」を尋ねるのは、このためです。
03どうやって実装するのか
処理の起点を決める
お客様がチャットに書き込んだことを起点にします。 1回の書き込みごとに Azure Functions が呼ばれ、会話の状態(どの項目まで聞き取ったか)を読み出して、次に聞くことか答えを返します。
チャットは、問い合わせのフォームの代わりにはしません。 フォームも残し、チャットを使わない人は今まで通りメールで送れます。電話の相談は、店のスタッフが同じ相談票の項目で聞き取るための台本としてチャットの画面を使います。
会話の途中で閉じられることを前提にします。 会話の記録は24時間残し、同じ端末で戻ってきたら続きから再開できるようにします。24時間を過ぎたら、聞き取れた分だけで相談票を作り「聞き取り途中」の印を付けます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| お客様の書き込み | 相談の文、聞き取りへの答え | チャットの画面 |
| 写真 | 傷の場所の写真、品物の全体と裏の写真 | チャットの画面から Blob Storage へ |
| 修理の手引き | 修理の種類ごとの受けられる条件、日数の目安、料金の幅、送り方 | Azure AI Search の索引 |
| 過去の修理の記録 | 品物、傷の種類と場所、直し方、かかった日数、料金の区分 | Azure AI Search の索引 |
| 扱い方の案内 | 修理に出すまでの洗い方・置き方・使わない方がよい使い方 | 工房が作るお客様向けの文書(索引) |
質を決めるのは、過去の修理の記録の書き方です。 品物の名前がばらばらだと、似た修理が見つかりません。「椀(汁椀)」「椀(吸物椀)」のように、決まった言葉と括弧書きにそろえます。
記録からは、お客様の名前と住所を外して索引に入れます。 似た修理の例として答えに出すのは、品物・傷・直し方・日数だけです。
データの取得方法を決める
修理の手引きと記録は、修理の種類と1件の修理の単位に分けて Azure AI Search の索引に入れます。
| 索引の項目 | 中身 | 何に使うか |
|---|---|---|
| 本文 | 手引きの章の本文、または記録の「傷と直し方」の文 | 全文検索とベクトル検索の対象 |
| 文書の種類 | 手引き/修理の記録/扱い方の案内 | 絞り込み。答えの根拠の書き分け |
| 品物 | 椀・重箱・盆・箸・酒器 などの決まった言葉 | 絞り込みと、似た修理の並べ方 |
| 傷の種類 | 欠け/剥がれ/色あせ/ひび・割れ/その他 | 絞り込み |
| 塗りの区分 | 漆塗装/合成の塗装/不明 | 合成の塗装の品を手引きの別の章に回す |
| 版と更新日 | 手引きの版、記録の修理の年 | 古い料金の幅を答えないための絞り込み |
検索は2回に分けて行います。 1回目は文書の種類を「手引き」に絞って修理の種類を探し、2回目は「修理の記録」に絞って似た例を探します。1回にまとめると、記録の件数が多いぶん手引きが結果から押し出されます。
料金の幅は、手引きの最新の版からしか引きません。 修理の記録にも料金の区分は残っていますが、何年も前の料金を「似た例ではこの値段」と答えると、いまの料金と食い違います。 記録の料金の項目は、答えに使う項目から外します。
AIへ渡す前に整形する
- 聞き取りの項目を埋める … 品物、傷の種類、場所(口縁・内側・外側・底・蓋)、大きさ(米粒くらい・1円玉くらい・それ以上)、使い方(食器洗い機・電子レンジに入れたか)、自社の品か、表示(漆器/合成漆器/不明)
- 言葉をそろえる … 「お椀」「汁わん」は「椀(汁椀)」に、「はげた」「めくれた」は「剥がれ」に、決まった言葉に置き換えます
- 検索の文を組み立てる … 聞き取った項目から「椀(汁椀) 口縁 欠け 1円玉くらい」のような文を作ります
- 絞り込みの条件を作る … 品物と傷の種類と塗りの区分で絞ります。不明の項目は絞り込みに使いません
- 検索結果の上位を選ぶ … 手引きは上位3件、修理の記録は上位5件を渡します
- 会話の履歴を短くする … 渡すのは直近の数往復と、聞き取りの項目の現在の値だけにします
1番をAIに自由に任せないのが、この前処理の肝です。 聞き取りの項目と順番は Functions が持ち、AIには「次はこの項目を聞く」と指示して、聞き方の言葉だけを作らせます。 自由に話させると、品物を聞く前に直し方の話を始めます。
6番を省くと、会話が長くなるほど答えがぶれます。 全部の履歴を渡すと、最初に書かれた「赤いお盆」が途中で「黒い椀」の話に混ざることがあります。項目の現在の値を正として渡します。
AIに処理させる
させるのは、次の4つです。
| させること | 中身 | 根拠にするもの |
|---|---|---|
| 聞き取り | Functions が指定した項目を、お客様に分かる言葉で尋ねる | 聞き取りの項目の定義 |
| 一般的な案内 | 傷の種類に当てはまる修理の種類の候補と、日数・料金の幅 | 修理の手引きの検索結果 |
| 似た修理の例 | 品物・傷・直し方・日数を、名前を出さずに1〜2件 | 修理の記録の検索結果 |
| 扱い方の案内 | 修理に出すまでの洗い方・置き方・避ける使い方 | 扱い方の案内の検索結果 |
答えの1文ごとに、どの文書を根拠にしたかの番号を付けさせます。 Functions は、その番号が今回の検索結果に入っているかを確かめ、入っていない番号を付けた文があれば、その答えを使わずにやり直させます。
| させないこと | 理由 |
|---|---|
| 修理できるかどうかの断定 | 木地まで届いているかは、写真か品物を見ないと分からない |
| 料金と日数の確定 | 手引きの幅を示すまで。確定は職人が見てから |
| 写真を見ての判断 | 写真は職人に渡す。チャットは写真の有無と枚数だけを見る |
| 自分で直す方法の案内 | 工房の手引きの方針で、漆を使った自分での補修は案内しない |
| 他の工房・産地の品の良し悪し | 自社の品でない相談でも、評価は言わない |
| 手引きにも記録にも無いことへの回答 | 「職人に確認します」と答えて引き継ぐ |
3行目は、意図して外しています。 Azure OpenAI のモデルには画像を読めるものもありますが、写真から「これは塗りの層だけの欠けです」と言い切ると、お客様はそれを見積の前提として受け取ります。 写真で判断するのは職人で、チャットはそれを確実に届けることに徹します。
指示内容を固定する
あなたは漆器の工房の、修理の相談の受付の係です。
お客様の相談を聞き取り、工房の資料に書いてあることだけで案内してください。
【今回の役目】{turn_task}
※ ask … 指定した項目({next_item})を1つだけ尋ねる
※ answer … 聞き取った内容に当てはまる案内をする
【答え方の決まり】
- 案内は、下の【検索結果】に書いてあることだけにしてください
- 1文ごとに、根拠にした検索結果の番号を source_ids に入れてください
- 根拠が見つからないことは「職人に確認してお返事します」と答えてください
- 修理の種類は「候補」として示し、「直せます」「直せません」と言い切らないでください
- 日数と料金は、手引きに書いてある幅だけを示し、「職人が写真を見て決めます」を添えてください
- 似た修理の例は、品物・傷・直し方・日数だけを示し、お客様の名前や時期は出さないでください
- 漆を使って自分で直す方法は案内しないでください
- ほかの工房や産地の品の良し悪しを言わないでください
- 写真の中身について判断を書かないでください
【引き継ぎの判断】
次のときは handoff を staff にしてください。
- お客様が怒っている、または以前の修理への不満を書いている
- 工房の品ではなく、表示が「合成漆器」または不明
- 検索結果に当てはまるものが無い
【聞き取りの項目の現在の値】{intake}
【検索結果】{search_results}
【直近の会話】{recent_turns}
「1文ごとに根拠の番号を付ける」を書かないと、手引きに無い日数を答えます。 漆器の修理の一般論はモデルもある程度知っていて、それらしい日数を書きます。番号の付かない文を作らせないことで、工房の資料の外に出るのを止めます。
「直せます」と言わせない決まりは、引き継ぎの後の職人を守るためです。 チャットが「直せます」と書いた後に職人が「木地まで割れているので難しい」と返すと、お客様には工房が約束を変えたように見えます。
出力形式を固定する
Azure OpenAI の構造化出力で、次の形の JSON を返させます。 Chat Completions API の response_format に json_schema を渡し、strict を有効にします。
{
"reply": [
{ "text": "", "source_ids": ["guide-07"] }
],
"intake_update": {
"item": "椀(汁椀) | 重箱 | 盆 | 箸 | 酒器 | その他 | null",
"damage_type": "欠け | 剥がれ | 色あせ | ひび・割れ | その他 | null",
"location": "",
"size": "",
"usage_note": "",
"own_product": "yes | no | unknown",
"label": "漆器 | 合成漆器 | 不明"
},
"repair_candidates": ["guide-07"],
"similar_cases": ["rec-1842"],
"handoff": "none | craftsman | staff",
"handoff_reason": ""
}
1つ目の理由は、reply を文ごとに分けられることです。 文ごとに source_ids が付くので、Functions が検索結果と照らして、根拠の無い文だけを見つけられます。
2つ目は、intake_update で聞き取りの項目を会話から切り離せることです。 項目の値は Functions が持ち、次の書き込みのときにAIへ渡します。相談票は、この項目の最後の値から機械的に作ります。 会話の全文から相談票を作らせると、途中で言い直したことが混ざります。
スキーマには、Azure OpenAI の構造化出力の決まりがあります。 すべてのフィールドを required にし、additionalProperties を false にします。まだ聞き取れていない項目は null との共用体型で表します。配列の minItems・maxItems や文字列の maxLength は使えないので、reply の文の数と長さは受け取った後に Functions で確かめます。オブジェクトのプロパティは合計100個まで、入れ子は5段までです。
| 相談票の項目 | 中身 |
|---|---|
| 品物・傷・場所・大きさ | intake_update の最後の値 |
| 使い方・表示 | 食器洗い機や電子レンジに入れたか、「漆器」の表示があったか |
| 修理の種類の候補 | repair_candidates の手引きの章の名前 |
| 似た修理 | similar_cases の記録の番号(職人は番号から記録を開ける) |
| 写真 | Blob Storage の写真へのリンク |
| 引き継ぎ | handoff と handoff_reason |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| チャットの画面 | Azure Functions の HTTP の呼び出し | 書き込みを受け、返事を返す |
| Azure AI Search | 検索の API(ハイブリッド検索と絞り込み) | 手引きと修理の記録を探す |
| Azure OpenAI | Chat Completions API(構造化出力) | 聞き取りと案内の文を作る |
| Azure Blob Storage | Functions から保存 | 写真と会話の記録を残す |
| 修理の受付の台帳 | Functions から追加 | 相談票を「職人の確認待ち」で入れる |
| 担当への通知 | メールまたは Teams | 新しい相談票の件数と、staff の引き継ぎを知らせる |
チャットからお客様への返信は、修理の可否と料金については一切しません。 職人が決めた内容は、職人か店のスタッフがメールで送ります。チャットの役目は、相談票が台帳に入ったところで終わります。
会話の履歴は Functions の側で持ち、Chat Completions API を使います。 Responses API は会話の履歴を保存するしくみを持ちますが、この構成では聞き取りの項目と直近の数往復だけを渡すので、サービスの側に履歴を残す必要がありません。
人が確認する
- 職人が相談票と写真を見て決める … 修理できるか、どの直し方か、日数と料金。チャットの「候補」はあくまで候補です
- 店のスタッフが
staffの引き継ぎを先に読む … 怒っている相談、以前の修理への不満、自社の品でない相談、手引きに無い相談 - 週に1回、会話の記録を抜き出して読む … 根拠の照合でやり直しになった会話と、「職人に確認します」で終わった会話を中心に見ます
- 答え方を直したら記録する … 手引きのお客様向けの版を直したときは、版を上げて索引を作り直します
2番を職人に回さないのは、職人の時間を守るためです。 苦情の気配のある相談は、修理の話より先に、お客様の気持ちを受け止める返事が要ります。それは店のスタッフの仕事です。
3番の「職人に確認します」で終わった会話は、手引きの穴を示しています。 同じ質問で毎週終わっているなら、手引きのお客様向けの版に1節足すのが先です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 根拠の番号が検索結果に無い文が返る | その答えを捨てて1回だけやり直す。2回目も同じなら「職人に確認します」と返して引き継ぐ |
| 検索結果が0件 | 案内をせず、聞き取りだけ続けて相談票を作る |
| 写真が添えられない | 相談票に「写真なし」の印を付け、職人の返信で改めて頼む |
| 表示が「合成漆器」または不明 | 手引きの合成の塗装の章だけで答え、staff に引き継ぐ |
| お客様が料金の確定を何度も求める | 手引きの幅をもう一度示し、職人が写真を見て返事をする日の目安を伝える |
| 入力が既定の安全方針で止まる | 既定の方針は入力と出力の両方で重大度「中」以上をブロックし、利用者の入力への攻撃(脱獄)の検知も既定で有効。止まったら定型の文で返し、会話を staff に回す |
| 24時間以内に会話が終わらない | 聞き取れた分で相談票を作り「聞き取り途中」の印を付ける |
| 同じお客様が別の品の相談を続けて書く | 1つ目の相談票を閉じてから、2つ目の聞き取りを始める |
1行目が、運用の初めに最も多く起きるはずです。 手引きのお客様向けの版がまだ薄いうちは、AIが手引きの外の一般論で埋めようとします。やり直しの件数を毎週数え、手引きの版を厚くしていくと減ります。
6行目の攻撃の検知は、公開のチャットでは外せません。 「これまでの指示を忘れて」と書き込む人は、修理の相談の窓口にも来ます。止まったときに AI に言い訳をさせず、定型の文で返します。
記録を残す
- 会話の全文と、書き込みごとの日時
- 書き込みごとに渡した検索の文、絞り込みの条件、検索結果の番号
- Azure OpenAI に送ったプロンプトと、返ってきた JSON の全文
- 根拠の照合でやり直しになった記録
- 相談票と、職人が決めた修理の内容(受けた/受けなかった、直し方、日数、料金)
- そのとき使った手引きの版
- 写真(相談票と同じ期間だけ保存し、修理を受けなかったものは決めた期間で消す)
5つ目の職人が決めた内容は、修理の記録の次の1行になります。 受けた修理は、品物・傷・直し方・日数を決まった言葉で記録に足し、索引に入れ直します。相談が増えるほど、似た修理の例が増えていきます。
6つ目の手引きの版を残すのは、料金の幅が変わるためです。 「チャットではこの値段と言われた」と後から言われたとき、そのときの版が分かれば、何を示したかを確かめられます。
04実装レベルの3段階
最小構成では、似た修理の例が出せません。 2,400件の記録をチャットに貼るわけにはいかず、職人が記録を探す時間が残ります。 半自動化で、1件20分が12分程度になります。 フォームの項目が増えるので最初の往復は減りますが、似た修理を探す時間と、足りない項目を尋ねる往復が一部残ります。本格構成で8分になり、この段階が本記事の想定です。 差が大きいのは、似た修理を探す時間が検索でほぼ無くなり、往復がチャットの中で終わるからです。 段階を飛ばさないでください。 半自動化の間に、修理の記録の品物と傷の言葉をそろえておくと、本格構成の検索の精度がはじめから出ます。
05工数削減シミュレーション
導入後 150件 × 8分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 自社で作った椀・重箱・盆・箸などを直販し、買った人から塗り直しや欠けの補修の相談を受けている漆器の工房や漆器店。相談がメールと電話で毎月百件を超え、職人が制作の手を止めて返信を書いている場合。修理の種類ごとの手引きと、過去に直した品の記録(品物・傷・直し方・日数)が、紙や表計算のファイルで残っている場合。
- 修理の相談が月に数件で、職人が直接電話で受けて足りる場合。修理の記録が残っておらず、似た修理の例を示せない場合。修理できるかどうかや料金を、写真を見ずにチャットだけで確定させたい場合(この構成は聞き取りと一般的な案内と相談票づくりまでで、修理できるか・いくらかは職人が品物か写真を見て決めます)。
07最小構成で試す方法
- 過去半年のメールの相談から30件を選ぶ(欠け・剥がれ・色あせ・自社の品でないもの、を混ぜる)
- 修理の手引きから、修理の種類ごとの「受けられる条件・日数の目安・料金の幅」を抜き出した1枚の資料を作る
- 社内で使える AI のチャットに、その資料と、聞き取りの項目の一覧を貼る
- 30件の相談の最初の1通を貼り、「足りない項目を1つずつ尋ね、資料に書いてあることだけで案内してください。直せるかどうかは言い切らないでください」と指示する
- 店のスタッフがお客様の役になって答え、最後に相談票の形にまとめさせる
確かめたいのは2つです。 聞き取りの項目が、職人が返信で尋ねていたことと同じになっているか。案内が資料の外に出ていないか。
| 出てきた内容 | 判断 |
|---|---|
| 職人が尋ねていた項目が全部そろった | 検索とチャットの画面の連携に進む |
| 資料に無い日数や料金を答えた | 指示の書き方と根拠の番号で止められる。構成は有効 |
| 職人が「それより先にこれを聞く」と言った | 聞き取りの項目の順番を直すのが先 |
3行目は、職人の頭の中の手順が見えたということです。 職人に相談票を見せて「この順で聞けば返信が書けるか」を確かめ、項目を並べ替えてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 手引きに無い日数や料金を答える | 文ごとに根拠の番号を付けさせ、検索結果に無い番号ならやり直す |
| 「直せます」と言い切る | 候補として示す決まりと、職人が決める旨の一文を必ず添える |
| 品物を聞く前に直し方の話を始める | 聞き取りの項目と順番は Functions が持ち、AIには次の項目だけを指示する |
| 記録の品物の名前がばらばらで似た例が出ない | 決まった言葉と括弧書きにそろえてから索引に入れる |
| 古い料金を似た例から答える | 記録の料金の項目を答えに使う項目から外し、料金は手引きの最新の版だけ |
| 手引きが記録に押し出されて出てこない | 文書の種類で絞って2回に分けて検索する |
| 会話が長くなると前の品物と混ざる | 聞き取りの項目の値を正とし、履歴は直近の数往復だけ渡す |
| 写真から判断を書く | 写真の中身の判断を禁じ、写真は職人に渡すだけにする |
| 合成漆器の相談に漆の修理を案内する | 表示を聞き取り、合成の塗装は手引きの別の章と staff へ |
スキーマに maxItems を入れて失敗する | 構造化出力では使えない。文の数は受け取った後に見る |
| 公開のチャットに指示を書き換えようとする書き込みが来る | 攻撃の検知が既定で有効。止まったら定型の文で返す |
上の2行が、この構成の失敗のほとんどです。 どちらもお客様への約束になってしまう失敗で、後で職人が覆すと、工房の信用に関わります。 根拠の番号の照合と、候補として示す決まりの二重で止めます。
9行目は、家庭用品品質表示法の品名の決まりを使います。 天然の漆とそれ以外の塗料を併用したものは「漆器」と表示できないとされているので、品物の表示を聞けば、塗りの区分の手がかりになります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: お客様の名前・連絡先(相談票と返信のため)、品物と傷の写真、会話の全文、過去の修理の記録です。
- 名前と連絡先を Azure OpenAI に渡さない … 聞き取りと案内に要るのは品物と傷のことだけです。名前と連絡先は会話の最後に別の入力欄で受け、Functions が相談票に直接入れます
- 過去の修理の記録から個人の情報を外して索引に入れる … 似た修理の例として出すのは、品物・傷・直し方・日数だけです
- 入力と出力の扱いを知っておく … Microsoft のページは、入力と出力が OpenAI に渡らず、モデルの学習に使われないとしています。一方、Global や DataZone のデプロイでは、指定した地域の外で処理されうるとされています。どのデプロイを選ぶかを先に決めます
- 写真の保存期間を決める … 写真には家の中が写り込むことがあります。修理を受けなかった相談の写真は、決めた期間で消します
- チャットの答えが約束にならないようにする … 画面にも「修理できるか・料金は、職人が写真を見てお返事します」と常に表示します
- AIが答えたことを、職人が覆せる運用にする … チャットの案内と職人の判断が違ったときは、職人の判断を正とし、手引きの版を直します
誤りが起きた場合のリスクは、手引きに無い料金や日数を約束したように見えることと、合成漆器の品に漆の修理を案内することの2つです。 前者は根拠の番号の照合で、後者は表示の聞き取りと引き継ぎで防ぎます。
10まず何から始めるか
1週目:修理の記録の言葉をそろえる
修理の記録の「品物」と「傷の種類」の列を、決まった言葉に置き換えます。2,400件を一度にやる必要はありません。直近3年分から始めます。 あわせて、お客様の名前と住所の列を、索引に入れる版から外します。
2週目:30件で試す
手引きの抜き出しと聞き取りの項目の一覧を作り、社内で使える AI のチャットで過去の相談30件を試します。職人が返信で尋ねていた項目が全部そろうかを、最優先で見ます。
3週目:手引きのお客様向けの版を作る
修理の種類ごとに、受けられる条件・日数の目安・料金の幅・送り方・それまでの扱い方を、お客様向けの言葉で書き直します。ここが薄いうちにチャットを公開すると、「職人に確認します」ばかりになります。
4週目:索引と回答をつなぐ
Azure AI Search に手引きと記録の索引を作り、Functions から検索して Azure OpenAI で答えるところまで作ります。この時点では Web サイトに出さず、店のスタッフが電話の相談の台本として使います。
2か月目: 相談票を台帳に入れるところまでつなぎ、職人が相談票だけで返信を書けるかを確かめます。3か月目以降: Web サイトにチャットを出し、根拠の照合でやり直しになった件数と「職人に確認します」で終わった件数を毎週数えます。その数が減り、職人の返信が相談票から始まるようになれば、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 漆やカシュー樹脂塗料等を塗った食事用・食卓用・台所用の器具の表示事項(品名、表面塗装の種類、素地の種類)。天然の漆のみなら「漆器」、それ以外は「合成漆器」等で、併用は「漆器」と表示できないこと。取扱い上の注意(湯か水で洗い柔らかい布でふく、直射日光を避ける、たわし・磨き粉で磨かない、酸性の強いもの、電子レンジ、食器洗い機) | 消費者庁: 漆又はカシュー樹脂塗料等を塗った食事用、食卓用又は台所用の器具 | 2026-10-29 |
| ハイブリッド検索が全文検索とベクトル検索を1つの要求で並行して実行し RRF で統合すること。全文検索が品番や専門の言葉の完全一致に強いこと。ハイブリッド検索でも絞り込みが使えること | Microsoft Learn: Hybrid search overview | 2026-10-29 |
日本語の言語アナライザーとして ja.microsoft と ja.lucene があること | Microsoft Learn: Add language analyzers | 2026-10-29 |
構造化出力が Chat Completions の response_format で使えること。全フィールドの required、additionalProperties: false、null との共用体、プロパティ100個・入れ子5段の上限、minItems・maxItems・maxLength などが非対応であること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-29 |
| 既定の安全方針が入力と出力の両方で重大度「中」以上をブロックし、利用者の入力への攻撃の検知が既定で有効であること | Microsoft Learn: Default safety policies | 2026-10-29 |
| 入力と出力が OpenAI に渡らず、モデルの学習に使われないこと。Global・DataZone のデプロイでは指定の地域の外で処理されうること。Responses API がメッセージの履歴を保存すること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-29 |
修理できるか・どう直すか・いくらかは、職人が品物か写真を見て決めてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2259)についてのご相談はこちらから。
