이제 Gemini 2.0 Flash를 Gemini 개발자 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 개발자 API와 Gemini API를 통해 Gemini 2.0에 통합된 인터페이스를 제공합니다. 몇 가지 예외를 제외하고 한 플랫폼에서 실행되는 코드는 두 플랫폼 모두에서 실행됩니다. 즉, Developer API를 사용하여 애플리케이션의 프로토타입을 만든 다음 코드를 다시 작성하지 않고도 애플리케이션을 Vertex AI로 이전할 수 있습니다.
Gen AI SDK는 Gemini 1.5 모델도 지원합니다.
이 새로운 SDK는 Python 및 Go에서 사용할 수 있으며 Java 및 JavaScript는 곧 제공될 예정입니다.
아래와 같이 SDK를 사용하기 시작할 수 있습니다.
- 새 SDK
pip install google-genai
를 설치합니다. - 그런 다음 라이브러리를 가져오고 클라이언트를 초기화하고 콘텐츠를 생성합니다.
from google import genai
client = genai.Client(
api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
model='gemini-2.0-flash-exp', contents='How does AI work?'
)
print(response.text)
(선택사항) 환경 변수 설정
또는 환경 변수를 사용하여 클라이언트를 초기화할 수 있습니다. 먼저 적절한 값을 설정하고 변수를 내보냅니다.
# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
그런 다음 인수 없이 클라이언트를 초기화할 수 있습니다.
client = genai.Client()
Python 개발자는 Cookbook에서 시작하기 노트북을 사용해 볼 수도 있습니다.
Multimodal Live API
Multimodal Live API를 사용하면 Gemini와의 양방향 음성 및 동영상 상호작용을 지연 시간 없이 지원할 수 있습니다. Multimodal Live API를 사용하면 최종 사용자에게 자연스럽고 인간과 같은 음성 대화 환경을 제공하고 음성 명령을 사용하여 모델의 응답을 중단할 수 있는 기능을 제공할 수 있습니다. 이 모델은 텍스트, 오디오, 동영상 입력을 처리하고 텍스트 및 오디오 출력을 제공할 수 있습니다.
멀티모달 실시간 API는 Gemini API에서 BidiGenerateContent
메서드로 사용할 수 있으며 WebSockets를 기반으로 합니다.
from google import genai
client = genai.Client(http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}
async with client.aio.live.connect(model=model_id, config=config) as session:
message = "Hello? Gemini, are you there?"
print("> ", message, "\n")
await session.send(message, end_of_turn=True)
async for response in session.receive():
print(response.text)
주요 기능:
- 멀티모달리티: 모델이 보고, 듣고, 말할 수 있습니다.
- 짧은 지연 시간의 실시간 상호작용: 빠른 응답을 제공합니다.
- 세션 메모리: 모델은 단일 세션 내의 모든 상호작용에 관한 메모리를 유지하여 이전에 듣거나 본 정보를 호출합니다.
- 함수 호출, 코드 실행, 검색 도구 지원: 외부 서비스 및 데이터 소스와 통합할 수 있습니다.
- 자동 음성 활동 감지 (VAD): 모델은 사용자가 말하기 시작하고 중지하는 시점을 정확하게 인식할 수 있습니다. 이를 통해 자연스러운 대화형 상호작용이 가능하며 사용자가 언제든지 모델을 중단할 수 있습니다.
언어:
- 영어로만 제공
제한사항:
- 오디오 입력과 오디오 출력 모두 모델의 함수 호출 사용 능력에 부정적인 영향을 미칩니다.
API의 기능과 제한사항에 관한 자세한 내용은 다중 모달 실시간 API 참조 가이드를 참고하세요.
Google AI Studio에서 멀티모달 실시간 API를 사용해 볼 수 있습니다. 개발을 시작하려면 웹 콘솔(React로 작성)을 사용해 보세요. Python 개발자의 경우 시작 코드(노트북 및 .py 파일)를 사용해 보세요. 노트북을 사용하면 가장 쉽게 시작할 수 있지만 실시간 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
- 이미지 생성은 오디오 또는 동영상 입력을 지원하지 않습니다.
- 이미지 생성이 항상 트리거되지는 않을 수 있습니다.
- 모델은 텍스트만 출력할 수 있습니다. 이미지 출력을 명시적으로 요청해 보세요(예: '이미지 생성', '진행 중 이미지 제공', '이미지 업데이트').
- 모델이 생성을 중단할 수도 있습니다. 다시 시도하거나 다른 프롬프트를 사용해 보세요.