Python용 Gemini 2.0 API 빠른 시작 가이드
Python에서 W&B 로깅과 함께 Gemini 2.0 API를 설정하는 빠른 시작 튜토리얼. 이 글은 AI로 번역되었습니다. 오역 가능성이 있으면 댓글로 알려주세요.
Created on September 15|Last edited on September 15
Comment
이 튜토리얼은 Gemini 2.0 API를 막 시작하는 분, 특히 Python에서 활용하려는 분을 위한 빠른 시작 가이드입니다. 최근 공개한 초급자용 글의 높은 관심을 바탕으로, OpenAI API로 Python에서 GPT-4o 설정하기비슷한 내용을 여기에서도 정리해 두는 것이 좋겠다고 판단했습니다.
곧 작업별 튜토리얼도 이어서 제공할 예정이니, 우선 이 소개 글이 시작하고 스스로 탐색해 보는 데 도움이 되길 바랍니다.
이 단계들을 진행하기 전에 동작 방식을 먼저 보고 싶다면, 아래 Colab에서 빠르게 실행해 볼 수 있습니다:
나머지 부분에서는 다음 내용을 다루겠습니다:
목차
Gemini 2.0 소개Gemini 2.0 API 키 발급 받기Python에서 Gemini 2.0 빠른 시작 튜토리얼1단계: Gemini 2.0 및 W&B Weave 설치2단계: 라이브러리를 임포트하고 Gemini 2.0 API 키를 전달하세요3단계: API 키 추가하기4단계: 쿼리 추가하기5단계: 사용할 Gemini 2.0 모델 선택하기6단계: Weights & Biases 프로젝트 이름 지정하기7단계: Gemini 2.0으로 텍스트 생성하기결론
정말 이제 막 시작하는 거라면 아직 로컬 환경에서 Python을 실행할 준비가 되어 있지 않은 분들을 위해, 간단한 튜토리얼을 준비했습니다 여기 몇 분 만에 바로 시작할 수 있도록 도와줄 것입니다.
💡
준비되셨나요? 시작해 봅시다.
Gemini 2.0 소개
Gemini 2.0는 추론, 계획 수립, 도구 통합 능력을 대폭 강화한, Gemini의 역량 면에서 중요한 진전을 이룬 모델입니다.
다음은 주요 업데이트와 기능입니다:
- 멀티모달 기능: Gemini 2.0는 텍스트, 이미지, 비디오, 오디오 전반에서 입력과 출력을 모두 지원합니다. 여기에는 네이티브 이미지 생성, 다국어 텍스트-투-스피치 오디오 생성, 그리고 통합 멀티모달 콘텐츠가 필요한 작업을 위한 결합 출력 생성 기능이 포함됩니다.
- 성능 개선사항: Gemini 2.0 Flash 실험 모델은 이전 버전에 비해 응답 속도가 더 빠르고 정확도가 향상되었으며, 추론, 코딩, 공간 이해 능력이 강화되었습니다. 이러한 특성 덕분에 동적이고 실시간으로 동작하는 애플리케이션에 특히 적합합니다.
- 도구 통합: Gemini 2.0는 네이티브 도구 사용 기능을 도입해 Google 검색과 서드파티 API 같은 서비스와 매끄럽게 통합할 수 있습니다. 이를 통해 자동 사실 검증, 코드 실행, 맞춤 도구 호출을 애플리케이션 내부에서 직접 수행할 수 있습니다.
- 확장된 개발자 도구 새로운 Multimodal Live API는 실시간 오디오와 비디오 스트리밍 입력을 지원하여 대화형 멀티모달 애플리케이션을 구축할 수 있게 합니다. 또한 이 API는 복잡한 워크플로를 위해 여러 도구를 결합하는 기능도 제공합니다.
- 개발자를 위한 고급 기능: Gemini 2.0에는 버그 수정 지원, 다단계 코딩 작업 계획, 풀 리퀘스트 준비를 도와주는 “Jules”와 같은 실험적 코딩 에이전트가 포함되어 있습니다. 이러한 기능은 GitHub 워크플로와 통합되어 개발 작업을 간소화합니다.
그리고 2024년 12월 11일 기준으로 개발자가 알아두어야 할 핵심 사항은 다음과 같습니다:
- 토큰 제한: 1,048,576(입력), 8,192(출력)
- 요금 제한: 분당 10회, 분당 400만 토큰, 일당 1,500회
- 입력: 오디오, 이미지, 비디오, 텍스트
- 출력: 이 글을 작���하는 시점에는 텍스트만 지원되지만, 곧 오디오와 이미지도 지원될 예정입니다.
좋아요, 이제 시작해 봅시다.
Gemini 2.0 API 키 발급 받기
오른쪽 상단에 있는 “Sign in” 버튼을 클릭하고 Google 계정으로 로그인하세요:

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

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

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

이제 준비가 되었으니, 바로 API 사용을 시작해 봅시다.
Python에서 Gemini 2.0 빠른 시작 튜토리얼
이 튜토리얼은 Jupyter 노트북이 설치되어 있다고 가정합니다. 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가 해당 함수의 모든 입력과 출력을 자동으로 기록합니다!
💡
코드:
!pip install -q -U google-generativeai!pip install --upgrade weave
주피터 셀을 실행하면 대괄호 [ ] 사이가 별표([*])로 채워지는 것을 볼 수 있습니다. 이는 셀이 실행 중임을 의미하며, 계속하려면 별표가 숫자로 바뀔 때까지 기다려야 합니다.
이제 필요한 설치를 마쳤으니, 도구를 실제로 사용하기 위해 임포트해 봅시다.
파이썬이 처음이라면, 라이브러리를 설치한다는 것은 그 코드 패키지를 내려받아 추가한다는 뜻입니다. 그리고 임포트하면 그 라이브러리를 사용할 수 있게 됩니다.
💡
2단계: 라이브러리를 임포트하고 Gemini 2.0 API 키를 전달하세요
다음 단계는 필요한 라이브러리를 임포트하고, Google 측에 API 키를 전달해 Gemini 2.0에 접근할 수 있도록 하는 것입니다.
이 블록에서는 설치한 라이브러리들과 몇 가지 추가 라이브러리를 함께 임포트합니다. 다음과 같습니다:
- weaveW&B Weave에 프롬프트와 응답을 로깅하기 위해.
- generativeai: Google Generative AI 라이브러리. 여기 오신 이유겠죠!
코드는 다음과 같습니다:
import google.generativeai as genaiimport weavedef format_res(text):return text.replace('•', ' *')
3단계: API 키 추가하기
이제 Gemini 2.0이 당신의 API 키를 인식하도록 설정만 하면 됩니다.
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')
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 nameweave.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.textnum_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 Weaveresponse_text = generate_text_with_gemini(model, query)# Display primary responseprint(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 팀의 다른 동료들도 특정 작업을 다루는 추가 튜토리얼을 계속 만들어갈 예정입니다. 제안이나 질문 등이 있다면 아래 댓글로 자유롭게 남겨 주세요.
Add a comment