Gemini : ガイド : メディアファイルを使用したプロンプティング
作成 : クラスキャット セールスインフォメーション
作成日時 : 04/18/2024
* 本ページは、ai.google.dev の以下のページを独自に翻訳して、適宜、補足説明したものです :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Website: www.classcat.com ; ClassCatJP
Gemini : ガイド : メディアファイルを使用したプロンプティング
Gemini API は、マルチモーダル・プロンプティングとも呼ばれる、テキスト、画像と音声データを使用したプロンプティングをサポートしています。テキスト、画像と音声をプロンプトに含めることができます。小さい画像については、プロンプトを供給するとき Gemini モデルに直接ローカルファイルをポイントさせることができます。より大きい画像、動画 (画像フレームのシークエンス) や音声については、それらをプロンプトに含める前にファイルを File API でアップロードします。
File API は、各ファイルがサイズ 2GB を超えない範囲で、プロジェクト毎に 20GB までファイルをストアすることが可能です。ファイルは 48 時間保存され、その時間内であれば生成のために API キーでアクセスできます。Gemini API が利用可能な すべてのリージョンで無料で利用可能です。
有効なファイル形式 (MIME タイプ) とサポートされるモデルの詳細は、Supported ファイル形式 をご覧ください。
⭐️ Note : Videos must be converted into image frames before uploading to the File API.
このガイドは、File API を使用してメディアファイルをアップロードしてそれを Gemini API への GenerateContent 呼び出しに含める方法を紹介します。詳細は、コードサンプル をご覧ください。
セットアップ
File API を使用する前に、Gemini API SDK パッケージをインストールして API キーを設定する必要があります。このセクションはこれらのセットアップ・ステップを完了する方法を説明します。
Python SDK をインストールしてパッケージをインポートする
Gemini API 用 Python SDK は google-generativeai パッケージに含まれます。pip を使用して依存関係をインストールします。
pip install -q -U google-generativeai
必要なパッケージをインポートします。
import google.generativeai as genai
from IPython.display import Markdown
API キーのセットアップ
File API は認証とアクセスに API キーを使用します。アップロードされたファイルは API キーにリンクされたプロジェクトに関連付けられます。API キーを使用する他の Gemini API とは異なり、API キーは File API にアップロードしたデータへのアクセスもまた許可しますので、API キーを安全に保つことに特に注意してください。キーを安全に保つことの詳細は、API キーを使用するためのベストプラクティス をご覧ください。
API キーは GOOGLE_API_KEY という名前の Colab Secret にストアしてください。まだ API キーを持っていないか、Colab Secret に馴染みがないのであれば、認証クイックスタート を参照してください。
from google.colab import userdata
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
ファイルを File API にアップロードする
File API は、画像と音声形式を含む、様々なマルチモーダル MIME タイプをアップロードすることを可能にします。File API は model.generateContent や model.streamGenerateContent を使用してコンテンツを生成するために使用できる入力を処理します。
File API はサイズ 2GB 未満のファイルを受け取り、プロジェクト毎に 20GB のファイルまでストアすることができます。ファイルは 2 日間存在し、API からはダウンロードできません。
最初に、API にアップロードするためのサンプル画像を準備します。
独自のファイルをアップロードするためには、Appendix セクション をご覧ください。
curl -o image.jpg https://storage.googleapis.com/generativeai-downloads/images/jetpack.jpg
次に、そのファイルを File 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 は、File API がアップロードされたファイルに対して特定の display_name と Gemini API 呼び出しでファイルを参照するための uri をストアしたことを示しています。アップロードされたファイルがどのように URI にマップされたかを追跡するには response を使用します。
ユースケースに依存して、URI を辞書やデータベースのような構造にストアできるでしょう。
ファイルの取得
ファイルをアップロードした後、files.get を呼び出して API がファイルを正常に受け取ったことを検証できます。
API キーが属するクラウド・プロジェクトに関連付けられた、File API にアップロードされたファイル・メタデータを得ることを可能にします。name (そしてその延長線上で uri) だけが一意です。一意性を独自に管理する場合、ファイルを識別するのに displayName だけを使用してください。
file = genai.get_file(name=sample_file.name)
print(f"Retrieved file '{file.display_name}' as: {sample_file.uri}")
コンテンツの生成
ファイルのアップロード後、GenerateContent リクエストを行なうことができます、これは File API URI を参照します。この例では、テキストで始まり、アップロードされた画像が続くプロンプトを作成します。
# Set the model to Gemini 1.5 Pro.
model = genai.GenerativeModel(model_name="models/gemini-1.5-pro-latest")
response = model.generate_content(["Describe the image with a creative description.", sample_file])
Markdown(">" + response.text)
ファイルの削除
ファイルは 2 日後に自動的に削除されます。files.delete() を使用して手動で削除することもできます。
genai.delete_file(sample_file.name)
print(f'Deleted {sample_file.display_name}.')
サポートされるファイル形式
Gemini モデルは複数のファイル形式を使用したプロンプティングをサポートします。このセクションは、プロンプティング、特に画像、音声と動画ファイルについての一般的なメディア形式を使用する際の考慮事項を説明します。次のテーブルで示されるように、特定のモデルバージョンを使用してのみプロンプティングのためにメディアファイルを使用できます。
画像形式
gemini-pro-vision と gemini-1.5-pro モデルを使用してプロンプティングのために画像を使用できます。
(訳註: 詳細は 原文 参照。)
音声形式
gemini-1.5-pro モデルを使用してプロンプティングのために音声データを使用できます。
(訳註: 詳細は 原文 参照。)
動画形式
gemini-1.5-pro モデルを使用してプロンプティングのために動画データを使用できます。ただし、動画ファイル形式は Gemini API による直接的な入力としてはサポートされません。動画を一連の静止フレーム画像と分離された音声ファイルへと分解することにより、動画データをプロンプト入力として使用できます。このアプローチは、動画ファイルから毎秒何フレームがプロンプトに含まれるかを選択することにより、データの総量、動画により提供される詳細なレベルを管理することができます。
⭐️ Note: 構成要素 – 音声ファイルと画像フレームとしてプロンプトに追加された動画ファイルは、モデルにより個別のプロンプトデータ入力としてみなされます。この理由で、音声スニペットと動画フレームの両方がソース動画で現れる時間を指定するリクエストや質問は役立つ結果を生成しない可能性があります。
以上