HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
💻
UGRP
/
Gemini API test

Gemini API test

Created by
Created
Sep 30, 2024 06:24 PM

Gemini 주요 모델 및 무료 사용량

notion image
 

개인 google 계정으로 Gemini API key 임시 발급

notion image
 

CODE

import pathlib import google.generativeai as genai from google.colab import files # API 키 설정 (개인 구글 계정으로 발급받은 임시 키) genai.configure(api_key='AIzaSyD1GX8f9XcpXQHQXEeC2b5MOM8t2N4qqxw') # Gemini Pro Vision 모델 생성 model = genai.GenerativeModel('gemini-1.5-flash') # 사용자로부터 이미지 파일 업로드 받기 uploaded = files.upload() # 업로드한 파일의 경로 설정 image_path = next(iter(uploaded)) # 이미지 파일 로드 image_data = pathlib.Path(image_path).read_bytes() # 이미지 토큰 수 계산 (대략적으로 바이트 단위로 계산) image_token_count = len(image_data) // 4 # 바이트를 4로 나눠 토큰 수를 추정 # 사용자로부터 프롬프트 입력받기 prompt = input("프롬프트를 입력하세요: ") # 프롬프트 토큰 수 계산 (문자 수로 추정) prompt_token_count = len(prompt) # 토큰 수 출력 print(f"프롬프트 토큰 수: {prompt_token_count} 토큰") print(f"이미지 토큰 수: {image_token_count} 토큰") # 이미지 데이터 준비 image = { 'mime_type': 'image/png', 'data': image_data } # 컨텐츠 생성 요청 response = model.generate_content([prompt, image]) # 결과 출력 print(response.text)

*Run in Google Colab

Step 1. 이미지 파일 선택

notion image
  • 사용한 이미지
notion image
 

Step 2. 프롬프트 입력

notion image
  • 입력한 프롬프트
    • “이미지에서 main object의 색상과 이미지의 분위기에 대해 설명해줘”

Step 3. 답변, 입력 토큰 수 출력

  • API 무료 사용량 맞추기 위해 text와 image의 토큰 수가 함께 print 되도록 임시로 짜놓음
notion image
  • 답변
    • “이미지의 메인 오브젝트는 붉은색 말과 그 옆에 있는 새끼 말입니다. 이미지의 분위기는 평화롭고 조용하며 햇살이 가득한 한낮의 들판을 연상시킵니다. 말의 털 색깔은 짙은 밤색이고, 배경은 푸른 잔디와 노란 꽃으로 가득 차 있습니다.”
 
 

Case 1)

  • 이미지에서 main object의 색상과 이미지의 분위기에 대해 설명해줘
notion image
프롬프트 토큰 수: 40 토큰
이미지 토큰 수: 9048 토큰
→ 답변 : “이미지에서 강아지의 주요 색상은 흰색, 주황색, 갈색입니다. 강아지의 귀, 얼굴 주위, 꼬리에 주황색과 갈색의 털이 있습니다. 강아지는 밝은 배경 앞에 앉아 있고, 전체 이미지는 밝고 행복한 느낌을 줍니다.”
 
 

Case 2)

  • 이미지에서 main object의 색상과 이미지의 분위기에 대해 설명해줘
notion image
프롬프트 토큰 수: 40 토큰
이미지 토큰 수: 21505 토큰
→ 답변 : “이미지에는 고양이가 찍혀 있습니다. 주요 대상인 고양이의 색상은 회색, 검은색 및 흰색입니다. 이미지의 분위기는 귀엽고 장난기 넘치는 것 같습니다. 고양이는 카메라를 바라보고 있어 귀여운 표정을 짓고 있습니다.”
 
  • 이미지의 분위기를 설명해줘
    • 프롬프트 토큰 수: 14 토큰
    • 이미지 토큰 수: 21505 토큰
→ 답변 : “이 이미지는 배경이 흰색이고 털이 많은 고양이 새끼가 앉아있는 모습을 담고 있습니다. 고양이 새끼는 카메라를 바라보며 머리를 기울이고 있습니다. 고양이 새끼는 장난기 넘치고 귀엽고 약간은 겁이 나는 것 같습니다. 이미지에는 희망, 순수, 기쁨의 분위기가 있습니다”
 
 

Case 3)

  • 이미지에서 main object의 색상과 이미지의 분위기에 대해 설명해줘
notion image
프롬프트 토큰 수: 40 토큰
이미지 토큰 수: 232530 토큰
→ 답변 : ”이미지의 주요 객체는 파란색, 노란색, 주황색의 밝은 색상으로 꾸며진 핫 에어 풍선입니다. 하늘은 밝고 푸른색이고 솜털 같은 흰 구름이 떠 있습니다. 이미지는 평화롭고 즐거운 느낌을 줍니다. 핫 에어 풍선은 푸른 하늘과 흰 구름 배경을 돋보이게 하고, 이미지 전체적으로 행복하고 평온한 분위기를 자아냅니다.”
 
*핫 에어 풍선 : 열기구
 

API 사용량 확인 가능

https://aistudio.google.com/app/apikey?hl=ko
  • 유형
    • Request limit per model per minute for a project in the free tier : 분당 무료 사용량 중 몇 % 사용
    • Request limit per model per day for a project in the free tier : 하루당 무료 사용량 중 몇 % 사용
  • 시간이 지난 후 우측 이미지와 같이 ‘분당 무료 사용량’ 유형의 현재 사용량 비율이 3.81%→1.48% 로 감소함을 확인 가능
notion image
 
notion image
 
 

24.10.04 update

1. 원본 이미지만 넣었을 때와 원본 이미지 + superpixel 이미지 넣었을 때 차이

  • prompt
    • 이미지의 main obect에 대한 색상 설명과 이미지의 전체적인 분위기를 설명해줘
    • 수정 → 이미지의 main object에 대한 색상
  1. 원본 이미지만 넣었을 때
    1. 프롬프트 토큰 수: 46 토큰 이미지 토큰 수: 23467 토큰
notion image
  1. 이 이미지의 주요 객체는 짙은 갈색 말과 작은 짙은 갈색 망아지입니다. 망아지는 어미 말보다 약간 더 붉은 색입니다. 어미 말의 머리에 흰색 별 모양이 있습니다. 두 말은 모두 푸른 초원에 서 있습니다. 배경에는 노란색 꽃이 있습니다. 이미지의 전반적인 분위기는 행복하고 평화롭습니다.
  1. 이미지의 주요 대상은 짙은 밤색의 털을 가진 말과 밤색 털을 가진 새끼 말입니다. 어미 말은 털이 밤색이며 얼굴에 흰색의 반점이 있습니다. 새끼 말은 어미 말보다 색이 약간 밝습니다. 배경은 푸른 풀과 노란색 꽃으로 밝고 쾌적한 느낌을 줍니다. 두 말은 평화롭고 자연스러운 분위기를 풍기고 있습니다.
 
  1. 원본 이미지 + superpixel 이미지 넣었을 때
    1. 프롬프트 토큰 수: 46 토큰 이미지 토큰 수: 24480 토큰 (23467 + 1013 )
notion image
 
notion image
 
  1. 이미지의 주요 피사체는 짙은 갈색 털에 흰색 얼룩이 있는 암말과 짙은 갈색 털의 망아지입니다. 암말은 망아지보다 크고 털이 더 짙습니다. 망아지는 암말보다 털이 밝고 더 붉은색을 띕니다. 이미지는 초록색 풀밭과 노란색 꽃들로 가득 찬 들판을 배경으로 하며, 전체적으로 부드럽고 평화로운 분위기를 자아냅니다. 밝은 색상과 부드러운 조명이 따뜻하고 행복한 분위기를 연출합니다.
  1. 이 이미지는 짙은 갈색 털을 가진 말과 망아지가 밝은 초록색 풀밭에 서있는 모습을 보여줍니다. 망아지는 어미 말보다 좀 더 붉은 색을 띠고 있습니다. 어미 말의 얼굴은 흰색이고 눈은 검은색입니다. 망아지는 어미 말을 바라보고 있고, 어미 말은 망아지가 아닌 다른 곳을 바라보고 있습니다. 전반적으로 이 이미지는 따뜻하고 평화로운 분위기를 자아냅니다. 푸른 풀밭과 밝은 노란색 꽃은 따뜻함과 생동감을 더해줍니다. 어미 말과 망아지의 모습은 사랑스러운 분위기를 자아내고 있습니다.
 
→ 1에 비해 output text의 길이가 늘어남, 대체적으로 더 자세한 설명을 하고 있는 것을 확인할 수 있음(random인데 얻어걸린 거 일지도..)

문제점 : 모델을 돌릴 때 마다 같은 prompt와 이미지임에도 output text가 달라짐 → 따라서 text 성능 평가 metric 마련 시급

 
 
 

2. yaml 형식의 프롬프트 작성

- id: case_1 image: mime_type: 'image/jpg' token_count: 9048 prompt: text: "이미지에서 main object의 색상과 이미지의 분위기에 대해 설명해줘" token_count: 40 response: text: “이미지에서 강아지의 주요 색상은 흰색, 주황색, 갈색입니다. 강아지의 귀, 얼굴 주위, 꼬리에 주황색과 갈색의 털이 있습니다. 강아지는 밝은 배경 앞에 앉아 있고, 전체 이미지는 밝고 행복한 느낌을 줍니다.” # main_object: ""
예시 1
  • id: 각 프롬프트의 고유 식별자
  • image: 이미지의 메타데이터 (파일 형식, 토큰 수 등)
  • prompt: 입력한 프롬프트 및 관련 정보
  • response: 생성된 응답의 텍스트와 주요 정보 (오브젝트, 분위기 등)