サポートされているモデル
次の表に、動画理解をサポートするモデルを示します。
モデル | 動画モダリティの詳細 |
---|---|
Gemini 1.5 Flash Gemini 1.5 Flash モデルカードに移動する |
動画の長さの上限:
プロンプトあたりの動画の最大数: 10 |
Gemini 1.5 Pro Gemini 1.5 Pro モデルカードに移動する |
動画の長さの上限:
プロンプトあたりの動画の最大数: 10 |
Gemini 1.0 Pro Vision Gemini 1.0 Pro Vision モデルカードに移動する |
動画の長さの上限: 2 分 プロンプトあたりの動画の最大数: 1 動画内の音声は無視されます。 |
Gemini モデルでサポートされている言語の一覧については、モデル情報の Google モデルをご覧ください。マルチモーダル プロンプトの設計方法について詳しくは、マルチモーダル プロンプトを設計するをご覧ください。モバイルアプリやウェブアプリから Gemini を直接使用することをお考えの場合は、Android、Swift、ウェブ、Flutter アプリの Vertex AI in Firebase SDK をご覧ください。
リクエストに動画を追加する
Gemini へのリクエストに 1 つまたは複数の動画を追加できます。動画には音声を含めることができます。
単一の動画
次の各タブのサンプルコードでは、動画に含まれているものを識別するさまざまな方法を示します。このサンプルは、すべての Gemini マルチモーダル モデルで動作します。
Python
Vertex AI SDK for Python のインストールまたは更新方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Vertex AI SDK for Python API リファレンス ドキュメントをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、generate_content
で stream
パラメータを使用します。
response = model.generate_content(contents=[...], stream = True)
非ストリーミング レスポンスの場合は、パラメータを削除するか、パラメータを False
に設定します。
サンプルコード
Java
このサンプルを試す前に、Vertex AI クイックスタートの Java の設定手順従って設定を行ってください。詳細については、Gemini 用の Vertex AI Java SDK のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、generateContentStream
メソッドを使用します。
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
非ストリーミング レスポンスの場合は、generateContent
メソッドを使用します。
public GenerateContentResponse generateContent(Content content)
サンプルコード
Node.js
このサンプルを試す前に、Node.js SDK を使用した生成 AI クイックスタートの Node.js の設定手順を行ってください。詳細については、Node.js SDK for Gemini リファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、generateContentStream
メソッドを使用します。
const streamingResp = await generativeModel.generateContentStream(request);
非ストリーミング レスポンスの場合は、generateContent
メソッドを使用します。
const streamingResp = await generativeModel.generateContent(request);
サンプルコード
Go
このサンプルを試す前に、Vertex AI クイックスタートの Go の設定手順を実施してください。詳細については、Gemini 向け Vertex AI Go SDK のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、GenerateContentStream
メソッドを使用します。
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
非ストリーミング レスポンスの場合は、GenerateContent
メソッドを使用します。
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
サンプルコード
C#
このサンプルを試す前に、Vertex AI クイックスタートの C# の設定手順を実施してください。詳細については、Vertex AI C# のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、StreamGenerateContent
メソッドを使用します。
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
非ストリーミング レスポンスの場合は、GenerateContentAsync
メソッドを使用します。
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
サーバーがレスポンスをストリーミングする方法の詳細については、ストリーミング RPC をご覧ください。
サンプルコード
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
LOCATION
: リクエストを処理するリージョン。サポートされているリージョンを入力します。サポートされているリージョンの一覧については、利用可能なロケーションをご覧ください。クリックして、利用可能なリージョンの一部を開く
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: 実際のプロジェクト ID。FILE_URI
: プロンプトに含めるファイルの URI または URL。有効な値は次のとおりです。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
gemini-1.5-pro
とgemini-1.5-flash
の場合、サイズの上限は 2 GB です。gemini-1.0-pro-vision
の場合、サイズの上限は 20 MB です。 - HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイル、1 つの音声ファイル、最大 10 個の画像ファイルを指定できます。音声ファイル、動画ファイル、ドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。Cloud Storage に動画ファイルがない場合は、次の一般公開ファイル(MIME タイプが
video/mp4
のgs://cloud-samples-data/video/animals.mp4
)を使用できます。この動画を表示するには、サンプルの MP4 ファイルを開きます。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
MIME_TYPE
:data
フィールドまたはfileUri
フィールドで指定されたファイルのメディアタイプ。指定できる値は次のとおりです。クリックして MIME タイプを開く
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: プロンプトに含める指示のテキスト。例:What is in the video?
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
このサンプルの URL にある次の点に注意してください。generateContent
メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent
メソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-1.5-flash
、gemini-1.0-pro-vision
)。このサンプルでは、他のモデルもサポートされている場合があります。
コンソール
Google Cloud コンソールを使用してマルチモーダル プロンプトを送信する手順は次のとおりです。Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
[自由形式を開く] をクリックします。
省略可: モデルとパラメータを構成します。
- Model: モデルを選択します。
- リージョン: 使用するリージョンを選択します。
温度: スライダーまたはテキスト ボックスを使用して、温度の値を入力します。
温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、
topP
とtopK
が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が0
の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック(代替)レスポンスが返ってきたりする場合は、Temperature を高くしてみてください。
出力トークンの上限: スライダーまたはテキスト ボックスを使用して、最大出力の上限値を入力します。
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。
レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
停止シーケンスを追加: 省略可。停止シーケンスを入力します。これはスペースを含む文字列です。モデルが停止シーケンスに遭遇すると、レスポンスの生成が停止します。停止シーケンスはレスポンスには含まれません。停止シーケンスは 5 つまで追加できます。
省略可: 詳細パラメータを構成するには、[詳細] をクリックして、次のように構成します。
クリックして詳細構成を開く
トップ K: スライダーまたはテキスト ボックスを使用して、トップ K の値を入力します。(Gemini 1.5 ではサポートされていません)。
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
- トップ P: スライダーまたはテキスト ボックスを使用して、トップ P の値を入力します。確率の合計が Top-P の値と等しくなるまで、最も確率が高いものから最も確率が低いものの順に、トークンが選択されます。結果を最小にするには、Top-P を
0
に設定します。 - 最大レスポンス数: スライダーまたはテキスト ボックスを使用して、生成するレスポンスを入力します。
- レスポンスのストリーミング: 有効にすると、レスポンスが生成されたときに出力されます。
- 安全フィルタのしきい値: 有害な可能性があるレスポンスが表示される可能性のしきい値を選択します。
- 根拠づけを有効にする: マルチモーダル プロンプトではグラウンドはサポートされていません。
[メディアを挿入] をクリックし、ファイルのソースを選択します。
不足している dSYM をアップロードしてください。
アップロードするファイルを選択し、[開く] をクリックします。
URL
使用するファイルの URL を入力し、[挿入] をクリックします。
YouTube
使用する YouTube 動画の URL を入力し、[挿入] をクリックします。
公開されている動画、または Google Cloud コンソールのログインに使用したアカウントが所有する動画を使用できます。
Cloud Storage
バケットを選択し、バケットからインポートするファイルを選択し、[選択] をクリックします。
Google ドライブ
- このオプションを初めて選択するときに、アカウントを選択して Vertex AI Studio がアカウントにアクセスできるように同意します。合計サイズが最大 10 MB の複数のファイルをアップロードできます。1 つのファイルのサイズは 7 MB を超えないようにしてください。
- 追加するファイルをクリックします。
[選択] をクリックします。
ファイルのサムネイルが [プロンプト] ペインに表示されます。トークンの合計数も表示されます。プロンプト データがトークンの上限を超えると、トークンは切り捨てられ、データの処理には含まれません。
[プロンプト] ペインにテキスト プロンプトを入力します。
省略可: [トークン ID からテキスト] と [トークン ID] を表示するには、[プロンプト] ペインで [トークン数] をクリックします。
[送信] をクリックします。
省略可: プロンプトを [マイプロンプト] に保存するには、[
保存] をクリックします。省略可: プロンプトの Python コードまたは curl コマンドを取得するには、[
コードを取得] をクリックします。
音声付きの動画
以下は、音声を含む動画ファイルを要約し、タイムスタンプ付きのチャプターを返す方法を示しています。このサンプルは、Gemini 1.5 Pro でのみ動作します。
Python
Vertex AI SDK for Python のインストールまたは更新方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Vertex AI SDK for Python API リファレンス ドキュメントをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、generate_content
で stream
パラメータを使用します。
response = model.generate_content(contents=[...], stream = True)
非ストリーミング レスポンスの場合は、パラメータを削除するか、パラメータを False
に設定します。
サンプルコード
Java
このサンプルを試す前に、Vertex AI クイックスタートの Java の設定手順従って設定を行ってください。詳細については、Gemini 用の Vertex AI Java SDK のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、generateContentStream
メソッドを使用します。
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
非ストリーミング レスポンスの場合は、generateContent
メソッドを使用します。
public GenerateContentResponse generateContent(Content content)
サンプルコード
Node.js
このサンプルを試す前に、Node.js SDK を使用した生成 AI クイックスタートの Node.js の設定手順を行ってください。詳細については、Node.js SDK for Gemini リファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、generateContentStream
メソッドを使用します。
const streamingResp = await generativeModel.generateContentStream(request);
非ストリーミング レスポンスの場合は、generateContent
メソッドを使用します。
const streamingResp = await generativeModel.generateContent(request);
サンプルコード
Go
このサンプルを試す前に、Vertex AI クイックスタートの Go の設定手順を実施してください。詳細については、Gemini 向け Vertex AI Go SDK のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、GenerateContentStream
メソッドを使用します。
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
非ストリーミング レスポンスの場合は、GenerateContent
メソッドを使用します。
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
サンプルコード
C#
このサンプルを試す前に、Vertex AI クイックスタートの C# の設定手順を実施してください。詳細については、Vertex AI C# のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するのか、非ストリーミング レスポンスを生成するのかについては、選択が可能です。ストリーミング レスポンスの場合、出力トークンが生成されるとすぐに各レスポンスが返されます。非ストリーミング レスポンスの場合、すべての出力トークンが生成された後にすべてのレスポンスが返されます。
ストリーミング レスポンスの場合は、StreamGenerateContent
メソッドを使用します。
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
非ストリーミング レスポンスの場合は、GenerateContentAsync
メソッドを使用します。
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
サーバーがレスポンスをストリーミングする方法の詳細については、ストリーミング RPC をご覧ください。
サンプルコード
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
LOCATION
: リクエストを処理するリージョン。サポートされているリージョンを入力します。サポートされているリージョンの一覧については、利用可能なロケーションをご覧ください。クリックして、利用可能なリージョンの一部を開く
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: 実際のプロジェクト ID。FILE_URI
: プロンプトに含めるファイルの URI または URL。有効な値は次のとおりです。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
gemini-1.5-pro
とgemini-1.5-flash
の場合、サイズの上限は 2 GB です。gemini-1.0-pro-vision
の場合、サイズの上限は 20 MB です。 - HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイル、1 つの音声ファイル、最大 10 個の画像ファイルを指定できます。音声ファイル、動画ファイル、ドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。Cloud Storage に動画ファイルがない場合は、次の一般公開ファイル(MIME タイプが
video/mp4
のgs://cloud-samples-data/generative-ai/video/pixel8.mp4
)を使用できます。この動画を表示するには、サンプルの MP4 ファイルを開きます。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
MIME_TYPE
:data
フィールドまたはfileUri
フィールドで指定されたファイルのメディアタイプ。指定できる値は次のとおりです。クリックして MIME タイプを開く
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
プロンプトに含める指示のテキスト。例:TEXT
Provide a description of the video. The description should also contain anything important which people say in the video.
。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
このサンプルの URL にある次の点に注意してください。generateContent
メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent
メソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-1.5-flash
、gemini-1.0-pro-vision
)。このサンプルでは、他のモデルもサポートされている場合があります。
コンソール
Google Cloud コンソールを使用してマルチモーダル プロンプトを送信する手順は次のとおりです。Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
[自由形式を開く] をクリックします。
省略可: モデルとパラメータを構成します。
- Model: モデルを選択します。
- リージョン: 使用するリージョンを選択します。
温度: スライダーまたはテキスト ボックスを使用して、温度の値を入力します。
温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、
topP
とtopK
が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が0
の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック(代替)レスポンスが返ってきたりする場合は、Temperature を高くしてみてください。
出力トークンの上限: スライダーまたはテキスト ボックスを使用して、最大出力の上限値を入力します。
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。
レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
停止シーケンスを追加: 省略可。停止シーケンスを入力します。これはスペースを含む文字列です。モデルが停止シーケンスに遭遇すると、レスポンスの生成が停止します。停止シーケンスはレスポンスには含まれません。停止シーケンスは 5 つまで追加できます。
省略可: 詳細パラメータを構成するには、[詳細] をクリックして、次のように構成します。
クリックして詳細構成を開く
トップ K: スライダーまたはテキスト ボックスを使用して、トップ K の値を入力します。(Gemini 1.5 ではサポートされていません)。
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
- トップ P: スライダーまたはテキスト ボックスを使用して、トップ P の値を入力します。確率の合計が Top-P の値と等しくなるまで、最も確率が高いものから最も確率が低いものの順に、トークンが選択されます。結果を最小にするには、Top-P を
0
に設定します。 - 最大レスポンス数: スライダーまたはテキスト ボックスを使用して、生成するレスポンスを入力します。
- レスポンスのストリーミング: 有効にすると、レスポンスが生成されたときに出力されます。
- 安全フィルタのしきい値: 有害な可能性があるレスポンスが表示される可能性のしきい値を選択します。
- 根拠づけを有効にする: マルチモーダル プロンプトではグラウンドはサポートされていません。
[メディアを挿入] をクリックし、ファイルのソースを選択します。
不足している dSYM をアップロードしてください。
アップロードするファイルを選択し、[開く] をクリックします。
URL
使用するファイルの URL を入力し、[挿入] をクリックします。
YouTube
使用する YouTube 動画の URL を入力し、[挿入] をクリックします。
公開されている動画、または Google Cloud コンソールのログインに使用したアカウントが所有する動画を使用できます。
Cloud Storage
バケットを選択し、バケットからインポートするファイルを選択し、[選択] をクリックします。
Google ドライブ
- このオプションを初めて選択するときに、アカウントを選択して Vertex AI Studio がアカウントにアクセスできるように同意します。合計サイズが最大 10 MB の複数のファイルをアップロードできます。1 つのファイルのサイズは 7 MB を超えないようにしてください。
- 追加するファイルをクリックします。
[選択] をクリックします。
ファイルのサムネイルが [プロンプト] ペインに表示されます。トークンの合計数も表示されます。プロンプト データがトークンの上限を超えると、トークンは切り捨てられ、データの処理には含まれません。
[プロンプト] ペインにテキスト プロンプトを入力します。
省略可: [トークン ID からテキスト] と [トークン ID] を表示するには、[プロンプト] ペインで [トークン数] をクリックします。
[送信] をクリックします。
省略可: プロンプトを [マイプロンプト] に保存するには、[
保存] をクリックします。省略可: プロンプトの Python コードまたは curl コマンドを取得するには、[
コードを取得] をクリックします。
オプションのモデル パラメータを設定する
各モデルには、設定できる一連のオプション パラメータがあります。詳細については、コンテンツ生成パラメータをご覧ください。
動画の要件
Gemini マルチモーダル モデルは、次の動画 MIME タイプをサポートしています。
動画の MIME タイプ | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
FLV - video/x-flv |
|||
MOV - video/quicktime |
|||
MPEG - video/mpeg |
|||
MPEGPS - video/mpegps |
|||
MPG - video/mpg |
|||
MP4 - video/mp4 |
|||
WEBM - video/webm |
|||
WMV - video/wmv |
|||
3GPP - video/3gpp |
プロンプト リクエストで許可される動画ファイルの最大数は次のとおりです。
- Gemini 1.0 Pro Vision: 1 個の動画ファイル
- Gemini 1.5 Flash と Gemini 1.5 Pro: 10 個の動画ファイル
動画のトークンの計算方法は次のとおりです。
- すべての Gemini マルチモーダル モデル: 動画は
1 秒あたり 1 フレーム(fps) でサンプリングされます。動画フレームごとに 258 個のトークンが使用されます。 - Gemini 1.5 Flash と Gemini 1.5 Pro: オーディオ トラックは動画フレームでエンコードされます。また、オーディオ トラックは
1 秒のトランク に分割されます。トランクはそれぞれ 32 個のトークンから構成されます。動画フレームと音声トークンは、タイムスタンプとともにインターリーブされます。タイムスタンプは 7 個のトークンで表されます。
ベスト プラクティス
動画を使用する場合は、最良の結果を得るために、次のベスト プラクティスと情報を使用してください。
- プロンプトに 1 つの動画が含まれている場合は、テキスト プロンプトの前に動画を配置します。
- 音声付き動画のタイムスタンプのローカライズが必要な場合は、モデルに
MM:SS
形式のタイムスタンプを生成させます。最初の 2 桁が分、最後の 2 桁が秒を表します。タイムスタンプに関する質問にも同じ形式を使用します。 Gemini 1.0 Pro Vision を使用している場合は、次の点に注意してください。
- 1 つのプロンプトに複数の動画を使用しないことをおすすめします。
- モデルは、動画の最初の 2 分間の情報のみを処理します。
- このモデルは、動画を、動画の非連続な画像フレームとして処理します。音声は含まれません。モデルで動画の一部のコンテンツが欠落している場合は、動画を短くして、モデルが動画コンテンツの大部分をキャプチャできるようにします。
- モデルは、音声情報やタイムスタンプ メタデータを処理しません。このため、字幕読み上げ音声や時間関連の情報(スピードやリズムなど)など、音声入力が必要なユースケースでは、モデルが適切に機能しない場合があります。
制限事項
Gemini マルチモーダル モデルは多くのマルチモーダル ユースケースに対応していますが、モデルの制限事項も理解しておく必要があります。
- コンテンツの管理: Google の安全に関するポリシーに違反する動画に対する回答は拒否されます。
- 非音声の認識: 音声をサポートするモデルでは、音声以外の音を認識する際に誤りが発生する可能性があります。
- 高速モーション: サンプリング レートが
1 秒あたり 1 フレーム(fps) に固定されているため、動画内の高速モーションを認識する際に誤りが発生する可能性があります。 - 音声文字変換の句読点:(Gemini 1.5 Flash を使用している場合) モデルから返される音声文字変換に句読点が含まれない場合があります。
次のステップ
- Gemini マルチモーダル モデルで構築を開始する - 新規のお客様は Google Cloud クレジット $300 分を無料で利用して、Gemini の機能を試すことが可能です。
- チャット プロンプト リクエストの送信方法を学習する。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについて学習する。