본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

예전 SDK에서 이전하기

~12 min · migration, google-generativeai, eol

Level 0불씨
0 XP0/35 lessons0/10 achievements
0/140 XP to next level140 XP to go0% complete

예전 코드가 있다면 지금 옮겨

google-generativeai는 2025년 11월에 수명이 끝났어. 아직 설치되고 많은 경우 작동하지만, Google은 더 이상 버그를 고치지 않아. 모델 API가 발전할수록 예전 SDK는 경고 없이 낡아 가. 이전 작업은 대부분 기계적으로 바꿀 수 있으니 한 번에 끝낼 가치가 있어.

API 구조가 달라졌어

두 SDK 사이에서 달라진 지점은 다음과 같아:

항목예전 SDK(google-generativeai)새 SDK(google-genai)
패키지google-generativeaigoogle-genai
Importimport google.generativeai as genaifrom google import genai
초기화genai.configure(api_key=...)genai.Client(api_key=...)
모델 객체genai.GenerativeModel('...')없음 — 호출할 때마다 model= 전달
생성model.generate_content(text)client.models.generate_content(model=..., contents=...)
스트리밍stream=True 인자generate_content_stream()
비동기generate_content_async()client.aio.models.generate_content()
채팅model.start_chat()client.chats.create(model=...)
Vertex별도 vertexai 패키지Client(vertexai=True)

안전하게 이전하는 순서

  1. requirements.txtgoogle-genai를 예전 패키지와 함께 버전 고정해. 둘은 공존할 수 있어.
  2. get_client() -> genai.Client를 내보내는 새 모듈을 추가해.
  3. 호출부를 하나씩 옮겨. model.generate_content(text)client.models.generate_content(model=..., contents=text)로 바꿔.
  4. 마지막 호출부까지 옮긴 뒤 예전 configure() 호출을 삭제해.
  5. 의존성 목록에서 예전 패키지를 제거해.

Code

나란히 비교하기: 가장 흔한 호출·python
# ❌ BEFORE — legacy, EOL
import google.generativeai as genai
genai.configure(api_key='KEY')
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content('Tell me a story.')
print(response.text)

# ✅ AFTER — new SDK
from google import genai
client = genai.Client()
response = client.models.generate_content(
    model='gemini-2.5-flash',
    contents='Tell me a story.',
)
print(response.text)
스트리밍·python
# ❌ BEFORE
response = model.generate_content('Tell me a story.', stream=True)
for chunk in response:
    print(chunk.text, end='')

# ✅ AFTER
for chunk in client.models.generate_content_stream(
    model='gemini-2.5-flash',
    contents='Tell me a story.',
):
    print(chunk.text, end='')
비동기 호출·python
# ❌ BEFORE
response = await model.generate_content_async('Hi')

# ✅ AFTER
response = await client.aio.models.generate_content(
    model='gemini-2.5-flash', contents='Hi')

External links

Exercise

google.generativeai를 쓰는 실제 Python 스크립트나 작은 예제 하나를 찾아. 위 표에 따라 google-genai로 옮기고, 같은 프롬프트로 두 버전을 나란히 실행해. 공통 seed가 없으므로 생성 결과는 다를 수 있지만 내용은 대체로 비슷해야 해. 새 버전이 2024년의 예전 SDK가 아니라 2026년에 제공되는 SDK를 쓰는지 확인해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.