近年、ECサイトのAIカスタマーサービスにおいて「商品の画像」から注文状況を判定する需要が急増しています。私は以前、担当していたファッションECで商品画像とテキストを同時に処理するAIボットを開発した経験があります。従来は画像認識APIとLLMを別々に呼び出す必要があり、レスポンス遅延とコストが課題でした。
本稿では、HolySheheep AIを活用した多模态プロンプトエンジニアリングの基本から、 Few-shot学習による精度向上テクニックまで、の実用的な手法を解説します。
多模态AIとは
多模态AIとは、テキスト・画像・音声など異なるモダリティ(様態)を同時に処理できるAIモデルのことです。GPT-4VやClaude 3 Opus、Gemini Proなどのモデルが 대표的に知られています。
画像描述の最適化アプローチ
1. 構造化されたプロンプト設計
画像描述を依頼する際、漠然とした指示ではなくXMLタグやMarkdown形式の活用することで、出力の品質が大幅に向上します。以下は商品画像からの情報抽出プロンプトの例です。
import requests
import base64
from io import BytesIO
画像をbase64エンコード
def encode_image(image_path):
with open(image_path, "rb") as img_file:
return base64.b64encode(img_file.read()).decode('utf-8')
image_base64 = encode_image("product_image.jpg")
payload = {
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": """あなたは商品画像分析専門家です。
以下のXMLタグ形式で情報を抽出してください:
<product_info>
<category>商品カテゴリ</category>
<color> основной цвет товара</color>
<brand>ブランド名(不明な場合は「不明」)</brand>
<condition>新品/中古/傷あり</condition>
<price_estimate>推定価格(JPY)</price_estimate>
</product_info>
<reasoning>
判断根拠を簡潔に説明
</reasoning>"""
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{image_base64}"
}
}
]
}
],
"temperature": 0.3,
"max_tokens": 500
}
response = requests.post(
"https://api.holysheep.ai/v1/chat/completions",
headers={
"Authorization": f"Bearer YOUR_HOLYSHEEP_API_KEY",
"Content-Type": "application/json"
},
json=payload
)
print(response.json()["choices"][0]["message"]["content"])
ポイント:temperatureを0.3程度に下げることで出一貫性を保ち、構造化されたXMLタグさせることで後のパースが容易になります。
2. Few-shot Learningの実装
Few-shotとは、数例の例示を与えるだけで新たなタスクに対応させる手法です。多模态タスクでは特に有効です。
# Few-shot 例示を含む多模态プロンプト
few_shot_prompt = {
"model": "claude-sonnet-4-20250514",
"messages": [
{
"role": "system",
"content": """あなたはECサイトの注文状況判定AIです。
画像から状況を判定し、適切な対応を示してください。"""
},
{
"role": "user",
"content": [
{
"type": "text",
"text": """【例1】入力: 届いた商品の写真(箱が開封され、商品が箱から半分出ている)
出力: 配送事故の可能性があります。箱の再利用可能な損傷を確認し、商品を保証してください。対応: 交換・返金プロセスを開始"""
},
{
"type": "text",
"text": """【例2】入力: 新品のタグ付きバッグの写真
出力: 問題は報告されていません。新品正品を確認。対応: 完了"""
},
{
"type": "text",
"text": """【例3】入力: 靴底の摩耗が特徴的なスニーカーの写真
出力: 使用感あり中古品の特徴。対応: 中古品として取值額を通知"""
}
]
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image_base64}"}
},
{
"type": "text",
"text": "この注文状況画像を判定してください"
}
]
}
],
"max_tokens": 300,
"temperature": 0.2
}
response = requests.post(
"https://api.holysheep.ai/v1/chat/completions",
headers={
"Authorization": f"Bearer YOUR_HOLYSHEEP_API_KEY"
},
json=few_shot_prompt
)
HolySheep AIでの実装Tips
HolySheep AIでは、多模态モデルの利用時に以下の特徴があります:
- コスト効率:$1=¥1のレート設定(他社¥7.3/$1比較で85%節約)
- 高速応答:P99 <50msのレイテンシ
- 多様なモデル:GPT-4o、Gemini Flash、DeepSeek V3など対応
- 決済手段:WeChat Pay・Alipay対応で気軽に利用可能
コスト試算:月次5000リクエストの場合
| モデル | 1Mトークン単価 | 月次コスト概算 |
|---|---|---|
| GPT-4o | $8/MTok | 約¥32,000 |
| Gemini 2.5 Flash | $2.50/MTok | 約¥10,000 |
| DeepSeek V3 | $0.42/MTok | 約¥2,100 |
よくあるエラーと対処法
エラー1:画像サイズが大きすぎる
# ❌ エラー例:4K画像をそのまま送信
image_base64 = encode_image("4k_product.jpg") # 10MB超
✅ 解决方法:画像のリサイズと圧縮
from PIL import Image
def preprocess_image(image_path, max_size=1024):
img = Image.open(image_path)
# アスペクト比を維持してリサイズ
img.thumbnail((max_size, max_size), Image.Resampling.LANCZOS)
# JPEG形式で圧縮
output = BytesIO()
img.convert('RGB').save(output, format='JPEG', quality=85)