農機の販売店が修理の依頼の写真を Gemini で見て、銘板の型式と製造番号を読み、故障の箇所の見立てと持っていく部品のメモを作る
農家から届く修理の依頼の写真を Gemini API で見て、銘板の型式と製造番号を読み、故障に見える箇所の候補を枠つきで返します。販売の台帳と照らし、整備士向けの見立てのメモと、持っていく部品の候補の一覧を作ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/小売
- 対象部門
- カスタマーサポート
- 対象業務
- 内容確認・チェック/問い合わせ対応
- 主な課題
- 人手が足りない/判断に時間がかかる/属人化している
- AIで行う処理
- 画像認識
- 主な効果
- 対応スピード向上/属人化解消/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 受付が依頼のメールや問い合わせの欄を開き、写真と症状の文を読む
- 銘板の写真を拡大し、型式と製造番号を読み取る。読めなければお客様に撮り直しを頼む
- 販売の台帳で、お客様の名前と型式からその機械を探す
- 機械の写真を拡大し、油のにじみ、ベルト、刃、タイヤ、配線などの気になる所を探す
- 手の空いている整備士に写真を見せるか電話して、見立てと持っていく部品を聞く
- 修理の記録に、型式、症状、見立て、部品の候補を書き、出張か引取りかの段取りを組む
- お客様に、訪問の日時か引取りの案内を返す
- 人お客様が問い合わせの欄から、機械の全体・気になる所・銘板の写真と症状を送る
- 自動サーバーが依頼を受け取り、依頼の番号を付けて写真を保存する
- 自動写真の向きと大きさを整え、人の顔や車の番号が写っていれば塗りつぶす
- 自動Gemini API が、銘板の文字を1文字ずつ読み、読めない文字を `?` で返す
- 自動サーバーが、お客様の名前と読めた文字で販売の台帳を引き、機械の候補を並べる
- 自動Gemini API が、機械の写真と症状の文から、故障に見える箇所の候補を枠で返す
- 自動サーバーが、型式ごとの部品の表から、候補の箇所に関わる部品の候補を引く
- 人受付の担当が、機械の候補から1台を選び、写真の候補を確かめる
- 人整備士が、見立てのメモと部品の候補を見て、出張か引取りか、持っていく部品を決める
- 人受付の担当が、お客様に訪問の日時か引取りの案内を返す
各工程の詳しい説明を読む
- 受付が依頼のメールや問い合わせの欄を開き、写真と症状の文を読む
- 銘板の写真を拡大し、型式と製造番号を読み取る。読めなければお客様に撮り直しを頼む
- 販売の台帳で、お客様の名前と型式からその機械を探す
- 機械の写真を拡大し、油のにじみ、ベルト、刃、タイヤ、配線などの気になる所を探す
- 手の空いている整備士に写真を見せるか電話して、見立てと持っていく部品を聞く
- 修理の記録に、型式、症状、見立て、部品の候補を書き、出張か引取りかの段取りを組む
- お客様に、訪問の日時か引取りの案内を返す
(a)銘板が読めない。 2番目は、受付がいちばん手こずる所です。銘板は機械の下の方や奥に付いていることが多く、泥と油と日焼けで数字が欠けています。 受付が「たぶん8」と読んで台帳を引き、違う機械の記録を見てしまうこともあります。
(b)見立てが整備士の頭の中にある。 4番目と5番目は、整備士に聞かないと書けません。同じ「油が漏れている」でも、どこからにじんでいるかで、持っていく部品と時間がまったく違います。 整備士がつかまらない日は、見立ての欄が空のまま段取りが組まれます。
(c)出張で部品が足りない。 見立てが空のまま出張に出ると、現地で機械を見てから部品が無いと分かり、店に戻って出直すことになります。農家にとっては、作業の止まる日が1日延びます。
(d)1件15分が積み重なる。 月240件を3名で受けると、月60時間です。繁忙の月は電話の対応も重なり、写真を見る時間が後回しになります。
- 【人】 お客様が問い合わせの欄から、機械の全体・気になる所・銘板の写真と症状を送る
- 【自動】 サーバーが依頼を受け取り、依頼の番号を付けて写真を保存する
- 【自動】 写真の向きと大きさを整え、人の顔や車の番号が写っていれば塗りつぶす
- 【自動】 Gemini API が、銘板の文字を1文字ずつ読み、読めない文字を
?で返す - 【自動】 サーバーが、お客様の名前と読めた文字で販売の台帳を引き、機械の候補を並べる
- 【自動】 Gemini API が、機械の写真と症状の文から、故障に見える箇所の候補を枠で返す
- 【自動】 サーバーが、型式ごとの部品の表から、候補の箇所に関わる部品の候補を引く
- 【人】 受付の担当が、機械の候補から1台を選び、写真の候補を確かめる
- 【人】 整備士が、見立てのメモと部品の候補を見て、出張か引取りか、持っていく部品を決める
- 【人】 受付の担当が、お客様に訪問の日時か引取りの案内を返す
8番目と9番目が、この設計の分かれ目です。 AIが返すのは文字と候補までで、どの機械か、何が壊れているか、何を持っていくかは人が決めます。 整備士は、電話で呼ばれて写真を一から見る代わりに、印の付いた写真と部品の候補を見て決めるだけになります。
5番目と7番目をプログラムに置いているのも、意図してのことです。 台帳を引くのも部品の表を引くのも、AIの記憶ではなく店の記録で行います。 型式の改良で部品が変わっても、直すのは部品の表だけです。
02今回想定するシステム構成
問い合わせの欄 / 受付のメール(写真と症状) ▼【トリガー】依頼が届いたとき Python のサーバー ├── 写真を依頼ごとのフォルダに保存、向き・大きさを整える ▼ Gemini API(画像の理解・構造化出力)── 銘板の写真 │ 型式と製造番号を1文字ずつ、読めない文字は ? ▼ Python ── 販売の台帳を引き、機械の候補を並べる ▼ Gemini API ── 機械の写真と症状の文 │ 故障に見える箇所の候補と枠、写っていない所 ▼ Python ── 型式ごとの部品の表から部品の候補を引く ▼ 見立てのメモと部品の候補の一覧 ▼ 【人】受付が機械を確定 → 整備士が段取りを決める → お客様へ返事
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(銘板の文字を読み、機械の写真から故障に見える箇所の候補を返し、見立てのメモの文を整える) | Claude API、OpenAI API |
| 連携 | Python(受け取り、前処理、呼び出し、販売の台帳と部品の表の照合、一覧の作成) | Google Apps Script |
| 台帳 | 販売の台帳、修理の記録、部品の表(スプレッドシート) | - |
| 受付 | 問い合わせの欄、受付のメールアドレス | - |
新しく足すのは、Python のサーバーと Gemini API の契約です。 販売の台帳と部品の表は今のものを使い、問い合わせの欄に写真の種類を選ぶ欄を足します。
写真を見る土台は、Gemini API の画像の理解です。 公式の案内では、対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示の文や画像を合わせたリクエスト全体が20MBまでです。1回のリクエストに複数の画像を入れられます。
位置は枠で返させます。 枠は [ymin, xmin, ymax, xmax] の順で、画像の大きさに対して0〜1000に正規化され、元の大きさに戻して使うよう案内されています。サーバーが写真に印を描き、整備士が写真のどこを見ればよいかを分かるようにします。
出力は構造化出力で受けます。 /v1beta/interactions に送り、response_format で mime_type を application/json にし、schema にスキーマを入れます。文字列は enum で決まった値に絞れます。minLength・maxLength はエラーにならずに外されるとされているので、銘板の文字の長さはサーバーで確かめます。値が正しいかはアプリ側で検証するよう公式に書かれています。
03どうやって実装するのか
処理の起点を決める
依頼が届いたときに、1件ごとに動きます。 問い合わせの欄からの依頼はサーバーが直接受け取り、受付のメールに届いたものは定期的に取り込みます。取り込んだら依頼の番号を付け、そこから先は区別しません。
銘板の写真が無い依頼も、そのまま流します。 銘板の読み取りを飛ばし、お客様の名前で販売の台帳を引いて、持っている機械が1台だけならその型式で進めます。 同じ種類の機械を2台以上持っているお客様には、銘板の写真のお願いを返事の下書きに入れます。
写真が後から届いたときは、同じ依頼の番号で呼び直します。 お客様が撮り直した銘板や、追加の近くの写真が届いたら、前の結果を上書きせず、新しい結果として並べます。 どの写真から何を読んだかを後で追えるようにするためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 銘板の写真 | 型式・製造番号・メーカーの名前が刻まれた板、または貼られた札 | 問い合わせの欄・メールの添付 |
| 機械の写真 | 全体、気になる所の近く、症状の出ている所 | 問い合わせの欄・メールの添付 |
| 症状の文 | 「動かない」「油が漏れる」「刃が当たる音がする」、いつから、どの作業の途中か | 問い合わせの欄・メールの本文 |
| 販売の台帳 | お客様ごとの機械の種類・メーカー・型式・製造番号・販売日 | スプレッドシート |
| 修理の記録 | 機械ごとの過去の修理の内容と日付、交換した部品 | スプレッドシート |
| 部品の表 | 型式ごとの部位と部品の番号(ベルト、刃、オイルシール、ホース、タイヤなど) | メーカーの部品の資料をもとに店で作った表 |
| 箇所の種類の一覧 | 油のにじみ、ベルトの切れ・外れ、刃の欠け・曲がり、爪の摩耗、タイヤ・クローラの割れ・切れ、配線の傷み・外れ、ホースの割れ、部品の外れ、さび、変形 | サーバーに持たせる |
質を決めるのは、銘板の写真の頼み方です。 問い合わせの欄に、機械の種類ごとの銘板の位置の例の写真を載せ、「泥を拭いてから、正面から明るい所で」とお願いします。銘板の写真が読めるかどうかで、その後の段がすべて決まります。
撮るときの注意も、例の写真と一緒に載せます。 「エンジンを止め、鍵を抜いてから撮ってください」「刃や回る部分には手を近づけないでください」と書きます。修理の依頼の写真を撮るために、お客様がけがをすることは避けなければなりません。
データの取得方法を決める
写真はサーバーが受け取り、依頼の番号のフォルダに保存してから AI を呼びます。 呼び出しに失敗しても写真が残り、後から同じ写真で呼び直せます。
Gemini API へは、2回に分けて呼びます。 1回目は銘板の写真だけを渡し、文字を読ませます。2回目は機械の写真と症状の文、それに台帳で確定した機械の種類を渡し、故障に見える箇所を返させます。分けるのは、銘板の文字を読むときに機械の写真や症状の文が混ざると、「この症状ならこの型式だろう」と文字を推しはかるおそれがあるからです。
販売の台帳は、読めた文字でゆるく引きます。 製造番号の ? の桁は何にでも当たるものとして、お客様の名前と機械の種類で絞った台帳の行と照らします。候補が1台に絞れても、受付の担当が確かめるまでは確定にしません。
有料の利用枠で使い、store を false にします。 Gemini API の規約では、有料のサービスではプロンプトと応答が製品の改善に使われないとされています。Interactions API は既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできると案内されています。
AIへ渡す前に整形する
- 写真の種類の振り分け … 問い合わせの欄で選んだ種類(銘板・全体・近く)で分けます。選ばれていないものは、1回目の呼び出しで「銘板が写っているか」だけを答えさせて分けます
- 向きの補正 … スマートフォンの写真の向きの情報で回転しているだけのものは、画素を回転させます
- 銘板の写真は縮めない … 文字の線が細いので、元の大きさのまま渡します。全体の写真は長い辺を1,600ピクセル程度に縮めます
- 塗りつぶし … お客様や家族の顔、軽トラックの番号、家の表札を塗りつぶします
- 暗さとぶれの確認 … 納屋の中で撮った暗い写真や、ぶれた銘板は、撮り直しの候補にします
- 大きさの確認 … 写真と指示の文を合わせて20MBを超えないかを見ます
3番目を軽く見ないでください。 銘板の数字は、縮めると 3 と 8、0 と 6 が見分けられなくなります。縮めた写真から読んだ文字は、? になるべき桁が数字で埋まって返ってきます。
AIに処理させる
1回目にさせるのは、銘板の文字を1文字ずつ読み、読めない文字を ? にすることだけです。
| 返すもの | 中身 | 判断できないときの扱い |
|---|---|---|
| メーカーの名前 | 銘板に書かれたとおり | 読めなければ空 |
| 型式 | 1文字ずつ。読めない文字は ? | 板そのものが写っていなければ no_plate |
| 製造番号 | 1文字ずつ。読めない文字は ? | 同上 |
| 読めなかった理由 | 泥、油、日焼け、反射、ぶれ、切れて写っていない | - |
2回目にさせるのは、故障に見える箇所の候補を枠で返すことと、写っていない所を返すことだけです。
| 返すもの | 中身 | 判断できないときの扱い |
|---|---|---|
| 候補 | 写真の番号、枠、部位(エンジンの周り、刈刃、爪、ベルトの覆いの中、クローラ、配線など)、種類、見え方の短い説明 | 汚れか油のにじみか分からなければ unclear |
| 症状との関わり | 症状の文に出てくる部位と、候補の部位が同じか | 症状の文に部位が無ければ not_stated |
| 写っていない所 | 症状の文に出てくるのに写真に写っていない部位 | - |
| 撮り足してほしい写真 | 例:「左の刈刃を横から近くで1枚」 | - |
銘板の ? と、候補の unclear を許しているのが、この構成の要です。 どちらも「分からない」を答えとして返せるようにしたもので、分からないことを埋めさせないための逃げ道です。
| させないこと | 理由 |
|---|---|
| 読めない桁をそれらしい文字で埋めること | 別の機械の台帳を引き、違う部品を持っていくことになる |
| 型式を写真の見た目から言い当てること | 外観の似た型式が多い。型式は銘板と台帳で決める |
| 故障の原因を決めること | 写真の表面からは分からない。整備士が決める |
| 部品の番号を書くこと | 型式の改良で変わる。部品の表から引く |
| 修理の金額や時間を書くこと | 整備士と店の料金の表で決める |
| お客様に自分で直す方法を書くこと | 回る部分や刃に触れることになり、けがにつながる |
| 安全装置を外す・止める方法を書くこと | 安全に関わる。触れさせない |
1行目がいちばん起きやすい失敗です。 銘板の写真を渡して型式を聞くと、AIは消えた桁を埋めた、台帳にありそうな形の文字を返します。それで台帳が1行に当たると、誰も疑いません。 読めない桁は ? のままにさせ、台帳の照合は「?」を含む文字で人が確かめます。
最後の行も、指示に必ず入れます。 農林水産省は、農業機械の新しい安全性検査制度で、シートベルトを着けていないと知らせる仕組みや、運転席を離れると作業機への動力が切れる仕組みを備えた機械が合格したと公表しています。症状の文に「座席を離れると止まる」「ベルトの警報が鳴る」とあると、AIはそれを故障と見て外し方を書きかねません。安全装置に関わる症状は、整備士に回すだけにします。
指示内容を固定する
あなたは農業機械の販売店で、修理の依頼の写真を見る手伝いをする係です。
【1回目:銘板】
渡すのは銘板の写真だけです。
- メーカーの名前、型式、製造番号を、銘板に書かれた文字のとおり、
1文字ずつ読んでください。
- 読めない文字、欠けている文字、確かでない文字は ? にしてください。
それらしい文字で埋めないでください。
- 型式の書き方を、知っている型式の形に直さないでください。
- 銘板が写っていなければ no_plate にしてください。
- 読めなかった理由を、泥・油・日焼け・反射・ぶれ・切れて写っていない から選んでください。
【2回目:機械】
機械の種類:{コンバイン} 症状の文:{刈り取りの途中で左の刈刃が止まった。焦げたにおいがした}
写真の番号と種類:{1: 全体, 2: 左の刈刃の近く, 3: ベルトの覆いのあたり}
- 次の種類の候補を探し、写真の番号と枠を [ymin, xmin, ymax, xmax] の順で、
0〜1000 に正規化して返してください。部位と種類、見え方を短く書いてください。
油のにじみ、ベルトの切れ・外れ、刃の欠け・曲がり、爪の摩耗、
タイヤ・クローラの割れ・切れ、配線の傷み・外れ、ホースの割れ、
部品の外れ、さび、変形
- 症状の文に出てくるのに写っていない部位と、撮り足してほしい写真を書いてください。
【厳守事項】
- 故障の原因、修理の方法、部品の番号、金額、時間を書かないでください。
- お客様が自分で直す方法を書かないでください。
- 安全装置を外す、止める、つながないようにする方法を書かないでください。
安全装置に関わる症状は、safety_related を true にするだけにしてください。
- 汚れか油のにじみか分からないものは、kind を unclear にしてください。
- 写っていない部位について「異常なし」と書かないでください。
- 人、車、家については何も書かないでください。
「型式の書き方を、知っている型式の形に直さない」を入れているのは、1回目でいちばん起きやすい直し方だからです。 AIは、読めた文字が知っている型式の並びに近いと、その型式の書き方にそろえて返します。 そろえた型式は台帳で当たりやすく、当たってしまうと、違う機械の部品の候補が並びます。
見立てのメモの文は、別の呼び出しで整えます。 受付の担当が機械を確定し、候補を確かめたあとに、確定した型式、確かめた候補、症状の文、修理の記録の直近の行だけを渡し、整備士向けの3〜5行のメモにさせます。指示には「原因を言い切らない」「部品の番号を書かない」「渡した言葉以外の部位を足さない」を入れます。
出力形式を固定する
1回目は、次の形の JSON で受け取ります。
{
"request_id": "S-20261028-112",
"plate_found": true,
"maker": "",
"model": "AB?-12",
"serial": "10?35",
"unreadable_reason": ["mud", "glare"]
}
2回目は、次の形で受け取ります。 kind は enum で決まった文字列に絞ります。
{
"request_id": "S-20261028-112",
"findings": [
{ "photo": 3, "box_2d": [400, 220, 520, 410], "part": "ベルトの覆いのあたり",
"kind": "oil_seep | belt_cut | belt_off | blade_chip | blade_bent | tine_worn | track_crack | tire_crack | wire_damage | hose_crack | part_off | rust | deformed | unclear",
"matches_symptom": "yes | no | not_stated",
"note": "覆いのすき間から、黒い帯のようなものが垂れて見える" }
],
"not_visible": ["左の刈刃の裏"],
"retake": ["ベルトの覆いを外さずに、左の横から近くで1枚"],
"safety_related": false
}
1つ目の理由は、? の入った文字のまま台帳の照合に使えることです。 サーバーは ? を「どの1文字にも当たる」として台帳の行と照らし、当たった行をすべて候補として並べます。 1行だけに当たっても、受付の担当が「確定」を押すまでは候補のままです。
2つ目は、part と kind から部品の表を引けることです。 確定した型式の部品の表で、部位と種類の組に当たる部品を並べます。見立てのメモは、次の形で整備士に届きます。
| 項目 | 中身 |
|---|---|
| 機械 | コンバイン(型式・製造番号は受付が確定したもの)、販売日、直近の修理 |
| 症状 | お客様の文のまま |
| 写真で見えた候補 | ベルトの覆いのあたりに垂れて見えるもの(写真3、印あり) |
| 部品の候補 | 部品の表から引いた、ベルトの覆いのあたりの部品の行 |
| 写っていない所 | 左の刈刃の裏 |
3つ目は、safety_related で整備士に回す依頼を機械的に分けられることです。 true の依頼は受付の担当が返事を書かず、整備士が直接お客様に電話します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 問い合わせの欄 | サーバーが受け取る | 写真と写真の種類、症状の文 |
| 受付のメールアドレス | サーバーが定期的に取り込む | 本文と添付の写真 |
| Gemini API | API呼び出し(/v1beta/interactions、store=false) | 1回目で銘板の文字、2回目で故障に見える箇所の候補、3回目で見立てのメモの文 |
| 販売の台帳・修理の記録 | 読み取り | 機械の候補と直近の修理 |
| 部品の表 | 読み取り | 型式と部位から部品の候補 |
| 修理の記録 | 書き込み(確定のあと) | 確定した型式、見立てのメモ、段取り |
修理の記録へは、受付の担当が機械を確定してから書き込みます。 AIが読んだ文字のままで書き込むと、違う機械の記録に修理の履歴が積み上がり、次の依頼で台帳を引いたときに誤りが広がります。
お客様への返事は、下書きまでにします。 訪問の日時や引取りの案内は、整備士の段取りが決まってから受付の担当が送ります。
人が確認する
- 機械を確定する … 銘板の読み取りと台帳の候補を見比べ、
?の桁が合っているかを銘板の写真で確かめて1台を選びます - 候補を写真で確かめる … 印の所を見て「確認済み」「該当なし」を選び、写っていない所の撮り直しを頼むかを決めます
- 整備士に回す … 見立てのメモと部品の候補を見て、整備士が出張か引取りか、持っていく部品を決めます
- 安全に関わる依頼は電話にする …
safety_relatedがtrueのものは、整備士がお客様に直接電話します - 返事を読み直して送る … 日時、持ち物、機械を止めておくお願いがそろっているかを見ます
1番目を省かないでください。 台帳が1行に当たっていても、? の桁がたまたま合っただけのことがあります。銘板の写真と台帳の行を並べて見るのは、受付の担当の数十秒の仕事です。
目標は、240件をならして1件6分です。 銘板がきれいに読め、症状と候補が合っている依頼は数分で済みます。銘板が無い依頼、同じ種類の機械を何台も持つお客様、安全に関わる依頼は時間がかかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 銘板の写真が無い | お客様の機械が1台なら台帳の型式で進め、2台以上なら銘板の写真をお願いする |
型式の ? が多く、台帳の候補が絞れない | 受付の担当が、販売日や色、付けている作業機でお客様に確かめる |
| 台帳に無い機械(よその店で買った、中古) | 台帳の候補を出さず、銘板の文字だけを整備士に渡す |
| 銘板が外れている・削れている | no_plate。機械の全体の写真から型式は言い当てさせず、整備士が見る |
| 症状の文に部位が無い | not_stated。受付の担当がお客様に電話で聞く |
| 安全装置に関わる症状 | safety_related。整備士が直接電話する |
| 指示に反して原因や部品の番号を書いた | その出力を保存せずに捨て、呼び直す |
JSON の値が enum に無い | 候補を出さず、受付の担当が写真を見る |
上から2行目までが大半を占めます。 どれもAIの精度の問題ではなく、銘板の写真の頼み方と、台帳の持ち方の問題です。 例の写真を直すほうが、指示の文をいじるより効きます。
記録を残す
- 依頼ごとの元の写真と、塗りつぶして AI に渡した写真
- Gemini API が返した JSON(銘板、候補、見立てのメモの文)
- 受付の担当が確定した型式・製造番号と、AIが読んだ文字との違い
- 候補ごとの「確認済み」「該当なし」、整備士が決めた段取りと持っていった部品
- 修理が終わったあとに整備士が書いた、実際の原因と使った部品
3つ目は、銘板の読み取りの癖を見る材料です。 どの桁を ? にしたか、どの桁を読み違えたかをメーカーごとに数えると、銘板の写真のお願いのしかたを直す所が分かります。
最後の行は、部品の候補の表を直す材料です。 写真で見えた候補と実際に使った部品を並べると、「油のにじみの候補なら、この部品も持っていく」という組み合わせが店の記録から見えてきます。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ貼り付けるので、月240件には使えません。確かめるための段階です。 半自動化で、1件15分が10分程度になります。 銘板を拡大して読む作業と写真を探す作業は減りますが、台帳を引く作業と部品の表を引く作業、整備士への説明が残ります。 本格構成で6分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、どのメーカーの銘板で ? が多いか、どの候補を受付が外すことが多いかが分かります。
05工数削減シミュレーション
導入後 240件 × 6分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- トラクター・田植機・コンバイン・草刈機・管理機などを販売し、修理も受けている農機の販売店や農協の農機センター。修理の依頼が電話とメールと写真で届き、受付が銘板の写真を拡大して型式を読み、整備士に聞きながら見立てを書いている場合。出張の修理で、行ってみたら部品が違って二度手間になることがある場合。販売の台帳に型式と製造番号を持っている場合。
- 依頼のほとんどが店に持ち込まれ、整備士がその場で見れば足りる場合。依頼が月に数十件で、整備士が自分で写真を見ても回る場合。エンジンの内部の異音・始動の不良など、写真に写らない症状の依頼が中心の場合。なお、故障の原因の特定、修理の方法と金額の確定、機械をそのまま使ってよいかの判断、安全装置に関わる判断は、この構成では代替できません。
07最小構成で試す方法
- 去年の修理の依頼から30件を選ぶ(うち数件は、出張で部品が足りず出直したものを入れる)
- その30件について、当時の型式、見立て、実際の原因、使った部品を書き出す
- 30件の写真を、手元の Gemini の画面に1件ずつ貼り付ける
- 「この銘板の型式と製造番号を1文字ずつ読んでください。読めない文字は ? にしてください。機械の写真では、油のにじみ・ベルト・刃・タイヤ・配線で気になる所を位置で挙げてください。原因や部品の番号は書かないでください」と指示する
- 出てきた文字と候補を、当時の記録と突き合わせる
30件は必ずやってください。 サーバーを作る前に、「届いた銘板の写真が読めるのか」「出直しになった依頼で、写真に手がかりがあったのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 型式が読め、出直しの原因になった所が候補に出た | サーバーと台帳の照合の作成に進む |
| 読めない桁を数字で埋めた、原因を言い切った | 指示の書き方で直る。構成は有効 |
| 銘板が泥で読めず、写真に症状の所が写っていない | 写真の頼み方が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、受付が銘板で手こずっていた理由が1つ分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 読めない桁を数字で埋める | ? を許し、指示で禁じ、受付が銘板の写真で確かめる |
| 型式を知っている書き方にそろえる | 指示で禁じ、読んだ文字のまま台帳と照らす |
| 銘板を縮めて数字がつぶれる | 銘板の写真は元の大きさで渡す |
| 症状の文に引きずられて文字を推しはかる | 銘板と機械の写真を別の呼び出しにする |
| 原因を言い切る、部品の番号を書く | 指示で禁じ、部品は部品の表から引く |
| 安全装置の外し方を書く | 指示で禁じ、safety_related で整備士に回す |
| 写っていない所を「異常なし」と書く | not_visible と撮り足しの写真を返させる |
| 中古やよその店の機械で台帳が引けない | 台帳の候補を出さず、銘板の文字だけを渡す |
| AIの文字のまま修理の記録に書く | 確定のあとにだけ書き込む |
| お客様が撮影でけがをする | 例の写真に「エンジンを止め、鍵を抜いて」と書く |
上の4行が、この構成の失敗のほとんどです。 どれも、銘板の文字を「読む」から「当てる」に変えてしまうことから出ています。読めない桁は読めないまま返させ、決めるのは台帳と人という線を、指示と前処理の両方で守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: お客様の名前と住所、機械の型式と製造番号、圃場や納屋の写真、修理の記録です。写真には、家族の顔、軽トラックの番号、家や表札が写り込みます。
- 写真に写った人や車を外に出さない … 前処理で塗りつぶしてから渡し、元の写真は依頼のフォルダにだけ残します
- 販売の台帳を外部へ渡さない … お客様ごとの持っている機械の一覧は、照合はサーバーで行い、台帳そのものを AI へ渡しません
- この構成は安全の判断を代替しません … 機械をそのまま使ってよいか、安全装置に関わる不具合をどう直すかは、整備士が決めることです。 農林水産省は、農業機械の新しい安全性検査制度の運用が2025年4月に始まり、シートベルトの非装着を知らせる仕組みや、運転席を離れると作業機への動力を切る仕組みを備えた機械が合格したと公表しています。こうした仕組みを外す方法をAIに書かせません
- お客様に修理の方法を伝えない … 返事には、「機械を止めたままにしてください」「刃や回る部分に触れないでください」までを書き、直し方は書きません
- 使うのは店の担当だけにする … Gemini API の規約は、18歳以上であることを利用の条件とし、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていません。AIの結果を見るのは受付と整備士だけで、修理の依頼の受け付けは18歳以上の方に限ります
- AI側にやり取りを残さない … 有料の利用枠で使い、
store=falseを付けます
誤りが起きた場合のリスクは、違う機械の記録で段取りを組むことと、お客様が危ない直し方をすることの2つです。 前者は読めない桁を埋めた文字で台帳を引くと起き、後者は修理の方法や安全装置の外し方を返事に入れると起きます。どちらも、写真から分かることの範囲を超えたときに起きるので、そこを設計で守ります。
10まず何から始めるか
1週目:銘板の写真の頼み方を決める
機械の種類ごとに、銘板の位置と、泥を拭いてから正面で撮るお願い、エンジンを止めてから撮るお願いを例の写真つきで作ります。
2週目:30件で試す
去年の依頼から30件を選び、手元の Gemini の画面に貼って銘板と候補を挙げさせます。読めない桁を埋めていないか、原因を言い切っていないかを最優先で見ます。
3週目:部品の表を整える
依頼の多い型式の上位から、「部位×種類」で部品の行を引ける表を整備士と作ります。販売の台帳の型式の書き方をそろえます。
4週目:まとめて読み取る
受付が1日分の依頼をまとめて API に渡し、銘板の文字と印の付いた写真の一覧を作るところまで作ります。この時点では台帳の照合と見立てのメモを出さず、読み取りと候補だけを見ます。
2か月目: 台帳の照合と部品の候補を足し、受付の確定の画面を作ります。3か月目以降: 見立てのメモまで出して、1件15分が何分になったかと、出張の出直しの件数を数えます。修理のあとの実際の原因と使った部品を、部品の表に返すようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
対応する画像の形式が PNG・JPEG・WEBP・HEIC・HEIF であること。画像を直接入れる場合は指示の文などを合わせたリクエスト全体が20MBまでであること。1回のリクエストに複数の画像を入れられること。位置が [ymin, xmin, ymax, xmax] の順で0〜1000に正規化されて返り、元の大きさに戻して使うこと。384ピクセル以下の画像が258トークンで、それより大きい画像はタイルに分けて数えること | Google AI for Developers: Image understanding | 2026-10-28 |
構造化出力を /v1beta/interactions の response_format(mime_type に application/json、schema)で指定すること。文字列の enum が使えること。minLength・maxLength はエラーにならずに外されること。値はアプリ側で検証するよう書かれていること | Google AI for Developers: Structured output | 2026-10-28 |
Interactions API が既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできること | Google AI for Developers: Interactions API | 2026-10-28 |
| 利用には18歳以上であることが必要で、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていないこと。有料のサービスではプロンプトと応答が製品の改善に使われないこと | Gemini API Additional Terms of Service | 2026-10-28 |
| 農研機構が行う農業機械の安全性検査制度が見直され、2025年4月から新たな制度の運用が始まったこと。シートベルトの非装着を運転者に知らせる仕組みや、運転席を離れると作業機への動力を切る仕組みを備えた機械が合格したこと | 農林水産省: 農業機械の新しい安全性検査制度に初めて合格した農業機械を公表します | 2026-10-28 |
どの症状なら出張にするか、どの部品を持っていくかは、店の整備士の見立てとメーカーの資料に合わせて決めてください。 本記事は上の公式の情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2107)についてのご相談はこちらから。
