
Google Colab ã§ OpenAI API ã® Vision ã詊ã
ãGoogle Colabãã§ãOpenAI APIãã®ãVisionãã詊ããã®ã§ããŸãšããŸããã
åå
1. Vision
ãGPT-4 with Visionã(GPT-4V)ã¯ãç»åã«ã€ããŠè³ªåå¿çãè¡ãAPIã§ãã
çŸåšããgpt-4-vision-previewããšãChat Completions APIããä»ããŠã®ã¿ããVisionããå©çšã§ããŸãããAssistant APIãã¯ãµããŒãããŠããŸããã
2. ã»ããã¢ãã
Colabã§ã®ã»ããã¢ããæé ã¯ã次ã®ãšããã§ãã
(1) ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
# ããã±ãŒãžã®ã€ã³ã¹ããŒã«
!pip install openai(2) ç°å¢å€æ°ã®æºåã
以äžã®ã³ãŒãã® <OpenAI_APIããŒ> ã«ã¯OpenAIã®ãµã€ãã§ååŸã§ããAPIããŒãæå®ããŸãã(ææ)
import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIããŒ>"(3) ã¯ã©ã€ã¢ã³ãã®æºåã
ãã¯ã©ã€ã¢ã³ããã¯ãOpenAI APIãã«ã¢ã¯ã»ã¹ããã€ã³ã¿ãã§ãŒã¹ã«ãªããŸãã
from openai import OpenAI
# ã¯ã©ã€ã¢ã³ãã®æºå
client = OpenAI()3. ç»åã®è³ªåå¿ç
察象ç»åã¯ããç»åURLããšãç»åãã¡ã€ã«ãã§æå®ã§ããŸãã
3-1. ç»åURL
(1) ç»åã®è³ªåå¿çã
æç€ºã¯ãããã¯äœã®ç»åã§ããïŒããšããŸããã
ç»åURLã¯ä»¥äžã®ç»åã瀺ããŠããŸãã

# ã¡ãã»ãŒãžãªã¹ãã®æºå
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "ããã¯äœã®ç»åã§ããïŒ"},
{
"type": "image_url",
"image_url": {
"url": "https://img.youtube.com/vi/nomJbjuQXAY/maxresdefault.jpg",
"detail": "low",
}
},
],
}
]
# ç»åã®è³ªåå¿ç
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=messages,
max_tokens=300,
)
print(response)ãã®ç»åã¯ã¢ãã¡ãŒã·ã§ã³äœåã®äžå Žé¢ãæ ãããã®ã§ãããã³ã¯ã®é«ªãšéãç®ãæã€å¥³æ§ãã£ã©ã¯ã¿ãŒãäžå€®ã«ããã®ãèŠããŸããèæ¯ã«ã¯æ¬æ£ãããã圌女ã峿žé€šãåŠæ ¡ã®äžã«ããããšã瀺åããŠããå¯èœæ§ããããŸããäžéšã«ããæ¥æ¬èªã®ããã¹ãã«ã¯ã第1匟 PVããšæžãããŠãããããã¯ã第1匟ããã¢ãŒã·ã§ã³ãããªããšããæå³ã§ããããããã®ç»åã¯ã¢ãã¡çªçµãæ ç»ã®ååã®ããã¢ãŒã·ã§ã³ãããªããã®ãã®ã§ãããã
3-2. ç»åãã¡ã€ã«
(1) ç»åã®æºåã
Colabã®å·Šç«¯ã®ãã©ã«ãã¢ã€ã³ã³ã§ãã¡ã€ã«äžèЧã衚瀺ãã以äžã®ç»åãã¢ããããŒãã
ã»cat.jpg

(2) ç»åãBase64ã§èªã¿èŸŒã¿ã
import base64
# ç»åãbase64ã§èªã¿èŸŒã颿°
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# ç»åãbase64ã§èªã¿èŸŒã
base64_image = encode_image("cat.jpg")(3) ç»åã®è³ªåå¿çã
æç€ºã¯ããã®ãã³ã®æ°æã¡ãæšæž¬ããŠã»ãªããèšã£ãŠãã ããããšããŸããã
ç»å1ææå®ããŠããŸãããè€æ°æå®ããããšãã§ããŸãã
# ã¡ãã»ãŒãžãªã¹ãã®æºå
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "ãã®ãã³ã®æ°æã¡ãæšæž¬ããŠã»ãªããèšã£ãŠãã ãã"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}",
"detail": "low",
}
},
],
}
]
# ç»åã®è³ªåå¿ç
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=messages,
max_tokens=300,
)
print(response.choices[0].message.content)ãæ¬¡ã®ã²ãŒã ã¯åã®çªã ããïŒã¡ãã£ãšãæŒå¯ããããã¬ã€ã¿ã€ã ã ããã
4. ç»åã®è³ªåå¿çã®Tips
4-1. ç»åã®ç解床
ãªãã·ã§ã³ãdetailãã§ãlowããŸãã¯ãhighããæå®ã§ããŸãã
ã»low : äœè§£å床ã¢ãŒã (512x512px)
ã»high : é«è§£åã¢ãŒã (768x2000px以äž)
4-2. ç»åã®ç®¡ç
ãChat Completion APIãã¯ããAssistant APIããšã¯ç°ãªããã¹ããŒããã«ã§ã¯ãããŸããã ã€ãŸããã¢ãã«ã«æž¡ãã¡ãã»ãŒãž (ç»åãå«ã) ãèªåã§ç®¡çããå¿ èŠããããŸããåãç»åãã¢ãã«ã«è€æ°åæž¡ãå Žåã¯ãAPI ã«ãªã¯ãšã¹ããè¡ããã³ã«ç»åãæž¡ãå¿ èŠããããŸãã
é·æéå®è¡ãããäŒè©±ã®å Žåã¯ãbase64 ã§ã¯ãªã URLã§ç»åãæž¡ãããšããå§ãããŸããã¢ãã«ã®ã¬ã€ãã³ã·ã¯ãäºåã«ç»åãäºæ³ãããæå€§ãµã€ãºãããå°ããããããšã§æ¹åããããšãã§ããŸããäœè§£å床ã¢ãŒãã®å Žåã512x512px ãæ³å®ãããŸããé«éæ¢ã¢ãŒãã®å Žåãç蟺 768px æªæºãé·èŸºã¯ 2,000px æªæºã§ããå¿ èŠããããŸãã
ç»åã¯ã¢ãã«ã«ãã£ãŠåŠçãããåŸãOpenAI ãµãŒããŒããåé€ãããä¿æãããŸããã ã¢ãã«ã®åŠç¿ã«ãOpenAI APIãçµç±ã§ã¢ããããŒããããããŒã¿ã¯äœ¿çšããŸããã
4-3. å¶éäºé
ãGPT-4 with Visionãã¯åŒ·åã§ãå€ãã®ç¶æ³ã§äœ¿çšã§ããŸãããã¢ãã«ã®å¶éãçè§£ããããšãéèŠã§ãã
ã»å»çç»å : CTã¹ãã£ã³ãªã©ã®ç¹æ®ãªå»çç»åã®è§£éã«ã¯é©ããŠããªããããå»çäžã®ã¢ããã€ã¹ã«ã¯äœ¿çšããªãã§ãã ããã
ã»è±èªä»¥å€ : æ¥æ¬èªãéåœèªãªã©ãéã©ãã³æåã®ããã¹ããå«ãç»åãåŠçããå Žåãæé©ã«åäœããªãå¯èœæ§ããããŸãã
ã»å€§ããªããã¹ã : ç»åå ã®ããã¹ããæ¡å€§ããŠèªã¿ãããããŸãããéèŠãªè©³çްãåãåãããããšã¯é¿ããŠãã ããã
ã»å転 : å転ã»äžäžéã®ããã¹ããç»åã誀ã£ãŠè§£éããå¯èœæ§ããããŸãã
ã»èŠèŠèŠçŽ : å®ç·ãç Žç·ãç¹ç·ãªã©ã®è²ãã¹ã¿ã€ã«ãç°ãªãã°ã©ããããã¹ããçè§£ããã®ãèŠæã§ãã
ã»ç©ºéæšè« : ãã§ã¹ã®äœçœ®ã®ç¹å®ãªã©ãæ£ç¢ºãªç©ºéäœçœ®ç¹å®ãå¿ èŠãšããã¿ã¹ã¯ãèŠæã§ãã
ã»ç²ŸåºŠ : ç¹å®ã®ã·ããªãªã§èª€ã£ã説æããã£ãã·ã§ã³ãçæããå¯èœæ§ããããŸãã
ã»ç»åã®åœ¢ç¶ : ããã©ãç»åãšéçŒç»åãèŠæã§ãã
ã»ã¡ã¿ããŒã¿ãšãµã€ãºå€æŽ : å ã®ãã¡ã€ã«åãã¡ã¿ããŒã¿ãåŠçãããç»åã¯åæåã«ãµã€ãºå€æŽããããããå ã®ãµã€ãºã«åœ±é¿ããŸãã
ã»ã«ãŠã³ã : ç»åå ã®ãªããžã§ã¯ãã®ããããã®æ°ãåŸãããå ŽåããããŸãã
ã»CAPTCHA : å®å šäžã®çç±ãããCAPTCHA ã®éä¿¡ããããã¯ããã·ã¹ãã ãå®è£ ããŠããŸãã
4-4. FAQ
Q. ãgpt-4ãã®Visionããã¡ã€ã³ãã¥ãŒãã³ã°ã§ããŸãã?
A. ããããçŸæç¹ã§ã¯ãgpt-4ãã®Visionã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã¯ãµããŒããããŠããŸããã
Q. ãgpt-4ãã§ç»åãçæã§ããŸãã?
A. ãããããdall-e-3ãã§ç»åãçæãããgpt-4-vision-previewãã§ç»åãçè§£ããããšãã§ããŸãã
Q. ã©ã®ãããªçš®é¡ã®ãã¡ã€ã«ãã¢ããããŒãã§ããŸãã?
A. çŸåšãPNG (.png)ãJPEG (.jpegã.jpg)ãWEBP (.webp)ãéã¢ãã¡ãŒã·ã§ã³ GIF (.gif) ããµããŒãããŠããŸãã
Q. ã¢ããããŒãã§ããç»åã®ãµã€ãºã«å¶éã¯ãããŸãã?
A. ã¯ããç»åã®ã¢ããããŒãã¯ç»åããã 20MB ã«å¶éãããŠããŸãã
Q. ã¢ããããŒãããç»åã¯åé€ã§ããŸãã?
A. ããããç»åã¯ã¢ãã«ã«ãã£ãŠåŠçãããåŸãèªåçã«åé€ãããŸãã
Q. Vision ã䜿çšããGPT-4ã®èæ ®äºé ã«ã€ããŠè©³ããã¯ã©ãã§ç¢ºèªã§ããŸãã?
A. è©äŸ¡ãæºåããã€ã°ã¬ãŒã·ã§ã³ã®è©³çްã«ã€ããŠã¯ããGPT-4 with Vision system cardããåç §ããŠãã ãããããã«ãCAPTCHAããããã¯ããã·ã¹ãã ãå®è£ ããŠããŸãã
Q. Visionã䜿çšããGPT-4ã®ã¬ãŒãå¶éã¯ã©ã®ããã«æ©èœããŸãã?
A. ç»åã¯ããŒã¯ã³ã¬ãã«ã§åŠçããããããåŠçãããåç»åã¯1åãããã®ããŒã¯ã³ (TPM) å¶éã«ã«ãŠã³ããããŸããç»åããšã®ããŒã¯ã³æ°ã決å®ããããã«äœ¿çšãããåŒã®è©³çްã«ã€ããŠã¯ããcalculating costsãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
Q. VisionãåããGPT-4ã¯ç»åã¡ã¿ããŒã¿ãçè§£ã§ããŸãã?
A. ããããã¢ãã«ã¯ç»åã¡ã¿ããŒã¿ãåãåããŸããã
Q. ç»åãäžé®®æãªå Žåã¯ã©ããªããŸãã?
A. ç»åããããŸããŸãã¯äžæç¢ºãªå Žåãã¢ãã«ã¯ãããè§£éããããã«æåãå°œãããŸãããã ããçµæã®ç²ŸåºŠã¯äœããªãå¯èœæ§ããããŸããçµéšåãšããŠãå¹³åçãªäººéãäœè§£å床/é«è§£å床ã¢ãŒãã§äœ¿çšãããè§£å床ã§ç»åå ã®æ å ±ã確èªã§ããªãå Žåãã¢ãã«ãåæ§ã«ç¢ºèªã§ããªããšããããšã§ãã