![見出し画像](https://assets.st-note.com/production/uploads/images/136917562/rectangle_large_type_2_49eb8836ff41ea537c2e6b83513c39a8.png?width=800)
Gemini API の File API を試す
「Gemini API」の「File API」を試したので、まとめました。
1. Gemini API の File API
「Gemini API」は、マルチモーダルプロンプトとも呼ばれる「テキスト」「画像」「音声」によるプロンプトをサポートしています。 小さい画像をプロンプトに含める場合は、ローカルファイルを直接指定できますが、 大きな画像、動画 (画像フレーム)、音声は、「File API」でファイルをアップロードする必要があります。
「File API」は、プロジェクトごとに最大20GBのファイルを保持できます。各ファイルのサイズは最大2GBで、48時間保存され、その期間内に利用できます。「Gemini API」が利用可能なすべてのリージョンで無料で利用できます。
2. サポートしているファイル形式
「Gemini」でサポートしているファイル形式は、次のとおりです。
2-1. 画像フォーマット
「gemini-pro-vision」「gemini-1.5-pro」はプロンプトに画像を使用できます。
・MIMEタイプの制限
・PNG - image/png
・JPEG - image/jpeg
・WEBP - image/webp
・HEIC - image/heic
・HEIF - image/heif
・1プロンプトで利用可能な画像枚数は、「gemini-pro-vision」は16枚、「gemini-1.5-pro」は3600枚。
・画像内のピクセル数に特別な制限はない。ただし、大きな画像は、元のアスペクト比を維持しながら、最大解像度 3072 x 3072 に収まるように縮小される。
2-2. 音声フォーマット
「gemini-1.5-pro」では、音声をプロンプトに使用できます。
・MIMEタイプの制限
・WAV - audio/wav
・MP3 - audio/mp3
・AIFF - audio/aiff
・AAC - audio/aac
・OGG Vorbis - audio/ogg
・FLAC - audio/flac
・1プロンプトでの音声データの最大長は 9.5 時間。
・1プロンプト内の音声ファイルの数には制限ない。
・音声ファイルは16Kbpsのデータ解像度までリサンプリングされ、複数のオーディオ チャネルは1チャネルに結合される。
2-3. 動画フォーマット
「gemini-1.5-pro」では、動画をプロンプトに使用できます。
・動画を一連の静止画フレームと個別の音声ファイルに分割して使用。1秒あたり何フレームにするかで、データ量と詳細レベルを調整。
![](https://assets.st-note.com/img/1712817043623-srzPTEk2lE.png?width=800)
3. Colabでの実行
Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
# パッケージのインストール
!pip install -U -q google-generativeai
(2) 「Google AI Studio」でAPIキーを取得し、シークレットの「GOOGLE_API_KEY」に登録後、以下のセルを実行。
![](https://assets.st-note.com/img/1712816461888-NKKZlhTfea.png?width=800)
from google.colab import userdata
import google.generativeai as genai
# 環境変数の準備 (左端の鍵アイコンでGOOGLE_API_KEYを設定)
GOOGLE_API_KEY=userdata.get("GOOGLE_API_KEY")
genai.configure(api_key=GOOGLE_API_KEY)
(3) 画像の準備。
アップロードする画像を準備します。
from IPython.display import Image
# 画像の準備
!curl -o image.png https://assets.st-note.com/img/1711277133772-9Swt3dRVqp.png
Image(filename='image.png')
![](https://assets.st-note.com/img/1712816517518-usYIzxfnhP.png)
(4) ファイルをアップロード。
# ファイルのアップロード
file = genai.upload_file(
path="image.png",
display_name="cat"
)
# 確認
print("name:", file.name)
print("display_name:", file.display_name)
print("uri:", file.uri)
name: files/xxxxxxxxxxxx
display_name: cat
uri: https://generativelanguage.googleapis.com/v1beta/files/xxxxxxxxxxxx
(5) 推論の実行。
# モデルの準備
model = genai.GenerativeModel(model_name="models/gemini-1.5-pro-latest")
# 推論の実行
response = model.generate_content(
[
"これは何の画像ですか?",
file
]
)
print(response.text)
これは、Nintendo Switchのコントローラーの隣に横たわっている白黒の猫の画像です。猫はキャノンのプリンターの上に横たわっています。背景にはシャープのテレビが見えます。
(6) ファイルの削除 。
削除しなくても48時間後に自動的に削除されます。
# ファイルの削除
genai.delete_file(file.name)
この記事が気に入ったらサポートをしてみませんか?