만약 여러분이 생성형 AI의 API를 이용한 프로그램이 처음이고 무료 LLM API를 사용해야 한다면, 이 글이 도움이 될 것입니다. 이 글에서는 Python을 사용하여 Gemini 기반의 첫 애플리케이션을 만드는 데 필요한 API키 발급부터 간단한 챗팅 프로그램 작성에 이르는 모든 내용을 안내해드릴 예정입니다. 구체적으로는 무료 API 키를 받는 방법, 필요한 라이브러리 설치, Gemini의 generate_content() 함수와 상호작용하는 코드 작성까지 포함됩니다.
무료 Gemini API 키 받는 방법
Google 계정이 필요합니다.
- 공식 Google AI Studio에 접속합니다.
- Google 계정으로 로그인합니다.
- 오른쪽 상단 프로필을 클릭하고 "Get API Key"를 선택합니다.
- Google Cloud의 API 콘솔로 리디렉션됩니다.
- 새 API 키를 생성하거나 기존 키를 사용하세요.
- 이 키를 복사해 안전하게 보관하세요! 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 사용하기
유용한 자료
'AI' 카테고리의 다른 글
대화상태 유지 챗봇 구현: Gemini와 LangGraph 활용 (1) | 2025.05.08 |
---|---|
Google Gemini 2.5 Pro와 LangChain으로 간단한 LLM 챗봇 서버 만들기 (1) | 2025.05.08 |
트랜스포머 아키텍처 완벽 가이드 | Transformer Architecture Guide (0) | 2025.05.08 |
RF-DETR 알고리즘 심층 분석 및 DETR, D-FINE과의 비교 (0) | 2025.05.06 |
정확도, 정밀도, 재현율, F1 Score: 분류 모델 성능 지표의 이해 (0) | 2025.05.06 |