Send requests to the Vertex AI API for Gemini

Send requests to the Gemini API in Vertex AI by using a programming language SDK or the REST API to begin building your generative AI application on Google Cloud.

Create a Google Cloud account to get started

In order to try this quickstart, you'll need to create a Google Cloud account. With this account, you'll get $300 in free credit, plus free usage of over 20 products— not charged against your $300 credit.

Get started for free

For more information on getting set up on Google Cloud after your account is created, see Get set up on Google Cloud.

Set up your environment

To set up your local environment for sending a request to the Vertex AI Gemini API, select one of the following tabs:

Python

  1. Select a Google Cloud project by doing the following:
    1. In the Google Cloud console, go to the Dashboard page.

      Go to the Dashboard page

    2. Click the project selection list at the top of the page. In the Select a resource window that appears, select a project.

    3. Note the project ID displayed in the Project info section. You need the project ID for subsequent steps.
  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. In Cloud Shell, install or update the Vertex AI SDK for Python by running the following command:

    pip3 install "google-cloud-aiplatform>=1.38"
    

Optional: If you are using Cloud Shell and you are asked to authorize Cloud Shell, click Authorize.

For more information about installing, updating, and using the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python and Vertex AI SDK for Python API reference documentation.

Node.js

  1. Select a Google Cloud project by doing the following:
    1. In the Google Cloud console, go to the Dashboard page.

      Go to the Dashboard page

    2. Click the project selection list at the top of the page. In the Select a resource window that appears, select a project.

    3. Note the project ID displayed in the Project info section. You need the project ID for subsequent steps.
  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. In Cloud Shell, install or update the Vertex AI SDK for Node.js by running the following command:

    npm install @google-cloud/vertexai
    

For more information about installing and using the Vertex AI Node.js SDK, see the Vertex AI SDK for Node.js reference documentation.

Java

  1. Select a Google Cloud project by doing the following:

    1. In the Google Cloud console, go to the Dashboard page.

      Go to the Dashboard page

    2. Click the project selection list at the top of the page. In the Select a resource window that appears, select a project.

    3. Note the project ID displayed in the Project info section. You need the project ID for subsequent steps.

  2. Set up your Java Development Environment.

  3. Authenticate by running the following command. Replace PROJECT_ID with your Google Cloud project ID and ACCOUNT with your Google Cloud username.

    gcloud config set project PROJECT_ID &&
    gcloud auth login ACCOUNT
    
  4. Add google-cloud-vertexai as your dependency.

    To add a dependency, open your project's POM file and add the following code.

    <!--If you are using Maven with BOM, add the following in your pom.xml-->
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>26.32.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-vertexai</artifactId>
      </dependency>
    </dependencies>
    
    <!--If you are using Maven without BOM, add the following to your pom.xml-->
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-vertexai</artifactId>
      <version>0.4.0</version>
    </dependency>
    
    <!--If you are using Gradle without BOM, add the following to your build.gradle-->
    implementation 'com.google.cloud:google-cloud-vertexai:0.4.0'
    

For more information about installing and using the Vertex AI Java Development Kit (JDK), see the Vertex AI JDK reference documentation.

Go

  1. Select a Google Cloud project by doing the following:
    1. In the Google Cloud console, go to the Dashboard page.

      Go to the Dashboard page

    2. Click the project selection list at the top of the page. In the Select a resource window that appears, select a project.

    3. Note the project ID displayed in the Project info section. You need the project ID for subsequent steps.
  2. Prepare your environment for Go development.
  3. Review the available Vertex AI API Go packages to determine which package best meets your project's needs:

    • Package cloud.google.com/go/vertexai (recommended)

      vertexai is a human authored package that provides access to common capabilities and features.

      This package is recommended as the starting point for most developers building with the Vertex AI API. To access capabilities and features not yet covered by this package, use the auto-generated aiplatform instead.

    • Package cloud.google.com/go/aiplatform

      aiplatform is an auto-generated package.

      This package is intended for projects that require access to Vertex AI API capabilities and features not yet provided by the human authored vertexai package.

  4. Install the desired Go package based on your project's needs by running one of the following commands:

    # Human authored package. Recommended for most developers.
    go get cloud.google.com/go/vertexai
    
    # Auto-generated package. go get cloud.google.com/go/aiplatform

For more information about installing and using the Vertex AI SDK for Go, see the Vertex AI SDK for Go reference documentation.

C#

Before trying this sample, follow the C# setup instructions in the Vertex AI quickstart using client libraries. For more information, see the Vertex AI C# API reference documentation.

  1. Select a Google Cloud project by doing the following:

    1. In the Google Cloud console, go to the Dashboard page.

      Go to the Dashboard page

    2. Click the project selection list at the top of the page. In the Select a resource window that appears, select a project.

    3. Note the project ID displayed in the Project info section. You need the project ID for subsequent steps.

  2. Authenticate to Vertex AI by setting up Application Default Credentials. For more information, see Set up authentication for a local development environment.

For more information about installing and using the Vertex AI SDK for C#, see the Vertex AI SDK for C# reference documentation.

REST

  1. Select a Google Cloud project by doing the following:
    1. In the Google Cloud console, go to the Dashboard page.

      Go to the Dashboard page

    2. Click the project selection list at the top of the page. In the Select a resource window that appears, select a project.

    3. Note the project ID displayed in the Project info section. You need the project ID for subsequent steps.
  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Configure environment variables by entering the following. Replace PROJECT_ID with the ID of your Google Cloud project.
    MODEL_ID="gemini-1.0-pro-vision"
    PROJECT_ID="PROJECT_ID"
    
  4. Provision the endpoint:
    gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_ID
    

    Optional: If you are using Cloud Shell and you are asked to authorize Cloud Shell, click Authorize.

Send a text-only request

After you set up your local environment, send a text-only request to the Vertex AI Gemini API. The following sample returns a list of possible names for a specialty flower store.

REST

You can send this prompt request from Cloud Shell, the command line, or in an IDE, or you can embed the REST call into your application where appropriate.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent -d \
$'{
  "contents": {
    "role": "user",
    "parts": [
      {
        "text": "What\'s a good name for a flower shop that specializes in selling bouquets of dried flowers?"
      }
    ]
  }
}'

The model returns a response. Note that the response is generated in sections with each section separately evaluated for safety.

For more information, see the Generative AI REST and RPC reference documentation.

Send a request that includes an image

After you set up your local environment, send a request that includes text and an image to the Vertex AI Gemini API. The following sample returns a description of the provided image (image for Java sample).

Python

To send a prompt request, create a Python file (.py) and copy the following code into the file. Replace PROJECT_ID with the ID of your Google Cloud project. Then, run the Python file from the command line or in an IDE, or embed the code into your application where appropriate.

import vertexai

from vertexai.generative_models import GenerativeModel, Part

# TODO(developer): Update and un-comment below line
# project_id = "PROJECT_ID"

vertexai.init(project=project_id, location="us-central1")

model = GenerativeModel(model_name="gemini-1.0-pro-vision-001")

response = model.generate_content(
    [
        Part.from_uri(
            "gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
        "What is shown in this image?",
    ]
)

print(response.text)

Optional: If you are using Cloud Shell and you are asked to authorize Cloud Shell, click Authorize.

For more information about installing, updating, and using the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python and Vertex AI SDK for Python API reference documentation.

Node.js

To send a prompt request, create a Node.js file (.js) and copy the following code into the file. Replace PROJECT_ID with the ID of your Google Cloud project. After, run the Javascript file from the command line or in an IDE, or embed the code into your application where appropriate.

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function createNonStreamingMultipartContent(
  projectId = 'PROJECT_ID',
  location = 'us-central1',
  model = 'gemini-1.0-pro-vision-001',
  image = 'gs://generativeai-downloads/images/scones.jpg',
  mimeType = 'image/jpeg'
) {
  // Initialize Vertex with your Cloud project and location
  const vertexAI = new VertexAI({project: projectId, location: location});

  // Instantiate the model
  const generativeVisionModel = vertexAI.getGenerativeModel({
    model: model,
  });

  // For images, the SDK supports both Google Cloud Storage URI and base64 strings
  const filePart = {
    fileData: {
      fileUri: image,
      mimeType: mimeType,
    },
  };

  const textPart = {
    text: 'what is shown in this image?',
  };

  const request = {
    contents: [{role: 'user', parts: [filePart, textPart]}],
  };

  console.log('Prompt Text:');
  console.log(request.contents[0].parts[1].text);

  console.log('Non-Streaming Response Text:');
  // Create the response stream
  const responseStream =
    await generativeVisionModel.generateContentStream(request);

  // Wait for the response stream to complete
  const aggregatedResponse = await responseStream.response;

  // Select the text from the response
  const fullTextResponse =
    aggregatedResponse.candidates[0].content.parts[0].text;

  console.log(fullTextResponse);
}

For more information about installing and using the Vertex AI Node.js SDK, see the Vertex AI SDK for Node.js reference documentation.

Java

To send a prompt request, create a Java file (.java) and copy the following code into the file. Set your-google-cloud-project-id to your Google Cloud project ID. After, run the Java file from the command line or in an IDE, or embed the code into your application where appropriate.

import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.api.GenerateContentResponse;
import com.google.cloud.vertexai.generativeai.ContentMaker;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.PartMaker;
import java.io.IOException;

public class Quickstart {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.0-pro-vision-001";

    String output = quickstart(projectId, location, modelName);
    System.out.println(output);
  }

  // Analyzes the provided Multimodal input.
  public static String quickstart(String projectId, String location, String modelName)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs
    // to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      String imageUri = "gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png";

      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      GenerateContentResponse response = model.generateContent(ContentMaker.fromMultiModalData(
          PartMaker.fromMimeTypeAndData("image/png", imageUri),
          "What's in this photo"
      ));

      return response.toString();
    }
  }
}

For more information about installing and using the Vertex AI Java Development Kit (JDK), see the Vertex AI JDK reference documentation.

Go

To send a prompt request, create a Go file (.go) and copy the following code into the file. Replace projectID with the ID of your Google Cloud project. After, run the Go file from the command line or in an IDE, or embed the code into your application where appropriate.

import (
	"context"
	"encoding/json"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
)

func tryGemini(w io.Writer, projectID string, location string, modelName string) error {
	// location := "us-central1"
	// modelName := "gemini-1.0-pro-vision-001"

	ctx := context.Background()
	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("error creating client: %w", err)
	}
	gemini := client.GenerativeModel(modelName)

	img := genai.FileData{
		MIMEType: "image/jpeg",
		FileURI:  "gs://generativeai-downloads/images/scones.jpg",
	}
	prompt := genai.Text("What is in this image?")

	resp, err := gemini.GenerateContent(ctx, img, prompt)
	if err != nil {
		return fmt.Errorf("error generating content: %w", err)
	}
	rb, err := json.MarshalIndent(resp, "", "  ")
	if err != nil {
		return fmt.Errorf("json.MarshalIndent: %w", err)
	}
	fmt.Fprintln(w, string(rb))
	return nil
}

For more information about installing and using the Vertex AI SDK for Go, see the Vertex AI SDK for Go reference documentation.

C#

To send a prompt request, create a C# file (.cs) and copy the following code into the file. Set your-project-id to your Google Cloud project ID. After, run the C# file from the command line or in an IDE, or embed the code into your application where appropriate.


using Google.Api.Gax.Grpc;
using Google.Cloud.AIPlatform.V1;
using System.Text;
using System.Threading.Tasks;

public class GeminiQuickstart
{
    public async Task<string> GenerateContent(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.0-pro-vision"
    )
    {
        // Create client
        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();

        // Initialize content request
        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            GenerationConfig = new GenerationConfig
            {
                Temperature = 0.4f,
                TopP = 1,
                TopK = 32,
                MaxOutputTokens = 2048
            },
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = "What's in this photo?" },
                        new Part { FileData = new() { MimeType = "image/png", FileUri = "gs://generativeai-downloads/images/scones.jpg" } }
                    }
                }
            }
        };

        // Make the request, returning a streaming response
        using PredictionServiceClient.StreamGenerateContentStream response = predictionServiceClient.StreamGenerateContent(generateContentRequest);

        StringBuilder fullText = new();

        // Read streaming responses from server until complete
        AsyncResponseStream<GenerateContentResponse> responseStream = response.GetResponseStream();
        await foreach (GenerateContentResponse responseItem in responseStream)
        {
            fullText.Append(responseItem.Candidates[0].Content.Parts[0].Text);
        }

        return fullText.ToString();
    }
}

For more information about installing and using the Vertex AI SDK for C#, see the Vertex AI SDK for C# reference documentation.

REST

You can send this prompt request from Cloud Shell, the command line, or in an IDE, or you can embed the REST call into your application where appropriate.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
  "contents": {
    "role": "user",
    "parts": [
      {
      "fileData": {
        "mimeType": "image/jpeg",
        "fileUri": "gs://generativeai-downloads/images/scones.jpg"
        }
      },
      {
        "text": "Describe this picture."
      }
    ]
  }
}'

The model returns a response. Note that the response is generated in sections with each section separately evaluated for safety.

For more information, see the Generative AI REST and RPC reference documentation.

Send a request that includes audio and video

After you set up your local environment, send a request that includes text, audio, and video to the Vertex AI Gemini API. The following sample returns a description of the provided video, including anything important from the audio track.

Python

To send a prompt request, create a Python file (.py) and copy the following code into the file. Replace PROJECT_ID with the ID of your Google Cloud project. Then, run the Python file from the command line or in an IDE, or embed the code into your application where appropriate.


import vertexai
from vertexai.generative_models import GenerativeModel, Part

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"

vertexai.init(project=project_id, location="us-central1")

model = GenerativeModel(model_name="gemini-1.5-pro-preview-0409")

prompt = """
Provide a description of the video.
The description should also contain anything important which people say in the video.
"""

video_file_uri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
video_file = Part.from_uri(video_file_uri, mime_type="video/mp4")

contents = [video_file, prompt]

response = model.generate_content(contents)
print(response.text)

Optional: If you are using Cloud Shell and you are asked to authorize Cloud Shell, click Authorize.

For more information about installing, updating, and using the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python and Vertex AI SDK for Python API reference documentation.

Node.js

To send a prompt request, create a Node.js file (.js) and copy the following code into the file. Replace PROJECT_ID with the ID of your Google Cloud project. After, run the Javascript file from the command line or in an IDE, or embed the code into your application where appropriate.

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function analyze_video_with_audio(projectId = 'PROJECT_ID') {
  const vertexAI = new VertexAI({project: projectId, location: 'us-central1'});

  const generativeModel = vertexAI.getGenerativeModel({
    model: 'gemini-1.5-pro-preview-0409',
  });

  const filePart = {
    file_data: {
      file_uri: 'gs://cloud-samples-data/generative-ai/video/pixel8.mp4',
      mime_type: 'video/mp4',
    },
  };
  const textPart = {
    text: `
    Provide a description of the video.
    The description should also contain anything important which people say in the video.`,
  };

  const request = {
    contents: [{role: 'user', parts: [filePart, textPart]}],
  };

  const resp = await generativeModel.generateContent(request);
  const contentResponse = await resp.response;
  console.log(JSON.stringify(contentResponse));
}

For more information about installing and using the Vertex AI Node.js SDK, see the Vertex AI SDK for Node.js reference documentation.

Java

To send a prompt request, create a Java file (.java) and copy the following code into the file. Set your-google-cloud-project-id to your Google Cloud project ID. After, run the Java file from the command line or in an IDE, or embed the code into your application where appropriate.


import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.api.GenerateContentResponse;
import com.google.cloud.vertexai.generativeai.ContentMaker;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.PartMaker;
import com.google.cloud.vertexai.generativeai.ResponseHandler;
import java.io.IOException;

public class VideoInputWithAudio {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-pro-preview-0409";

    videoAudioInput(projectId, location, modelName);
  }

  // Analyzes the given video input, including its audio track.
  public static String videoAudioInput(String projectId, String location, String modelName)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs
    // to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      String videoUri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4";

      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      GenerateContentResponse response = model.generateContent(
          ContentMaker.fromMultiModalData(
              "Provide a description of the video.\n The description should also "
                  + "contain anything important which people say in the video.",
              PartMaker.fromMimeTypeAndData("video/mp4", videoUri)
          ));

      String output = ResponseHandler.getText(response);
      System.out.println(output);

      return output;
    }
  }
}

For more information about installing and using the Vertex AI Java Development Kit (JDK), see the Vertex AI JDK reference documentation.

Go

To send a prompt request, create a Go file (.go) and copy the following code into the file. Replace projectID with the ID of your Google Cloud project. After, run the Go file from the command line or in an IDE, or embed the code into your application where appropriate.

import (
	"context"
	"errors"
	"fmt"
	"io"
	"mime"
	"path/filepath"

	"cloud.google.com/go/vertexai/genai"
)

// generateMultimodalContent shows how to send video and text prompts to a model, writing the response to
// the provided io.Writer.
// video is a Google Cloud Storage path starting with "gs://"
func generateMultimodalContent(w io.Writer, prompt, video, projectID, location, modelName string) error {
	// prompt := `
	// 		Provide a description of the video.
	// 		The description should also contain anything important which people say in the video.
	// `
	// video := "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
	// location := "us-central1"
	// modelName := "gemini-1.5-pro-preview-0409"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	model := client.GenerativeModel(modelName)

	// Given a video file URL, prepare video file as genai.Part
	part := genai.FileData{
		MIMEType: mime.TypeByExtension(filepath.Ext(video)),
		FileURI:  video,
	}

	res, err := model.GenerateContent(ctx, part, genai.Text(prompt))
	if err != nil {
		return fmt.Errorf("unable to generate contents: %w", err)
	}

	if len(res.Candidates) == 0 ||
		len(res.Candidates[0].Content.Parts) == 0 {
		return errors.New("empty response from model")
	}

	fmt.Fprintf(w, "generated response: %s\n", res.Candidates[0].Content.Parts[0])
	return nil
}

For more information about installing and using the Vertex AI SDK for Go, see the Vertex AI SDK for Go reference documentation.

C#

To send a prompt request, create a C# file (.cs) and copy the following code into the file. Set your-project-id to your Google Cloud project ID. After, run the C# file from the command line or in an IDE, or embed the code into your application where appropriate.


using Google.Cloud.AIPlatform.V1;
using System;
using System.Threading.Tasks;

public class VideoInputWithAudio
{
    public async Task<string> DescribeVideo(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.5-pro-preview-0409")
    {

        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();

        string prompt = @"Provide a description of the video.
The description should also contain anything important which people say in the video.";

        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = prompt },
                        new Part { FileData = new() { MimeType = "video/mp4", FileUri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4" }}
                    }
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);

        return responseText;
    }
}

For more information about installing and using the Vertex AI SDK for C#, see the Vertex AI SDK for C# reference documentation.

REST

You can send this prompt request from Cloud Shell, the command line, or in an IDE, or you can embed the REST call into your application where appropriate.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
  "contents": {
    "role": "user",
    "parts": [
      {
      "fileData": {
        "mimeType": "video/mp4",
        "fileUri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
        }
      },
      {
        "text": "Provide a description of the video. The description should also contain anything important which people say in the video."
      }
    ]
  }
}'

The model returns a response. Note that the response is generated in sections with each section separately evaluated for safety.

For more information, see the Generative AI REST and RPC reference documentation.

What's next