본문 바로가기
AI

쉽게 배우는 Google Gemini API 프로그램

by markbyun 2025. 5. 8.

만약 여러분이 생성형 AI의 API를 이용한 프로그램이 처음이고 무료 LLM API를 사용해야 한다면, 이 글이 도움이 될 것입니다. 이 글에서는 Python을 사용하여 Gemini 기반의 첫 애플리케이션을 만드는 데 필요한 API키 발급부터 간단한 챗팅 프로그램 작성에 이르는 모든 내용을 안내해드릴 예정입니다. 구체적으로는 무료 API 키를 받는 방법, 필요한 라이브러리 설치, Gemini의 generate_content() 함수와 상호작용하는 코드 작성까지 포함됩니다.

무료 Gemini API 키 받는 방법

Google 계정이 필요합니다.

  1. 공식 Google AI Studio에 접속합니다.
  2. Google 계정으로 로그인합니다.
  3. 오른쪽 상단 프로필을 클릭하고 "Get API Key"를 선택합니다.
  4. Google Cloud의 API 콘솔로 리디렉션됩니다.
  5. 새 API 키를 생성하거나 기존 키를 사용하세요.
  6. 이 키를 복사해 안전하게 보관하세요! Python 코드에서 사용할 겁니다.

**중요: Google은 Gemini API 사용을 위한 무료 쿼터를 제공합니다. 무료 티어의 쿼터 제한을 꼭 확인하세요.


Python 환경 설정

코드를 작성하기 전에, 필요한 라이브러리를 설치하세요:

pip install google-generativeai python-dotenv

또한, 프로젝트 폴더에 .env 파일을 생성하고 아래와 같이 API 키를 추가하세요:

'.env' file should contain following information.

GOOGLE_API_KEY=your_api_key_here

이렇게 하면 비밀 키를 안전하게 보호할 수 있습니다.

전체 예제 코드 + 설명

다음은 Python으로 Gemini API와 상호작용하는 방법을 이해할 수 있도록 상세 주석이 포함된 전체 코드입니다:

# 필요한 Python 모듈 임포트
import os                              # 환경 변수와 상호작용하는 데 사용
from dotenv import load_dotenv         # .env 파일에서 변수 불러오기
from google import genai               # Google의 Generative AI SDK
from google.genai import types         # 모델 설정을 위한 타입 포함

# 환경 변수 로드 (API 키)
load_dotenv(".env")                    # 현재 디렉터리에서 .env 파일 로드
api_key = os.getenv("GOOGLE_API_KEY")  # 환경 변수에서 API 키 불러오기

# GenAI 클라이언트 초기화
gClient = genai.Client(api_key=api_key)  # Gemini 모델을 사용하도록 인증

# ---------------------------------------------
# 예제 1: 간단한 사용법
# 모델에 질문하기
response = gClient.models.generate_content(
    model='gemini-2.0-flash',           # 무료 티어에 최적화된 모델
    contents="Explain what generate_content function do in genai.Client.models."
)
print(response.text)

# ---------------------------------------------
# 예제 2: 생성 설정과 함께 사용
# 문장을 번역하면서 동작을 커스터마이징
response = gClient.models.generate_content(
    model="gemini-2.0-flash",
    contents='Translate good morning in Korean',
    
    # 생성 동작을 위한 선택적 설정
    config=types.GenerateContentConfig(
        temperature=1,                 # 창의성 조절: 0 = 예측 가능, 1 = 다양성 높음
        top_p=0.99,                    # 누적 확률 기반 토큰 선택 제한
        top_k=0,                       # 상위 k개 토큰만 사용 (0 = 비활성화)
        max_output_tokens=4096         # 응답에서 생성할 최대 토큰 수 (응답 길이에 따라 조정)
    ),
)
print(response.text)

핵심 파라미터 이해하기

generate_content()

이 함수는 선택한 Gemini 모델에 프롬프트를 보내고 생성된 응답을 받아옵니다.

temperature

무작위성을 제어합니다:

  • 0: 가장 결정적
  • 1: 가장 창의적/무작위

top_p

누클리어스 샘플링을 사용합니다. 모델은 누적 확률 질량이 가장 높은 토큰들 중에서 선택합니다. 값이 1에 가까울수록 다양성이 높습니다.

top_k

가장 가능성 높은 k개의 토큰 중에서 선택합니다. 0으로 설정하면 비활성화됩니다.

max_output_tokens

응답 길이를 제한합니다 (단어 수와 유사하나 토큰 단위). 일반적인 값: 256, 1024, 4096.


추가 샘플 사용 사례

1. 문단 요약하기

response = gClient.models.generate_content(
    model="gemini-2.0-flash",
    contents="Summarize this: Artificial Intelligence is transforming industries across the globe..."
)
print(response.text)

2. 다국어 번역

response = gClient.models.generate_content(
    model="gemini-2.0-flash",
    contents="Translate 'thank you' into French, Spanish, and Japanese."
)
print(response.text)

3. 시 생성

response = gClient.models.generate_content(
    model="gemini-2.0-flash",
    contents="Write a haiku about spring."
)
print(response.text)

4. 코드 설명 도움

response = gClient.models.generate_content(
    model="gemini-2.0-flash",
    contents="Explain what a Python decorator is with an example."
)
print(response.text)

2025.04.22 - [AI] - LangChain을 통해 Gemini API 사용하기

유용한 자료