Skip to main content

Python용 Gemini 2.0 API 빠른 시작 튜토리얼

Python에서 W&B 로깅과 함께 Gemini 2.0 API를 설정하는 방법에 대한 빠른 시작 튜토리얼. 이 문서는 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 자유롭게 알려 주세요.
Created on September 15|Last edited on September 15
이 튜토리얼은 Gemini 2.0 API를 처음 시작하는 분들, 특히 Python에서 사용하려는 분들을 위한 빠른 시작 가이드입니다. 최근 초급자용 글의 높은 인기에 기반하여, OpenAI API를 사용해 Python에서 GPT-4o 설정하기그래서 이번에도 같은 방식으로 살펴볼 만하다고 판단했습니다.
곧 작업별 튜토리얼도 이어서 제공할 예정이니, 우선 이 소개 글로 시작해 직접 탐색해 보시길 바랍니다.
이 과정을 따라가기 전에 동작을 먼저 확인하고 싶다면, 아래 Colab에서 빠르게 실행해 볼 수 있습니다:


이어서 다룰 내용은 다음과 같습니다:

목차



정말 이제 막 시작하려는 거라면 아직 로컬 환경에서 Python을 실행할 준비가 되어 있지 않다면, 제가 빠른 튜토리얼을 준비했습니다. 여기 몇 분이면 바로 시작할 수 있도록 도와줍니다.
💡
준비되셨나요? 바로 시작해 보겠습니다.

Gemini 2.0 소개

Gemini 2.0는 추론, 계획 수립, 그리고 도구 통합 측면에서 큰 도약을 이룬 버전으로, Gemini의 기능을 한층 강화한 중요한 발전입니다.
핵심 업데이트와 기능은 다음과 같습니다:
  • 멀티모달 기능: Gemini 2.0는 텍스트, 이미지, 비디오, 오디오 전반에서 입력과 출력을 모두 지원합니다. 여기에는 네이티브 이미지 생성, 다국어 텍스트-투-스피치 오디오, 그리고 통합 멀티모달 콘텐츠가 필요한 작업을 위한 결합 출력 생성 기능이 포함됩니다.
  • 개선된 성능: Gemini 2.0 Flash 실험용 모델은 이전 버전보다 응답 속도가 더 빠르고 정확도가 향상되었으며, 추론, 코딩, 공간 이해 능력이 강화되었습니다. 이러한 특성 덕분에 동적이고 실시간으로 동작하는 애플리케이션에 특히 적합합니다.
  • 도구 통합: Gemini 2.0는 네이티브 도구 사용 기능을 도입하여 Google Search와 서드파티 API 같은 서비스와의 매끄러운 통합을 가능하게 합니다. 이를 통해 애플리케이션 내에서 자동 사실 검증, 코드 실행, 사용자 정의 도구 호출을 직접 수행할 수 있습니다.
  • 확장된 개발자 도구 새로운 Multimodal Live API는 실시간 오디오 및 비디오 스트리밍 입력을 지원하여 대화형 멀티모달 애플리케이션을 구축할 수 있게 합니다. 또한 이 API는 복잡한 워크플로를 위해 여러 도구를 결합하는 기능도 제공합니다.
  • 개발자를 위한 고급 기능: Gemini 2.0에는 버그 수정 지원, 다단계 코딩 작업 계획 수립, 풀 리퀘스트 준비를 도와주는 “Jules” 같은 실험적 코딩 에이전트가 포함되어 있습니다. 이러한 기능은 개발 작업 흐름을 간소화하기 위해 GitHub 워크플로와 통합되어 있습니다.
그리고 개발자가 알아두어야 할 핵심 사항은 다음과 같습니다(2024년 12월 11일 기준):
  • 토큰 제한: 1,048,576(입력), 8,192(출력)
  • 요율 제한: 10 RPM, 400만 TPM, 1,500 RPD
  • 입력: 오디오, 이미지, 비디오, 텍스트
  • 출력: 이 글을 작성하는 시점에는 텍스트만 지원되지만, 곧 오디오와 이미지도 제공될 예정입니다.
좋아요, 바로 시작해 봅시다.

Gemini 2.0 API 키 받기

가장 먼저 해야 할 일은 Gemini API 키를 받는 것입니다. 이를 위해 다음으로 이동하세요 https://ai.google.dev/.
오른쪽 상단에 있는 “Sign in” 버튼을 클릭하고 Google 계정으로 로그인하세요:

다음으로, 다음과 같은 페이지가 표시됩니다:

여기에서 왼쪽 상단에 있는 “Get API key”를 클릭하세요.
그리고 이어서 "Create API key"를 클릭하세요:

기존 프로젝트를 선택하거나 새 프로젝트를 생성하면 준비가 완료됩니다:

이제 준비가 되었으니, API 사용을 시작해 봅시다.

Python에서 Gemini 2.0 빠른 시작 튜토리얼

이 튜토리얼은 Jupyter Notebooks가 설치되어 있다고 가정합니다. Colab이나 Jupyter를 처음 사용한다면, 잘 정리된 빠른 시작 가이드가 있습니다. 여기 그 과정은 몇 분이면 끝납니다.
이제 준비가 끝났으니 본격적으로 시작해 봅시다. Jupyter를 열어 주세요. 아래 코드를 실행하면 Python에서 Gemini 2.0을 시작하는 데 필요한 나머지 과정이 모두 진행됩니다.

1단계: Gemini 2.0 및 W&B Weave 설치

이 프로젝트에서는 W&B Weave 프로덕션 환경에서 Gemini 2.0 API의 성능을 로깅하고 추적하기 위해서입니다. Weave를 사용하면 함수의 입력, 출력, 다양한 지표를 자동으로 수집해 정밀한 모니터링과 분석을 할 수 있습니다. 우리의 함수에 데코레이터를 적용하면 @weave.op(), 텍스트 생성 작업의 데이터를 매끄럽게 로깅하고 성능을 시각화할 수 있습니다.
Gemini 모델을 배포하고 운영할 때, W&B Weave는 실제 환경에서 생성 모델의 응답 효과를 시각화하는 데 도움이 됩니다. 텍스트 생성 함수의 입력(질의)과 출력(응답)을 로깅하면 서로 다른 실행을 손쉽게 추적하고 모니터링할 수 있습니다. 필요한 것은 간단히 다음을 추가하는 것뿐입니다. @weave.op() 모델을 사용하는 함수에 데코레이터를 추가하기만 하면, Weave가 해당 함수의 모든 입력과 출력을 자동으로 로깅합니다!
지금이 좋은 시기입니다 무료 Weights & Biases 계정에 가입하세요몇 분 뒤 더 진행했을 때 작업 흐름을 끊지 않도록 지금 해 두는 것이 좋습니다.
💡
코드는 다음과 같습니다:
!pip install -q -U google-generativeai
!pip install --upgrade weave
Jupyter 셀을 실행하면 [ ] 사이의 공백이 별표([*])로 채워지는 것을 볼 수 있습니다. 이는 셀이 실행 중임을 의미하며, 계속하려면 별표(*)가 숫자로 바뀔 때까지 기다려야 합니다..
이제 필요한 설치를 마쳤으니, 도구를 실제로 사용하기 위해 임포트해 봅시다.
파이썬이 처음이라면, 라이브러리를 설치한다는 것은 간단히 그 코드를 가져오는 것이라고 보면 됩니다. 그리고 임포트하면, 그 라이브러리를 사용할 수 있게 됩니다.
💡

2단계: 라이브러리를 임포트하고 Gemini 2.0 API 키를 전달하세요

다음 단계는 필요한 라이브러리를 임포트하고, Google에 API key를 전달하여 Gemini 2.0에 접근할 수 있도록 하는 것입니다.
이 블록에서는 설치한 라이브러리와 함께 몇 가지 추가 라이브러리도 임포트합니다. 목록은 다음과 같습니다:
  • weave프롬프트와 응답을 W&B Weave에 로깅하기 위해.
  • generativeai: Google Generative AI 라이브러리입니다. 아마도 여러분이 여기에 온 이유겠죠!
코드는 다음과 같습니다:
import google.generativeai as genai
import weave

def format_res(text):
return text.replace('•', ' *')

3단계: API key 추가하기

이제 Gemini 2.0이 당신의 API key를 인식하도록 설정만 하면 됩니다.
키를 아무 데나 둬 두는 걸 좋아하지 않으니, 붙여넣을 수 있도록 입력란을 하나 추가하겠습니다. 확인을 위해 입력한 키를 다시 출력해 주겠지만, 공개된 환경에서 키 노출이 걱정된다면 그 줄은 삭제해도 됩니다.
gemini_api_key = input ("What is your Gemini API key? :")
genai.configure(api_key=gemini_api_key)
print(gemini_api_key)

4단계: 쿼리 추가하기

다음으로 요청을 하나 추가해 봅시다. 원래라면 코드에 미리 넣어둘 수도 있었지만, 초보자용 튜토리얼인 만큼 입력란으로 받아서 다양한 쿼리를 더 빠르고 쉽게(적어도 더 쉽게) 시도해 보면서, 동시에 이 모든 것이 어떻게 함께 동작하는지 감을 잡을 수 있도록 했습니다:
query = input ("What content would you like me to produce ? :")
print(query)
입력한 요청을 다시 출력해 주어 확인할 수 있습니다. 입력창은 조금 작아요 :)

5단계: 사용할 Gemini 2.0 모델 선택하기

현재 선택할 수 있는 Gemini 2.0 모델은 하나뿐입니다.
이런 이유로, 우리는 사용합니다 gemini-2.0-flash-exp 하지만 곧 다른 버전들도 추가될 것입니다. Weave는 텍스트와 이미지 모두를 지원하므로, 모델이 멀티모달을 지원하게 되면 해당 애플리케이션에서도 주저하지 말고 Weave를 활용해 보세요.
일단은, 코드는 다음과 같습니다:
model = genai.GenerativeModel('gemini-2.0-flash-exp')
다음에서 사용 가능한 모든 모델을 확인할 수 있습니다 https://ai.google.dev/gemini-api/docs

6단계: Weights & Biases 프로젝트 이름 지정하기

위에서 입력한 요청에 대한 최상위 응답이 노트북에 표시될 것입니다. 다만, 아래에서 Gemini 2.0에게 여러 가지 옵션을 생성하도록 지시할 기회가 있습니다.
project_name = input("What would you like to name your Weave project? :")
wandb_name = project_name.replace(" ", "-") # Replace spaces with dashes in name
weave.init(wandb_name)
별표가 숫자로 바뀔 때까지 기다렸다가 다음 단계로 이동하세요단순히 이름을 고르는 일만 있는 게 아닙니다. 해당 프로젝트는 Weights & Biases에서 실제로 생성되어야 하며, 빠르긴 하지만 즉시 완료되지는 않습니다.
다음과 같은 형태가 될 것입니다:


7단계: Gemini 2.0으로 텍스트 생성하기

이제 마법을 펼칠 시간입니다.
아래 여섯 번째 줄에서 Gemini가 생성할 응답 개수를 변경할 수 있다는 것을 확인할 수 있습니다(현재 기본값은 1입니다). 콘텐츠 요청의 성격에 따라 이 숫자를 변경해야 할 수도 있습니다.
이 코드를 실행하면:
@weave.op()
def generate_text_with_gemini(model, query):
response = model.generate_content(query)
return response.text

num_responses = 1 # How many responses would you like to log to W&B?
for i in range(num_responses):
# Generate text with Gemini 2.0 and log using Weave
response_text = generate_text_with_gemini(model, query)
# Display primary response
print(format_res(response_text))
…다음과 같은 출력이 표시됩니다:

여기서는 모델이 생성한 모든 응답을 출력합니다. Weights & Biases의 프로젝트로 이동한 뒤 Weave 탭으로 들어가면 우리의 generate_text_with_gemini 함수와 해당 실행에서의 모든 입력과 출력이 함께 기록됩니다. 이를 통해 함수 호출을 확인할 수 있어, 프로덕션 환경에서 LLM의 성능을 손쉽게 추적할 수 있습니다.
여러 명령을 동일한 프로젝트에 저장해 서로 비교할 수도 있습니다. Weights & Biases에서 손쉽게 상호작용할 수 있으며, 화면은 대략 다음과 같은 형태로 보일 것입니다:

각 셀은 우리의 함수 실행(run)을 나타냅니다. 이제 각 셀을 클릭해 쿼리에 대한 응답을 확인할 수 있습니다. 아래처럼 Weave는 함수의 입력과 출력을 기록하므로, LLM 동작을 끊김 없이 추적할 수 있습니다:

관심이 있다면, weave 내부의 “Summary” 섹션에서 손쉽게 자세한 메트릭을 확인할 수도 있습니다.


결론

이 Gemini 2.0 튜토리얼을 끝까지 따라오며 Python에서 API를 다루는 방법에 대한 자신감이 높아지고, 앞으로 어떻게 활용할지에 대한 아이디어도 떠올리셨길 바랍니다.
특정 작업을 다루는 추가 튜토리얼을 앞으로 계속 제작할 예정이며, Weights & Biases 팀의 다른 분들도 함께 올릴 것입니다. 제안이나 질문 등이 있다면 아래 댓글로 언제든지 남겨 주세요.



이 글은 AI로 번역되었습니다. 오역이 의심되는 부분이 있다면 댓글 섹션에 자유롭게 알려 주세요. 원문 보고서는 아래 링크에서 확인할 수 있습니다: 원문 보고서 보기