
OpenAI Responses API å ¥é (2) - ç»åãšVision
ãResponses APIãã®ç»åãšVisionã«ã€ããŠãŸãšããŸããã
åå
1. OpenAI API ã®æºå
ãGoogle Colabãã§ã®ãOpenAI APIãã®æºåæé ã¯æ¬¡ã®ãšããã§ãã
(1) ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
ãResponses APIããšãAgent SDKãã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
# ããã±ãŒãžã®ã€ã³ã¹ããŒã«
!pip install -U openai openai-agents(2) ç°å¢å€æ°ã®æºåã
巊端ã®éµã¢ã€ã³ã³ã§ãOPENAI_API_KEYããèšå®ããŠããã以äžã®ã»ã«ãå®è¡ããŠãã ããã
import os
from google.colab import userdata
# ç°å¢å€æ°ã®æºå (巊端ã®éµã¢ã€ã³ã³ã§OPENAI_API_KEYãèšå®)
os.environ["OPENAI_API_KEY"] = userdata.get("OPENAI_API_KEY")(3) ã¯ã©ã€ã¢ã³ãã®æºåã
from openai import OpenAI
# ã¯ã©ã€ã¢ã³ãã®æºå
client = OpenAI()2. ç»åãšVision
ãVisionããšã¯ãã¢ãã«ãžã®å ¥åããã³ãããšããŠç»åã䜿çšãããããã®ç»åå ã®ããŒã¿ã«åºã¥ããŠå¿çãçæããèœåã§ããã¢ãã«ããŒãžã§ãã©ã®ã¢ãã«ãèŠèŠçã§ãããã調ã¹ãŠãã ãããåºåãšããŠç»åãçæããã«ã¯ãç»åçæã®ããã®å°çšã¢ãã«ãåç §ããŠãã ããã
ç»åãã¡ã€ã«ã®URLããŸãã¯Base64ãšã³ã³ãŒããããããŒã¿ã§ãç»åãæäŸã§ããŸãã
(1) ã¡ãã»ãŒãžãªã¹ãã®æºåã
# ã¡ãã»ãŒãžãªã¹ãã®æºå
messages = [
{
"role": "user",
"content": [
{"type": "input_text", "text": "ããã¯äœã®ç»åã§ããïŒ"},
{
"type": "input_image",
"image_url": "https://assets.st-note.com/img/1741932602-53KiysQBTwUWCnkOSJGlAjDh.png",
}
]
}
]
(2) æšè«ã®å®è¡ã
# æšè«ã®å®è¡
response = client.responses.create(
model="gpt-4o-mini",
input=messages,
)
print(response.output_text)ãã®ç»åã«ã¯ãçœãæ¯ã®ç«ãæãããŠããŸããç«ã¯æšã®å°ã®äžã«æšªããããåŸãã«ã¯ãã¬ããšã²ãŒã æ©ãèŠããŸããç«ã®é¡ã«ã¯é»ãæš¡æ§ããããŸããå šäœçã«ãªã©ãã¯ã¹ããæ§åã§ãã
3. ç»åã®å ¥åèŠä»¶
ç»åã®å ¥åèŠä»¶ã¯ã次ã®ãšããã§ãã
3-1. ãã¡ã€ã«çš®å¥
ã»PNGïŒ.pngïŒ
ã»JPEGïŒ.jpegãš.jpgïŒ
ã»WEBPïŒ.webpïŒ
ã»ã¢ãã¡ãŒã·ã§ã³ä»¥å€ã®GIFïŒ.gifïŒ
3-2. ãµã€ãºå¶é
ã»1æãããæå€§20MB
ã»äœè§£å床ïŒ512px x 512px
ã»é«è§£å床ïŒ768pxïŒç蟺ïŒx 2000pxïŒé·èŸºïŒ
3-3. ãã®ä»ã®èŠä»¶
ã»éãããããŽãªã
ã»ããã¹ããªã
ã»NSFWã³ã³ãã³ããªã
ã»äººéãçè§£ã§ããã»ã©æç¢º
4. ç»åå ¥åã®è©³çްæå®
detailã¯ãç»åãåŠçããã³çè§£ããéã«äœ¿çšãã詳现ã¬ãã«ãã¢ãã«ã«äŒããŸãïŒlowãhighãautoïŒããã©ã¡ãŒã¿ãã¹ããããããšãã¢ãã«ã¯autoã䜿çšããŸãããã®ããã«ãimage_urlã®ããåŸã«é 眮ããŠãã ããã
# ã¡ãã»ãŒãžãªã¹ãã®æºå
messages = [
{
"role": "user",
"content": [
{"type": "input_text", "text": "ããã¯äœã®ç»åã§ããïŒ"},
{
"type": "input_image",
"image_url": "https://assets.st-note.com/img/1741932602-53KiysQBTwUWCnkOSJGlAjDh.png",
"detail": "high",
}
]
}
]
# æšè«ã®å®è¡
response = client.responses.create(
model="gpt-4o-mini",
input=messages,
)
print(response.output_text)
"detail": "low"ã䜿çšããŠãããŒã¯ã³ãä¿åããå¿çãé«éåã§ããŸããããã«ãããã¢ãã«ã¯85ããŒã¯ã³ã®äºç®ã§ç»åãåŠçã§ããŸããã¢ãã«ã¯ãäœè§£å床㮠512 px x 512 px ã®ããŒãžã§ã³ã®ç»åãåãåããŸãããŠãŒã¹ã±ãŒã¹ã§ã¢ãã«ãé«è§£å床ã®è©³çްã確èªããå¿ èŠããªãå Žåã¯åé¡ãããŸããã
ãŸãã¯"detail": "high"ã䜿çšããŠãã¢ãã«ã«è©³çްã詳现ã«è¡šç€ºããçè§£ãçæããŸããããã«ãããã¢ãã«ã¯äœè§£å床ã®ç»åïŒ85ããŒã¯ã³ã䜿çšïŒã衚瀺ãã512px x 512pxã®ã¿ã€ã«ããšã«170ããŒã¯ã³ã䜿çšããŠè©³çްãªã¯ããããäœæã§ããŸãã
ç»ååŠçã®ããã®äžèšã®ããŒã¯ã³äºç®ã¯ãçŸåšãGPT-4o miniã«ã¯é©çšãããŸããããç»ååŠçã³ã¹ãã¯GPT-4oã«å¹æµããŸããç»ååŠçã«é¢ããæãæ£ç¢ºã§ææ°ã®èŠç©ããã«ã€ããŠã¯ããã¡ãã®ç»åäŸ¡æ Œèšç®æ©ã䜿çšããŠãã ããã
5. è€æ°ç»åã®å ¥å
è€æ°ç»åã®å ¥åãåãåããåŠçããããšã§ããŸããã¢ãã«ã¯åç»åãåŠçãããã¹ãŠã®ç»åããã®æ å ±ã䜿çšããŠè³ªåã«çããŸãã
# ã¡ãã»ãŒãžãªã¹ãã®æºå
messages = [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "ãããã®ç»åã«ã¯äœããããŸãã? äœãéãã¯ãããŸãã?",
},
{
"type": "input_image",
"image_url": "https://assets.st-note.com/img/1741932602-53KiysQBTwUWCnkOSJGlAjDh.png",
},
{
"type": "input_image",
"image_url": "https://assets.st-note.com/img/1741932608-VteqlIukBN0zfFSb12OyDYgi.png",
},
],
}
]
# æšè«ã®å®è¡
response = client.responses.create(
model="gpt-4o-mini",
input=messages,
)
print(response.output_text)

1æç®ã®ç»åã«ã¯ãç«ãNintendo Switchã®æ¬äœã®è¿ãã«æšªããã£ãŠããŸãã2æç®ã®ç»åã«ãåãç«ãæ ã£ãŠããŸãããä»åºŠã¯ã¬ãããã¿ãšäžç·ã«ããŸãã éããšããŠã¯ã1æç®ã«ã¯Switchãããã2æç®ã«ã¯ç«ã®é£ã«ã¬ãããã¿ãããç¹ããããŸãããŸããç«ã®äœå¢ã衚æ ã埮åŠã«ç°ãªã£ãŠããŸã
6. å¶é
Visionãåããã¢ãã«ã¯åŒ·åã§ãå€ãã®ç¶æ³ã§äœ¿çšã§ããŸããããããã®ã¢ãã«ã®éçãçè§£ããããšãéèŠã§ããããã€ãã®æ¢ç¥ã®å¶éã¯æ¬¡ã®ãšããã§ãã
ã»å»çç»å
ãã®ã¢ãã«ã¯ãCTã¹ãã£ã³ã®ãããªç¹æ®ãªå»çç»åã®è§£éã«ã¯é©ããŠããŸããããŸããå»çã¢ããã€ã¹ã«ã¯äœ¿çšããªãã§ãã ããã
ã»è±èªä»¥å€
æ¥æ¬èªãéåœèªãªã©ã®éã©ãã³æåã®ããã¹ããå«ãç»åãæ±ãå Žåãã¢ãã«ã¯æé©ã«æ©èœããªãå ŽåããããŸãã
ã»å°ããªããã¹ã
ç»åå ã®ããã¹ããæ¡å€§ããŠèªã¿ããããåäžãããŸãããéèŠãªè©³çްãããªãã³ã°ããªãã§ãã ããã
ã»å転
ã¢ãã«ãå転ããããã¹ããç»åã誀ã£ãŠè§£éããå¯èœæ§ããããŸãã
ã»èŠèŠçèŠçŽ
ã¢ãã«ã¯ãå®ç·ãç Žç·ãç¹ç·ãªã©ãè²ãã¹ã¿ã€ã«ãå€ããã°ã©ããããã¹ããçè§£ããã®ã«èŠåŽãããããããŸããã
ã»ç©ºéæšè«
ãã®ã¢ãã«ã¯ããã§ã¹ã®äœçœ®ãç¹å®ãããªã©ãæ£ç¢ºãªç©ºéçããŒã«ãªãŒãŒã·ã§ã³ãå¿ èŠãšããã¿ã¹ã¯ã«èŠåŽããŠããŸãã
ã»æ£ç¢ºæ§
ç¹å®ã®ã·ããªãªã§ã¯ãã¢ãã«ã誀ã£ã説æããã£ãã·ã§ã³ãçæããããšããããŸãã
ã»ç»åã®åœ¢ç¶
ã¢ãã«ã¯ããã©ãç»åãšéçŒã¬ã³ãºç»åã«èŠåŽããŠããŸãã
ã»ã¡ã¿ããŒã¿ãšãµã€ãºå€æŽ
ã¢ãã«ã¯å ã®ãã¡ã€ã«åãã¡ã¿ããŒã¿ãåŠçãããåæåã«ç»åã®ãµã€ãºã倿Žãããå ã®å¯žæ³ã«åœ±é¿ããŸãã
ã»ã«ãŠã³ã
ã¢ãã«ã¯ãç»åå ã®ãªããžã§ã¯ãã®ããããã®ã«ãŠã³ããäžããããšãã§ããŸãã
ã»ãã£ããã£
å®å šäžã®çç±ãããåœç€Ÿã®ã·ã¹ãã ã¯ãã£ããã£ã®éä¿¡ããããã¯ããŸãã
7. ã³ã¹ãã®èšç®
ç»åå
¥åã¯ãããã¹ãå
¥åãšåãããã«ãããŒã¯ã³ã§æž¬å®ããã課éãããŸããç»åã®ããŒã¯ã³ã³ã¹ãã¯ããµã€ãºãšãã£ããŒã«ã®2ã€ã®èŠçŽ ã«ãã£ãŠæ±ºå®ãããŸãã
"detail": "low"ãå«ãç»åã¯ã85ããŒã¯ã³ããããŸãã
"detail": "high"ã§ç»åã®ã³ã¹ããèšç®ããã«ã¯ãæ¬¡ã®æäœãè¡ããŸãã
ã»å ã®ã¢ã¹ãã¯ãæ¯ãç¶æããªããã2048px x 2048pxã®æ£æ¹åœ¢ã«åãŸãããã«æ¡å€§çž®å°
ã»ç»åã®æç蟺ã768pxã®é·ãã«ãªãããã«æ¡å€§çž®å°
ã»ç»åå ã®512pxã®æ£æ¹åœ¢ã®æ°ãæ°ããã忣æ¹åœ¢ã«ã¯170ããŒã¯ã³
ã»åèšã«85ããŒã¯ã³ã远å
ã³ã¹ãèšç®ã®äŸã¯ã次ã®ãšããã§ãã
ã»1024 x 1024 ãš "detail": "high"  ã®ç»åã®ã³ã¹ã㯠765 ããŒã¯ã³
ãã»1024ã¯2048æªæºãªã®ã§ãåæãµã€ãºå€æŽã¯ãããŸããã
ãã»æç蟺ã¯1024ãªã®ã§ãç»åã768 x 768ã«çž®å°ããŸãã
ãã»ç»åã衚ãã«ã¯4ã€ã®512pxã®æ£æ¹åœ¢ã®ã¿ã€ã«ãå¿ èŠãªãããæçµçãªããŒã¯ã³ã³ã¹ãã¯170 * 4 + 85 = 765ã
ã»2048 x 4096 ãš "detail": "high" ã®ç»åã®ã³ã¹ã㯠1105 ããŒã¯ã³
ãã»2048ã®æ£æ¹åœ¢ã«åãŸãããã«ãç»åã1024 x 2048ã«çž®å°ããŸãã
ãã»æç蟺ã¯1024ãªã®ã§ãããã«768 x 1536ã«çž®å°ããŸãã
ãã»6 512pxã®ã¿ã€ã«ãå¿ èŠãªãããæçµçãªããŒã¯ã³ã³ã¹ãã¯170 * 6 + 85 = 1105ã
ã»4096 x 8192 ãš"detail": "low" ã®ç»åã®ã³ã¹ã㯠85 ããŒã¯ã³
ãã»å ¥åãµã€ãºã«é¢ä¿ãªããäœè©³çްç»åã¯åºå®ã³ã¹ãã§ãã
ç»åãããŒã¯ã³ã¬ãã«ã§åŠçãããããåŠçããåç»åã¯1åãããã®ããŒã¯ã³æ°ïŒTPMïŒã®å¶éã«ã«ãŠã³ããããŸãã