티스토리 뷰

카테고리 없음

OpenAI GPT4 Vision 기술

링재호 2023. 12. 1. 11:24

GPT-4 비전 모델을 사용하면 단일 API 호출로 텍스트와 이미지 등 멀티모달 입력을 해석할 수 있습니다.

  1. 이미지가 모호하거나 불분명하면 모델이 최선을 다해 해석은 하지만, 결과의 정확도는 떨어질 수 있습니다.
  2. 현재 지원되는 파일 형식 (png, jpeg, jpg, webp, gif) 입니다.
  3. 이미지 용량은 20mb 로 제한되어 있습니다.
  4. 모델이 이미지를 처리한 뒤, 이미지는 자동삭제됩니다.
  5. 오래 실행되는 대화의 경우, base64 대신 URL 을 통한 이미지를 전달하는 것이 좋음.
  6. 이미지 크기를 예상되는 최대 크기보다 작게 다운사이딩하면 지연 시간을 개선할 수 있음.

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

비용 계산

이미지 입력에는 텍스트와 마찬가지로 토큰 기반의 비용이 부과됩니다. 비용은 이미지 크기와 각 image_url 블록의 상세 옵션에 따라 결정됩니다. 디테일이 적은 이미지는 각각 85토큰으로 청구되며, 디테일이 많은 이미지는 2048 x 2048 정사각형에 맞춰 크기를 조정하고 768픽셀의 가장 짧은 면으로 크기를 조정한 후, 512픽셀 정사각형으로 구성된 개수에 따라 170 토큰이 추가됩니다. 항상 최종 합계에는 85토큰이 더해집니다.

  • 1024 x 1024 이미지의 경우, 초기 크기 조정 없기 때문에 765 토큰 (detail: high)
  • 2048 x 4096 이미지의 경우, 1024 x 2048 로 축소 하여 1105 토큰 (detail: high)
  • 입력 크기에 관계 없이 디테일이 낮은 이미지는 고정 비용으로 85 토큰 (detail: row)

아래 Pricing 으로 가서 vision 의 가격을 예상할 수 있음.

참조: https://openai.com/pricing

 

nodejs 기반 예제

import OpenAI from "openai";
import dotenv from "dotenv";

dotenv.config({
  path:
    process.env.NODE_ENV === "production"
      ? ".env.production"
      : ".env.development",
});

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY, // This is also the default, can be omitted
});

export default async function (req, res) {
  const question = req.body.question || "";

  const response = await openai.chat.completions.create({
    model: "gpt-4-vision-preview",
    messages: [
      {
        role: "user",
        content: [
          { type: "text", text: question },
          {
            type: "image_url",
            image_url: {
              url: "<이미지 url>",
            },
          },
        ],
      },
    ],
  });

  res.status(200).json({ result: response.choices[0].message.content });
}

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함