![]() |
![]() |
![]() |
Gemini API는 텍스트, 이미지, 오디오, 동영상 데이터의 프롬프팅을 지원하며 멀티모달 프롬프팅이라고 합니다. 즉, 이러한 유형의 미디어를 파일을 찾을 수 있습니다 작은 파일의 경우 Gemini 모델을 직접 가리킬 수 있습니다. 로컬 파일로 변환해야 합니다 파일 API에 포함해야 합니다. 표시됩니다
File API를 사용하면 프로젝트당 최대 20GB의 파일을 저장할 수 있으나 2GB를 초과해서는 안 됩니다. 파일은 48시간 동안 저장되며 해당 기간 내에 생성할 API 키이며 다운로드할 수 없습니다. 가져올 수 있습니다. Files API는 Gemini API를 사용할 수 있습니다.
File API는
model.generateContent
또는 model.streamGenerateContent
자세한 내용은
유효한 파일 형식 (MIME 유형) 및 지원되는 모델은 지원되는 파일
형식을 참고하세요.
이 가이드에서는 File API를 사용하여 미디어 파일을 업로드하고 포함하는 방법을 보여줍니다.
Gemini API에 대한 GenerateContent
호출 자세한 내용은
코드
샘플을 참고하세요.
시작하기 전에: 프로젝트 및 API 키 설정
Gemini API (또는 File API)를 호출하기 전에 API 키를 구성하고 구성할 수 있습니다
이미지로 메시지 표시
이 튜토리얼에서는 File API를 사용하여 샘플 이미지를 업로드한 다음 이를 사용합니다. 콘텐츠를 생성합니다.
이미지 파일 업로드
부록 섹션에서 자체 파일을 업로드할 수 있습니다.
업로드할 샘플 이미지를 준비합니다.
curl -o image.jpg https://storage.googleapis.com/generativeai-downloads/images/jetpack.jpg
다음을 사용하여 파일을 업로드합니다. 액세스할 수 있도록
media.upload
다른 API 호출 사용:sample_file = genai.upload_file(path="image.jpg", display_name="Sample drawing") print(f"Uploaded file '{sample_file.display_name}' as: {sample_file.uri}")
response
는 업로드된 이미지가 지정된
display_name
이며 Gemini API 호출에서 파일을 참조하는 uri
이 있습니다. 사용
response
: 업로드된 파일이 URI에 매핑되는 방식을 추적합니다.
사용 사례에 따라 URI를 다음과 같은 구조에 저장할 수 있습니다.
dict
또는 데이터베이스
이미지 파일의 메타데이터 가져오기
파일을 업로드한 후 API가 파일을 성공적으로 저장했는지 확인할 수 있습니다.
files.get
를 호출하여 메타데이터를 가져옵니다.
SDK를 통해 구현됩니다
이 메서드를 사용하면
API 키에 연결된 Google Cloud 프로젝트입니다. name
만 (그리고 더 나아가
uri
)가 고유합니다. 다음과 같은 경우에만 display_name
를 사용하여 파일을 식별합니다.
스스로 독창성을 관리할 수 있습니다.
file = genai.get_file(name=sample_file.name)
print(f"Retrieved file '{file.display_name}' as: {sample_file.uri}")
업로드된 이미지 파일을 사용하여 콘텐츠 생성
이미지를 업로드한 후 다음과 같은 GenerateContent
요청을 할 수 있습니다.
응답에서 uri
참조 (파일을 업로드하거나 직접
파일의 메타데이터 가져오기).
이 예시에서는 텍스트로 시작하고 그 뒤에 URI가 오는 프롬프트를 만듭니다. 업로드된 파일에 대한 참조:
# The Gemini 1.5 models are versatile and work with multimodal prompts
model = genai.GenerativeModel(model_name="models/gemini-1.5-flash")
response = model.generate_content([sample_file, "Describe the image with a creative description."])
Markdown(">" + response.text)
이미지 파일 삭제
파일은 48시간 후 자동으로 삭제됩니다. 또한 수동으로
SDK를 통해 files.delete
를 사용하여 API를 인증할 수 있습니다.
genai.delete_file(sample_file.name)
print(f'Deleted {sample_file.display_name}.')
동영상으로 메시지 표시
이 튜토리얼에서는 File API를 사용하여 샘플 동영상을 업로드한 다음 콘텐츠를 생성합니다.
동영상 파일 업로드
Gemini API는 동영상 파일 형식을 직접 허용합니다. 이 예시에서는 영화 'Big Buck Bunny'를 촬영했습니다.
'Big Buck Bunny' (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org이며 크리에이티브 커먼즈 저작자 표시 3.0 라이선스에 따라 사용이 허가되었습니다.
부록 섹션에서 자체 파일을 업로드할 수 있습니다.
업로드할 샘플 동영상 파일을 준비합니다.
wget https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4
다음을 사용하여 파일을 업로드합니다. 액세스할 수 있도록
media.upload
다른 API 호출 사용:video_file_name = "BigBuckBunny_320x180.mp4" print(f"Uploading file...") video_file = genai.upload_file(path=video_file_name) print(f"Completed upload: {video_file.uri}")
동영상 파일의 업로드 상태 확인
다음을 호출하여 API가 동영상 파일을 성공적으로 업로드했는지 확인합니다.
files.get
메서드를 호출합니다.
동영상 파일에는 File API의 State
필드가 있습니다. 동영상이 업로드되면
추론할 준비가 될 때까지 PROCESSING
상태가 됩니다. 단 ACTIVE
파일은 모델 추론에 사용할 수 있습니다.
import time
while video_file.state.name == "PROCESSING":
print('.', end='')
time.sleep(10)
video_file = genai.get_file(video_file.name)
if video_file.state.name == "FAILED":
raise ValueError(video_file.state.name)
동영상 파일의 메타데이터 가져오기
언제든지
files.get
메서드를 호출합니다.
이 메서드를 사용하면
API 키에 연결된 Google Cloud 프로젝트입니다. name
만 (그리고 더 나아가
uri
)가 고유합니다. 다음과 같은 경우에만 display_name
를 사용하여 파일을 식별합니다.
스스로 독창성을 관리할 수 있습니다.
file = genai.get_file(name=video_file.name)
print(f"Retrieved file '{file.display_name}' as: {video_file.uri}")
업로드된 동영상 파일을 사용하여 콘텐츠 생성
동영상을 업로드한 후 다음과 같은 GenerateContent
요청을 할 수 있습니다.
응답에서 uri
참조 (파일을 업로드하거나 직접
파일의 메타데이터 가져오기).
먼저 동영상 파일의 업로드 상태 확인 (위 섹션) 동영상에서 추론을 실행합니다.
# Create the prompt.
prompt = "Describe this video."
# The Gemini 1.5 models are versatile and work with multimodal prompts
model = genai.GenerativeModel(model_name="models/gemini-1.5-flash")
# Make the LLM request.
print("Making LLM inference request...")
response = model.generate_content([video_file, prompt],
request_options={"timeout": 600})
print(response.text)
동영상 파일 삭제
파일은 48시간 후 자동으로 삭제됩니다. 또한 수동으로
SDK를 통해 files.delete
를 사용하여 API를 구현할 수 있습니다.
genai.delete_file(file_response.name)
print(f'Deleted file {file_response.uri}')
지원되는 파일 형식
Gemini 모델은 다양한 파일 형식을 이용한 프롬프팅을 지원합니다. 이 섹션 프롬프트에 일반적인 미디어 형식을 사용할 때의 고려사항은 특히 이미지, 오디오, 동영상 및 일반 텍스트 파일로 구성됩니다. 미디어 파일 사용 가능 특정 모델 버전에만 메시지가 표시되도록 하려면 표에서 볼 수 있습니다.
모델 | 이미지 | 오디오 | 동영상 | 일반 텍스트 |
---|---|---|---|---|
Gemini 1.5 Pro (버전 008 이상) | ✔ (최대 3,600개의 이미지 파일) | ✔ | ✔ | ✔ |
이미지 형식
Gemini 1.5 모델의 프롬프트에 이미지 데이터를 사용할 수 있습니다. 이미지를 사용하는 경우 을 사용하는 경우 다음과 같은 제한사항 및 요구사항이 적용됩니다.
- 이미지는 다음 이미지 데이터 중 하나에 있어야 합니다. MIME
유형:
- PNG - image/png
- JPEG - image/jpeg
- WEBP - image/webp
- HEIC - image/heic
- HEIF - image/heif
- Gemini 1.5 모델의 경우 최대 3,600개의 이미지
- 이미지의 픽셀 수에는 특정한 제한이 없습니다. 더 클수록 이미지는 최대 해상도인 3072x3072에 맞게 원래 가로세로 비율을 유지하는 것이 좋습니다.
오디오 형식
Gemini 1.5 모델의 프롬프트에 오디오 데이터를 사용할 수 있습니다. 사용하는 경우 프롬프트에 사용할 오디오에는 다음과 같은 제한사항이 적용됩니다. 요구사항:
- 오디오 데이터는 다음과 같은 일반적인 오디오 형식 MIME로 지원됩니다.
유형:
- WAV - 오디오/wav
- MP3 - 오디오/mp3
- AIFF - 오디오/AIFF
- AAC - 오디오/aac
- OGG Vorbis - 오디오/ogg
- FLAC - 오디오/flac
- 단일 프롬프트에서 지원되는 최대 오디오 데이터 길이는 9.5시간입니다.
- 오디오 파일은 16Kbps 데이터 해상도로 리샘플링되며 오디오 채널은 단일 채널로 결합됩니다.
- 단일 프롬프트의 오디오 파일 수에는 특정한 제한이 없습니다. 프롬프트에 표시된 모든 오디오 파일의 총 길이를 9.5시간을 초과할 수 없습니다.
동영상 형식
Gemini 1.5 모델의 프롬프트에 동영상 데이터를 사용할 수 있습니다.
동영상 데이터는 다음과 같은 일반적인 동영상 형식 MIME에서 지원됩니다. 유형:
- video/mp4
- video/mpeg
- 동영상/mov
- 동영상/avi
- 동영상/x-flv
- 동영상/mpg
- 동영상/webm
- 동영상/wmv
- 동영상/3gpp
File API 서비스는 초당 1프레임 (FPS) 속도로 동영상을 이미지로 샘플링합니다. 최상의 추론 품질을 제공하기 위해 변경될 수 있습니다. 해상도 및 해상도에 상관없이 개별 이미지는 있습니다.
일반 텍스트 형식
File API는 다음 MIME 유형을 사용하는 일반 텍스트 파일의 업로드를 지원합니다.
- text/plain
- text/html
- text/css
- 텍스트/자바스크립트
- application/x-javascript
- text/x-typescript
- application/x-typescript
- text/csv
- 텍스트/마크다운
- text/x-python
- application/x-python-code
- application/json
- 텍스트/XML
- application/rtf
- 텍스트/rtf
MIME 유형이 목록에 없는 일반 텍스트 파일의 경우 위의 MIME 유형 중 하나를 수동으로 지정해야 합니다.
부록: Colab에 파일 업로드하기
이 노트북은 있습니다. Colab에서 실행 중이고 자체 파일을 사용하려면 먼저 Colab 인스턴스에 업로드해야 합니다
먼저 왼쪽 사이드바에서 파일을 클릭한 다음 업로드 버튼을 클릭합니다.
다음으로 이 파일을 File API에 업로드합니다. 코드 셀 양식에서 아래에 업로드한 파일의 이름을 입력하고 셀을 실행하면 됩니다.
my_filename = "gemini_logo.png" # @param {type:"string"}
my_file_display_name = "Gemini Logo" # @param {type:"string"}
my_file = genai.upload_file(path=my_filename,
display_name=my_file_display_name)
print(f"Uploaded file '{my_file.display_name}' as: {my_file.uri}")