프로그래밍/기계학습

GPT-4o 모델 사용하기 - (2) 이미지를 입력으로 하기

kugancity 2024. 6. 22. 23:44
반응형

 

 

 

이번에 GPT-4o 모델을 사용해서 추가하려는  서비스는 사용자가 넣은 이미지를 기반으로 조언을 하는 서비스입니다.  

 

이제 GPT 개발환경을 설정 완료했으니 실제 이미지를 입력으로 넣어보겠습니다. 

 

2024.06.13 - [프로그래밍/기계학습] - GPT-4o 모델 사용하기 - (1) OpenAI 개발환경 설정하기

 

 

 

 

우선 샘플 코드를 실행해보겠습니다. 

 

 

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4o",
  messages=[
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "What’s in this image?"},
        {
          "type": "image_url",
          "image_url": {
            "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0])

 

 

 

Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='This image depicts a peaceful outdoor scene featuring a long, wooden boardwalk that stretches into the distance. The boardwalk is surrounded by tall, green grass and various bushes. In the background, there are trees and a clear blue sky with white clouds, suggesting a calm, sunny day. The scene evokes a sense of tranquility and open space, typical of a nature trail or a meadow.', role='assistant', function_call=None, tool_calls=None))

 

 

 

샘플 코드가 잘 돌아가네요. 

참고로 API 호출 한번( max token: 1000 이하) 에 0.01$ 사용했습니다. 14원 정도네요 (환율 기준 1376원)

 

 

 

API 사용비용은 아래 링크에서 확인이 가능합니다. 

 

https://platform.openai.com/organization/usage

 

 

 

 

참고로 GPT-4o 가격입니다. 

 

 

 

서비스에 적용할 때는 위의 이미지 경로만 아래와같이 실제 파일 경로로 변경해주면 됩니다. 

 

 

 

import base64
import requests

# OpenAI API Key
api_key = "YOUR_OPENAI_API_KEY"

# Function to encode the image
def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

# Path to your image
image_path = "path_to_your_image.jpg"

# Getting the base64 string
base64_image = encode_image(image_path)

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4o",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What’s in this image?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

 

 

 

이렇게 생각보다 간단하게 openai 이미지 분석이 서비스에 추가가 될 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고: https://platform.openai.com/docs/guides/vision

 

728x90
반응형