見出し画像

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秒あたり何フレームにするかで、データ量と詳細レベルを調整。

3. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) パッケージのインストール。

# パッケージのインストール
!pip install -U -q google-generativeai

(2) 「Google AI Studio」でAPIキーを取得し、シークレットの「GOOGLE_API_KEY」に登録後、以下のセルを実行。

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')

(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)



この記事が気に入ったらサポートをしてみませんか?