C.W.K.
Stream
Lesson 05 of 05 · published

Legacy SDK 마이그레이션

~12 min · migration, google-generativeai, eol

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

Legacy 코드 있으면 port

google-generativeai 는 2025 년 11 월 EOL. 여전히 install 되고 많은 경우 동작하긴 하는데 Google 이 더 이상 버그 수정 안 하고, 모델 API 진화하면서 legacy SDK 가 silent 하게 썩어. 마이그레이션은 mechanical 이고 한 번에 처리할 가치 있어.

모양이 바뀌었어

SDK 사이에 여섯 가지가 변함:

AspectLegacy (google-generativeai)New (google-genai)
패키지google-generativeaigoogle-genai
Importimport google.generativeai as genaifrom google import genai
Initgenai.configure(api_key=...)genai.Client(api_key=...)
Model 객체genai.GenerativeModel('...')(없음 — 호출당 model= pass)
Generatemodel.generate_content(text)client.models.generate_content(model=..., contents=...)
Streamstream=True kwarggenerate_content_stream()
Asyncgenerate_content_async()client.aio.models.generate_content()
Chatmodel.start_chat()client.chats.create(model=...)
Vertex별도 vertexai pkgClient(vertexai=True)

실제로 동작하는 마이그레이션 순서

  1. requirements.txtgoogle-genai 를 legacy 와 함께 pin — 공존 가능.
  2. get_client() -> genai.Client 를 export 하는 새 module 추가.
  3. 한 번에 한 호출 사이트씩 마이그레이션: model.generate_content(text)client.models.generate_content(model=..., contents=text) 로 교체.
  4. 마지막 호출 사이트 port 후 legacy configure() 호출 삭제.
  5. requirements 에서 legacy 패키지 제거.

Code

side-by-side: 가장 흔한 호출·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)
Streaming·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='')
Async·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 로 port. 같은 prompt 에 대해 두 버전 나란히 실행 — 출력은 대략 비슷해야 함 (shared seed 없으니 다른 generation). 새 버전이 2024 가 아니라 2026 에 ship 된 SDK 쓰는지 확인.

Progress

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

댓글 0

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

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