中古厨房機器の買取店がお客様から届く機器と銘板の写真を Gemini で見て、型式・製造年・電源・傷みの一覧と査定の下書きを作る
中古厨房機器の買取店が、飲食店から届く機器の全体・銘板・傷みの写真を Gemini で見て、機器ごとの型式・製造年・電源・ガスの種類・傷みの一覧を作ります。店の買取の実績の表と照らして査定の幅の下書きを出し、担当は写真と照らして確かめてから概算を伝えます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/小売/飲食
- 対象部門
- 購買
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/判断に時間がかかる
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 申込みのフォームに写真が届いたら、担当が1台ずつ写真を開く
- 銘板の写真を拡大し、メーカー・型式・製造年・電源・ガスの種類を読み、査定の表に打ち込む
- 全体と傷みの写真を見て、へこみ・さび・パッキンの破れなどをメモする
- 買取の実績の表で型式を引き、製造年と状態から金額の幅を決める
- 銘板が読めない機器、写真が足りない機器があれば、撮り直しをお客様に頼む
- 責任者が幅を確かめ、お客様に概算をメールで返す
- 自動申込みのフォームに写真が届くと、Python のサーバーが写真を受け取り、向きと大きさを整える
- 自動Gemini API に、1件分の写真をまとめて渡し、機器ごとの種類・銘板の文字・傷みの候補と位置の枠を返させる
- 自動Python が、読めない文字のある銘板、銘板の写真が無い機器、全体の写真が無い機器を拾う
- 自動Python が、型式で買取の実績の表を引き、製造年と傷みの候補から査定の幅の下書きを作る
- 自動撮り直しが要る機器があれば、何をどう撮ってほしいかの依頼の文の下書きを作る
- 人担当が、枠つきの写真と一覧を並べて見て、型式・製造年・電源・ガスの種類と傷みを確かめる
- 人担当が幅を確かめて直し、責任者が見てから、お客様に概算と撮り直しの依頼を返す
各工程の詳しい説明を読む
- 申込みのフォームに写真が届いたら、担当が1台ずつ写真を開く
- 銘板の写真を拡大し、メーカー・型式・製造年・電源・ガスの種類を読み、査定の表に打ち込む
- 全体と傷みの写真を見て、へこみ・さび・パッキンの破れなどをメモする
- 買取の実績の表で型式を引き、製造年と状態から金額の幅を決める
- 銘板が読めない機器、写真が足りない機器があれば、撮り直しをお客様に頼む
- 責任者が幅を確かめ、お客様に概算をメールで返す
(a)銘板の文字が小さく読みにくい。 銘板はステンレスの板に刻印されたもの、シールが油で汚れたものが多く、写真を拡大して1文字ずつ読みます。 「B」と「8」、「0」と「D」の読み違いで、表を引いても型式が見つからないことがあります。
(b)電源とガスの種類の読み落とし。 型式と製造年に気を取られ、銘板の下のほうに書かれた電源やガスの種類を読み落とします。 三相200Vの機器を単相として査定し、出張の当日に金額が変わると、お客様との約束が崩れます。
(c)撮り直しのやり取りが重い。 写真が足りないことに気づくのは、担当が1台ずつ見たあとです。撮り直しを頼むメールを書き、届くのを待ち、もう一度見るので、1件の査定に数日かかることがあります。
(d)担当によって傷みの見方がばらつく。 同じパッキンの破れでも、ある担当は大きく下げ、ある担当は気にしません。傷みのメモの書き方も人によって違い、出張の当日に何を見ればよいかが伝わりません。
- 【自動】 申込みのフォームに写真が届くと、Python のサーバーが写真を受け取り、向きと大きさを整える
- 【自動】 Gemini API に、1件分の写真をまとめて渡し、機器ごとの種類・銘板の文字・傷みの候補と位置の枠を返させる
- 【自動】 Python が、読めない文字のある銘板、銘板の写真が無い機器、全体の写真が無い機器を拾う
- 【自動】 Python が、型式で買取の実績の表を引き、製造年と傷みの候補から査定の幅の下書きを作る
- 【自動】 撮り直しが要る機器があれば、何をどう撮ってほしいかの依頼の文の下書きを作る
- 【人】 担当が、枠つきの写真と一覧を並べて見て、型式・製造年・電源・ガスの種類と傷みを確かめる
- 【人】 担当が幅を確かめて直し、責任者が見てから、お客様に概算と撮り直しの依頼を返す
3番目が、この設計の分かれ目です。 Gemini が返した一覧をそのまま査定に回さず、読めない文字がある機器と、写真が足りない機器を先に分けます。 分けた機器には査定の幅を出さず、撮り直しの依頼だけを作ります。読めない型式で幅を出すと、その幅がお客様への約束になってしまうからです。
4番目で幅を出すのは Python で、Gemini ではありません。 実績の表を引き、製造年の区分と傷みの候補の数で幅を調整する計算は、店の決まりとして Python に書きます。 Gemini に値段を聞くと、どこかで見たような相場を答えます。
6番目は、写真と一覧を見比べる作業です。 銘板の写真を拡大して1文字ずつ読む代わりに、Gemini が読んだ文字と、銘板の写真を並べて、合っているかを見ます。 傷みは、枠の付いた写真で場所を確かめます。
02今回想定するシステム構成
お客様(飲食店)── 申込みのフォームに機器ごとの写真(全体・銘板・傷み)を添える ▼【トリガー】申込みが送信されたとき Python のサーバー ├── 写真の向き・大きさを整える。人の顔や書類の写り込みを塗りつぶす ▼ Gemini API(画像の理解・構造化出力)── 1件分の写真 │ 機器ごとの種類、銘板の文字(読めない文字は読めないと返す)、傷みの候補と位置の枠 ▼ Python ── 読めない銘板・足りない写真を拾う → 実績の表で型式を引く │ 製造年と傷みの候補から幅の下書き、撮り直しの依頼の文の下書き ▼ 査定の画面(枠つきの写真と一覧と幅の下書きを並べる) ▼ 【人】担当が写真と照らす → 責任者が見る → お客様に概算・撮り直しの依頼 ▼ 出張の当日:動作の確認・相手方の確認 → 金額の確定 → 古物の帳簿
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(写真から機器の種類・銘板の文字・傷みの候補と位置の枠を返す) | Claude API、OpenAI API |
| 連携 | Python(写真の受け取りと前処理、呼び出し、読めない銘板の振り分け、実績の表の参照、幅の計算) | Google Apps Script |
| 実績の表 | 型式・製造年・状態ごとの過去の買取と販売の金額 | - |
| 査定の画面 | 店の買取の管理の仕組みに足す査定の画面 | - |
新しく足すのは、Python のサーバーと Gemini API の契約です。 申込みのフォーム、実績の表、買取の管理の仕組みは今のものを使い、査定の画面に枠つきの写真と一覧の表示を足します。
写真を見る土台は、Gemini API の画像の理解です。 公式の案内では、対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示の文と合わせたリクエスト全体が20MBまでです。大きいファイルや同じ画像をくり返し使う場合は Files API を使うとされています。スマートフォンで撮られた HEIC の写真も、そのまま渡せます。
傷みの位置は枠で返させます。 枠は box_2d として [ymin, xmin, ymax, xmax] の順で返り、画像の大きさに対して0〜1000に正規化されます。サーバーが元の大きさに戻して写真に番号つきの枠を描き、担当が傷みの場所を目で追えるようにします。
出力は構造化出力で受けます。 /v1beta/interactions に送り、response_format で mime_type を application/json にし、schema にスキーマを入れます。文字列は enum で決まった値に絞れ、数値の minimum・maximum と配列の minItems・maxItems は守られるとされています。一方で minLength・maxLength はエラーにならずに外されるとされ、値はアプリ側で検証するよう公式に書かれています。
03どうやって実装するのか
処理の起点を決める
起点は、申込みのフォームが送信されたときです。 フォームの送信で写真が保管の場所に置かれ、サーバーが申込みの番号ごとに処理を始めます。 閉店の日が迫ったお客様は早い返事を求めるので、1日1回のまとめての処理にはしません。
撮り直しの写真が届いたときも、トリガーです。 撮り直しの依頼の文には申込みの番号を書き、お客様が同じ番号で写真を追加できるようにします。 追加の写真が届いたら、その機器だけを読み直し、一覧を更新します。1件分を最初から読み直すと、担当がすでに確かめた機器の一覧が変わってしまうことがあります。
営業時間の外に届いた申込みも、読み取りまでは進めます。 翌朝に担当が出勤したとき、一覧と撮り直しの依頼の下書きがそろっている状態にします。お客様への返事は、担当と責任者が見てからです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申込みの情報 | 申込みの番号、店の名前、閉店や引き渡しの日、機器の台数、お客様の書いた機器の名前 | 申込みのフォーム |
| 写真 | 機器ごとの全体・銘板・傷みの写真(ファイル名に機器の番号) | 申込みのフォーム |
| 買取の実績の表 | 型式、メーカー、機器の種類、製造年、状態、買取の金額、販売の金額、買取の日 | 店の表 |
| 機器の種類の一覧 | 店が扱う機器の種類と、銘板で必ず読む項目(電源・ガスの種類・冷媒など) | 店の文書 |
| 査定の決まり | 製造年の区分、傷みの種類ごとの下げ幅、買い取らないものの条件 | 店の文書 |
フォームでは、機器ごとに3種類の写真の欄を分けます。 「機器1:全体」「機器1:銘板」「機器1:傷み(任意)」のように欄を分け、写真のファイル名に機器の番号と種類が付くようにします。 欄を分けずに写真をまとめて受けると、どの銘板がどの機器のものかを Gemini が取り違えることがあります。
買取の実績の表は、型式の書き方をそろえておきます。 メーカーによって型式にハイフンや空白が入るので、表には記号を除いた「照合の型式」の列を持たせます。 Gemini が読んだ型式も同じ規則で記号を除いてから引きます。
機器の種類の一覧には、銘板で必ず読む項目を書きます。
| 機器の種類 | 銘板で必ず読む項目 |
|---|---|
| 冷蔵庫・冷凍庫・製氷機 | 型式、製造年、電源(相と電圧)、冷媒の種類 |
| ガスレンジ・フライヤー・炊飯器(ガス) | 型式、製造年、ガスの種類 |
| 食器洗浄機 | 型式、製造年、電源(相と電圧) |
| 電気の加熱機器 | 型式、製造年、電源(相と電圧)、消費電力 |
この一覧は、Gemini への指示とは別に、Python の検証に使います。 Gemini が返した一覧で、種類ごとに必ず読む項目が欠けていれば、その機器は撮り直しに回します。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| 写真と申込みの情報 | 申込みのフォーム | 送信のときにサーバーへ届き、申込みの番号ごとに保管する |
| 機器ごとの種類・銘板の文字・傷みの候補 | Gemini API | 1件分の写真を、機器の番号ごとに分けて渡し、構造化出力で受ける |
| 型式ごとの過去の金額 | 買取の実績の表 | 照合の型式で引く。見つからなければ、メーカーと機器の種類で近い行を候補として出す |
| 査定の決まり | 店の文書 | Python の設定に書く。変えたら版の日付を付ける |
Gemini には、1件分の写真を機器ごとにまとめて渡します。 「機器1の写真は3枚、機器2の写真は2枚」と指示に書き、機器の番号ごとに一覧を返させます。 1台ずつ別々に呼ぶより、同じ店の機器どうしで銘板の書き方が似ていることを手がかりにできます。 公式の案内では、1回のリクエストに入れられる画像は3,600枚までとされていますが、リクエスト全体が20MBを超えないよう、大きさを整えてから渡します。
実績の表で型式が見つからないときは、近い行を候補として出すだけにします。 同じメーカーの同じ機器の種類の行を、「型式の一致なし・参考」として並べ、幅の下書きは出しません。 担当が型式の違いを見て判断します。
AIへ渡す前に整形する
- 写真の向きを直す … 撮影の情報の向きで回し、銘板が横倒しにならないようにします
- 大きさを整える … 長い辺を決まった大きさに縮め、1件分が20MBに収まるようにします。銘板の写真は縮めすぎません
- 人の顔と書類の写り込みを塗りつぶす … 厨房の写真には従業員や、壁に貼られた書類が写ることがあります
- 機器の番号ごとに写真を分ける … ファイル名の機器の番号で、全体・銘板・傷みの組にします
- 写真の欠けを先に拾う … 銘板の欄が空の機器は、Gemini に渡す前に撮り直しの依頼に回します
2番目で銘板の写真を縮めすぎないのは、文字が小さいからです。 全体の写真と同じ大きさに縮めると、銘板の刻印がつぶれて、読めないものが増えます。 銘板の写真は、全体の写真より大きく残します。
5番目を Gemini の前に置くのは、無い写真から読ませないためです。 銘板の写真が無いのに全体の写真だけを渡すと、Gemini は外観からメーカーや型式を推し量ろうとします。 欄が空なら、渡す前に止めます。
AIに処理させる
| 頼むこと | 中身 |
|---|---|
| 機器の種類 | 全体の写真から、店の一覧の種類のどれに当たるかを返す |
| 銘板の文字 | メーカー、型式、製造年、製造番号、電源、ガスの種類、冷媒、消費電力を、銘板に書かれた文字のとおりに返す |
| 読めない文字 | 読めない文字を「?」にし、項目ごとに読めた・一部読めない・読めない・写っていないを返す |
| 傷みの候補 | へこみ、さび、パッキンの破れ、扉の歪み、ガラスの割れ、焦げ、欠けた部品の候補と、写真の上の枠 |
| 写真の質 | ぼけ、暗さ、反射、斜めで読めないことを返す |
| させないこと | 理由 |
|---|---|
| 読めない型式を似た型式で埋める | 別の機種の実績で査定してしまう |
| 外観からメーカーや型式を推し量る | 銘板に書かれた文字だけを使う |
| 製造年を製造番号から推し量る | 製造番号の付け方はメーカーごとに違う |
| 買取の金額や相場を言う | 金額は実績の表と担当の判断で決める |
| 動くか、安全に使えるかを判断する | 写真では分からない。出張の当日に確かめる |
| 盗品かどうかを判断する | 不正品の疑いは人が判断し、警察官に申告する |
1行目がいちばん起きやすい失敗です。 型式の末尾の1文字がかすれていると、Gemini はよく見る型式の形に合わせて埋めたくなります。末尾の1文字は、冷凍庫か冷蔵庫か、扉の数がいくつかを表すことがあります。 読めない文字は「?」にさせ、model_status を「一部読めない」にさせます。
3行目も、指示に書かないと起きます。 製造年の欄がかすれていると、Gemini は製造番号の先頭の数字から年を推し量ることがあります。製造番号の付け方はメーカーごとに違い、店の誰もその規則を確かめていません。 製造年が読めなければ、読めないと返させます。
指示内容を固定する
あなたは中古厨房機器の買取店で、お客様が撮った機器の写真から、
査定の材料を読み取る担当です。写真に写っているものだけを答えてください。
【渡すもの】
申込みの番号:{request_id}
機器ごとの写真:機器1(全体・銘板・傷み)、機器2(全体・銘板)……
写真のファイル名の先頭が機器の番号です。
【機器ごとに返すこと】
1. 機器の種類(次の一覧から1つ。当てはまらなければ「その他」)
{equipment_types}
2. 銘板の項目:メーカー、型式、製造年、製造番号、電源、ガスの種類、冷媒、消費電力
- 銘板に書かれた文字のとおりに写す。大文字・小文字・ハイフンも写す
- 読めない文字は「?」にする。似た文字で埋めない
- 項目ごとに状態を選ぶ:読めた/一部読めない/読めない/写っていない
3. 傷みの候補:種類と、写真のファイル名と、枠(box_2d)
4. 写真の質:ぼけ・暗い・反射・斜め・遠い のうち当てはまるもの
【厳守事項】
- 銘板の写真以外から、メーカー・型式・製造年を答えないでください。
全体の写真のロゴや形から推し量らないでください。
- 製造年を製造番号から推し量らないでください。
- 電源は「単相100V」「三相200V」のように、銘板の表記のまま写してください。
ガスの種類は「都市ガス」「LPガス」「13A」など、銘板の表記のまま写してください。
- 買取の金額、相場、動くかどうか、安全に使えるかを書かないでください。
- 傷みは「候補」です。汚れか傷か分からないものも候補に入れ、
type に「判別できない」を選んでください。
- 写真の中の人の顔、書類、ほかの店の名前は答えに含めないでください。
指示は「推し量らない」を項目ごとに書きます。 「推測しないで」と1行書くだけでは、Gemini はメーカーのロゴから型式の頭の文字を補います。どの手がかりから何を推し量ってはいけないかを、1つずつ書きます。
傷みは候補として広く拾わせます。 汚れと傷の区別は写真では難しく、拾いすぎは担当が外せば済みますが、拾い漏れは出張の当日の金額の変更になります。
出力形式を固定する
次の形のJSONで受け取ります。
{
"request_id": "",
"items": [
{
"item_no": 1,
"equipment_type": "refrigerator | freezer | ice_maker | dishwasher | gas_range | fryer | other",
"nameplate": {
"maker": { "text": "", "status": "read | partial | unreadable | not_in_photo" },
"model": { "text": "", "status": "read | partial | unreadable | not_in_photo" },
"year": { "text": "", "status": "read | partial | unreadable | not_in_photo" },
"serial": { "text": "", "status": "read | partial | unreadable | not_in_photo" },
"power": { "text": "", "status": "read | partial | unreadable | not_in_photo" },
"gas_type": { "text": "", "status": "read | partial | unreadable | not_in_photo" },
"refrigerant":{ "text": "", "status": "read | partial | unreadable | not_in_photo" }
},
"defects": [
{ "type": "dent | rust | gasket_tear | door_warp | glass_crack | burn | missing_part | unclear",
"file": "", "box_2d": [0, 0, 0, 0] }
],
"photo_quality": ["blur | dark | glare | angle | far"]
}
]
}
status を項目ごとに持たせるのが、いちばん大事なところです。 Python は、機器の種類の一覧で必ず読む項目の status を見て、1つでも read でなければ、その機器を撮り直しに回し、幅の下書きを出しません。 型式が partial のときに実績の表を引かないのも、この値で決めます。
構造化出力の制約の効き方に注意します。 enum は守られるとされているので、status と type は決まった値の外に出ません。一方、文字の長さの制約は外されるとされているので、型式の文字数の検証は Python で行います。 型式に「?」が含まれていれば、status が read でも partial に直します。
Python が足す項目は、次のとおりです。
| 項目 | 中身 |
|---|---|
match | 照合の型式で実績の表に一致したか(一致・一致なし・引かない) |
year_band | 製造年の区分(店の決まりの区分) |
range_draft | 実績の金額と傷みの候補の数から出した幅の下書き |
retake | 撮り直しが要る理由(銘板が写っていない、型式が一部読めない、など) |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 申込みのフォーム | 送信の通知でサーバーへ | 写真と申込みの情報を受け取る |
| Gemini API | API の呼び出し | 1件分の写真を渡し、構造化出力で受ける |
| 買取の実績の表 | Python が読み取る | 照合の型式で過去の金額を引く |
| 査定の画面 | Python が書き込む | 枠つきの写真、一覧、幅の下書き、撮り直しの依頼の下書き |
| お客様へのメール | 担当が下書きを直して送る | 概算と撮り直しの依頼 |
実績の表にも、古物の帳簿にも、自動では書き込みません。 写真の段階は概算で、買い取ったときに初めて帳簿に記載します。 査定の画面の一覧は、出張の当日の確認の材料と、帳簿の「特徴」の欄の下書きに使います。
呼び出しでは store=false を指定します。 公式の案内では、Interactions API は既定でやり取りを保存し、有料の枠では55日保持するとされ、store=false で保存しない動きにできるとされています。お客様の店の厨房の写真なので、API 側に残さない設定にし、記録は店のサーバーに残します。
人が確認する
- 撮り直しに回った機器を見る … 理由が正しいかを見て、依頼の文を直します
- 銘板の項目を写真と照らす … 型式・製造年・電源・ガスの種類を、銘板の写真と1文字ずつ見ます
- 傷みの候補を枠で確かめる … 汚れなら外し、見落としがあれば足します
- 幅の下書きを直す … 実績の表の行と、傷みの程度を見て、担当が幅を決めます
- 責任者が見てから返す … 幅と撮り直しの依頼を見て、お客様に送ります
2番目を省かないでください。 電源とガスの種類は、買い手の店で使えるかを決める項目で、読み違えは出張の当日の金額の変更になります。銘板の写真と Gemini の読んだ文字を並べて見るので、拡大して一から読むより速く、確実です。
担当が直した項目は、直した理由と一緒に残します。 どの文字をどう読み違えたかが溜まると、指示に書き足すべき「似た文字」の組が分かります。
目標は、1件5分です。 撮り直しに回った機器の確認、銘板の照らし合わせ、幅の調整が中心です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 銘板の写真が無い | Gemini に渡す前に撮り直しの依頼へ回す |
| 型式が一部読めない | 幅を出さず、銘板を正面から明るく撮り直してもらう |
| 電源やガスの種類が写っていない | 幅を出さず、銘板の下のほうまで写るよう頼む |
| 実績の表に型式が無い | 近い行を参考として出し、責任者が判断する |
| 1枚に複数の機器が写っている | 機器の番号が分からないものは撮り直しを頼む |
| 業務用エアコンの室外機が申込みに含まれる | 古物営業法施行規則で相手方の確認を省けない古物に当たるため、出張の当日の確認の手順を責任者が確かめる |
| 傷みの候補が多すぎる | 写真の汚れが原因のことが多い。担当が外す |
| 不正品の疑いがある(製造番号が削られている、など) | 査定を止め、責任者が判断する。疑いがあれば警察官に申告する |
| Gemini API が応答しない | 申込みを未処理のまま残し、担当が従来どおり写真を見る |
上から3行目までが大半を占めます。 どれも Gemini の問題ではなく、お客様の撮り方の問題です。 撮り直しの依頼の文に、銘板の場所の例(冷蔵庫は扉の内側の上、製氷機は前面の下、など)を機器の種類ごとに添えると、撮り直しが一度で済みます。
8行目は、写真の段階で気づけることがあります。 製造番号の部分だけが削られている、銘板が剥がされている、といった写真は、Gemini の status では「読めない」としか出ません。 担当が写真を見て、読めない理由が汚れか、削られたものかを見分けます。
記録を残す
- 申込みの写真(塗りつぶし前と後)と、申込みの情報
- Gemini が返した JSON と、Python が足した項目
- 担当が直した項目と理由、決めた幅、責任者の確認
- お客様に送った概算と撮り直しの依頼
- 出張の当日の確定の金額と、写真の段階の幅との差
最後の行が、この構成を育てる材料です。 写真の幅と確定の金額の差が大きい機器の種類は、写真で分からない傷みが多い種類です。撮ってもらう写真の欄を足すか、幅を広めに伝えるかを決めます。
記録は店のサーバーに残します。 買い取った機器の帳簿の記載と保存は、古物営業法の決まりに従って行います(第13章)。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ手で渡すので、月300件には使えません。読めるかを確かめるための段階です。 半自動化で、1件14分が9分程度になります。 銘板を拡大して読む時間は減りますが、実績の表を引く作業と撮り直しの依頼を書く作業が残ります。本格構成で5分になり、この段階が本記事の想定です。 半自動化の一覧を1か月見て、読めないことが多いメーカーと撮り直しの多い機器の種類を先に知ってから進みます。
05工数削減シミュレーション
導入後 300件 × 5分 ÷ 60 = 25 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 業務用の冷蔵庫・製氷機・食器洗浄機・ガスレンジ・フライヤーなどの中古の厨房機器を飲食店から買い取り、来店や出張の前に写真で概算の査定をしている買取店。1件の申込みに数台から十数台の機器の写真が届き、銘板の型式と製造年を読み取って実績の表を引く作業に時間がかかっている場合。銘板の写真が読めず撮り直しを頼むやり取りが多い場合。
- 査定の多くが店頭への持ち込みで、現物を見ればその場で決まる場合。扱う機器が1つのメーカーの数機種に限られ、型式の一覧が頭に入っている場合。過去の買取の実績を型式ごとに残しておらず、査定の幅を引く表が無い場合。なお、買い取るかどうか、買取の金額の確定、機器が安全に使えるかの判断、相手方の確認と不正品の疑いの申告は、この構成では代替しません。
07最小構成で試す方法
- 先月の申込みから、査定が終わった30件の写真と、担当が読んだ型式・製造年・電源・ガスの種類を用意する
- 写真の人の顔と書類を塗りつぶす
- 短い Python のスクリプトで、有料の枠の Gemini API に第7章の指示と1件分の写真を渡す(
store=false) - 返ってきた銘板の文字と
statusを、担当が読んだ値と並べる - 読めないものを「読めない」と返したか、似た型式で埋めていないかを見る
30件で十分です。 見るのは、読めた文字が担当の読みと合っているかと、読めない文字を埋めていないかの2つです。
| 出てきた内容 | 判断 |
|---|---|
| 読めた文字が合い、読めないものは「読めない」と返した | サーバーと実績の表の照合に進む |
| 読めない文字を似た型式で埋めた | 指示の書き方で直る。構成は有効 |
| 「読めない」が多く、担当は読めていた | 写真の大きさの整え方が先。 銘板を縮めすぎていないかを見る |
3行目が出たら、銘板の写真の大きさを変えて、同じ30件で試し直します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 読めない型式を似た型式で埋める | 「?」にさせ、status で幅を止める |
| 外観から型式を推し量る | 銘板の写真以外から答えさせない |
| 製造年を製造番号から推し量る | 指示で禁じる |
| 電源・ガスの種類の読み落とし | 機器の種類ごとの必ず読む項目で Python が検証する |
| 銘板を縮めすぎて読めない | 銘板の写真だけ大きく残す |
| どの銘板がどの機器か取り違える | フォームの欄を機器ごとに分け、ファイル名に番号を付ける |
| 型式の記号の違いで表を引けない | 照合の型式の列で記号を除いて引く |
| 文字数の制約が効かない | 構造化出力で外される制約は Python で検証する |
上の2行が、この構成の失敗のほとんどです。 どちらも、Gemini が「答えを出そう」として手がかりを広げることから起きます。銘板の読み取りでは、読めないと返すことが正しい答えです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: お客様の店の名前と申込みの情報、厨房の機器の写真、銘板の製造番号です。写真には従業員の顔や、壁に貼られた書類が写ることがあります。
- 買い受けるときの相手方の確認は人が行う … 古物営業法は、古物商が古物を買い受けるときに相手方の住所・氏名・職業・年齢の確認などの措置をとることを求め、対価の総額が規則で定める金額(1万円)未満の取引では省けるとしています。ただし規則は、エアコンディショナーの室外ユニットと電気温水機器のヒートポンプなどを、金額にかかわらず確認が要る古物として挙げています。写真の査定は概算で、相手方の確認は出張の当日に人が行います
- 帳簿の記載は買い取ったときに人が行う … 法は、古物を受け取ったときに取引の年月日、古物の品目及び数量、古物の特徴、相手方の住所・氏名・職業・年齢、確認の措置の区分を帳簿等に記載することと、帳簿等を3年間保存することを求めています。一覧の型式・製造番号・傷みは「特徴」の下書きに使えますが、記載は担当が現物を見て行います
- 不正品の疑いは人が判断する … 法は、不正品の疑いがあると認めるときは、直ちに警察官にその旨を申告しなければならないとしています。製造番号が削られている、銘板が剥がされているといった写真は、Gemini の判断に任せず、責任者が見ます
- 写真の写り込みを塗りつぶす … 従業員の顔、書類、ほかの店の名前は、Gemini に渡す前に塗りつぶします
- 有料の枠で使い、保存を止める … Gemini API の追加利用規約では、有料のサービスではプロンプトと応答が製品の改善に使われないとされています。あわせて
store=falseを指定します。規約は18歳以上であることを利用の条件とし、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていないので、申込みのフォームは飲食店の事業者に向けたものとし、利用の条件に年齢を書きます
誤りが起きた場合のリスクは、読めない型式や電源を埋めて誤った概算を伝えることと、不正品の疑いを見落とすことの2つです。 前者は status による振り分けと担当の照らし合わせで、後者は責任者の目で防ぎます。どちらも Gemini の出来に頼らず、店の手順の側で守ります。
10まず何から始めるか
1週目:実績の表と機器の種類の一覧を整える
実績の表に照合の型式の列を足し、機器の種類ごとに銘板で必ず読む項目を一覧にします。査定の決まり(製造年の区分、傷みの下げ幅)も文書にします。
2週目:30件で試す
先月の30件の写真で、Gemini に銘板と傷みを読ませます。読めない文字を埋めていないか、電源とガスの種類を拾えているかを最優先で見ます。
3週目:フォームの写真の欄を分ける
機器ごとに全体・銘板・傷みの欄を分け、機器の種類ごとの銘板の場所の例を案内に足します。
4週目:読み取りと振り分けをつなぐ
Python で API を呼び、一覧と撮り直しの振り分けを表に書き出します。この時点では幅の下書きを出さず、銘板の読みと振り分けだけを担当が見ます。
2か月目: 実績の表の照合と幅の下書きを足します。3か月目以降: 写真の幅と確定の金額の差を機器の種類ごとに見て、撮ってもらう写真と査定の決まりを見直します。撮り直しの依頼が申込みの直後に出せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
画像の形式が PNG・JPEG・WEBP・HEIC・HEIF であること。画像を直接入れる場合はリクエスト全体が20MBまでで、大きいファイルや再利用は Files API を使うこと。1回のリクエストの画像が3,600枚までであること。枠が box_2d の [ymin, xmin, ymax, xmax] で0〜1000に正規化されること。画像のトークンが両辺384ピクセル以下で258、それ以上は768×768の区画ごとに258であること。例が /v1beta/interactions を使うこと | Google AI for Developers: Image understanding | 2026-10-28 |
構造化出力を /v1beta/interactions の response_format(mime_type に application/json、schema)で指定すること。enum、数値の minimum・maximum、配列の minItems・maxItems が使えること。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 |
| API の利用は18歳以上が条件で、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めないこと。有料のサービスではプロンプトと応答が製品の改善に使われないこと | Gemini API 追加利用規約 | 2026-10-28 |
| 買い受けの際の相手方の確認の措置と、対価の総額が規則で定める金額未満の取引の除外。不正品の疑いがあるときの警察官への申告。帳簿等に取引の年月日・品目及び数量・特徴・相手方の住所氏名職業年齢・確認の措置の区分を記載すること。帳簿等の3年間の保存(第15条・第16条・第18条) | e-Gov 法令API: 古物営業法 | 2026-10-28 |
| 相手方の確認を要しない取引の金額が1万円であること。金額にかかわらず確認が要る古物として、エアコンディショナーの室外ユニット及び電気温水機器のヒートポンプなどが挙げられていること。古物の区分に機械工具類・道具類などがあること | e-Gov 法令API: 古物営業法施行規則 | 2026-10-28 |
相手方の確認の方法、帳簿の様式、機器の品目の区分は、所轄の警察署の案内と店の決まりで確かめてください。 本記事は上の公式の情報で確認できた範囲だけを扱い、中古の電気製品やガス機器の販売のときの表示や安全の決まりには踏み込んでいません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2185)についてのご相談はこちらから。
