盆栽の販売店が出品する鉢の写真を Gemini で見て、樹種の候補・樹形・鉢の特徴を読み取り、寸法と価格を人が入れて通販の商品説明の下書きにする
盆栽の販売店が出品する鉢を5方向から撮り、Gemini に樹種の候補・樹形・鉢の特徴を読ませます。担当者が実物と見比べて確定し、寸法と価格を入れてから、通販の商品説明の下書きを作らせます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- EC/小売
- 対象部門
- マーケティング
- 対象業務
- データ入力・転記/書類作成
- 主な課題
- 人手が足りない/入力作業が多い/属人化している
- AIで行う処理
- 画像認識
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 店主が出品する鉢を選び、管理番号の札を付けて正面を決める
- 担当者が撮影台で5枚を撮り、管理番号のフォルダに入れる
- 担当者が写真を見ながら、樹種・樹形・鉢の形と色・見どころを書き出す
- 物差しで高さと幅を測って書き入れる
- 店主が価格を決める
- 担当者が商品説明を書き、通販サイトとモールの管理画面に写真と一緒に登録する
- 人店主が出品する鉢を選び、管理番号の札を付けて正面を決める(ここは変えない)
- 人担当者が撮影台で5枚を撮り、管理番号のフォルダに入れる
- 自動毎日の夕方に、新しいフォルダの写真を集め、大きさをそろえる
- 【AI】 Gemini が5枚から、樹種の候補と確からしさ・樹形・鉢の特徴・葉と枝の様子を決まった項目で返す
- 自動返ってきた値が決まった選択肢に入っているかを確かめ、確認の表に並べる
- 人担当者が翌朝、確認の表と実物を見比べ、樹種を確定し、樹形と鉢の項目を直す
- 人担当者が高さと幅を測って書き入れ、店主が価格を入れる
- 【AI】 確定した値から、Gemini が商品説明の下書きを作る
- 人担当者が下書きの見どころを直し、通販とモールに登録する
各工程の詳しい説明を読む
- 店主が出品する鉢を選び、管理番号の札を付けて正面を決める
- 担当者が撮影台で5枚を撮り、管理番号のフォルダに入れる
- 担当者が写真を見ながら、樹種・樹形・鉢の形と色・見どころを書き出す
- 物差しで高さと幅を測って書き入れる
- 店主が価格を決める
- 担当者が商品説明を書き、通販サイトとモールの管理画面に写真と一緒に登録する
(a)一鉢ずつ写真を見て書き出すのに時間がかかる。 3番で、写真を拡大して樹形の呼び方を考え、鉢の形と色を言葉にします。1鉢に5〜6分かかり、120鉢で月に10時間を超えます。
(b)説明を書けるのが店主と一人の担当者だけ。 新しく入った担当者は、写真の撮影まではできても、樹形と鉢の呼び方で止まります。 店主が仕入れで店を空ける週は、出品が止まります。
(c)書き方が担当者ごとにばらばら。 同じ「模様木」を「曲」と書く人、鉢の色を「茶」と書く人と「朱泥」と書く人。通販の検索で同じ樹形の鉢がまとまって見つからず、お客様が見比べにくくなります。
(d)写真から決められないことまで書いてしまう。 「樹齢30年ほど」「名のある作家の鉢」。確かめていないことを書いた説明は、届いた鉢を見たお客様の問い合わせや返品につながります。
- 【人】 店主が出品する鉢を選び、管理番号の札を付けて正面を決める(ここは変えない)
- 【人】 担当者が撮影台で5枚を撮り、管理番号のフォルダに入れる
- 【自動】 毎日の夕方に、新しいフォルダの写真を集め、大きさをそろえる
- 【AI】 Gemini が5枚から、樹種の候補と確からしさ・樹形・鉢の特徴・葉と枝の様子を決まった項目で返す
- 【自動】 返ってきた値が決まった選択肢に入っているかを確かめ、確認の表に並べる
- 【人】 担当者が翌朝、確認の表と実物を見比べ、樹種を確定し、樹形と鉢の項目を直す
- 【人】 担当者が高さと幅を測って書き入れ、店主が価格を入れる
- 【AI】 確定した値から、Gemini が商品説明の下書きを作る
- 【人】 担当者が下書きの見どころを直し、通販とモールに登録する
6番目が、この設計の分かれ目です。 Gemini の返す値は、担当者が実物を見て確定するための候補です。 樹種の候補が2つ出た鉢は、担当者が葉と幹肌を見て決めます。確定した値だけが、8番目の下書きの材料になります。
7番目で寸法を人が測るのは、写真から寸法は決められないからです。 撮影台からの距離やレンズによって、同じ鉢でも写真の上の大きさは変わります。 寸法は物差しで測った値だけを使います。
02今回想定するシステム構成
出品する鉢(管理番号の札・正面を店主が決める) │ 撮影台で5枚(正面・側面・上・鉢・幹の根元) ▼ 管理番号ごとのフォルダ(共有のドライブ) │ ▼【トリガー】毎日17時 Python(写真の収集・大きさの調整・結果の確かめ・確認の表への書き出し) │ ▼ Gemini API(Interactions、構造化出力、store=false) │ 樹種の候補と確からしさ・樹形・鉢の特徴・葉と枝の様子・確かめること ▼ 確認の表(共有のスプレッドシート) │ ▼【担当者が実物と見比べて確定/寸法を測る/店主が価格を入れる】 Gemini API ── 確定した値から商品説明の下書き ▼ 【担当者が見どころを直す】──▶ 通販サイト・モールの管理画面へ登録
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(写真から樹種の候補・樹形・鉢の特徴を返し、確定した値から商品説明の下書きを作る) | Claude API、OpenAI API |
| 連携 | Python(写真の収集、大きさの調整、結果の確かめ、確認の表への書き出し) | Google Apps Script |
| 保管 | 共有のドライブ(写真)とスプレッドシート(確認の表) | 社内のファイルサーバー |
新しく足すのは、Gemini API と、写真を集めて結果を表に並べる Python の小さなプログラムだけです。 撮影のしかた、在庫の台帳、通販への登録のしかたは変えません。写真を見て呼び方を決める作業を、候補を実物と見比べる作業に置き換えます。
画像の入力は、Gemini API の画像の理解の機能で行います。 公式の案内では、PNG・JPEG・WEBP・HEIC・HEIF の形式に対応し、1回のリクエストに複数の画像を入れられます。 画像を直接入れる場合は、指示の文などを合わせたリクエスト全体が20MBまでとされ、大きいファイルや同じ画像を何度も使う場合は Files API を使うよう書かれています。5枚をまとめて1回で渡し、5方向の見え方を合わせて判断させます。
結果は構造化出力で受け取ります。 公式の案内では、/v1beta/interactions の response_format に mime_type として application/json と schema を指定する形で、文字列の enum で選択肢を決められます。樹形や鉢の形を決まった呼び方の中から選ばせることで、第3章の(c)の書き方のばらつきを止めます。
03どうやって実装するのか
処理の起点を決める
毎日17時に、その日に撮った鉢をまとめて処理します。 撮影は日中に何回かに分けて行うので、撮るたびに動かすと、5枚がそろう前の鉢を処理してしまいます。 夕方にまとめれば、担当者は翌朝に確認の表を開くだけで済みます。
処理の対象は、5枚がそろったフォルダだけにします。 フォルダの中の写真の数を数え、5枚に満たないフォルダは飛ばして、確認の表に「写真が足りない」と書きます。 翌日の撮影で足りない方向を撮り足します。
処理が終わったフォルダには、処理済みの印を付けます。 印を付けるのは結果を確認の表に書き出せたときだけにします。印の無いフォルダが、そのまま未処理の鉢の一覧になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 5方向の写真 | 正面・側面・上・鉢だけ・幹の根元 | 管理番号のフォルダ |
| 管理番号 | 札の番号。在庫の台帳と結ぶ鍵 | フォルダの名前 |
| 在庫の台帳の行 | 仕入れの記録にある樹種の名前(あれば)、置き場所 | 在庫の台帳 |
| 選択肢の一覧 | 樹形の呼び方、鉢の形・色・釉薬の呼び方、店で扱う樹種の一覧 | 指示の中に書く |
| 商品説明の書き方の決まり | 見出しと本文の字数、必ず入れる項目、書いてはいけないこと | 指示の中に書く |
質を決めるのは、写真の撮り方です。 背景が棚場のままだと、後ろの鉢の葉や枝が写り込み、Gemini がそれを手前の鉢の枝として読みます。 撮影台と単色の背景の布を決めておき、5方向の向きと距離を毎回同じにします。
在庫の台帳の樹種の名前は、Gemini には渡しません。 仕入れの記録の樹種を先に見せると、Gemini は写真よりその名前に引っ張られ、候補として返すだけになります。 台帳の名前は、Gemini の候補と並べて確認の表に出し、食い違ったときに担当者が実物を見て決めます。 2つの見立てが独立していることで、取り違えが見つかります。
選択肢の一覧は、店の呼び方で作ります。 樹形なら「直幹・模様木・斜幹・懸崖・半懸崖・文人木・双幹・株立ち・寄せ植え・根上り・石付き・その他」、鉢の形なら「長方・楕円・丸・正方・六角・八角・木瓜・その他」のように、店が通販で使っている呼び方をそのまま選択肢にします。
データの取得方法を決める
写真は、共有のドライブの管理番号のフォルダから取ります。 Python のプログラムがフォルダの一覧を見て、処理済みの印の無い、5枚そろったフォルダを拾います。写真のファイル名は「正面」「側面」「上」「鉢」「根元」の決まった名前にしておき、どの写真がどの方向かを名前で渡します。
写真の大きさは、送る前にそろえます。 スマートフォンの写真は1枚で数MBあり、5枚をそのまま送ると20MBの上限に近づきます。 長い辺を決まった長さに縮めてJPEGにし、5枚の合計が上限に余裕を持って収まるようにします。公式の案内では、384ピクセル以下の画像は258トークンで、それより大きい画像は768×768のタイルに分けて数えるとされ、Gemini 3 からは画像1枚あたりのトークンの上限を決める media_resolution の設定があります。細かい幹肌や葉の様子を見たい「根元」の写真だけ解像度を上げるかは、試しながら決めます。
HEIC で撮っている場合も、JPEG にそろえます。 HEIC は対応の形式ですが、確認の表や通販の管理画面に同じ写真を使うので、店の中で形式を1つにしておくほうが扱いやすくなります。
やり取りは保存させません。 公式の案内では、Interactions API は既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできるとされています。1鉢ごとに完結する処理なので、続きのやり取りは要りません。 store=false を付けて送ります。
AIへ渡す前に整形する
- 5枚がそろっているかを確かめる … 決まった5つの名前のファイルがあるかを見ます
- 写真の大きさをそろえる … 長い辺を決まった長さに縮め、JPEGにします
- ピントの甘い写真を拾う … 画像の鮮明さを数値で見て、決まった値を下回る写真は「撮り直し」とします
- 方向の名前を付けて並べる … 正面・側面・上・鉢・根元の順に、名前と一緒に渡します
- 季節を添える … 撮影の月を渡します。落葉樹の冬の姿かどうかの手がかりにします
3番目は、Gemini に読めない写真を渡さないためです。 ピントが甘い写真を渡すと、Gemini はぼやけた葉から樹種の候補を出してしまいます。 撮り直しで済むものは、送る前に止めます。
5番目の季節は、樹種の候補の出し方を変えるためです。 冬の落葉樹は葉が無く、枝ぶりと幹肌と芽だけで見分けることになります。 撮影の月を渡し、葉の無い写真では「葉が無いので樹種の確からしさを下げる」よう指示しておきます。
AIに処理させる
させるのは、写真に写っていることを決まった項目と選択肢で返すことと、確かめるべきことを挙げることです。
| 見るもの | 返し方 | 判断できないときの扱い |
|---|---|---|
| 樹種 | 店で扱う樹種の一覧から候補を2つまで。確からしさを「高い/中くらい/低い」で | 一覧に無い・葉が無いなどで決められなければ「判断できない」 |
| 見分けの手がかり | 候補ごとに、写真のどこを見たか(葉の形・幹肌・芽・花・実) | 書かない |
| 樹形 | 選択肢の一覧から1つ | 当てはまらなければ「その他」と理由 |
| 鉢 | 形・色・釉薬の有無・足の数を選択肢から | 見えなければ「写真で見えない」 |
| 葉と枝の様子 | 葉の色が揃っているか、枯れて見える枝があるか、写真の上で見えるかどうか | 見えなければ「写真で見えない」 |
| 見どころの候補 | 写真で見える特徴を3つまで(幹の曲がり、根張り、枝の段など) | 無ければ「なし」 |
| 確かめること | 写り込み、正面の向きの迷い、撮り直したほうがよい方向 | 無ければ「なし」 |
確からしさを3段階の選択肢で返させるのは、担当者の見る順を決めるためです。 「高い」は候補を実物で確かめるだけ、「低い」と「判断できない」は店主に見てもらう鉢として確認の表の先頭に並べます。
| させないこと | 理由 |
|---|---|
| 樹齢を書く | 写真からは決められない。確かめていない数字が説明に残る |
| 鉢の作家・窯元・産地を書く | 落款や銘を写真で読めても、真贋は店主が決める |
| 高さ・幅・鉢の寸法を書く | 写真の上の大きさは撮り方で変わる。寸法は測った値だけを使う |
| 病気や虫が「無い」と言い切る | 写真で見えないことは、無いことの証にならない |
| 価格を書く | 価格は店主が決める |
| 樹種を1つに決める | 候補を返すだけにし、担当者が実物で確定する |
1行目が、いちばん起きやすい失敗です。 盆栽の説明らしい言葉として、Gemini は幹の太さから「樹齢数十年」と書きたがります。通販の説明に樹齢を書くなら、店が仕入れの記録などで確かめた値だけにします。 写真からの見立てを書かせる項目そのものを、出力の形に持たせません。
4行目の「病気や虫が無い」にも、理由があります。 葉の裏や鉢の中は、5枚の写真には写りません。Gemini には「写真で見える範囲で、枯れて見える枝や色の変わった葉があるか」だけを返させ、無いと言い切らせません。 出品の前に、担当者が実物の葉の裏と鉢の表土を見ます。
指示内容を固定する
写真の読み取りの指示:
あなたは盆栽の販売店で、出品する鉢の写真を読み取る補助です。
渡すのは同じ鉢を写した5枚の写真で、それぞれに方向の名前(正面・側面・上・鉢・根元)と
撮影した月が付いています。写真に写っていることだけを、決められた項目で返してください。
【樹種】
- 下の「店で扱う樹種の一覧」から候補を2つまで選び、確からしさを
「高い」「中くらい」「低い」から選んでください。
- 候補ごとに、写真のどこを見たか(葉の形・葉の付き方・幹肌・芽・花・実)を書いてください。
- 葉が無い、一覧に無い、写真で見分けがつかないときは「判断できない」を選んでください。
迷ったときに「高い」を選ばないでください。
【樹形・鉢】
- 樹形は「樹形の選択肢」から1つ選んでください。当てはまらなければ「その他」とし、理由を書いてください。
- 鉢の形・色・釉薬の有無・足の数は、それぞれの選択肢から選んでください。
「鉢」の写真で見えないものは「写真で見えない」を選んでください。
【厳守事項】
- 樹齢、鉢の作家・窯元・産地、高さ・幅・寸法、価格を書かないでください。
落款や銘が見えても、その読みを書かず「確かめること」に「鉢に銘らしきもの」とだけ書いてください。
- 病気や虫について「無い」と書かないでください。
写真で見える範囲で、枯れて見える枝や色の変わった葉があるかだけを書いてください。
- 背景や後ろの鉢の葉・枝を、この鉢のものとして扱わないでください。
写り込みがあれば「確かめること」に書いてください。
- 見どころの候補は、写真で見える特徴だけを3つまで書いてください。
【店で扱う樹種の一覧】{species_list}
【樹形の選択肢】{style_list}
【鉢の選択肢】{pot_list}
【撮影した月】{month}
「迷ったときに高いを選ばない」を明記しないと、確からしさが上に寄ります。 樹種の候補を返すよう頼まれると、Gemini は1つ目の候補を自信のある形で返しがちです。確からしさは、担当者がどの鉢を店主に回すかを決める値なので、低めに出ることを許す指示にします。
商品説明の下書きの指示は、確定した値だけを渡して別に送ります。 写真はもう渡しません。「樹種・樹形・鉢・寸法・見どころは、渡した値だけを使い、無い項目は書かない。樹齢・作家・手入れの効き目を書かない。見出し30字、本文250字」という形で、確定した値の範囲の中で文にさせます。
出力形式を固定する
写真の読み取りは、次の形のJSONで受け取ります。
{
"lot_no": "B-2026-1123",
"species_candidates": [
{ "name": "真柏", "confidence": "中くらい",
"evidence": "鱗片状の葉。幹に白く枯れた部分(舎利)が見える" },
{ "name": "杜松", "confidence": "低い",
"evidence": "葉の一部が針状に見えるが、写真では判別しにくい" }
],
"style": "模様木",
"style_reason": "",
"pot": { "shape": "楕円", "color": "茶", "glaze": "無釉", "feet": "4" },
"foliage": { "uniform_color": "揃っている", "dead_branches": "写真で見えない" },
"highlights": ["根元から左へ流れる幹の曲がり", "上から見て枝の段が三段に分かれている"],
"to_check": ["鉢に銘らしきもの", "側面の写真に後ろの鉢の葉が写り込み"]
}
1つ目の理由は、選択肢の値で返ってくることです。 style や pot.shape は決まった呼び方の中から選ばれるので、担当者が呼び方を考え直す必要がありません。 構造化出力の enum で選択肢を縛ります。
2つ目は、樹種が候補と根拠の組で返ってくることです。 担当者は evidence を読み、実物のその場所(葉の形、幹肌)を見るだけで確定できます。 在庫の台帳の樹種の名前と食い違っていれば、確認の表で並べて目に入ります。
3つ目は、値をプログラムの側で確かめられることです。 公式の案内では、構文として正しいJSONが返っても、値はアプリの側で検証するよう書かれています。また、minLength・maxLength は生成の制約として効かず、サーバーが取り除くとされています。Python の側で、選択肢の外の値、候補が3つ以上、確からしさの抜けを確かめ、外れたものは「再実行」として確認の表に印を付けます。
確認の表は、1鉢1行で次の列を持ちます。 管理番号、写真へのリンク、台帳の樹種、Gemini の候補1と確からしさ、候補2、樹形、鉢の形・色・釉薬・足、見どころの候補、確かめること、担当者が確定した樹種、担当者が測った高さと幅、店主の価格、確定の印です。左がAIの見立て、右が人の確定、という並びにしておくと、どこを人が決めたかが列で分かります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有のドライブ | Python がフォルダの一覧と写真を取る | 管理番号ごとの5枚 |
| Gemini API | Interactions で画像と指示を送り、構造化出力で受け取る | 樹種の候補・樹形・鉢・様子・確かめること |
| 確認の表 | Python が1鉢1行で書き出す | AIの見立てと、人が確定する列 |
| Gemini API(2回目) | 確定した値だけを送る | 商品説明の下書き |
| 通販サイト・モール | 担当者が下書きを直して登録する | 写真と説明。登録は人が行う |
通販サイトとモールへの登録は、この構成から自動では行いません。 下書きを直して登録するのは担当者です。確定の印が付いていない行からは、下書きも作りません。 Python の側で、確定の印と寸法と価格がそろった行だけを2回目の処理に回します。
人が確認する
- 確からしさの低い鉢から見る … 「低い」「判断できない」の鉢を店主に回します
- 樹種を実物で確定する … 候補の根拠に書かれた場所(葉・幹肌・芽)を実物で見ます。台帳と食い違うときは特に念入りに見ます
- 樹形と鉢の項目を直す … 正面の向きで樹形の呼び方が変わる鉢は、店主の決めた正面で見直します
- 寸法を測り、葉の裏と表土を見る … 高さと幅を物差しで測り、写真に写らない葉の裏と鉢の表土を見ます
- 下書きの見どころを直す … 店が伝えたい見どころに直し、確定した値と食い違う言葉が無いかを読みます
2番目を省かないでください。 樹種の取り違えは、届いた鉢を見たお客様がいちばん最初に気づく誤りです。 手入れのしかたも樹種で変わるので、取り違えたまま説明に書くと、お客様の手入れまで誤らせます。
3番目の正面の見直しは、盆栽ならではの確認です。 同じ鉢でも、正面を少し回すだけで幹の流れが変わり、模様木に見えたものが斜幹に見えることがあります。 Gemini は渡された「正面」の写真を正面として読むので、札の向きと写真の正面がずれていれば、樹形の値もずれます。 確認の表の写真のリンクを開き、札が正面に写っているかを最初に見ます。
目標は、120鉢をならして1鉢6分です。 確からしさが「高い」で台帳と一致する鉢は3〜4分、店主に回す鉢や撮り直しの鉢は10分以上かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 写真が5枚そろわない | 処理しない。確認の表に「写真が足りない」と書き、翌日撮り足す |
| ピントが甘い写真がある | 送る前に止め、「撮り直し」とする |
| 樹種が「判断できない」 | 店主に回す。冬の落葉樹は芽と幹肌の寄りの写真を足す |
| 台帳の樹種と候補が食い違う | 実物を見て決める。台帳の誤りなら台帳を直す |
| 選択肢の外の値が返った | 「再実行」とし、もう一度送る。2回続けば人が入れる |
| 写り込みを鉢の枝として読んだ | 背景を直して撮り直す |
| 鉢に銘らしきものがある | 店主が実物で確かめ、説明に書くかを決める |
| 寄せ植え・石付きで樹種が複数 | 樹種の候補を使わず、担当者が樹種を並べて書く |
| API が応答しない | 処理済みの印を付けず、翌日の処理に回す |
上から3行目までが大半を占めます。 どれも Gemini の精度の問題ではなく、撮り方と季節の問題です。 撮影台と背景と5方向の決まりを守るほうが、指示を工夫するより効きます。
記録を残す
- 管理番号ごとの5枚の写真と、送ったときの大きさ
- Gemini が返したJSONの全文と、送った日時
- 担当者が確定した樹種・樹形・鉢の値と、Gemini の候補と違ったところ
- 測った寸法と、店主の価格
- 商品説明の下書きと、担当者が直した最後の文
- 撮り直しになった鉢と、その理由
3つ目の「候補と違ったところ」は、指示と選択肢の一覧を直す材料になります。 同じ樹種の組み合わせでいつも取り違えるなら、指示に見分けの手がかりを書き足すか、その樹種は最初から店主に回す決まりにします。
04実装レベルの3段階
半自動化が、本記事の想定です。 月120鉢を1鉢ずつ画面に貼ると、貼る手間で時間が消えます。夕方にまとめて処理し、翌朝に確認の表を見る形で、1鉢6分になります。 半自動化は、2回に分けて組みます。 最初の1か月は確認の表に並べるところまでで止め、担当者が確定した値と Gemini の候補がどれくらい一致するかを、樹種ごとに数えます。 一致の多い樹種と少ない樹種が分かってから、下書きを作る2回目の処理を足します。一致の少ない樹種は、最初から店主に回す決まりにしておくと、確認の手戻りが減ります。 本格構成でも、登録そのものは人のままにします。 通販の商品は売れたらすぐに在庫を落とす必要があり、同じ鉢を店頭とモールで二重に売らないための確かめは、担当者が登録の時点で行います。
05工数削減シミュレーション
導入後 120件 × 6分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 盆栽・山野草・観葉植物の苗などを店頭と自社の通販・ショッピングモールで売り、毎月百鉢前後を一鉢ずつ撮影して出品している販売店。商品説明を書けるのが樹種と樹形に詳しい店主や一部の担当者に限られ、出品が店主の手の空き具合で止まる場合。写真の撮り方と説明の書き方が担当者ごとにばらばらな場合。
- 同じ品種の苗を数量でまとめて売っていて、一鉢ずつの説明が要らない場合。月の出品が十数鉢で、店主が見て書けば足りる場合。作家の鉢や名品を一点ずつ鑑定して売る店で、真贋や来歴の判断が説明の中心になる場合。なお、樹種の確定、寸法の計測、価格、樹齢や鉢の作家の表示は担当者と店主が実物を見て決めることで、この構成では代替できません。
07最小構成で試す方法
- 先月出品した鉢から30鉢を選ぶ(見分けにくい樹種の組み合わせと、冬の落葉樹を必ず入れる)
- その30鉢の5枚の写真と、当時の商品説明を用意する
- 樹形・鉢の選択肢の一覧と、店で扱う樹種の一覧を作る
- Google AI Studio の画面か Gemini アプリで、5枚と第7章の指示を1鉢ずつ貼って試す
- 返ってきた樹種の候補・樹形・鉢の値を、当時の説明と店主の見立てと突き合わせる
30鉢は必ずやってください。 プログラムを組む前に、「写真から候補を出せる鉢がどれくらいあるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 樹形と鉢の値が当時の説明とほぼ同じ | プログラムで確認の表に並べる段階に進む |
| 樹種の確からしさが「高い」なのに外れる | 指示の書き方で直る。構成は有効 |
| 写り込みや向きの違いで読み違える | 撮影の決まりが先。 AIの問題ではない |
| 落葉樹の冬の姿で「判断できない」が多い | 想定どおり。冬は芽と幹肌の寄りの写真を足す |
2行目が出ても、構成をやめる理由にはなりません。 確からしさが上に寄るのは、1つに決めて返そうとするためです。「迷ったときに高いを選ばない」を指示の最初のほうに移し、同じ30鉢でもう一度試します。
3行目が出たら、撮影の決まりから直します。 背景の布を変える、撮影台を棚場から離す、5方向の距離を床の印で揃える。撮り方を直した同じ30鉢で試し直すと、読み違いのどれだけが写真のせいだったかが分かります。 そこで残った読み違いだけが、指示で直すべきものです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 樹齢を書く | 出力の形に樹齢の項目を持たせず、指示でも禁じる |
| 確からしさが上に寄る | 迷ったら低くする指示を書き、低いものを店主に回す |
| 背景の鉢の枝を読む | 撮影台と単色の背景を決め、写り込みを「確かめること」に出させる |
| 写真の大きさで上限に近づく | 長い辺を縮めてJPEGにそろえる |
| 選択肢の外の値が返る | Python で確かめ、外れたら再実行 |
| 台帳の樹種に引っ張られる | 台帳の名前を Gemini に渡さず、確認の表で並べる |
| 冬の落葉樹で判断できない | 芽と幹肌の寄りの写真を足し、店主に回す |
| 鉢の作家を書く | 銘は読ませず「銘らしきもの」とだけ出させる |
| やり取りが既定で保存される | store=false を付けて送る |
上の2行が、この構成でいちばん重い失敗です。 どちらも、Gemini が盆栽の説明らしく確かめていないことを自信を持って書く型です。 樹齢は書かない、迷ったら低くする。その線を指示と出力の形の両方で守ります。
下の2行は、運用を始めてから効いてきます。 鉢に銘らしきものが見えると、Gemini は読みを書きたがり、読めた文字がそのまま作家の名前として説明に残ると、真贋を店が保証したように読まれます。 store=false の付け忘れは、プログラムを直したときに起きやすいので、送る処理の中で必ず付く形にしておきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 出品する鉢の写真、管理番号、確定した樹種・樹形・鉢の値、寸法、価格です。お客様の情報は扱いません。 写真に人の顔や手が写り込まないよう、撮影台で撮ります。
- 有料の枠で使う … 公式の規約では、有料のサービスではプロンプトと応答が製品の改善に使われない一方、無料のサービスでは送った内容と応答が製品の改善に使われ、人が読むことがあるとされ、機密や個人の情報を送らないよう書かれています。出品前の写真と価格を扱うので、本番は有料の枠にします
- やり取りを保存させない …
store=falseを付け、写真と結果は自社の共有のドライブと確認の表にだけ残します - 利用者の年齢の条件を確かめる … 規約では、APIの利用は18歳以上であることが求められ、18歳未満に向けた、または使う見込みのあるアプリでの利用は認められていません。 この構成は店の担当者だけが使う社内の仕組みで、お客様が使う画面には出しません
- 確かめていないことを説明に書かない … 樹齢、作家、病気や虫が無いことは、店が確かめた値だけを書きます。 Gemini の見立てを、そのまま説明に写しません
- 登録を自動にしない … 通販への登録は担当者が下書きを直してから行います。写真と説明が食い違う商品ページは、届いた鉢を見たお客様との行き違いに直結します
誤りが起きた場合のリスクは、樹種を取り違えて説明と手入れの案内を誤ることと、確かめていない樹齢や作家を書いてお客様を誤らせることの2つです。前者は候補と根拠を実物で確かめる手順で、後者は出力の形に項目を持たせないことで止めます。
10まず何から始めるか
1週目:撮影の決まりを作る
撮影台、単色の背景の布、5方向の向きと距離、ファイルの名前を決めます。今週出品する鉢から、この決まりで撮ってみます。
2週目:選択肢の一覧を作る
店が通販で使っている樹形と鉢の呼び方、店で扱う樹種を一覧にします。店主と担当者で呼び方を揃えます。
3週目:30鉢で試す
第8章の30鉢を画面で試し、樹種の確からしさが外れていないか、樹齢や作家を書いていないかを最優先で見ます。
4週目:確認の表までをつなぐ
Python で、毎日17時にフォルダを集めて Gemini API に送り、構造化出力を確かめて確認の表に並べるところまで作ります。この時点では下書きを作らず、確認の表だけを見ます。
2か月目: 確定した行から商品説明の下書きを作らせ、担当者が直す手順を回します。3か月目以降: 1鉢15分が何分になったかを実測します。新しく入った担当者が確認の表を見て説明を作れ、店主に回る鉢が確からしさの低いものだけになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
対応する画像の形式が PNG・JPEG・WEBP・HEIC・HEIF であること。画像を直接入れる場合は指示の文などを合わせたリクエスト全体が20MBまでで、大きいファイルや同じ画像を何度も使う場合は Files API を使うこと。1回のリクエストに複数の画像を入れられること。384ピクセル以下の画像が258トークンで、それより大きい画像は768×768のタイルに分けて数えること。Gemini 3 から画像1枚あたりのトークンの上限を決める media_resolution があること。例が /v1beta/interactions で書かれていること | Google AI for Developers: Image understanding | 2026-10-29 |
構造化出力を /v1beta/interactions の response_format(mime_type に application/json、schema)で指定すること。enum・minimum・maximum・minItems・maxItems・required が使えること。minLength・maxLength は生成の制約として効かずサーバーが取り除くこと。構文として正しいJSONでも値はアプリの側で検証するよう書かれていること | Google AI for Developers: Structured output | 2026-10-29 |
Interactions API が既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできること。store=false では previous_interaction_id による続きのやり取りが使えないこと | Google AI for Developers: Interactions API | 2026-10-29 |
| 利用には18歳以上であることが必要で、18歳未満に向けた、または使う見込みのあるアプリでの利用を認めていないこと。有料のサービスではプロンプトと応答が製品の改善に使われないこと。無料のサービスでは送った内容が製品の改善に使われ人が読むことがあり、機密や個人の情報を送らないよう書かれていること | Gemini API Additional Terms of Service | 2026-10-29 |
樹種の確定、樹齢や鉢の作家の表示、寸法と価格は、店主と担当者が実物を見て決めてください。 本記事は上の公式の情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2265)についてのご相談はこちらから。
