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”와 같은 실험적 코딩 에이전트가 포함되어 있어 버그 수정 지원, 다단계 코딩 작업 계획, Pull Request 준비를 도와줍니다. 이러한 기능은 GitHub 워크플로와 통합되어 개발 작업을 간소화합니다.
그리고 2024년 12월 11일 기준으로, 개발자가 알아두어야 할 핵심 사항은 다음과 같습니다:
  • 토큰 한도: 1,048,576(입력), 8,192(출력)
  • 요율 제한: 분당 10회, 월간 400만 회, 일간 1,500회
  • 입력: 오디오, 이미지, 비디오, 텍스트
  • 출력: 이 글을 작성하는 시점에는 텍스트만 지원되지만, 오디오와 이미지는 곧 추가될 예정입니다.
좋아요, 이제 시작해 봅시다.

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 Notebook이 이미 설치되어 있다고 가정합니다. 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 키를 전달하여 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 키 추가하기

이제 Gemini 2.0이 여러분의 API 키를 인식하도록 설정만 하면 됩니다.
키를 아무 데나 두는 것을 좋아하지 않아서, 붙여넣을 수 있도록 입력란을 추가하겠습니다. 확인을 위해 입력한 키가 다시 출력되지만, 공개된 환경에서 키 노출이 걱정된다면 해당 출력 라인은 제거해도 됩니다.
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으로 텍스트 생성하기

이제 마법을 펼칠 시간입니다.
아래 6번째 줄에서 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에서 손쉽게 상호작용할 수 있으며, 대략 다음과 같은 형태로 표시됩니다:

각 셀은 함수의 한 번의 실행을 나타냅니다. 이제 각 셀을 클릭해 쿼리에 대한 응답을 확인할 수 있습니다. 아래와 같이 Weave는 함수의 입력과 출력을 기록하여 LLM 동작을 ��끄럽게 추적할 수 있게 합니다:

관심이 있다면 Weave 내부의 “Summary” 섹션으로 들어가 함수에 대한 더 많은 지표를 손쉽게 확인할 수도 있습니다:


결론

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



이 글은 AI로 번역된 기사입니다. 오역이 있을 수 있으니 댓글로 알려 주세요. 원문은 아래 링크에서 확인할 수 있습니다: 원문 보고서 보기