이제 Gemini 2.0 Flash를 Gemini Developer API 및 Google AI Studio를 통해 실험용 미리보기 버전으로 사용할 수 있습니다. 이 모델은 새로운 기능과 향상된 핵심 기능을 도입합니다.
- Multimodal Live API: 이 새로운 API를 사용하면 도구를 사용하여 실시간 영상 및 오디오 스트리밍 애플리케이션을 만들 수 있습니다.
- 속도 및 성능: Gemini 2.0은 1.5 Flash에 비해 첫 번째 토큰 시간 (TTFT)이 크게 개선되었습니다.
- 품질: Gemini 1.5 Pro보다 대부분의 벤치마크에서 더 나은 성능을 제공합니다.
- 에이전트 기능 개선: Gemini 2.0은 멀티모달 이해, 코딩, 복잡한 명령어 실행, 함수 호출을 개선합니다.
- 새로운 모달: Gemini 2.0에는 네이티브 이미지 생성 및 제어 가능한 음성 텍스트 변환 기능이 도입되었습니다.
더 나은 개발자 환경을 제공하기 위해 새로운 SDK도 제공됩니다. Gemini 2.0 기술 세부정보는 Gemini 모델을 참고하세요.
Google Gen AI SDK (실험용)
새로운 Google 생성형 AI SDK는 Vertex AI의 Gemini Developer API와 Gemini API를 통해 Gemini 2.0에 통합된 인터페이스를 제공합니다. 몇 가지 예외를 제외하고 한 플랫폼에서 실행되는 코드는 두 플랫폼 모두에서 실행됩니다. 이 새로운 SDK는 Python 및 Go에서 사용할 수 있으며 곧 Java 및 JavaScript도 지원될 예정입니다.
- 새 SDK
pip install google-genai
를 설치합니다. - 그런 다음 라이브러리를 가져오고 클라이언트를 초기화하고 콘텐츠를 생성합니다.
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
response = client.models.generate_content(model='gemini-2.0-flash-exp', contents='How does AI work?')
print(response.text)
Python 개발자는 Gemini Cookbook에서 시작하기 노트북을 사용해 볼 수도 있습니다.
Multimodal Live API
Multimodal Live API를 사용하면 Gemini와 양방향 음성 및 동영상 상호작용을 지연 시간 없이 지원할 수 있습니다. Multimodal Live API를 사용하면 최종 사용자에게 자연스럽고 인간과 같은 음성 대화 환경을 제공하고 음성 명령을 사용하여 모델의 응답을 중단할 수 있는 기능을 제공할 수 있습니다. 이 모델은 텍스트, 오디오, 동영상 입력을 처리할 수 있으며 텍스트 및 오디오 출력을 제공할 수 있습니다.
Google AI Studio에서 멀티모달 실시간 API를 사용해 볼 수 있습니다. API의 기능과 제한사항에 관한 자세한 내용은 멀티모달 실시간 API 참조 가이드를 참고하세요.
검색 도구
Google 검색과 함께 그라운딩을 사용하면 모델의 응답 정확도와 최신성을 개선할 수 있습니다. Gemini 2.0부터 Google 검색을 도구로 사용할 수 있습니다. 즉, 모델이 Google 검색을 사용할 시기를 결정할 수 있습니다. 다음 예에서는 Google 검색을 도구로 구성하는 방법을 보여줍니다.
from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch
client = genai.Client()
model_id = "gemini-2.0-flash-exp"
google_search_tool = Tool(
google_search = GoogleSearch()
)
response = client.models.generate_content(
model=model_id,
contents="When is the next total solar eclipse in the United States?",
config=GenerateContentConfig(
tools=[google_search_tool],
response_modalities=["TEXT"],
)
)
for each in response.candidates[0].content.parts:
print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...
# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)
검색 도구 기능을 사용하면 여러 번의 검색과 여러 도구 쿼리 (예: Google 검색 및 코드 실행과 접근 방식 결합)도 가능합니다.
도구로서 검색을 사용하면 계획, 추론, 사고가 필요한 복잡한 프롬프트와 워크플로를 사용할 수 있습니다.
- 사실성과 최신성을 개선하고 더 정확한 답변을 제공하기 위한 그라운딩
- 웹에서 아티팩트를 가져와 추가 분석
- 다중 모달 추론 또는 생성 작업을 지원하는 관련 이미지, 동영상 또는 기타 미디어 찾기
- 코딩, 기술 문제 해결, 기타 전문 작업
- 지역별 정보를 찾거나 콘텐츠를 정확하게 번역하는 데 지원
- 추가 탐색을 위한 관련 웹사이트 찾기
검색 도구 노트북을 사용해 보면서 시작해 보세요.
도구 사용 개선
Gemini 2.0에서는 상담사 환경을 더 효과적으로 지원하는 함수 호출 및 도구가 개선되었습니다.
구성 함수 호출
Gemini 2.0은 새로운 함수 호출 기능인 조합 함수 호출을 지원합니다. 구성 함수 호출을 사용하면 Gemini API가 응답을 생성하는 과정에서 여러 사용자 정의 함수를 자동으로 호출할 수 있습니다. 예를 들어 "Get the temperature in my current location"
프롬프트에 응답하기 위해 Gemini API는 get_current_location()
함수와 위치를 매개변수로 사용하는 get_weather()
함수를 모두 호출할 수 있습니다.
코드 실행을 통한 컴포지션 함수 호출에는 양방향 스트리밍이 필요하며 새 멀티모달 실시간 API에서만 지원됩니다. 다음은 컴포지션 함수 호출, 코드 실행, 멀티모달 라이브 API를 함께 사용하는 방법을 보여주는 예입니다.
turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}
prompt = """
Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
"""
tools = [
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Python 개발자는 실시간 API 도구 사용 노트북에서 이를 사용해 볼 수 있습니다.
멀티 도구 사용
Gemini 2.0을 사용하면 여러 도구를 동시에 사용 설정할 수 있으며 모델이 도구를 호출할 시기를 결정합니다. 다음은 Multimodal Live API를 사용하는 요청에서 Google 검색을 통한 기반 지식 설정 및 코드 실행이라는 두 가지 도구를 사용 설정하는 예입니다.
prompt = """
Hey, I need you to do three things for me.
1. Turn on the lights.
2. Then compute the largest prime palindrome under 100000.
3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.
Thanks!
"""
tools = [
{'google_search': {}},
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Python 개발자는 실시간 API 도구 사용 노트북에서 이 기능을 사용해 볼 수 있습니다.
경계 상자 감지
이번 실험 버전에서는 개발자에게 이미지 및 동영상 내 객체 감지 및 위치 지정을 위한 강력한 도구를 제공합니다. 개발자는 경계 상자로 객체를 정확하게 식별하고 윤곽을 그려 다양한 애플리케이션을 활용하고 프로젝트의 지능을 향상할 수 있습니다.
주요 이점:
- 간단함: 컴퓨터 비전 전문 지식과 관계없이 객체 감지 기능을 애플리케이션에 쉽게 통합할 수 있습니다.
- 맞춤설정 가능: 맞춤 모델을 학습하지 않고도 맞춤 안내 (예: '이 이미지의 모든 녹색 물체의 경계 상자를 확인하고 싶습니다')에 따라 경계 상자를 생성할 수 있습니다.
기술 세부정보:
- 입력: 프롬프트 및 관련 이미지 또는 동영상 프레임
- 출력:
[y_min, x_min, y_max, x_max]
형식의 경계 상자입니다. 왼쪽 상단이 원점입니다.x
및y
축은 각각 가로 및 세로로 이동합니다. 좌표 값은 모든 이미지에 대해 0~1,000으로 정규화됩니다. - 시각화: AI 스튜디오 사용자는 UI 내에 표시된 경계 상자를 볼 수 있습니다. Vertex AI 사용자는 맞춤 시각화 코드를 통해 경계 상자를 시각화해야 합니다.
Python 개발자의 경우 2D 공간 이해 노트북 또는 실험용 3D 포인팅 노트북을 사용해 보세요.
음성 생성 (사전 체험판/허용 목록)
Gemini 2.0은 새로운 멀티모달 생성 기능인 텍스트 음성 변환을 지원합니다.
텍스트 음성 변환 기능을 사용하면 모델에 인간의 음성처럼 들리는 고품질 오디오 출력 (say "hi everyone"
)을 생성하도록 요청할 수 있으며, 음성을 조정하여 출력을 더욱 세부적으로 조정할 수 있습니다.
이미지 생성 (사전 체험판/허용 목록)
Gemini 2.0은 인라인 이미지로 텍스트를 출력하는 기능을 지원합니다. 이를 통해 Gemini를 사용하여 대화식으로 이미지를 수정하거나 멀티모달 출력(예: 한 번에 텍스트와 이미지가 포함된 블로그 게시물)을 생성할 수 있습니다. 이전에는 여러 모델을 연결해야 했습니다.
이미지 생성은 비공개 실험 버전으로 제공됩니다. 다음과 같은 모달리티와 기능을 지원합니다.
- 텍스트 이미지 변환
- 프롬프트 예: '배경에 불꽃놀이가 있는 에펠탑 이미지를 생성해 줘'
- 텍스트-이미지-텍스트(교차)
- 프롬프트 예: '파에야 레시피를 그림과 함께 생성해 줘.'
- 이미지 및 텍스트에서 이미지 및 텍스트(교차)로 변환
- 프롬프트 예: (가구가 비치된 방의 이미지 포함) "내 공간에 어울리는 다른 색상의 소파가 있나요? 이미지를 업데이트해 주시겠어요?"
- 이미지 수정 (텍스트 및 이미지 대 이미지)
- 프롬프트 예시: '이 이미지를 만화처럼 수정하세요.'
- 프롬프트 예: [고양이 이미지] + [베개 이미지] + '이 베개에 내 고양이의 크로스 스티치로 만들어 줘.'
- 멀티턴 이미지 수정 (채팅)
- 프롬프트 예: [파란색 자동차 이미지를 업로드하세요.] "이 차를 컨버터블로 바꿔 줘." "이제 색상을 노란색으로 변경하세요."
- 워터마킹
- 생성된 모든 이미지에는 SynthID 워터마크가 포함됩니다.
제한사항:
- 사람을 생성하거나 업로드된 사람의 이미지를 수정하는 것은 허용되지 않습니다.
- 최상의 성능을 위해 다음 언어를 사용하세요. EN, es-MX, ja-JP, zh-CN, hi-IN
- 이미지 생성은 오디오 또는 동영상 입력을 지원하지 않습니다.
- 이미지 생성이 항상 트리거되지는 않을 수 있습니다.
- 모델은 텍스트만 출력할 수 있습니다. 이미지 출력을 명시적으로 요청해 보세요(예: '이미지 생성', '진행 중 이미지 제공', '이미지 업데이트').
- 모델이 생성을 중단할 수도 있습니다. 다시 시도하거나 다른 프롬프트를 사용해 보세요.