CINXE.COM

Image understanding  |  Generative AI  |  Google Cloud

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/webhistory"> <meta property="og:site_name" content="Google Cloud"> <meta property="og:type" content="website"><meta name="theme-color" content="#039be5"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/cloud/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/favicon.ico"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png"><link rel="canonical" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding"><link rel="search" type="application/opensearchdescription+xml" title="Google Cloud" href="https://cloud.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding" /><link rel="alternate" hreflang="x-default" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding" /><link rel="alternate" hreflang="zh-Hans" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=zh-cn" /><link rel="alternate" hreflang="fr" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=fr" /><link rel="alternate" hreflang="de" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=de" /><link rel="alternate" hreflang="id" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=id" /><link rel="alternate" hreflang="it" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=it" /><link rel="alternate" hreflang="ja" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=ja" /><link rel="alternate" hreflang="ko" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=ko" /><link rel="alternate" hreflang="pt-BR" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=pt-br" /><link rel="alternate" hreflang="es-419" href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding?hl=es-419" /><title>Image understanding &nbsp;|&nbsp; Generative AI &nbsp;|&nbsp; Google Cloud</title> <meta property="og:title" content="Image understanding &nbsp;|&nbsp; Generative AI &nbsp;|&nbsp; Google Cloud"><meta property="og:url" content="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding"><meta property="og:image" content="https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Image understanding" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Generative AI", "item": "https://cloud.google.com/vertex-ai/generative-ai/docs/overview" },{ "@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview" },{ "@type": "ListItem", "position": 3, "name": "Image understanding", "item": "https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="cloud-theme" type="article" layout="docs" free-trial display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><cloudx-track userCountry="SG"></cloudx-track> <cloudx-utils-init></cloudx-utils-init> <devsite-header keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <cloudx-tabs-nav class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-active"> <a href="https://cloud.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs" track-type="nav" track-metadata-position="nav - docs-home" track-metadata-module="primary nav" aria-label="Documentation, selected" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" > Documentation </a> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/tech-area-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-type="nav" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > Technology areas </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Technology areas" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/ai-ml" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/ai-ml" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> AI and ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-development" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-development" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application development </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-hosting" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-hosting" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/compute-area" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/compute-area" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Compute </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/data" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/data" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Data analytics and pipelines </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/databases" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/databases" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Databases </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/dhm-cloud" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/dhm-cloud" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Distributed, hybrid, and multicloud </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/generative-ai" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/generative-ai" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/industry" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/industry" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Industry solutions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/networking" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/networking" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Networking </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/observability" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/observability" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Observability and monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/security" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/security" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Security </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/storage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/storage" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/cross-product-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-type="nav" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > Cross-product tools </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Cross-product tools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/access-resources" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/access-resources" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Access and resources management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/costs-usage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/costs-usage" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Costs and usage management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/devtools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/devtools" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud SDK, languages, frameworks, and tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/iac" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/iac" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Infrastructure as code </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/migration" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/migration" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Migration </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/" track-type="nav" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > Related sites </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Related sites" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Home </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/free" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/free" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Free Trial and Free Tier </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/architecture" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/architecture" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Architecture Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/blog" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/contact" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/contact" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Contact Sales </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/developers" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/developers" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" track-type="nav" track-metadata-eventdetail="https://developers.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/marketplace" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/marketplace/docs" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/marketplace/docs" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace Documentation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" track-type="nav" track-metadata-eventdetail="https://www.cloudskillsboost.google/paths" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Skills Boost </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/solutions" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/solutions" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Solution Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/support-hub" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/support-hub" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Support </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/@googlecloudtech" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Tech Youtube Channel </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </cloudx-tabs-nav> </div> <devsite-search enable-signin enable-search enable-suggestions project-name="Generative AI" tenant-name="Google Cloud" project-scope="/vertex-ai/generative-ai/docs/learn/overview" url-scoped="https://cloud.google.com/s/results/vertex-ai/generative-ai/docs/learn/overview" > <form class="devsite-search-form" action="https://cloud.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" hidden> <div class="devsite-product-description-row"> </div> </div> <div class="devsite-doc-set-nav-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Generative AI" > Generative AI </a> </li> </ul> <cloudx-tabs-nav class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab class="devsite-active"> <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/overview" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/vertex-ai/generative-ai/docs/overview" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference" track-type="nav" track-metadata-position="nav - api reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: API reference" track-name="api reference" > API reference </a> </tab> <tab > <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/sdks/overview" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/vertex-ai/generative-ai/docs/sdks/overview" track-type="nav" track-metadata-position="nav - sdks" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: SDKs" track-name="sdks" > SDKs </a> </tab> <tab > <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/samples?text=Gemini" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/vertex-ai/generative-ai/docs/samples?text=Gemini" track-type="nav" track-metadata-position="nav - samples and notebooks" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples and notebooks" track-name="samples and notebooks" > Samples and notebooks </a> </tab> <tab > <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/prompt-gallery" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/vertex-ai/generative-ai/docs/prompt-gallery" track-type="nav" track-metadata-position="nav - prompt gallery" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Prompt gallery" track-name="prompt gallery" > Prompt gallery </a> </tab> </nav> </cloudx-tabs-nav> <div class="devsite-product-button-row"> <a href="https://cloud.google.com/contact" class="cta-button-secondary button " data-overflow-container="left" track-metadata-position="nav" data-overflow-wrapper="tab" track-name="sales" track-metadata-eventDetail="nav" track-type="contact" data-overflow="devsite-tabs-wrapper" >Contact Us</a> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary " track-type="freeTrial" track-name="gcpCta" track-metadata-position="nav" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" track-metadata-eventDetail="nav" data-overflow-container="right" data-overflow="devsite-top-logo-row" referrerpolicy="no-referrer-when-downgrade" >Start free</a> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" hidden> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Documentation" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Documentation </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/vertex-ai/generative-ai/docs/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/vertex-ai/generative-ai/docs/model-reference/inference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: API reference" track-name="api reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: API reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > API reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/vertex-ai/generative-ai/docs/sdks/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: SDKs" track-name="sdks" data-category="Site-Wide Custom Events" data-label="Responsive Tab: SDKs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > SDKs </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/vertex-ai/generative-ai/docs/samples?text=Gemini" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Samples and notebooks" track-name="samples and notebooks" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples and notebooks" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples and notebooks </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/vertex-ai/generative-ai/docs/prompt-gallery" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Prompt gallery" track-name="prompt gallery" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Prompt gallery" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Prompt gallery </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/tech-area-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technology areas" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Technology areas </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Technology areas"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Technology areas"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/cross-product-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-product tools" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-product tools </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Cross-product tools"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Cross-product tools"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Related sites" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Related sites </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Related sites"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Related sites"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/" class="devsite-nav-title gc-analytics-event " referrerpolicy="no-referrer-when-downgrade" track-metadata-eventDetail="nav" track-metadata-position="nav" track-name="console" track-type="globalNav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Console </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="cta-button-secondary button" data-overflow-container="left" track-metadata-position="nav" data-overflow-wrapper="tab" track-name="sales" track-metadata-eventDetail="nav" track-type="contact" data-overflow="devsite-tabs-wrapper" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Us" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Us </span> </a> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary" track-type="freeTrial" track-name="gcpCta" track-metadata-position="nav" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" track-metadata-eventDetail="nav" data-overflow-container="right" data-overflow="devsite-top-logo-row" referrerpolicy="no-referrer-when-downgrade" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start free" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Start free </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Discover</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/overview" ><span class="devsite-nav-text" tooltip>Overview of Generative AI on Vertex AI</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/overview" ><span class="devsite-nav-text" tooltip>Generative AI beginner&#39;s guide</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/cookbook" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/cookbook" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/cookbook" ><span class="devsite-nav-text" tooltip>Generative AI on Vertex AI Cookbook</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Get started</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/start/quickstarts/try-gen-ai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/start/quickstarts/try-gen-ai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/start/quickstarts/try-gen-ai" ><span class="devsite-nav-text" tooltip>Try it: Send a text prompt to the Gemini API without an account</span></a></li> <li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/quickstart-image-generate-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/quickstart-image-generate-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/quickstart-image-generate-console" ><span class="devsite-nav-text" tooltip>Try it: Generate an image and verify its watermark using Imagen</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/start/quickstarts/quickstart-multimodal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/start/quickstarts/quickstart-multimodal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/start/quickstarts/quickstart-multimodal" ><span class="devsite-nav-text" tooltip>Quickstart: Generate text using the Gemini API</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/start/quickstarts/quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/start/quickstarts/quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/start/quickstarts/quickstart" ><span class="devsite-nav-text" tooltip>Quickstart: Send text prompts to Gemini using Vertex AI Studio</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Vertex AI in express mode</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/start/express-mode/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/start/express-mode/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/start/express-mode/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/start/express-mode/vertex-ai-studio-express-mode-quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/start/express-mode/vertex-ai-studio-express-mode-quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/start/express-mode/vertex-ai-studio-express-mode-quickstart" ><span class="devsite-nav-text" tooltip>Console tutorial</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/start/express-mode/vertex-ai-express-mode-api-quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/start/express-mode/vertex-ai-express-mode-api-quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/start/express-mode/vertex-ai-express-mode-api-quickstart" ><span class="devsite-nav-text" tooltip>API tutorial</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Explore and use models in Model Garden</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/quickstart" ><span class="devsite-nav-text" tooltip>Try it: Test model capabilities using Playspaces</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/explore-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/explore-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/explore-models" ><span class="devsite-nav-text" tooltip>Overview of Model Garden</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/use-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/use-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/use-models" ><span class="devsite-nav-text" tooltip>How to use model cards</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/available-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/available-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/available-models" ><span class="devsite-nav-text" tooltip>Supported models</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Available models</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/models" ><span class="devsite-nav-text" tooltip>Google models</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Gemini 2.0</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/gemini-v2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/gemini-v2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/gemini-v2" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/migrate-to-v2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/migrate-to-v2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/migrate-to-v2" ><span class="devsite-nav-text" tooltip>Migrate from Gemini 1.5</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/sdks/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/sdks/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/sdks/overview" ><span class="devsite-nav-text" tooltip>SDKs</span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/vertex-ai/generative-ai/docs/multimodal-live-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal-live-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal-live-api" ><span class="devsite-nav-text" tooltip>Multimodal Live API</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/vertex-ai/generative-ai/docs/multimodal-response-generation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal-response-generation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal-response-generation" ><span class="devsite-nav-text" tooltip>Multimodal responses</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/grounding-with-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/grounding-with-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/grounding-with-search" ><span class="devsite-nav-text" tooltip>Grounding with Google Search</span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/vertex-ai/generative-ai/docs/thinking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/thinking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/thinking" ><span class="devsite-nav-text" tooltip>Thinking</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/vertex-ai/generative-ai/docs/bounding-box-detection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/bounding-box-detection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/bounding-box-detection" ><span class="devsite-nav-text" tooltip>Bounding box detection</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/model-versions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/model-versions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/model-versions" ><span class="devsite-nav-text" tooltip>Model versions</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Open models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/open-models/use-open-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/open-models/use-open-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/open-models/use-open-models" ><span class="devsite-nav-text" tooltip>Use open models</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/open-models/use-gemma" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/open-models/use-gemma" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/open-models/use-gemma" ><span class="devsite-nav-text" tooltip>Google Gemma</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/deploy-and-inference-tutorial" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/deploy-and-inference-tutorial" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/deploy-and-inference-tutorial" ><span class="devsite-nav-text" tooltip>Tutorial: Deploy and inference Gemma (GPU)</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/deploy-and-inference-tutorial-tpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/deploy-and-inference-tutorial-tpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/deploy-and-inference-tutorial-tpu" ><span class="devsite-nav-text" tooltip>Tutorial: Deploy and inference Gemma (TPU)</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/open-models/use-llama" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/open-models/use-llama" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/open-models/use-llama" ><span class="devsite-nav-text" tooltip>Llama</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/open-models/use-hugging-face-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/open-models/use-hugging-face-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/open-models/use-hugging-face-models" ><span class="devsite-nav-text" tooltip>Hugging Face text generation models</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/open-models/use-hex-llm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/open-models/use-hex-llm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/open-models/use-hex-llm" ><span class="devsite-nav-text" tooltip>Hex-LLM</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Partner models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/partner-models/use-partner-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/use-partner-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/use-partner-models" ><span class="devsite-nav-text" tooltip>Model as a Service (MaaS) overview</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/partner-models/ai21" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/ai21" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/ai21" ><span class="devsite-nav-text" tooltip>AI21 Labs</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Claude</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/partner-models/use-claude" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/use-claude" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/use-claude" ><span class="devsite-nav-text" tooltip>Anthropic Claude</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/partner-models/claude-batch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/claude-batch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/claude-batch" ><span class="devsite-nav-text" tooltip>Batch predictions</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/partner-models/claude-prompt-caching" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/claude-prompt-caching" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/claude-prompt-caching" ><span class="devsite-nav-text" tooltip>Prompt caching</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/partner-models/claude-count-tokens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/claude-count-tokens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/claude-count-tokens" ><span class="devsite-nav-text" tooltip>Count tokens</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Llama</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/partner-models/llama" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/llama" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/llama" ><span class="devsite-nav-text" tooltip>Llama models</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/partner-models/llama-batch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/llama-batch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/llama-batch" ><span class="devsite-nav-text" tooltip>Batch predictions</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/partner-models/mistral" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/partner-models/mistral" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/partner-models/mistral" ><span class="devsite-nav-text" tooltip>Mistral AI</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Capabilities</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/send-chat-prompts-gemini" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/send-chat-prompts-gemini" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/send-chat-prompts-gemini" ><span class="devsite-nav-text" tooltip>Text generation</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/batch-prediction-gemini" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/batch-prediction-gemini" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/batch-prediction-gemini" ><span class="devsite-nav-text" tooltip>Batch prediction</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/image-understanding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/image-understanding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/image-understanding" ><span class="devsite-nav-text" tooltip>Image understanding</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/video-understanding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/video-understanding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/video-understanding" ><span class="devsite-nav-text" tooltip>Video understanding</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/audio-understanding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/audio-understanding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/audio-understanding" ><span class="devsite-nav-text" tooltip>Audio understanding</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/document-understanding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/document-understanding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/document-understanding" ><span class="devsite-nav-text" tooltip>Document understanding</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/system-instruction-introduction" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/system-instruction-introduction" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/system-instruction-introduction" ><span class="devsite-nav-text" tooltip>System instructions</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/function-calling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/function-calling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/function-calling" ><span class="devsite-nav-text" tooltip>Function calling</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/control-generated-output" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/control-generated-output" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/control-generated-output" ><span class="devsite-nav-text" tooltip>Controlled generation</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/content-generation-parameters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/content-generation-parameters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/content-generation-parameters" ><span class="devsite-nav-text" tooltip>Content generation parameters</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/long-context" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/long-context" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/long-context" ><span class="devsite-nav-text" tooltip>Long context</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/code-execution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/code-execution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/code-execution" ><span class="devsite-nav-text" tooltip>Code execution</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Context caching</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/context-cache/context-cache-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/context-cache/context-cache-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/context-cache/context-cache-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/context-cache/context-cache-create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/context-cache/context-cache-create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/context-cache/context-cache-create" ><span class="devsite-nav-text" tooltip>Create a context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/context-cache/context-cache-use" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/context-cache/context-cache-use" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/context-cache/context-cache-use" ><span class="devsite-nav-text" tooltip>Use a context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/context-cache/context-cache-getinfo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/context-cache/context-cache-getinfo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/context-cache/context-cache-getinfo" ><span class="devsite-nav-text" tooltip>Get context cache information</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/context-cache/context-cache-update" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/context-cache/context-cache-update" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/context-cache/context-cache-update" ><span class="devsite-nav-text" tooltip>Update a context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/context-cache/context-cache-delete" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/context-cache/context-cache-delete" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/context-cache/context-cache-delete" ><span class="devsite-nav-text" tooltip>Delete a context cache</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Fine-tuning</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune-models" ><span class="devsite-nav-text" tooltip>Introduction to tuning</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Gemini models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Supervised fine-tuning</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/gemini-supervised-tuning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/gemini-supervised-tuning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/gemini-supervised-tuning" ><span class="devsite-nav-text" tooltip>About supervised fine-tuning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/gemini-supervised-tuning-prepare" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/gemini-supervised-tuning-prepare" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/gemini-supervised-tuning-prepare" ><span class="devsite-nav-text" tooltip>Prepare your data</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/gemini-use-supervised-tuning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/gemini-use-supervised-tuning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/gemini-use-supervised-tuning" ><span class="devsite-nav-text" tooltip>Use supervised fine-tuning</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Supported modalities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune_gemini/text_tune" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune_gemini/text_tune" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune_gemini/text_tune" ><span class="devsite-nav-text" tooltip>Text tuning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune_gemini/doc_tune" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune_gemini/doc_tune" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune_gemini/doc_tune" ><span class="devsite-nav-text" tooltip>Document tuning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune_gemini/image_tune" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune_gemini/image_tune" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune_gemini/image_tune" ><span class="devsite-nav-text" tooltip>Image tuning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune_gemini/audio_tune" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune_gemini/audio_tune" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune_gemini/audio_tune" ><span class="devsite-nav-text" tooltip>Audio tuning</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune_gemini/tune-gemini-learn" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune_gemini/tune-gemini-learn" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune_gemini/tune-gemini-learn" ><span class="devsite-nav-text" tooltip>Examples for tuning Gemini text models</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/migrate-tuned-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/migrate-tuned-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/migrate-tuned-models" ><span class="devsite-nav-text" tooltip>Migrate from legacy models</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Embeddings models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/tune-embeddings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune-embeddings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune-embeddings" ><span class="devsite-nav-text" tooltip>Tune text embeddings models</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-limited"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Imagen models</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/fine-tune-model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/fine-tune-model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/fine-tune-model" ><span class="devsite-nav-text" tooltip>Tune a subject model</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/fine-tune-style" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/fine-tune-style" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/fine-tune-style" ><span class="devsite-nav-text" tooltip>Create a custom style model</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Translation models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Supervised fine-tuning</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/translation-supervised-tuning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/translation-supervised-tuning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/translation-supervised-tuning" ><span class="devsite-nav-text" tooltip>About supervised fine-tuning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/translation-supervised-tuning-prepare" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/translation-supervised-tuning-prepare" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/translation-supervised-tuning-prepare" ><span class="devsite-nav-text" tooltip>Prepare your data</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/translation-use-supervised-tuning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/translation-use-supervised-tuning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/translation-use-supervised-tuning" ><span class="devsite-nav-text" tooltip>Use supervised fine-tuning</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/model-garden/lora-qlora" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-garden/lora-qlora" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-garden/lora-qlora" ><span class="devsite-nav-text" tooltip>Tuning recommendations with LoRA and QLoRA</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Evaluation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/evaluation-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/evaluation-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/evaluation-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/evaluation-quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/evaluation-quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/evaluation-quickstart" ><span class="devsite-nav-text" tooltip>Quickstart: Gen AI evaluation workflow</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/determine-eval" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/determine-eval" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/determine-eval" ><span class="devsite-nav-text" tooltip>Define your evaluation metrics</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/evaluation-dataset" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/evaluation-dataset" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/evaluation-dataset" ><span class="devsite-nav-text" tooltip>Prepare your evaluation dataset</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/run-evaluation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/run-evaluation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/run-evaluation" ><span class="devsite-nav-text" tooltip>Run an evaluation</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/view-evaluation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/view-evaluation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/view-evaluation" ><span class="devsite-nav-text" tooltip>View and interpret your evaluation results</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/metrics-templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/metrics-templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/metrics-templates" ><span class="devsite-nav-text" tooltip>Reference: Model-based metrics templates</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/prompt-judge-model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/prompt-judge-model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/prompt-judge-model" ><span class="devsite-nav-text" tooltip>Advanced prompting for judge model customization</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/models/evaluation-agents" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/evaluation-agents" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/evaluation-agents" ><span class="devsite-nav-text" tooltip>Evaluate Gen AI agents</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Other evaluation documentation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/side-by-side-eval" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/side-by-side-eval" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/side-by-side-eval" ><span class="devsite-nav-text" tooltip>Run AutoSxS pipeline</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/models/computation-based-eval-pipeline" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/computation-based-eval-pipeline" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/computation-based-eval-pipeline" ><span class="devsite-nav-text" tooltip>Run a computation-based evaluation pipeline</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Grounding</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/grounding/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/grounding/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/grounding/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/ground-with-google-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/ground-with-google-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/ground-with-google-search" ><span class="devsite-nav-text" tooltip>Ground with Google Search</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/ground-with-your-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/ground-with-your-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/ground-with-your-data" ><span class="devsite-nav-text" tooltip>Ground with your data</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/grounding-search-suggestions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/grounding-search-suggestions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/grounding-search-suggestions" ><span class="devsite-nav-text" tooltip>Use Google Search suggestions</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/ground-responses-using-rag" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/ground-responses-using-rag" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/ground-responses-using-rag" ><span class="devsite-nav-text" tooltip>Ground responses using RAG</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Safety</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/responsible-ai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/responsible-ai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/responsible-ai" ><span class="devsite-nav-text" tooltip>Responsible AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/safety-system-instructions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/safety-system-instructions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/safety-system-instructions" ><span class="devsite-nav-text" tooltip>System instructions for safety</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/configure-safety-filters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters" ><span class="devsite-nav-text" tooltip>Configure safety filters</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/abuse-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/abuse-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/abuse-monitoring" ><span class="devsite-nav-text" tooltip>Abuse monitoring</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Extensions</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/extensions/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/extensions/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/extensions/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/extensions/create-extension" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/extensions/create-extension" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/extensions/create-extension" ><span class="devsite-nav-text" tooltip>Create and run extensions</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Extensions by Google</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/extensions/code-interpreter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/extensions/code-interpreter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/extensions/code-interpreter" ><span class="devsite-nav-text" tooltip>Code Interpreter extension</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/extensions/vertex-ai-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/extensions/vertex-ai-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/extensions/vertex-ai-search" ><span class="devsite-nav-text" tooltip>Vertex AI Search extension</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Image generation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/overview" ><span class="devsite-nav-text" tooltip>Imagen on Vertex AI overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/responsible-ai-imagen" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/responsible-ai-imagen" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/responsible-ai-imagen" ><span class="devsite-nav-text" tooltip>Responsible AI and usage guidelines for Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/model-versioning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/model-versioning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/model-versioning" ><span class="devsite-nav-text" tooltip>Imagen model versions and lifecycle</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/img-gen-prompt-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/img-gen-prompt-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/img-gen-prompt-guide" ><span class="devsite-nav-text" tooltip>Prompt and image attribute guide</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/generate-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/generate-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/generate-images" ><span class="devsite-nav-text" tooltip>Generate images using text prompts</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-limited"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Edit images</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/edit-inpainting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/edit-inpainting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/edit-inpainting" ><span class="devsite-nav-text" tooltip>Edit using inpainting (insert or remove objects)</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/edit-outpainting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/edit-outpainting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/edit-outpainting" ><span class="devsite-nav-text" tooltip>Edit using outpainting</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/edit-product-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/edit-product-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/edit-product-image" ><span class="devsite-nav-text" tooltip>Use product image editing</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/image/edit-personalization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/edit-personalization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/edit-personalization" ><span class="devsite-nav-text" tooltip>Edit using Personalization</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/edit-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/edit-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/edit-images" ><span class="devsite-nav-text" tooltip>Edit images (mask-free)</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-limited"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Customize images</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/subject-customization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/subject-customization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/subject-customization" ><span class="devsite-nav-text" tooltip>Subject customization</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/style-customization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/style-customization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/style-customization" ><span class="devsite-nav-text" tooltip>Style customization</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/edit-controlled" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/edit-controlled" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/edit-controlled" ><span class="devsite-nav-text" tooltip>Controlled Customization</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/instruct-customization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/instruct-customization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/instruct-customization" ><span class="devsite-nav-text" tooltip>Instruct Customization</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get image information</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/image-captioning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/image-captioning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/image-captioning" ><span class="devsite-nav-text" tooltip>Get image descriptions using visual captioning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/visual-question-answering" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/visual-question-answering" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/visual-question-answering" ><span class="devsite-nav-text" tooltip>Use Visual Question Answering</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Text-to-live images</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/image/ttli-prompt-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/ttli-prompt-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/ttli-prompt-guide" ><span class="devsite-nav-text" tooltip>Text-to-Live images prompt guide</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/image/text-to-live-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/text-to-live-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/text-to-live-images" ><span class="devsite-nav-text" tooltip>Create live images from text</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/upscale-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/upscale-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/upscale-image" ><span class="devsite-nav-text" tooltip>Upscale an image</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/image/base64-encode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/base64-encode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/base64-encode" ><span class="devsite-nav-text" tooltip>Base64 encode and decode files</span></a></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use video models</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/video/video-descriptions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/video/video-descriptions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/video/video-descriptions" ><span class="devsite-nav-text" tooltip>Get video descriptions using Imagen</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-experimental"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Video generation</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-experimental"><a href="/vertex-ai/generative-ai/docs/video/generate-videos" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/video/generate-videos" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/video/generate-videos" ><span class="devsite-nav-text" tooltip>Generate videos using text or image prompts</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Embeddings</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/embeddings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/embeddings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/embeddings" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Text embeddings</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/embeddings/get-text-embeddings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/embeddings/get-text-embeddings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/embeddings/get-text-embeddings" ><span class="devsite-nav-text" tooltip>Get text embeddings</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/embeddings/task-types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/embeddings/task-types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/embeddings/task-types" ><span class="devsite-nav-text" tooltip>Choose an embeddings task type</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings" ><span class="devsite-nav-text" tooltip>Get multimodal embeddings</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/embeddings/batch-prediction-genai-embeddings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/embeddings/batch-prediction-genai-embeddings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/embeddings/batch-prediction-genai-embeddings" ><span class="devsite-nav-text" tooltip>Get batch embeddings predictions</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/code/test-code-completion-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/test-code-completion-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/test-code-completion-prompts" ><span class="devsite-nav-text" tooltip>Code completion</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/translate/translate-text" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/translate/translate-text" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/translate/translate-text" ><span class="devsite-nav-text" tooltip>Translation</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Prompting tools</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/ai-powered-prompt-writing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/ai-powered-prompt-writing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/ai-powered-prompt-writing" ><span class="devsite-nav-text" tooltip>Use AI-powered prompt writing tools</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/learn/prompts/prompt-optimizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/prompt-optimizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/prompt-optimizer" ><span class="devsite-nav-text" tooltip>Optimize prompts</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/learn/prompts/prompt-templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/prompt-templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/prompt-templates" ><span class="devsite-nav-text" tooltip>Use prompt templates</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/medlm/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/medlm/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/medlm/overview" ><span class="devsite-nav-text" tooltip>Medical text</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Guides</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Tokens</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/multimodal/list-token" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/list-token" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/list-token" ><span class="devsite-nav-text" tooltip>List and count tokens</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/get-token-count" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/get-token-count" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/get-token-count" ><span class="devsite-nav-text" tooltip>Use the Count Tokens API</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Deployment best practices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/deploy/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/deploy/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/deploy/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompt-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompt-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompt-best-practices" ><span class="devsite-nav-text" tooltip>Best practices</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Prompting</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/introduction-prompt-design" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/introduction-prompt-design" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/introduction-prompt-design" ><span class="devsite-nav-text" tooltip>Introduction to prompting</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Prompting strategies</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/prompt-design-strategies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/prompt-design-strategies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/prompt-design-strategies" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/clear-instructions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/clear-instructions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/clear-instructions" ><span class="devsite-nav-text" tooltip>Give clear and specific instructions</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/system-instructions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/system-instructions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/system-instructions" ><span class="devsite-nav-text" tooltip>Use system instructions</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/assign-role" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/assign-role" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/assign-role" ><span class="devsite-nav-text" tooltip>Assign a role</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/few-shot-examples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/few-shot-examples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/few-shot-examples" ><span class="devsite-nav-text" tooltip>Include few-shot examples</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/contextual-information" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/contextual-information" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/contextual-information" ><span class="devsite-nav-text" tooltip>Add contextual information</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/structure-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/structure-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/structure-prompts" ><span class="devsite-nav-text" tooltip>Structure prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/explain-reasoning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/explain-reasoning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/explain-reasoning" ><span class="devsite-nav-text" tooltip>Instruct the model to explain its reasoning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/break-down-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/break-down-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/break-down-prompts" ><span class="devsite-nav-text" tooltip>Break down complex tasks</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/adjust-parameter-values" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/adjust-parameter-values" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/adjust-parameter-values" ><span class="devsite-nav-text" tooltip>Experiment with parameter values</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/prompts/prompt-iteration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/prompts/prompt-iteration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/prompts/prompt-iteration" ><span class="devsite-nav-text" tooltip>Prompt iteration strategies</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Task-specific prompt guidance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/design-multimodal-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/design-multimodal-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/design-multimodal-prompts" ><span class="devsite-nav-text" tooltip>Design multimodal prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/text/text-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/text/text-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/text/text-prompts" ><span class="devsite-nav-text" tooltip>Design text prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/chat/chat-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/chat/chat-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/chat/chat-prompts" ><span class="devsite-nav-text" tooltip>Design chat prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/code/code-chat-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/code-chat-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/code-chat-prompts" ><span class="devsite-nav-text" tooltip>Design code chat prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/code/code-completion-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/code-completion-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/code-completion-prompts" ><span class="devsite-nav-text" tooltip>Design code completion prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/code/code-generation-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/code-generation-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/code-generation-prompts" ><span class="devsite-nav-text" tooltip>Design code generation prompts</span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/vertex-ai/generative-ai/docs/image/img-gen-prompt-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/image/img-gen-prompt-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/image/img-gen-prompt-guide" ><span class="devsite-nav-text" tooltip>Design image generation prompts</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/medlm/medlm-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/medlm/medlm-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/medlm/medlm-prompts" ><span class="devsite-nav-text" tooltip>Design medical text prompts</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Migration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/multimodal/call-vertex-using-openai-library" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/call-vertex-using-openai-library" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/call-vertex-using-openai-library" ><span class="devsite-nav-text" tooltip>Call Vertex AI models by using the OpenAI library</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/migrate/migrate-from-azure-to-gemini" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/migrate/migrate-from-azure-to-gemini" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/migrate/migrate-from-azure-to-gemini" ><span class="devsite-nav-text" tooltip>Migrate from Azure OpenAI to Gemini</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/migrate/migrate-google-ai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/migrate/migrate-google-ai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/migrate/migrate-google-ai" ><span class="devsite-nav-text" tooltip>Migrate from Google AI to Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/migrate/migrate-palm-to-gemini" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/migrate/migrate-palm-to-gemini" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/migrate/migrate-palm-to-gemini" ><span class="devsite-nav-text" tooltip>Migrate from PaLM 2 to Gemini</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls" ><span class="devsite-nav-text" tooltip>Custom metadata labels</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot LangChain on Vertex AI</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/set-up" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/set-up" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/set-up" ><span class="devsite-nav-text" tooltip>Troubleshoot setting up the environment</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/develop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/develop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/develop" ><span class="devsite-nav-text" tooltip>Troubleshoot developing an application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/deploy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/deploy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/deploy" ><span class="devsite-nav-text" tooltip>Troubleshoot deploying an application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/use" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/use" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/use" ><span class="devsite-nav-text" tooltip>Troubleshoot using an application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/manage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/manage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/troubleshooting/manage" ><span class="devsite-nav-text" tooltip>Troubleshoot managing deployed applications</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Tools/integrations</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>RAG Engine</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/rag-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/rag-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/rag-overview" ><span class="devsite-nav-text" tooltip>RAG Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/rag-quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/rag-quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/rag-quickstart" ><span class="devsite-nav-text" tooltip>RAG quickstart for Python</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/use-data-connectors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-data-connectors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-data-connectors" ><span class="devsite-nav-text" tooltip>Data connectors</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Supported models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/supported-rag-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/supported-rag-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/supported-rag-models" ><span class="devsite-nav-text" tooltip>Generative models</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/use-embedding-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-embedding-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-embedding-models" ><span class="devsite-nav-text" tooltip>Embedding models</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Document parsing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/supported-documents" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/supported-documents" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/supported-documents" ><span class="devsite-nav-text" tooltip>Supported documents</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/fine-tune-rag-transformations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/fine-tune-rag-transformations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/fine-tune-rag-transformations" ><span class="devsite-nav-text" tooltip>Fine-tune RAG transformations</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/layout-parser-integration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/layout-parser-integration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/layout-parser-integration" ><span class="devsite-nav-text" tooltip>Use Document AI layout parser</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/llm-parser" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/llm-parser" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/llm-parser" ><span class="devsite-nav-text" tooltip>Use the LLM parser</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Vector database choices in RAG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/vector-db-choices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/vector-db-choices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/vector-db-choices" ><span class="devsite-nav-text" tooltip>Overview of vector database choices</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/use-vertexai-vector-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-vertexai-vector-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-vertexai-vector-search" ><span class="devsite-nav-text" tooltip>Use Vertex AI Vector Search with RAG</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/use-feature-store-with-rag" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-feature-store-with-rag" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-feature-store-with-rag" ><span class="devsite-nav-text" tooltip>Use Feature Store with RAG</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/use-weaviate-db" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-weaviate-db" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-weaviate-db" ><span class="devsite-nav-text" tooltip>Use Weaviate with RAG</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/use-pinecone" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-pinecone" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-pinecone" ><span class="devsite-nav-text" tooltip>Use Pinecone with RAG</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/use-vertexai-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-vertexai-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-vertexai-search" ><span class="devsite-nav-text" tooltip>Use Vertex AI Search with RAG</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/vertex-ai/generative-ai/docs/retrieval-and-ranking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/retrieval-and-ranking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/retrieval-and-ranking" ><span class="devsite-nav-text" tooltip>Retrieval and ranking</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/manage-your-rag-corpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/manage-your-rag-corpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/manage-your-rag-corpus" ><span class="devsite-nav-text" tooltip>Manage your RAG corpus</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/rag-quotas" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/rag-quotas" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/rag-quotas" ><span class="devsite-nav-text" tooltip>RAG quotas</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>LangChain on Vertex AI</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/set-up" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/set-up" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/set-up" ><span class="devsite-nav-text" tooltip>Set up the environment</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/develop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/develop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/develop" ><span class="devsite-nav-text" tooltip>Develop an application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/deploy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/deploy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/deploy" ><span class="devsite-nav-text" tooltip>Deploy the application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/use" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/use" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/use" ><span class="devsite-nav-text" tooltip>Use the application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/manage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/manage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/manage" ><span class="devsite-nav-text" tooltip>Manage the deployed application</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/reasoning-engine/customize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/reasoning-engine/customize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/reasoning-engine/customize" ><span class="devsite-nav-text" tooltip>Customize an application template</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Tutorials and code samples</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Generative AI on Vertex AI code samples</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples" ><span class="devsite-nav-text" tooltip>Sample browser</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-token-count-multimodal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-token-count-multimodal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-token-count-multimodal" ><span class="devsite-nav-text" tooltip> Count tokens for Gemini</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-generate-from-text-input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-generate-from-text-input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-generate-from-text-input" ><span class="devsite-nav-text" tooltip> Generate text using Generative AI Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-insert-mask-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-insert-mask-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-insert-mask-mode" ><span class="devsite-nav-text" tooltip>Add image content using automatic mask detection and inpainting with Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-insert-mask" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-insert-mask" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-insert-mask" ><span class="devsite-nav-text" tooltip>Add image content using mask-based inpainting with Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-usage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-usage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-usage" ><span class="devsite-nav-text" tooltip>Automatically refresh Open AI API credentials</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-code-predict" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-code-predict" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-code-predict" ><span class="devsite-nav-text" tooltip>Batch code prediction with a pre-trained model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob-bigquery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob-bigquery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob-bigquery" ><span class="devsite-nav-text" tooltip>Batch Predict with Gemini using BigQuery data</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob-gcs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob-gcs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob-gcs" ><span class="devsite-nav-text" tooltip>Batch Predict with Gemini using GCS data</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-text-predict" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-text-predict" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-text-predict" ><span class="devsite-nav-text" tooltip>Batch text prediction with a pre-trained model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-batch-predict-gemini-createjob" ><span class="devsite-nav-text" tooltip>Batch text prediction with Gemini model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-reasoning-engine-basic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-reasoning-engine-basic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-reasoning-engine-basic" ><span class="devsite-nav-text" tooltip>Build, test, and deploy a custom app on Reasoning Engine</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-reasoning-engine-advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-reasoning-engine-advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-reasoning-engine-advanced" ><span class="devsite-nav-text" tooltip>Build, test, and deploy a Langchain chatbot on Reasoning Engine</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-cancel-tuning-job" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-cancel-tuning-job" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-cancel-tuning-job" ><span class="devsite-nav-text" tooltip>Cancel a Supervised Tuning Job in Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-code-completion-comment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-code-completion-comment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-code-completion-comment" ><span class="devsite-nav-text" tooltip>Code completion</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-config-example" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-config-example" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-config-example" ><span class="devsite-nav-text" tooltip>Configure Gemini model parameters</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-mime-type" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-mime-type" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-mime-type" ><span class="devsite-nav-text" tooltip>Controlled generation JSON output</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-4" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-4" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-4" ><span class="devsite-nav-text" tooltip>Controlled generation JSON output with enum</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-3" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-3" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-3" ><span class="devsite-nav-text" tooltip>Controlled generation JSON output with null values</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-2" ><span class="devsite-nav-text" tooltip>Controlled generation JSON output with predefined schema</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-compute-tokens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-compute-tokens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-compute-tokens" ><span class="devsite-nav-text" tooltip>Count and Compute Tokens</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-token-count" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-token-count" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-token-count" ><span class="devsite-nav-text" tooltip>Count tokens in a prompt</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-extension" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-extension" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-extension" ><span class="devsite-nav-text" tooltip>Create a code interpreter extension</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-create-context-cache" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-create-context-cache" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-create-context-cache" ><span class="devsite-nav-text" tooltip>Create a context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template" ><span class="devsite-nav-text" tooltip>Create a parameterized prompt template</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-embedding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-embedding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-embedding" ><span class="devsite-nav-text" tooltip>Create an embedding using Generative AI on Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-create-corpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-create-corpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-create-corpus" ><span class="devsite-nav-text" tooltip>Create an index</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-create-generate-save" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-create-generate-save" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-create-generate-save" ><span class="devsite-nav-text" tooltip>Create and use a Vertex AI Prompt to generate text</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-delete" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-delete" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-delete" ><span class="devsite-nav-text" tooltip>Delete a prompt</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-delete-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-delete-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-delete-file" ><span class="devsite-nav-text" tooltip>Delete a RAG file from an index</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-delete-reasoning-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-delete-reasoning-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-delete-reasoning-engine" ><span class="devsite-nav-text" tooltip>Delete a Reasoning Engine</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-delete-extension" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-delete-extension" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-delete-extension" ><span class="devsite-nav-text" tooltip>Delete an extension</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-delete-corpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-delete-corpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-delete-corpus" ><span class="devsite-nav-text" tooltip>Delete an index</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-delete-context-cache" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-delete-context-cache" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-delete-context-cache" ><span class="devsite-nav-text" tooltip>Delete context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-video" ><span class="devsite-nav-text" tooltip>Describe a video</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-image" ><span class="devsite-nav-text" tooltip>Describe an image</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-non-streaming-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-non-streaming-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-non-streaming-image" ><span class="devsite-nav-text" tooltip>Describe an image by using Gemini and the Chat Completions API</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-mask" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-mask" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-mask" ><span class="devsite-nav-text" tooltip>Edit image content using a mask with Imagen v.002</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-mask-free" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-mask-free" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-mask-free" ><span class="devsite-nav-text" tooltip>Edit image content using mask-free editing with Imagen v.002</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-product-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-product-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-product-image" ><span class="devsite-nav-text" tooltip>Enhance a product image by modifying the background content with Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluation-get-rouge-score" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluation-get-rouge-score" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluation-get-rouge-score" ><span class="devsite-nav-text" tooltip>Evaluate a model response against a reference (ground truth) using the ROUGE metric</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluate-model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluate-model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluate-model" ><span class="devsite-nav-text" tooltip>Evaluate model performance</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-evaluation-task" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-evaluation-task" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-create-evaluation-task" ><span class="devsite-nav-text" tooltip>Evaluate text generation models using Vertex AI Gen AI evaluation service</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-execute-extension" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-execute-extension" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-execute-extension" ><span class="devsite-nav-text" tooltip>Execute a Extension in Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-outpainting-mask" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-outpainting-mask" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-outpainting-mask" ><span class="devsite-nav-text" tooltip>Expand image content using mask-based outpainting with Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-tuning-advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-tuning-advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-tuning-advanced" ><span class="devsite-nav-text" tooltip>Fine-tune Gemini using custom settings for advanced use cases</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-tuning-basic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-tuning-basic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-tuning-basic" ><span class="devsite-nav-text" tooltip>Fine-tune Generative AI models with Vertex AI Supervised Fine-tuning</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-function-calling-advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-function-calling-advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-function-calling-advanced" ><span class="devsite-nav-text" tooltip>Function calling with Gemini AI Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling-advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling-advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling-advanced" ><span class="devsite-nav-text" tooltip>Function calling with Gemini AI Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-generate-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-generate-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-generate-image" ><span class="devsite-nav-text" tooltip>Generate an image from text</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-non-stream-multimodality-basic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-non-stream-multimodality-basic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-non-stream-multimodality-basic" ><span class="devsite-nav-text" tooltip>Generate content from multimodal data using Generative AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-stream-multimodality-basic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-stream-multimodality-basic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-stream-multimodality-basic" ><span class="devsite-nav-text" tooltip>Generate content stream with Multimodal AI Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling" ><span class="devsite-nav-text" tooltip>Generate content with function calls</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-code-retrieval" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-code-retrieval" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-code-retrieval" ><span class="devsite-nav-text" tooltip>Generate Embeddings for Code Retrieval</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-image-video-text" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-image-video-text" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-image-video-text" ><span class="devsite-nav-text" tooltip>Generate embeddings for Images, Videos and Text</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-image" ><span class="devsite-nav-text" tooltip>Generate embeddings for multimodal input</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-batch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-batch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-batch" ><span class="devsite-nav-text" tooltip>Generate Embeddings from text using Batch processing</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-generate-content" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-generate-content" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-generate-content" ><span class="devsite-nav-text" tooltip>Generate responses using the RAG file</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-stream-text-basic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-stream-text-basic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-stream-text-basic" ><span class="devsite-nav-text" tooltip>Generate steaming text content with Generative Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-streaming" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-streaming" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-streaming" ><span class="devsite-nav-text" tooltip>Generate streaming text by using a Claude model from Anthropic</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-streaming" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-streaming" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-streaming" ><span class="devsite-nav-text" tooltip>Generate streaming text by using Gemini and the Chat Completions API</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-streaming-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-streaming-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-streaming-image" ><span class="devsite-nav-text" tooltip>Generate streaming text to describe an image by using the Chat Completions API</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-unary" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-unary" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-unary" ><span class="devsite-nav-text" tooltip>Generate text by using a Claude model from Anthropic</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-use-context-cache" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-use-context-cache" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-use-context-cache" ><span class="devsite-nav-text" tooltip>Generate text by using a context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-non-streaming" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-non-streaming" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-non-streaming" ><span class="devsite-nav-text" tooltip>Generate text by using Gemini and the Chat Completions API</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding" ><span class="devsite-nav-text" tooltip>Generate text embedding</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-single-turn-video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-single-turn-video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-single-turn-video" ><span class="devsite-nav-text" tooltip>Generate text from a video</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-get-started" ><span class="devsite-nav-text" tooltip>Generate text from an image</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-example" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-example" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-example" ><span class="devsite-nav-text" tooltip>Generate text from an image</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-safety-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-safety-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-safety-settings" ><span class="devsite-nav-text" tooltip>Generate text from an image with safety settings</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-single-turn-multi-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-single-turn-multi-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-single-turn-multi-image" ><span class="devsite-nav-text" tooltip>Generate text from multimodal prompt</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling-chat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling-chat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-function-calling-chat" ><span class="devsite-nav-text" tooltip>Generate text responses using Gemini API with external function calls in a chat scenario</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-non-stream-text-basic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-non-stream-text-basic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-non-stream-text-basic" ><span class="devsite-nav-text" tooltip>Generate Text With a Generative Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemma2-predict-gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemma2-predict-gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemma2-predict-gpu" ><span class="devsite-nav-text" tooltip>Generate text with Gemma2 model with GPU accelerators</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemma2-predict-tpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemma2-predict-tpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemma2-predict-tpu" ><span class="devsite-nav-text" tooltip>Generate text with Gemma2 model with TPU accelerators</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-get-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-get-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-get-file" ><span class="devsite-nav-text" tooltip>Get a RAG file</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-extension" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-extension" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-extension" ><span class="devsite-nav-text" tooltip>Get a specific extension by ID</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-tuning-job" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-tuning-job" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-tuning-job" ><span class="devsite-nav-text" tooltip>Get a Supervised Tuning Job</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-get-context-cache" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-get-context-cache" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-get-context-cache" ><span class="devsite-nav-text" tooltip>Get context cache</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-get-corpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-get-corpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-get-corpus" ><span class="devsite-nav-text" tooltip>Get information about an index</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-reasoning-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-reasoning-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-get-reasoning-engine" ><span class="devsite-nav-text" tooltip>Get Reasoning Engine by ID</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-get-short-form-image-captions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-get-short-form-image-captions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-get-short-form-image-captions" ><span class="devsite-nav-text" tooltip>Get short-form image captions</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-get-short-form-image-responses" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-get-short-form-image-responses" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-get-short-form-image-responses" ><span class="devsite-nav-text" tooltip>Get short-form image responses</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-token-count-sample-with-genai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-token-count-sample-with-genai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-token-count-sample-with-genai" ><span class="devsite-nav-text" tooltip>Get the token count and billable characters for a request</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-token-count-sample-with-local-sdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-token-count-sample-with-local-sdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-token-count-sample-with-local-sdk" ><span class="devsite-nav-text" tooltip>Get the token count of a request locally</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-multimodal-embedding-video" ><span class="devsite-nav-text" tooltip>Get video embeddings from a video segment</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-grounding-with-web" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-grounding-with-web" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-grounding-with-web" ><span class="devsite-nav-text" tooltip>Ground Gemini model responses to Google Search</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-grounding-with-vais" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-grounding-with-vais" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-grounding-with-vais" ><span class="devsite-nav-text" tooltip>Ground Gemini to a Vertex AI Search data store</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-import-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-import-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-import-files" ><span class="devsite-nav-text" tooltip>Import a set of RAG files</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-import-files-async" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-import-files-async" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-import-files-async" ><span class="devsite-nav-text" tooltip>Import RAG files from Google Drive or Cloud Storage</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-multiturn-chat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-multiturn-chat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-multiturn-chat" ><span class="devsite-nav-text" tooltip>Interactive text generation with a chatbot</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-multiturn-chat-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-multiturn-chat-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-multiturn-chat-stream" ><span class="devsite-nav-text" tooltip>Interactive text stream generation with a chatbot</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-extensions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-extensions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-extensions" ><span class="devsite-nav-text" tooltip>List all Extensions in Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-list-prompt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-list-prompt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-list-prompt" ><span class="devsite-nav-text" tooltip>List all prompts</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-reasoning-engines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-reasoning-engines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-reasoning-engines" ><span class="devsite-nav-text" tooltip>List all Reasoning Engine instances</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-list-prompt-version" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-list-prompt-version" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-list-prompt-version" ><span class="devsite-nav-text" tooltip>List available prompt versions</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-context-caching-list" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-context-caching-list" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-context-caching-list" ><span class="devsite-nav-text" tooltip>List Cached Content Items</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-list-corpora" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-list-corpora" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-list-corpora" ><span class="devsite-nav-text" tooltip>List indexes in a project</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-6" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-6" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-6" ><span class="devsite-nav-text" tooltip>List objects in an image in JSON format</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-list-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-list-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-list-files" ><span class="devsite-nav-text" tooltip>List RAG files in an index</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-tuning-jobs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-tuning-jobs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-list-tuning-jobs" ><span class="devsite-nav-text" tooltip>List Supervised Tuning Jobs</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-load-or-retrieve-prompt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-load-or-retrieve-prompt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-template-load-or-retrieve-prompt" ><span class="devsite-nav-text" tooltip>Load or retrieve a prompt</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-optimizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-optimizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-optimizer" ><span class="devsite-nav-text" tooltip>Optimize prompts for text generation with Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluation-pairwise-summarization-quality" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluation-pairwise-summarization-quality" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-evaluation-pairwise-summarization-quality" ><span class="devsite-nav-text" tooltip>Pairwise Summarization Quality Evaluation</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-function-calling-generate-parallel-calls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-function-calling-generate-parallel-calls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-function-calling-generate-parallel-calls" ><span class="devsite-nav-text" tooltip>Parallel function calling</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pdf" ><span class="devsite-nav-text" tooltip>Process a PDF file with Gemini</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-all-modalities" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-all-modalities" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-all-modalities" ><span class="devsite-nav-text" tooltip>Process images, video, audio, and text with Gemini 1.5 Pro</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-query-reasoning-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-query-reasoning-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-query-reasoning-engine" ><span class="devsite-nav-text" tooltip>Query a Reasoning Engine</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-class" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-class" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-class" ><span class="devsite-nav-text" tooltip>Refresh Open AI API credentials by using Google Cloud authentication</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-remove-mask-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-remove-mask-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-remove-mask-mode" ><span class="devsite-nav-text" tooltip>Remove image content using automatic mask detection and inpainting with Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-remove-mask" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-remove-mask" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-edit-image-inpainting-remove-mask" ><span class="devsite-nav-text" tooltip>Remove image content using mask-based inpainting with Imagen</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-restore-version" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-restore-version" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-prompt-restore-version" ><span class="devsite-nav-text" tooltip>Restore a version of a prompt</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-retrieval-query" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-retrieval-query" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-retrieval-query" ><span class="devsite-nav-text" tooltip>Return the response from the LLM</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-set-labels" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-set-labels" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-set-labels" ><span class="devsite-nav-text" tooltip>Set labels for Generative AI requests in Vertex AI</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-system-instruction" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-system-instruction" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-system-instruction" ><span class="devsite-nav-text" tooltip>Set system instructions to Gemini 1.5 Pro</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema" ><span class="devsite-nav-text" tooltip>Specify a MIME response type for the Gemini API</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-7" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-7" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-controlled-generation-response-schema-7" ><span class="devsite-nav-text" tooltip>Specify controlled generation enum values in a JSON schema</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embeddings-specify-lower-dimension" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embeddings-specify-lower-dimension" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embeddings-specify-lower-dimension" ><span class="devsite-nav-text" tooltip>Specify Embedding dimension for multimodal input</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-streaming-text" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-streaming-text" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-streaming-text" ><span class="devsite-nav-text" tooltip>Streaming text generation</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-video-with-audio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-video-with-audio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-video-with-audio" ><span class="devsite-nav-text" tooltip>Summarize a video file with audio with Gemini 1.5 Pro</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-summarization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-summarization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-summarization" ><span class="devsite-nav-text" tooltip>Summarize an audio file with Gemini 1.5 Pro</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-transcription" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-transcription" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-transcription" ><span class="devsite-nav-text" tooltip>Transcript an audio file with Gemini 1.5 Pro</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-model-tuning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-model-tuning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-embedding-model-tuning" ><span class="devsite-nav-text" tooltip>Tune an embedding model using the specified parameters</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-tune-code-generation-model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-tune-code-generation-model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-sdk-tune-code-generation-model" ><span class="devsite-nav-text" tooltip>Tune Code Generation Model</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-update-context-cache" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-update-context-cache" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-update-context-cache" ><span class="devsite-nav-text" tooltip>Update context cache expiration</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-upload-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-upload-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-upload-file" ><span class="devsite-nav-text" tooltip>Upload a RAG file</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-tool-use" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-tool-use" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-claude-3-tool-use" ><span class="devsite-nav-text" tooltip>Use function calling with Anthropic to enhance the capabilities of Claude</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-function-calling-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-function-calling-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-chat-completions-function-calling-config" ><span class="devsite-nav-text" tooltip>Use function calling with Gemini using OpenAI SDK</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-youtube-video-key-moments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-youtube-video-key-moments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-youtube-video-key-moments" ><span class="devsite-nav-text" tooltip>Use Gemini to identify key moments in YouTube videos</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-describe-http-pdf" ><span class="devsite-nav-text" tooltip>Use Gemini to summarize PDF files</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-youtube-video-summarization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-youtube-video-summarization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-youtube-video-summarization" ><span class="devsite-nav-text" tooltip>Use Gemini to summarize YouTube videos</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-rag-quickstart" ><span class="devsite-nav-text" tooltip>Use the quickstart to get familiar with RAG</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-verify-image-watermark" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-verify-image-watermark" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-imagen-verify-image-watermark" ><span class="devsite-nav-text" tooltip>Verify an image&#39;s digital watermark</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/docs/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/samples" ><span class="devsite-nav-text" tooltip>Code samples for all products</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Jump Start Solutions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-external"><a href="/architecture/ai-ml/generative-ai-document-summarization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/ai-ml/generative-ai-document-summarization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/ai-ml/generative-ai-document-summarization" ><span class="devsite-nav-text" tooltip>Generative AI Document Summarization</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/architecture/ai-ml/generative-ai-rag" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/ai-ml/generative-ai-rag" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/ai-ml/generative-ai-rag" ><span class="devsite-nav-text" tooltip>Generative AI RAG with Cloud SQL</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/architecture/ai-ml/generative-ai-knowledge-base" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/ai-ml/generative-ai-knowledge-base" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/ai-ml/generative-ai-knowledge-base" ><span class="devsite-nav-text" tooltip>Generative AI Knowledge Base</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Secure a generative AI app by using IAP</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/streamlit-genai-iap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/streamlit-genai-iap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/streamlit-genai-iap" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/setup-environment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/setup-environment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/setup-environment" ><span class="devsite-nav-text" tooltip>Set up your project and source repository</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/create-cloudrun-service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/create-cloudrun-service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/create-cloudrun-service" ><span class="devsite-nav-text" tooltip>Create a Cloud Run service</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/create-loadbalancer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/create-loadbalancer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/create-loadbalancer" ><span class="devsite-nav-text" tooltip>Create a load balancer</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/configure-iap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/configure-iap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/configure-iap" ><span class="devsite-nav-text" tooltip>Configure IAP</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/view-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/view-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/view-app" ><span class="devsite-nav-text" tooltip>Test your IAP-secured app</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/streamlit/clean-up" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/streamlit/clean-up" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/streamlit/clean-up" ><span class="devsite-nav-text" tooltip>Clean up your project</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Resources</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/pricing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/pricing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/pricing" ><span class="devsite-nav-text" tooltip>Pricing</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Release notes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/release-notes" ><span class="devsite-nav-text" tooltip>Current</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/release-notes-archive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/release-notes-archive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/release-notes-archive" ><span class="devsite-nav-text" tooltip>Archive</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/security-bulletins" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/security-bulletins" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/security-bulletins" ><span class="devsite-nav-text" tooltip>Security bulletins</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/glossary-genai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/glossary-genai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/glossary-genai" ><span class="devsite-nav-text" tooltip>Glossary</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/learn/locations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/locations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/locations" ><span class="devsite-nav-text" tooltip>Locations</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Quotas and limits</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/dsq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/dsq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/dsq" ><span class="devsite-nav-text" tooltip>Dynamic shared quota</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/quotas" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/quotas" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/quotas" ><span class="devsite-nav-text" tooltip>Rate limits</span></a></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Provisioned Throughput</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/provisioned-throughput" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/provisioned-throughput" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/provisioned-throughput" ><span class="devsite-nav-text" tooltip>Provisioned Throughput overview</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/supported-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/supported-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/supported-models" ><span class="devsite-nav-text" tooltip>Supported models</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/measure-provisioned-throughput" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/measure-provisioned-throughput" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/measure-provisioned-throughput" ><span class="devsite-nav-text" tooltip>Measure Provisioned Throughput</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/purchase-provisioned-throughput" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/purchase-provisioned-throughput" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/purchase-provisioned-throughput" ><span class="devsite-nav-text" tooltip>Purchase Provisioned Throughput</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/use-provisioned-throughput" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/use-provisioned-throughput" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/use-provisioned-throughput" ><span class="devsite-nav-text" tooltip>Use Provisioned Throughput</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/error-code-429" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/error-code-429" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/error-code-429" ><span class="devsite-nav-text" tooltip>Error code 429</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/compliance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/compliance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/compliance" ><span class="devsite-nav-text" tooltip>Certifications</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/data-governance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/data-governance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/data-governance" ><span class="devsite-nav-text" tooltip>Data governance</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/getting-help" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/getting-help" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/getting-help" ><span class="devsite-nav-text" tooltip>Getting help</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/sla" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/sla" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/sla" ><span class="devsite-nav-text" tooltip>Service Level Agreement</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Deprecations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/deprecations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/deprecations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/deprecations" ><span class="devsite-nav-text" tooltip>Deprecations</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/deprecations/partner-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/deprecations/partner-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/deprecations/partner-models" ><span class="devsite-nav-text" tooltip>Model as a Service (MaaS) deprecations</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/deprecations/gemini-1.0-pro" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/deprecations/gemini-1.0-pro" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/deprecations/gemini-1.0-pro" ><span class="devsite-nav-text" tooltip>Gemini 1.0 Pro and Gemini 1.0 Pro Vision</span></a></li><li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/deprecations/palm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/deprecations/palm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/deprecations/palm" ><span class="devsite-nav-text" tooltip>Pathways Language Model (PaLM)</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Administer</span> </div></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/access-control" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/access-control" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/access-control" ><span class="devsite-nav-text" tooltip>Access control</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/security-controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/security-controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/security-controls" ><span class="devsite-nav-text" tooltip>Security controls</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/control-model-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/control-model-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/control-model-access" ><span class="devsite-nav-text" tooltip>Control access to Model Garden models</span></a></li> <li class="devsite-nav-item"><a href="/vertex-ai/generative-ai/docs/enable-audit-logs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/enable-audit-logs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/enable-audit-logs" ><span class="devsite-nav-text" tooltip>Enable Data Access audit logs</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Legacy</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Legacy docs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/legacy/legacy-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/legacy/legacy-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/legacy/legacy-models" ><span class="devsite-nav-text" tooltip>About legacy models</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>PaLM 2 API (text/chat)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/language-model-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/language-model-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/language-model-overview" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/text/test-text-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/text/test-text-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/text/test-text-prompts" ><span class="devsite-nav-text" tooltip>Send text prompt requests</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/text/batch-prediction-genai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/text/batch-prediction-genai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/text/batch-prediction-genai" ><span class="devsite-nav-text" tooltip>Get batch responses for text</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/grounding/ground-language-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/grounding/ground-language-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/grounding/ground-language-models" ><span class="devsite-nav-text" tooltip>Ground responses</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/chat/test-chat-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/chat/test-chat-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/chat/test-chat-prompts" ><span class="devsite-nav-text" tooltip>Send chat prompt requests</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Tune PaLM 2 models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/models/tune-text-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune-text-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune-text-models" ><span class="devsite-nav-text" tooltip>Tune and distill PaLM models</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/models/tune-text-models-supervised" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune-text-models-supervised" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune-text-models-supervised" ><span class="devsite-nav-text" tooltip>Use supervised tuning</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/models/tune-text-models-rlhf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune-text-models-rlhf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune-text-models-rlhf" ><span class="devsite-nav-text" tooltip>Use RLHF tuning</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/models/distill-text-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/distill-text-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/distill-text-models" ><span class="devsite-nav-text" tooltip>Distill text models</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/compute-token" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/compute-token" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/compute-token" ><span class="devsite-nav-text" tooltip>Get a list of tokens</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/get-token-count" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/get-token-count" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/get-token-count" ><span class="devsite-nav-text" tooltip>Get token count</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/learn/streaming" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/learn/streaming" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/learn/streaming" ><span class="devsite-nav-text" tooltip>Stream responses</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/configure-safety-attributes-palm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/configure-safety-attributes-palm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/configure-safety-attributes-palm" ><span class="devsite-nav-text" tooltip>Configure safety attributes</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Codey API (code)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/code/code-models-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/code-models-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/code-models-overview" ><span class="devsite-nav-text" tooltip>Overview of code models</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/code/test-code-chat-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/test-code-chat-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/test-code-chat-prompts" ><span class="devsite-nav-text" tooltip>Send code chat requests</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/code/test-code-generation-prompts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/test-code-generation-prompts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/test-code-generation-prompts" ><span class="devsite-nav-text" tooltip>Send code generation requests</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/models/tune-code-models" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/models/tune-code-models" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/models/tune-code-models" ><span class="devsite-nav-text" tooltip>Tune Codey models</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/code/batch-prediction-genai-code" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/code/batch-prediction-genai-code" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/code/batch-prediction-genai-code" ><span class="devsite-nav-text" tooltip>Get batch code predictions</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/model-reference/code-generation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-reference/code-generation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-reference/code-generation" ><span class="devsite-nav-text" tooltip>Codey for code generation</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/model-reference/code-chat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-reference/code-chat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-reference/code-chat" ><span class="devsite-nav-text" tooltip>Codey for code chat</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/model-reference/text" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-reference/text" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-reference/text" ><span class="devsite-nav-text" tooltip>PaLM 2 for text</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/model-reference/text-chat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/model-reference/text-chat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/model-reference/text-chat" ><span class="devsite-nav-text" tooltip>PaLM 2 for chat</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/legacy/legacy-quotas" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/legacy/legacy-quotas" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/legacy/legacy-quotas" ><span class="devsite-nav-text" tooltip>Quotas and limits</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/legacy/legacy-security" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/legacy/legacy-security" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/legacy/legacy-security" ><span class="devsite-nav-text" tooltip>Security controls</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/vertex-ai/generative-ai/docs/legacy/legacy-pricing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /vertex-ai/generative-ai/docs/legacy/legacy-pricing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/vertex-ai/generative-ai/docs/legacy/legacy-pricing" ><span class="devsite-nav-text" tooltip>Pricing</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Technology areas" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/ai-ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI and ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > AI and ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application development" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application development </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compute-area" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compute </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data analytics and pipelines" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data analytics and pipelines </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/databases" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Databases" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Databases </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/dhm-cloud" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Distributed, hybrid, and multicloud" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Distributed, hybrid, and multicloud </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/industry" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Industry solutions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Industry solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/networking" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Networking" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Networking </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/observability" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Observability and monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Observability and monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Cross-product tools" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/access-resources" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Access and resources management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Access and resources management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/costs-usage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Costs and usage management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Costs and usage management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devtools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud SDK, languages, frameworks, and tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud SDK, languages, frameworks, and tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/iac" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Infrastructure as code" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Infrastructure as code </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/migration" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Migration" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Migration </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Related sites" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Home" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/free" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Free Trial and Free Tier" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Free Trial and Free Tier </span> </a> </li> <li class="devsite-nav-item"> <a href="/architecture" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Architecture Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Architecture Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Sales" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Sales </span> </a> </li> <li class="devsite-nav-item"> <a href="/developers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace </span> </a> </li> <li class="devsite-nav-item"> <a href="/marketplace/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace Documentation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace Documentation </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Skills Boost" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Skills Boost </span> </a> </li> <li class="devsite-nav-item"> <a href="/solutions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Solution Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Solution Center </span> </a> </li> <li class="devsite-nav-item"> <a href="/support-hub" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Support </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Tech Youtube Channel" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Tech Youtube Channel </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Cloud" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Generative AI" > Generative AI </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Generative AI" > Documentation </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Generative AI" product-id="5164350" bucket="Documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=1130925" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" project-support-url="https://cloud.google.com/support-hub" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Image understanding </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <div> <aside class="objective"><p>To see an example of image understanding, run the "Intro to Multimodal Use Cases with the Gemini API" Jupyter notebook in one of the following environments: </p><p><a href="https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/intro_multimodal_use_cases.ipynb" track-type="notebookTutorial" track-name="colabLink">Open in Colab</a> | <a href="https://console.cloud.google.com/vertex-ai/colab/import/https%3A%2F%2Fraw.githubusercontent.com%2FGoogleCloudPlatform%2Fgenerative-ai%2Fmain%2Fgemini%2Fuse-cases%2Fintro_multimodal_use_cases.ipynb" track-type="notebookTutorial" track-name="colabEnterpriseLink">Open in Colab Enterprise</a> | <a href="https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https%3A%2F%2Fraw.githubusercontent.com%2FGoogleCloudPlatform%2Fgenerative-ai%2Fmain%2Fgemini%2Fuse-cases%2Fintro_multimodal_use_cases.ipynb" track-type="notebookTutorial" track-name="workbenchLink">Open in Vertex AI Workbench user-managed notebooks</a> | <a href="https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/intro_multimodal_use_cases.ipynb" track-type="notebookTutorial" track-name="gitHubLink">View on GitHub</a></p></aside> </div> <p>You can add images to Gemini requests to perform tasks that involve understanding the contents of the included images. This page shows you how to add images to your requests to Gemini in Vertex AI by using the Google Cloud console and the Vertex AI API.</p> <h2 id="supported_models" data-text="Supported models" tabindex="-1">Supported models</h2> <p>The following table lists the models that support image understanding:</p> <table> <thead> <tr> <th width="25%"><strong>Model</strong></th> <th width="75%"><strong>Image modality details</strong></th> </tr> </thead> <tbody> <tr> <td><p><b>Gemini&nbsp;1.5&nbsp;Flash</b></p> <a href="https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/gemini-1.5-flash-001" class="button button-primary" target="console" track-name="consoleLink" track-type="tutorial" width="250px" track-metadata-position="body">Go to the Gemini&nbsp;1.5&nbsp;Flash model card</a></td> <td>Maximum images per prompt: 3,000</td> </tr> <tr> <td><p><b>Gemini&nbsp;1.5&nbsp;Pro</b></p> <a href="https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/gemini-1.5-pro-001" class="button button-primary" target="console" track-name="consoleLink" track-type="tutorial" width="250px" track-metadata-position="body">Go to the Gemini&nbsp;1.5&nbsp;Pro model card</a></td> <td>Maximum images per prompt: 3,000</td> </tr> <tr> <td><p><b>Gemini&nbsp;1.0&nbsp;Pro&nbsp;Vision</b></p> <a href="https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/gemini-pro-vision" class="button button-primary" target="console" track-name="consoleLink" track-type="tutorial" width="250px" track-metadata-position="body">Go to the Gemini&nbsp;1.0&nbsp;Pro&nbsp;Vision model card</a></td> <td>Maximum images per prompt: 16</td> </tr> </tbody> </table> <p>For a list of languages supported by Gemini models, see model information <a href="/vertex-ai/generative-ai/docs/learn/models">Google models</a>. To learn more about how to design multimodal prompts, see <a href="/vertex-ai/generative-ai/docs/multimodal/design-multimodal-prompts">Design multimodal prompts</a>. If you&#39;re looking for a way to use Gemini directly from your mobile and web apps, see the <a href="https://firebase.google.com/docs/vertex-ai">Vertex AI in Firebase SDKs</a> for Android, Swift, web, and Flutter apps.</p> <h2 id="add_images_to_a_request" data-text="Add images to a request" tabindex="-1">Add images to a request</h2> </li> </ol> <p>You can add a single image or multiple images in your request to Gemini.</p> <h3 id="single_image" data-text="Single image" tabindex="-1">Single image</h3> <p>The sample code in each of the following tabs shows a different way to identify what&#39;s in an image. This sample works with all Gemini multimodal models.</p> <div> <devsite-selector> <section> <h3 id="gemini-send-multimodal-samples-image-python_genai_sdk" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Gen AI SDK for Python" tabindex="-1">Gen AI SDK for Python</h3> <p>Learn how to install or update the <a href="/vertex-ai/generative-ai/docs/sdks/overview" track-type="clientLibrariesReference" track- name="python_genai_sdk" track-metadata-position="gemini-send-multimodal-samples-image">Google Gen AI SDK for Python</a>. <br> For more information, see the <a href="https://googleapis.github.io/python-genai/" class="external" track-type="clientLibrariesUsage" track-name="clientLibrariesLink" track-metadata-lang="python_genai_sdk"> Gen AI SDK for Python API reference documentation</a> or the <a href="https://googleapis.github.io/python-genai/" track-type="clientLibrariesUsage" track-name="clientLibrariesLink" track-metadata-lang="python_genai_sdk"> <code translate="no" dir="ltr">python-genai</code> GitHub repository</a>. <br> Set environment variables to use the Gen AI SDK with Vertex AI: <div></div><devsite-code><pre suppresswarning class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash"><span class="devsite-syntax-c1"># Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values</span> <span class="devsite-syntax-c1"># with appropriate values for your project.</span> <span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">GOOGLE_CLOUD_PROJECT</span><span class="devsite-syntax-o">=</span><var class="edit" scope="GOOGLE_CLOUD_PROJECT" translate="no">GOOGLE_CLOUD_PROJECT</var> <span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">GOOGLE_CLOUD_LOCATION</span><span class="devsite-syntax-o">=</span>us-central1 <span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">GOOGLE_GENAI_USE_VERTEXAI</span><span class="devsite-syntax-o">=</span>True</pre></devsite-code> </p> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/genai/text_generation/textgen_with_txt_img.py/HEAD/googlegenaisdk_textgen_with_txt_img" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/genai/text_generation/textgen_with_txt_img.py" feedback-context="{&#34;language&#34;: &#34;python_genai_sdk&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-image&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/genai/text_generation/textgen_with_txt_img.py&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="python_genai_sdk" data-github-path="GoogleCloudPlatform/python-docs-samples/genai/text_generation/textgen_with_txt_img.py" data-git-revision="HEAD" data-region-tag="googlegenaisdk_textgen_with_txt_img" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">genai</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.genai.types</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">HttpOptions</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">Part</span> <span class="devsite-syntax-n">client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">genai</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Client</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">http_options</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">HttpOptions</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">api_version</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"v1"</span><span class="devsite-syntax-p">))</span> <span class="devsite-syntax-n">response</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">models</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">generate_content</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">model</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"gemini-2.0-flash-001"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">contents</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-s2">"What is shown in this image?"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_uri</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">file_uri</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"gs://cloud-samples-data/generative-ai/image/scones.jpg"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">mime_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"image/jpeg"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">text</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Example response:</span> <span class="devsite-syntax-c1"># The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...</span></code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-image-python_vertex_ai_sdk" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Vertex AI SDK for Python" tabindex="-1">Vertex AI SDK for Python</h3> <p>To learn how to install or update the Vertex AI SDK for Python, see <a href="/vertex-ai/docs/python-sdk/use-vertex-ai-python-sdk#install-vertex-ai-python-sdk"> Install the Vertex AI SDK for Python</a>. For more information, see the <a href="/python/docs/reference/aiplatform/latest">Vertex AI SDK for Python API reference documentation.</a></p> <h3 id="streaming-and-non-streaming-responses" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <code translate="no" dir="ltr">stream</code> parameter in <a href="/python/docs/reference/aiplatform/latest/vertexai.preview.generative_models#content"> <code translate="no" dir="ltr">generate_content</code></a>.</p> <div></div><devsite-code><pre class="python" translate="no" dir="ltr" is-upgraded> response = model.generate_content(contents=[...], stream = True) </pre></devsite-code> <p>For a non-streaming response, remove the parameter, or set the parameter to <code translate="no" dir="ltr">False</code>.</p> <h3 id="sample-code" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/generative_ai/image/image_example02.py/HEAD/generativeaionvertexai_gemini_pro_example" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/generative_ai/image/image_example02.py" feedback-context="{&#34;language&#34;: &#34;python_vertex_ai_sdk&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-image&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/generative_ai/image/image_example02.py&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="python_vertex_ai_sdk" data-github-path="GoogleCloudPlatform/python-docs-samples/generative_ai/image/image_example02.py" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_pro_example" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">vertexai</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">vertexai.generative_models</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">Part</span> <span class="devsite-syntax-c1"># TODO(developer): Update and un-comment below line</span> <span class="devsite-syntax-c1"># PROJECT_ID = "your-project-id"</span> <span class="devsite-syntax-n">vertexai</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">init</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">PROJECT_ID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">location</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"us-central1"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">model</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"gemini-1.5-flash-002"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">image_file</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_uri</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-s2">"gs://cloud-samples-data/generative-ai/image/scones.jpg"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"image/jpeg"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Query the model</span> <span class="devsite-syntax-n">response</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">model</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">generate_content</span><span class="devsite-syntax-p">([</span><span class="devsite-syntax-n">image_file</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"what is this image?"</span><span class="devsite-syntax-p">])</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">text</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Example response:</span> <span class="devsite-syntax-c1"># That's a lovely overhead flatlay photograph of blueberry scones.</span> <span class="devsite-syntax-c1"># The image features:</span> <span class="devsite-syntax-c1"># * **Several blueberry scones:** These are the main focus,</span> <span class="devsite-syntax-c1"># arranged on parchment paper with some blueberry juice stains.</span> <span class="devsite-syntax-c1"># ...</span> </code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-image-java" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Java" tabindex="-1"><span class="notranslate">Java</span></h3> <p>Before trying this sample, follow the Java setup instructions in the <a href="/vertex-ai/docs/start/client-libraries">Vertex AI quickstart</a>. For more information, see the <a href="/java/docs/reference/google-cloud-vertexai/latest/overview">Vertex AI Java SDK for Gemini reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_1" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="/java/docs/reference/google-cloud-vertexai/latest/com.google.cloud.vertexai.generativeai.preview.GenerativeModel#com_google_cloud_vertexai_generativeai_preview_GenerativeModel_generateContentStream_com_google_cloud_vertexai_api_Content_"> <code translate="no" dir="ltr">generateContentStream</code></a> method.</p> <div></div><devsite-code><pre class="java" translate="no" dir="ltr" is-upgraded> public ResponseStream&lt;GenerateContentResponse&gt; generateContentStream(Content content) </pre></devsite-code> <p>For a non-streaming response, use the <a href="/java/docs/reference/google-cloud-vertexai/latest/com.google.cloud.vertexai.generativeai.preview.GenerativeModel#com_google_cloud_vertexai_generativeai_preview_GenerativeModel_generateContent_com_google_cloud_vertexai_api_Content_"> <code translate="no" dir="ltr">generateContent</code></a> method.</p> <div></div><devsite-code><pre class="java" translate="no" dir="ltr" is-upgraded> public GenerateContentResponse generateContent(Content content) </pre></devsite-code> <h3 id="sample-code_1" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalQuery.java/HEAD/generativeaionvertexai_gemini_pro_example" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalQuery.java" feedback-context="{&#34;language&#34;: &#34;java&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-image&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalQuery.java&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalQuery.java" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_pro_example" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.VertexAI</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.api.GenerateContentResponse</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.ContentMaker</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.GenerativeModel</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.PartMaker</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.ResponseHandler</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.Base64</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">MultimodalQuery</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Exception</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"your-google-cloud-project-id"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gemini-1.5-flash-001"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataImageBase64</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"your-base64-encoded-image"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">multimodalQuery</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataImageBase64</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">System</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">out</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">println</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Ask the model to recognise the brand associated with the logo image.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">multimodalQuery</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataImageBase64</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Exception</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// to be created once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">VertexAI</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">vertexAI</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">VertexAI</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-p">))</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">byte</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">imageBytes</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Base64</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getDecoder</span><span class="devsite-syntax-p">().</span><span class="devsite-syntax-na">decode</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">dataImageBase64</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">vertexAI</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">GenerateContentResponse</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">model</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">generateContent</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ContentMaker</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">fromMultiModalData</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"What is this image?"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PartMaker</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">fromMimeTypeAndData</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">imageBytes</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">));</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ResponseHandler</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getText</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-image-nodejs" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Node.js" tabindex="-1"><span class="notranslate">Node.js</span></h3> <p>Before trying this sample, follow the Node.js setup instructions in the <a href="/nodejs/docs/reference/vertexai/latest#before-you-begin">Generative AI quickstart using the Node.js SDK</a>. For more information, see the <a href="/nodejs/docs/reference/vertexai/latest">Node.js SDK for Gemini reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_2" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="/nodejs/docs/reference/vertexai/latest#streaming-content-generation"> <code translate="no" dir="ltr">generateContentStream</code></a> method.</p> <div></div><devsite-code><pre class="javascript" translate="no" dir="ltr" is-upgraded> const streamingResp = await generativeModel.generateContentStream(request); </pre></devsite-code> <p>For a non-streaming response, use the <a href="/nodejs/docs/reference/vertexai/latest#content-generation-non-streaming"> <code translate="no" dir="ltr">generateContent</code></a> method.</p> <div></div><devsite-code><pre class="javascript" translate="no" dir="ltr" is-upgraded> const streamingResp = await generativeModel.generateContent(request); </pre></devsite-code> <h3 id="sample-code_2" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/nodejs-docs-samples/generative-ai/snippets/nonStreamingMultipartContent.js/HEAD/generativeaionvertexai_gemini_get_started" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/generative-ai/snippets/nonStreamingMultipartContent.js" feedback-context="{&#34;language&#34;: &#34;nodejs&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-image&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/generative-ai/snippets/nonStreamingMultipartContent.js&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="nodejs" data-github-path="GoogleCloudPlatform/nodejs-docs-samples/generative-ai/snippets/nonStreamingMultipartContent.js" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_get_started" dir="ltr" is-upgraded syntax="JavaScript"><code translate="no" dir="ltr"><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-nx">VertexAI</span><span class="devsite-syntax-p">}</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'@google-cloud/vertexai'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-cm">/**</span> <span class="devsite-syntax-cm"> * TODO(developer): Update these variables before running the sample.</span> <span class="devsite-syntax-cm"> */</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">createNonStreamingMultipartContent</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'PROJECT_ID'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'us-central1'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'gemini-1.5-flash-001'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">image</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'gs://generativeai-downloads/images/scones.jpg'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mimeType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'image/jpeg'</span> <span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize Vertex with your Cloud project and location</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">vertexAI</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">VertexAI</span><span class="devsite-syntax-p">({</span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Instantiate the model</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">generativeVisionModel</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">vertexAI</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getGenerativeModel</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// For images, the SDK supports both Google Cloud Storage URI and base64 strings</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">filePart</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fileData</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fileUri</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">image</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mimeType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mimeType</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">};</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">textPart</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">text</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'what is shown in this image?'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">};</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">request</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">contents</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[{</span><span class="devsite-syntax-nx">role</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'user'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">parts</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">filePart</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">textPart</span><span class="devsite-syntax-p">]}],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">};</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Prompt Text:'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">request</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">contents</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mf">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">parts</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mf">1</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">text</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Non-Streaming Response Text:'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Generate a response</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">generativeVisionModel</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">generateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">request</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Select the text from the response</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fullTextResponse</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">candidates</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mf">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">content</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">parts</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mf">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">text</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">fullTextResponse</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-image-go" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Go" tabindex="-1"><span class="notranslate">Go</span></h3> <p>Before trying this sample, follow the Go setup instructions in the <a href="/vertex-ai/docs/start/client-libraries">Vertex AI quickstart.</a> For more information, see the <a href="/go/docs/reference/cloud.google.com/go/vertexai/latest">Vertex AI Go SDK for Gemini reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_3" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="https://pkg.go.dev/cloud.google.com/go/vertexai/genai#GenerativeModel.GenerateContentStream"> <code translate="no" dir="ltr">GenerateContentStream</code></a> method.</p> <div></div><devsite-code><pre class="go" translate="no" dir="ltr" is-upgraded> iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short.")) </pre></devsite-code> <p>For a non-streaming response, use the <a href="https://pkg.go.dev/cloud.google.com/go/vertexai/genai#GenerativeModel.GenerateContent"><code translate="no" dir="ltr">GenerateContent</code></a> method.</p> <div></div><devsite-code><pre class="go" translate="no" dir="ltr" is-upgraded> resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?")) </pre></devsite-code> <h3 id="sample-code_3" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/vertexai/snippets/try_gemini.go/HEAD/generativeaionvertexai_gemini_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/vertexai/snippets/try_gemini.go" feedback-context="{&#34;language&#34;: &#34;golang&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-image&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/vertexai/snippets/try_gemini.go&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="golang" data-github-path="GoogleCloudPlatform/golang-samples/vertexai/snippets/try_gemini.go" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_image" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"encoding/json"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/vertexai/genai"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">tryGemini</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">modelName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// location := "us-central1"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// modelName := "gemini-1.5-flash-001"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NewClient</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"error creating client: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">gemini</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">GenerativeModel</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">modelName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">img</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">FileData</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MIMEType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"image/jpeg"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">FileURI</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gs://generativeai-downloads/images/scones.jpg"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">prompt</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Text</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"What is in this image?"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">resp</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">gemini</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">GenerateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">img</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">prompt</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"error generating content: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">rb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">json</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">MarshalIndent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">resp</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">""</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">" "</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"json.MarshalIndent: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintln</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">string</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">rb</span><span class="devsite-syntax-p">))</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-image-csharp" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="C#" tabindex="-1"><span class="notranslate">C#</span></h3> <p>Before trying this sample, follow the C# setup instructions in the <a href="/vertex-ai/docs/start/client-libraries">Vertex AI quickstart</a>. For more information, see the <a href="/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest">Vertex AI C# reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_4" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient#Google_Cloud_AIPlatform_V1_PredictionServiceClient_StreamGenerateContent_Google_Cloud_AIPlatform_V1_GenerateContentRequest_Google_Api_Gax_Grpc_CallSettings_"> <code translate="no" dir="ltr">StreamGenerateContent</code></a> method.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="C#"><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">virtual</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PredictionServiceClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">StreamGenerateContentStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">StreamGenerateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">GenerateContentRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span></pre></devsite-code> <p>For a non-streaming response, use the <a href="/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient#Google_Cloud_AIPlatform_V1_PredictionServiceClient_GenerateContentAsync_Google_Cloud_AIPlatform_V1_GenerateContentRequest_Google_Api_Gax_Grpc_CallSettings_"> <code translate="no" dir="ltr">GenerateContentAsync</code></a> method.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="C#"><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">virtual</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Task&lt;GenerateContentResponse&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">GenerateContentAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">GenerateContentRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span></pre></devsite-code> <p>For more information on how the server can stream responses, see <a href="/dotnet/docs/reference/help/grpc-streaming">Streaming RPCs</a>.</p> <h3 id="sample-code_4" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/dotnet-docs-samples/aiplatform/api/AIPlatform.Samples/GeminiQuickstart.cs/HEAD/generativeaionvertexai_gemini_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/HEAD/aiplatform/api/AIPlatform.Samples/GeminiQuickstart.cs" feedback-context="{&#34;language&#34;: &#34;csharp&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-image&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/HEAD/aiplatform/api/AIPlatform.Samples/GeminiQuickstart.cs&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="csharp" data-github-path="GoogleCloudPlatform/dotnet-docs-samples/aiplatform/api/AIPlatform.Samples/GeminiQuickstart.cs" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_image" dir="ltr" is-upgraded syntax="C#"><code translate="no" dir="ltr"> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Grpc.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Api.Gax.Grpc" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Grpc.html"><span class="devsite-syntax-nn">Google.Api.Gax.Grpc</span></a><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.html"><span class="devsite-syntax-nn">Google.Cloud.AIPlatform.V1</span></a><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">System.Text</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">System.Threading.Tasks</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">class</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nc">GeminiQuickstart</span> <span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Task&lt;string&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">GenerateContent</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"your-project-id"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">publisher</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gemini-1.5-flash-001"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create client</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">predictionServiceClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClientBuilder.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClientBuilder.html"><span class="devsite-syntax-n">PredictionServiceClientBuilder</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Endpoint.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Endpoint.html"><span class="devsite-syntax-n">Endpoint</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">$"{location}-aiplatform.googleapis.com"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}.</span><span class="devsite-syntax-n">Build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize content request</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">generateContentRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentRequest.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentRequest.html"><span class="devsite-syntax-n">GenerateContentRequest</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Model.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Model.html"><span class="devsite-syntax-n">Model</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">$"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html"><span class="devsite-syntax-n">GenerationConfig</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html"><span class="devsite-syntax-n">GenerationConfig</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html#Google_Cloud_AIPlatform_V1_GenerationConfig_Temperature" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html#Google_Cloud_AIPlatform_V1_GenerationConfig_Temperature"><span class="devsite-syntax-n">Temperature</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mf">0.4f</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html#Google_Cloud_AIPlatform_V1_GenerationConfig_TopP" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html#Google_Cloud_AIPlatform_V1_GenerationConfig_TopP"><span class="devsite-syntax-n">TopP</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TopK</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">32</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html#Google_Cloud_AIPlatform_V1_GenerationConfig_MaxOutputTokens" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerationConfig.html#Google_Cloud_AIPlatform_V1_GenerationConfig_MaxOutputTokens"><span class="devsite-syntax-n">MaxOutputTokens</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">2048</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Contents</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html"><span class="devsite-syntax-n">Content</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Role</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"USER"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Parts</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Text</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"What's in this photo?"</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.FileData.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.FileData.html"><span class="devsite-syntax-n">FileData</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">MimeType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.FileData.html#Google_Cloud_AIPlatform_V1_FileData_FileUri" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.FileData.html#Google_Cloud_AIPlatform_V1_FileData_FileUri"><span class="devsite-syntax-n">FileUri</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gs://generativeai-downloads/images/scones.jpg"</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">};</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Make the request, returning a streaming response</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">PredictionServiceClient.<a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient.StreamGenerateContentStream.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient.StreamGenerateContentStream.html">StreamGenerateContentStream</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">predictionServiceClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">StreamGenerateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">generateContentRequest</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">StringBuilder</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fullText</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Read streaming responses from server until complete</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AsyncResponseStream&lt;GenerateContentResponse&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">GetResponseStream</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">foreach</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentResponse.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentResponse.html"><span class="devsite-syntax-n">GenerateContentResponse</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseItem</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">in</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseStream</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fullText</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">Append</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">responseItem</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">Candidates</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">].</span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html"><span class="devsite-syntax-n">Content</span></a><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">Parts</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-n">Text</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fullText</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">ToString</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-image-drest" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="REST" tabindex="-1">REST</h3> <p> After you <a href="/vertex-ai/generative-ai/docs/start/quickstarts/quickstart-multimodal#gemini-setup-environment-drest">set up your environment</a>, you can use REST to test a text prompt. The following sample sends a request to the publisher model endpoint. </p> You can include images that are stored in Cloud Storage or use base64-encoded image data. <div> <devsite-selector> <section> <h3 id="gemini-send-multimodal-samples-image-Image in " track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Image in Cloud Storage" tabindex="-1">Image in Cloud Storage</h3> <p> Before using any of the request data, make the following replacements: </p> <ul> <li><code translate="no" dir="ltr"><var class="edit" scope="LOCATION" translate="no">LOCATION</var></code>: The region to process the request. Enter a supported region. For the full list of supported regions, see <a href="/vertex-ai/generative-ai/docs/learn/locations#available-regions">Available locations</a>. <devsite-expandable> <p class="showalways"><b>Click to expand a partial list of available regions</b></p> <ul> <li><code translate="no" dir="ltr">us-central1</code></li> <li><code translate="no" dir="ltr">us-west4</code></li> <li><code translate="no" dir="ltr">northamerica-northeast1</code></li> <li><code translate="no" dir="ltr">us-east4</code></li> <li><code translate="no" dir="ltr">us-west1</code></li> <li><code translate="no" dir="ltr">asia-northeast3</code></li> <li><code translate="no" dir="ltr">asia-southeast1</code></li> <li><code translate="no" dir="ltr">asia-northeast1</code></li> </ul> </devsite-expandable> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="PROJECT_ID" translate="no">PROJECT_ID</var></code>: Your <a href="/resource-manager/docs/creating-managing-projects#identifiers">project ID</a>.</li> <li><code translate="no" dir="ltr"><var class="edit" scope="FILE_URI" translate="no">FILE_URI</var></code>: The URI or URL of the file to include in the prompt. Acceptable values include the following: <ul> <li><b>Cloud Storage bucket URI:</b> The object must either be publicly readable or reside in the same Google Cloud project that's sending the request. For <code translate="no" dir="ltr">gemini-1.5-pro</code> and <code translate="no" dir="ltr">gemini-1.5-flash</code>, the size limit is 2&nbsp;GB. For <code translate="no" dir="ltr">gemini-1.0-pro-vision</code>, the size limit is 20&nbsp;MB.</li> <li><b>HTTP URL:</b> The file URL must be publicly readable. You can specify one video file, one audio file, and up to 10 image files per request. Audio files, video files, and documents can't exceed 15&nbsp;MB.</li> <li><b>YouTube video URL:</b>The YouTube video must be either owned by the account that you used to sign in to the Google Cloud console or is public. Only one YouTube video URL is supported per request.</li> </ul> <p>When specifying a <code translate="no" dir="ltr">fileURI</code>, you must also specify the media type (<code translate="no" dir="ltr">mimeType</code>) of the file. If VPC Service Controls is enabled, specifying a media file URL for <code translate="no" dir="ltr">fileURI</code> is not supported.</p> <p> If you don't have an image file in Cloud Storage, then you can use the following publicly available file: <code translate="no" dir="ltr">gs://cloud-samples-data/generative-ai/image/scones.jpg</code> with a mime type of <code translate="no" dir="ltr">image/jpeg</code>. To view this image, <a href="https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg">open the sample image</a> file. </p> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="MIME_TYPE" translate="no">MIME_TYPE</var></code>: The media type of the file specified in the <code translate="no" dir="ltr">data</code> or <code translate="no" dir="ltr">fileUri</code> fields. Acceptable values include the following: <devsite-expandable> <p class="showalways"><b>Click to expand MIME types</b></p> <ul> <li><code translate="no" dir="ltr">application/pdf</code></li> <li><code translate="no" dir="ltr">audio/mpeg</code></li> <li><code translate="no" dir="ltr">audio/mp3</code></li> <li><code translate="no" dir="ltr">audio/wav</code></li> <li><code translate="no" dir="ltr">image/png</code></li> <li><code translate="no" dir="ltr">image/jpeg</code></li> <li><code translate="no" dir="ltr">image/webp</code></li> <li><code translate="no" dir="ltr">text/plain</code></li> <li><code translate="no" dir="ltr">video/mov</code></li> <li><code translate="no" dir="ltr">video/mpeg</code></li> <li><code translate="no" dir="ltr">video/mp4</code></li> <li><code translate="no" dir="ltr">video/mpg</code></li> <li><code translate="no" dir="ltr">video/avi</code></li> <li><code translate="no" dir="ltr">video/wmv</code></li> <li><code translate="no" dir="ltr">video/mpegps</code></li> <li><code translate="no" dir="ltr">video/flv</code></li> </ul> </devsite-expandable> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="TEXT" translate="no">TEXT</var></code>: The text instructions to include in the prompt. For example, <code translate="no" dir="ltr">What is shown in this image?</code> </li> </ul> <p>To send your request, choose one of these options:</p><div class="ds-selector-tabs"> <section > <h4 id="curl" data-text="curl" tabindex="-1">curl</h4> <aside class="note"><b>Note:</b> The following command assumes that you have logged in to the <code translate="no" dir="ltr">gcloud</code> CLI with your user account by running <a href="/sdk/gcloud/reference/init"><code translate="no" dir="ltr">gcloud init</code></a> or <a href="/sdk/gcloud/reference/auth/login"><code translate="no" dir="ltr">gcloud auth login</code></a> , or by using <a href="/shell/docs">Cloud Shell</a>, which automatically logs you into the <code translate="no" dir="ltr">gcloud</code> CLI . You can check the currently active account by running <a href="/sdk/gcloud/reference/auth/list"><code translate="no" dir="ltr">gcloud auth list</code></a>. </aside> <p> Save the request body in a file named <code translate="no" dir="ltr">request.json</code>. Run the following command in the terminal to create or overwrite this file in the current directory: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="CURL command to create request body" translate="no" dir="ltr" is-upgraded>cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "<var translate="no">FILE_URI</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT</var>" } ] } } EOF</pre></devsite-code> <p> Then execute the following command to send your REST request: </p> <section><div></div><devsite-code><pre class="devsite-click-to-copy" data-label=" CURL command" translate="no" dir="ltr" is-upgraded>curl -X POST \<br> -H "Authorization: Bearer $(gcloud auth print-access-token)" \<br> -H "Content-Type: application/json; charset=utf-8" \<br> -d @request.json \<br> "https://<var translate="no">LOCATION</var>-aiplatform.googleapis.com/v1/projects/<var translate="no">PROJECT_ID</var>/locations/<var translate="no">LOCATION</var>/publishers/google/models/gemini-1.5-flash:generateContent"</pre></devsite-code></section> </section> <section > <h4 id="powershell" data-text="PowerShell" tabindex="-1">PowerShell</h4> <aside class="note"><b>Note:</b> The following command assumes that you have logged in to the <code translate="no" dir="ltr">gcloud</code> CLI with your user account by running <a href="/sdk/gcloud/reference/init"><code translate="no" dir="ltr">gcloud init</code></a> or <a href="/sdk/gcloud/reference/auth/login"><code translate="no" dir="ltr">gcloud auth login</code></a> . You can check the currently active account by running <a href="/sdk/gcloud/reference/auth/list"><code translate="no" dir="ltr">gcloud auth list</code></a>. </aside> <p> Save the request body in a file named <code translate="no" dir="ltr">request.json</code>. Run the following command in the terminal to create or overwrite this file in the current directory: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="PowerShell command to create request body" translate="no" dir="ltr" is-upgraded>@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "<var translate="no">FILE_URI</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT</var>" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8</pre></devsite-code> <p> Then execute the following command to send your REST request: </p> <section><div></div><devsite-code><pre class="devsite-click-to-copy" data-label="PowerShell command" translate="no" dir="ltr" is-upgraded>$cred = gcloud auth print-access-token<br>$headers = @{ "Authorization" = "Bearer $cred" }<br><br>Invoke-WebRequest `<br> -Method POST `<br> -Headers $headers `<br> -ContentType: "application/json; charset=utf-8" `<br> -InFile request.json `<br> -Uri "https://<var translate="no">LOCATION</var>-aiplatform.googleapis.com/v1/projects/<var translate="no">PROJECT_ID</var>/locations/<var translate="no">LOCATION</var>/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content</pre></devsite-code></section> </section> </div> <p>You should receive a JSON response similar to the following.</p> <section class="expandable"><h4 class="showalways" id="response" data-text="Response" tabindex="-1">Response</h4> <div></div><devsite-code><pre class="readonly" data-label="sample response" translate="no" dir="ltr" is-upgraded> { "candidates": [ { "content": { "role": "model", "parts": [ { "text": " The image shows a table with a cup of coffee, a bowl of blueberries, and a plate of scones with blueberries on it. There are also pink flowers on the table." } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.027742893, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.07276838 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.026155617, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.07172113 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.04304285, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.037608635 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.08803312, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.09203286 } ] } ], "usageMetadata": { "promptTokenCount": 265, "candidatesTokenCount": 35, "totalTokenCount": 300 } } </pre></devsite-code> </section> </section> <section> <h3 id="gemini-send-multimodal-samples-image-Base64 image data" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Base64 image data" tabindex="-1">Base64 image data</h3> <p> Before using any of the request data, make the following replacements: </p> <ul> <li><code translate="no" dir="ltr"><var class="edit" scope="LOCATION" translate="no">LOCATION</var></code>: The region to process the request. Enter a supported region. For the full list of supported regions, see <a href="/vertex-ai/generative-ai/docs/learn/locations#available-regions">Available locations</a>. <devsite-expandable> <p class="showalways"><b>Click to expand a partial list of available regions</b></p> <ul> <li><code translate="no" dir="ltr">us-central1</code></li> <li><code translate="no" dir="ltr">us-west4</code></li> <li><code translate="no" dir="ltr">northamerica-northeast1</code></li> <li><code translate="no" dir="ltr">us-east4</code></li> <li><code translate="no" dir="ltr">us-west1</code></li> <li><code translate="no" dir="ltr">asia-northeast3</code></li> <li><code translate="no" dir="ltr">asia-southeast1</code></li> <li><code translate="no" dir="ltr">asia-northeast1</code></li> </ul> </devsite-expandable> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="PROJECT_ID" translate="no">PROJECT_ID</var></code>: Your <a href="/resource-manager/docs/creating-managing-projects#identifiers">project ID</a>.</li> <li><div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded><var class="edit" scope="B64_BASE_IMAGE" translate="no">B64_BASE_IMAGE</var></pre></devsite-code> The <a href="/vertex-ai/generative-ai/docs/image/base64-encode">base64 encoding</a> of the image, PDF, or video to include inline in the prompt. When including media inline, you must also specify the media type (<code translate="no" dir="ltr">mimeType</code>) of the data. </li> <li><code translate="no" dir="ltr"><var class="edit" scope="MIME_TYPE" translate="no">MIME_TYPE</var></code>: The media type of the file specified in the <code translate="no" dir="ltr">data</code> or <code translate="no" dir="ltr">fileUri</code> fields. Acceptable values include the following: <devsite-expandable> <p class="showalways"><b>Click to expand MIME types</b></p> <ul> <li><code translate="no" dir="ltr">application/pdf</code></li> <li><code translate="no" dir="ltr">audio/mpeg</code></li> <li><code translate="no" dir="ltr">audio/mp3</code></li> <li><code translate="no" dir="ltr">audio/wav</code></li> <li><code translate="no" dir="ltr">image/png</code></li> <li><code translate="no" dir="ltr">image/jpeg</code></li> <li><code translate="no" dir="ltr">image/webp</code></li> <li><code translate="no" dir="ltr">text/plain</code></li> <li><code translate="no" dir="ltr">video/mov</code></li> <li><code translate="no" dir="ltr">video/mpeg</code></li> <li><code translate="no" dir="ltr">video/mp4</code></li> <li><code translate="no" dir="ltr">video/mpg</code></li> <li><code translate="no" dir="ltr">video/avi</code></li> <li><code translate="no" dir="ltr">video/wmv</code></li> <li><code translate="no" dir="ltr">video/mpegps</code></li> <li><code translate="no" dir="ltr">video/flv</code></li> </ul> </devsite-expandable> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="TEXT" translate="no">TEXT</var></code>: The text instructions to include in the prompt. For example, <code translate="no" dir="ltr">What is shown in this image?</code>. </li> </ul> <p>To send your request, choose one of these options:</p><div class="ds-selector-tabs"> <section > <h4 id="curl_1" data-text="curl" tabindex="-1">curl</h4> <aside class="note"><b>Note:</b> The following command assumes that you have logged in to the <code translate="no" dir="ltr">gcloud</code> CLI with your user account by running <a href="/sdk/gcloud/reference/init"><code translate="no" dir="ltr">gcloud init</code></a> or <a href="/sdk/gcloud/reference/auth/login"><code translate="no" dir="ltr">gcloud auth login</code></a> , or by using <a href="/shell/docs">Cloud Shell</a>, which automatically logs you into the <code translate="no" dir="ltr">gcloud</code> CLI . You can check the currently active account by running <a href="/sdk/gcloud/reference/auth/list"><code translate="no" dir="ltr">gcloud auth list</code></a>. </aside> <p> Save the request body in a file named <code translate="no" dir="ltr">request.json</code>. Run the following command in the terminal to create or overwrite this file in the current directory: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="CURL command to create request body" translate="no" dir="ltr" is-upgraded>cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "<var translate="no">B64_BASE_IMAGE</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT</var>" } ] } } EOF</pre></devsite-code> <p> Then execute the following command to send your REST request: </p> <section><div></div><devsite-code><pre class="devsite-click-to-copy" data-label=" CURL command" translate="no" dir="ltr" is-upgraded>curl -X POST \<br> -H "Authorization: Bearer $(gcloud auth print-access-token)" \<br> -H "Content-Type: application/json; charset=utf-8" \<br> -d @request.json \<br> "https://<var translate="no">LOCATION</var>-aiplatform.googleapis.com/v1/projects/<var translate="no">PROJECT_ID</var>/locations/<var translate="no">LOCATION</var>/publishers/google/models/gemini-1.5-flash:generateContent"</pre></devsite-code></section> </section> <section > <h4 id="powershell_1" data-text="PowerShell" tabindex="-1">PowerShell</h4> <aside class="note"><b>Note:</b> The following command assumes that you have logged in to the <code translate="no" dir="ltr">gcloud</code> CLI with your user account by running <a href="/sdk/gcloud/reference/init"><code translate="no" dir="ltr">gcloud init</code></a> or <a href="/sdk/gcloud/reference/auth/login"><code translate="no" dir="ltr">gcloud auth login</code></a> . You can check the currently active account by running <a href="/sdk/gcloud/reference/auth/list"><code translate="no" dir="ltr">gcloud auth list</code></a>. </aside> <p> Save the request body in a file named <code translate="no" dir="ltr">request.json</code>. Run the following command in the terminal to create or overwrite this file in the current directory: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="PowerShell command to create request body" translate="no" dir="ltr" is-upgraded>@' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "<var translate="no">B64_BASE_IMAGE</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT</var>" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8</pre></devsite-code> <p> Then execute the following command to send your REST request: </p> <section><div></div><devsite-code><pre class="devsite-click-to-copy" data-label="PowerShell command" translate="no" dir="ltr" is-upgraded>$cred = gcloud auth print-access-token<br>$headers = @{ "Authorization" = "Bearer $cred" }<br><br>Invoke-WebRequest `<br> -Method POST `<br> -Headers $headers `<br> -ContentType: "application/json; charset=utf-8" `<br> -InFile request.json `<br> -Uri "https://<var translate="no">LOCATION</var>-aiplatform.googleapis.com/v1/projects/<var translate="no">PROJECT_ID</var>/locations/<var translate="no">LOCATION</var>/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content</pre></devsite-code></section> </section> </div> <p>You should receive a JSON response similar to the following.</p> <section class="expandable"><h4 class="showalways" id="response_1" data-text="Response" tabindex="-1">Response</h4> <div></div><devsite-code><pre class="readonly" data-label="sample response" translate="no" dir="ltr" is-upgraded> { "candidates": [ { "content": { "role": "model", "parts": [ { "text": " The image shows a table with a cup of coffee, a bowl of blueberries, and a plate of scones with blueberries on it. There are also pink flowers on the table." } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.027742893, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.07276838 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.026155617, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.07172113 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.04304285, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.037608635 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.08803312, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.09203286 } ] } ], "usageMetadata": { "promptTokenCount": 265, "candidatesTokenCount": 35, "totalTokenCount": 300 } } </pre></devsite-code> </section> </section> </devsite-selector> </div> Note the following in the URL for this sample: <ul> <li>Use the <a href="/vertex-ai/docs/reference/rest/v1/projects.locations.publishers.models/generateContent"><code translate="no" dir="ltr">generateContent</code></a> method to request that the response is returned after it's fully generated. To reduce the perception of latency to a human audience, stream the response as it's being generated by using the <a href="/vertex-ai/docs/reference/rest/v1/projects.locations.publishers.models/streamGenerateContent"><code translate="no" dir="ltr">streamGenerateContent</code></a> method. </li> <li>The multimodal model ID is located at the end of the URL before the method (for example, <code translate="no" dir="ltr">gemini-1.5-flash</code> or <code translate="no" dir="ltr">gemini-1.0-pro-vision</code>). This sample may support other models as well. </ul> </section> <section> <h3 id="gemini-send-multimodal-samples-image-console" track-metadata-position="gemini-send-multimodal-samples-image" track-metadata-region-tag="gemini-send-multimodal-samples-image" data-text="Console" tabindex="-1">Console</h3> To send a multimodal prompt by using the Google Cloud console, do the following:</p> <ol> <li><p>In the Vertex AI section of the Google Cloud console, go to the <strong>Vertex AI Studio</strong> page.</p> <p><a href="https://console.cloud.google.com/vertex-ai/generative/multimodal" class="button button-primary" target="console" track-name="consoleLink" track-type="task">Go to Vertex AI Studio</a></p></li> <li><p>Click <strong>Open freeform</strong>.</p></li> <li><p>Optional: Configure the model and parameters:</p> <ul> <li><strong>Model</strong>: Select a model.</li> <li><strong>Region</strong>: Select the region that you want to use.</li> <li><p><strong>Temperature</strong>: Use the slider or textbox to enter a value for temperature.</p> <p> The temperature is used for sampling during response generation, which occurs when <code translate="no" dir="ltr">topP</code> and <code translate="no" dir="ltr">topK</code> are applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of <code translate="no" dir="ltr">0</code> means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible. <p>If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature.</p> </p></li> <li><p><strong>Output token limit</strong>: Use the slider or textbox to enter a value for the max output limit.</p> <p> Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words. <p>Specify a lower value for shorter responses and a higher value for potentially longer responses.</p> </p></li> <li><p><strong>Add stop sequence</strong>: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn&#39;t included in the response, and you can add up to five stop sequences.</p></li> </ul></li> <li><p>Optional: To configure advanced parameters, click <strong>Advanced</strong> and configure as follows: <div> <devsite-expandable> <h4 class="showalways" id="click-to-expand-advanced-configurations" data-text="Click to expand advanced configurations" tabindex="-1">Click to expand advanced configurations</h4> <ul> <li><p><strong>Top-K</strong>: Use the slider or textbox to enter a value for top-K. (not supported for Gemini 1.5).</p> Top-K changes how the model selects tokens for output. A top-K of <code translate="no" dir="ltr">1</code> means the next selected token is the most probable among all tokens in the model's vocabulary (also called greedy decoding), while a top-K of <code translate="no" dir="ltr">3</code> means that the next token is selected from among the three most probable tokens by using temperature. <p>For each token selection step, the top-K tokens with the highest probabilities are sampled. Then tokens are further filtered based on top-P with the final token selected using temperature sampling.</p> <p>Specify a lower value for less random responses and a higher value for more random responses.</p> </li> <li><strong>Top-P</strong>: Use the slider or textbox to enter a value for top-P. Tokens are selected from most probable to the least until the sum of their probabilities equals the value of top-P. For the least variable results, set top-P to <code translate="no" dir="ltr">0</code>.</li> <li><strong>Max responses</strong>: Use the slider or textbox to enter a value for the number of responses to generate.</li> <li><strong>Streaming responses</strong>: Enable to print responses as they&#39;re generated.</li> <li><strong>Safety filter threshold</strong>: Select the threshold of how likely you are to see responses that could be harmful.</li> <li><strong>Enable Grounding</strong>: Grounding isn&#39;t supported for multimodal prompts.</li> </ul> </devsite-expandable> </div></p></li> <li><p>Click <strong>Insert Media</strong>, and select a source for your file.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="upload" data-text=" Upload " tabindex="-1"> Upload </h3><p>Select the file that you want to upload and click <strong>Open</strong>.</p></section> <section><h3 id="by-url" data-text=" By URL" tabindex="-1"> By URL</h3><p>Enter the URL of the file that you want to use and click <strong>Insert</strong>.</p></section> <section><h3 id="cloud-storage" data-text=" Cloud Storage " tabindex="-1"> Cloud Storage </h3><p>Select the bucket and then the file from the bucket that you want to import and click <strong>Select</strong>.</p></section> <section><h3 id="google-drive" data-text=" Google Drive " tabindex="-1"> Google Drive </h3><ol> <li>Choose an account and give consent to Vertex AI Studio to access your account the first time you select this option. You can upload multiple files that have a total size of up to 10 MB. A single file can&#39;t exceed 7 MB.</li> <li>Click the file that you want to add.</li> <li><p>Click <strong>Select</strong>.</p> <p>The file thumbnail displays in the <strong>Prompt</strong> pane. The total number of tokens also displays. If your prompt data exceeds the <a href="/vertex-ai/generative-ai/docs/learn/models#gemini-models">token limit</a>, the tokens are truncated and aren&#39;t included in processing your data.</p></li> </ol></section> </div></li> <li><p>Enter your text prompt in the <strong>Prompt</strong> pane.</p></li> <li><p>Optional: To view the <strong>Token ID to text</strong> and <strong>Token IDs</strong>, click the <strong>tokens count</strong> in the <strong>Prompt</strong> pane.</p> <aside class="note"><strong>Note:</strong><span> Media tokens aren&#39;t supported.</span></aside></li> <li><p>Click <strong>Submit</strong>.</p></li> <li><p>Optional: To save your prompt to <strong>My prompts</strong>, click <span class="material-icons" aria-hidden="true" translate="no">save_alt</span> <strong>Save</strong>.</p></li> <li><p>Optional: To get the Python code or a curl command for your prompt, click <span class="material-icons" aria-hidden="true" translate="no">code</span> <strong>Get code</strong>. </section> </devsite-selector> </div> <h3 id="send-images" data-text="Multiple images" tabindex="-1">Multiple images</h3> <p>Each of the following tabs show you a different way to include multiple images in a prompt request. Each sample takes in two sets of the following inputs:</p> <ul> <li>An image of a popular city landmark</li> <li>The media type of the image</li> <li>Text indicating the city and landmark in the image</li> </ul> <p>The sample also takes in a third image and media type, but no text. The sample returns a text response indicating the city and landmark in the third image.</p> <p>These image samples work with all Gemini multimodal models.</p> <div> <devsite-selector> <section> <h3 id="gemini-send-multimodal-samples-images-python_genai_sdk" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="Gen AI SDK for Python" tabindex="-1">Gen AI SDK for Python</h3> <p>Learn how to install or update the <a href="/vertex-ai/generative-ai/docs/sdks/overview" track-type="clientLibrariesReference" track- name="python_genai_sdk" track-metadata-position="gemini-send-multimodal-samples-images">Google Gen AI SDK for Python</a>. <br> For more information, see the <a href="https://googleapis.github.io/python-genai/" class="external" track-type="clientLibrariesUsage" track-name="clientLibrariesLink" track-metadata-lang="python_genai_sdk"> Gen AI SDK for Python API reference documentation</a> or the <a href="https://googleapis.github.io/python-genai/" track-type="clientLibrariesUsage" track-name="clientLibrariesLink" track-metadata-lang="python_genai_sdk"> <code translate="no" dir="ltr">python-genai</code> GitHub repository</a>. <br> Set environment variables to use the Gen AI SDK with Vertex AI: <div></div><devsite-code><pre suppresswarning class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash"><span class="devsite-syntax-c1"># Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values</span> <span class="devsite-syntax-c1"># with appropriate values for your project.</span> <span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">GOOGLE_CLOUD_PROJECT</span><span class="devsite-syntax-o">=</span><var class="edit" scope="GOOGLE_CLOUD_PROJECT" translate="no">GOOGLE_CLOUD_PROJECT</var> <span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">GOOGLE_CLOUD_LOCATION</span><span class="devsite-syntax-o">=</span>us-central1 <span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">GOOGLE_GENAI_USE_VERTEXAI</span><span class="devsite-syntax-o">=</span>True</pre></devsite-code> </p> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/genai/text_generation/textgen_with_multi_img.py/HEAD/googlegenaisdk_textgen_with_multi_img" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/genai/text_generation/textgen_with_multi_img.py" feedback-context="{&#34;language&#34;: &#34;python_genai_sdk&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-images&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/genai/text_generation/textgen_with_multi_img.py&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="python_genai_sdk" data-github-path="GoogleCloudPlatform/python-docs-samples/genai/text_generation/textgen_with_multi_img.py" data-git-revision="HEAD" data-region-tag="googlegenaisdk_textgen_with_multi_img" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">genai</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.genai.types</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">HttpOptions</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">Part</span> <span class="devsite-syntax-n">client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">genai</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Client</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">http_options</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">HttpOptions</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">api_version</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"v1"</span><span class="devsite-syntax-p">))</span> <span class="devsite-syntax-c1"># Read content from GCS</span> <span class="devsite-syntax-n">gcs_file_img_path</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"gs://cloud-samples-data/generative-ai/image/scones.jpg"</span> <span class="devsite-syntax-c1"># Read content from a local file</span> <span class="devsite-syntax-k">with</span> <span class="devsite-syntax-nb">open</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"test_data/latte.jpg"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"rb"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">as</span> <span class="devsite-syntax-n">f</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">local_file_img_bytes</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">f</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">read</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">response</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">models</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">generate_content</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">model</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"gemini-2.0-flash-001"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">contents</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-s2">"Generate a list of all the objects contained in both images."</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_uri</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">file_uri</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">gcs_file_img_path</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">mime_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"image/jpeg"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_bytes</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">local_file_img_bytes</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">mime_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"image/jpeg"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">text</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Example response:</span> <span class="devsite-syntax-c1"># Okay, here's the list of objects present in both images:</span> <span class="devsite-syntax-c1"># ...</span></code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-images-python_vertex_ai_sdk" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="Vertex AI SDK for Python" tabindex="-1">Vertex AI SDK for Python</h3> <p>To learn how to install or update the Vertex AI SDK for Python, see <a href="/vertex-ai/docs/python-sdk/use-vertex-ai-python-sdk#install-vertex-ai-python-sdk"> Install the Vertex AI SDK for Python</a>. For more information, see the <a href="/python/docs/reference/aiplatform/latest">Vertex AI SDK for Python API reference documentation.</a></p> <h3 id="streaming-and-non-streaming-responses_5" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <code translate="no" dir="ltr">stream</code> parameter in <a href="/python/docs/reference/aiplatform/latest/vertexai.preview.generative_models#content"> <code translate="no" dir="ltr">generate_content</code></a>.</p> <div></div><devsite-code><pre class="python" translate="no" dir="ltr" is-upgraded> response = model.generate_content(contents=[...], stream = True) </pre></devsite-code> <p>For a non-streaming response, remove the parameter, or set the parameter to <code translate="no" dir="ltr">False</code>.</p> <h3 id="sample-code_5" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/generative_ai/text_generation/single_turn_multi_image_example.py/HEAD/generativeaionvertexai_gemini_single_turn_multi_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/generative_ai/text_generation/single_turn_multi_image_example.py" feedback-context="{&#34;language&#34;: &#34;python_vertex_ai_sdk&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-images&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/generative_ai/text_generation/single_turn_multi_image_example.py&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="python_vertex_ai_sdk" data-github-path="GoogleCloudPlatform/python-docs-samples/generative_ai/text_generation/single_turn_multi_image_example.py" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_single_turn_multi_image" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">vertexai</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">vertexai.generative_models</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">Part</span> <span class="devsite-syntax-c1"># TODO(developer): Update and un-comment below line</span> <span class="devsite-syntax-c1"># PROJECT_ID = "your-project-id"</span> <span class="devsite-syntax-n">vertexai</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">init</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">PROJECT_ID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">location</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"us-central1"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Load images from Cloud Storage URI</span> <span class="devsite-syntax-n">image_file1</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_uri</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-s2">"gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">mime_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"image/png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">image_file2</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_uri</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-s2">"gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">mime_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"image/png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">image_file3</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">Part</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">from_uri</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-s2">"gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">mime_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"image/png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">model</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"gemini-1.5-flash-002"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">response</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">model</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">generate_content</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">image_file1</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"city: Rome, Landmark: the Colosseum"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">image_file2</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"city: Beijing, Landmark: Forbidden City"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">image_file3</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">text</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Example response:</span> <span class="devsite-syntax-c1"># city: Rio de Janeiro, Landmark: Christ the Redeemer</span> </code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-images-java" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="Java" tabindex="-1"><span class="notranslate">Java</span></h3> <p>Before trying this sample, follow the Java setup instructions in the <a href="/vertex-ai/docs/start/client-libraries">Vertex AI quickstart</a>. For more information, see the <a href="/java/docs/reference/google-cloud-vertexai/latest/overview">Vertex AI Java SDK for Gemini reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_6" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="/java/docs/reference/google-cloud-vertexai/latest/com.google.cloud.vertexai.generativeai.preview.GenerativeModel#com_google_cloud_vertexai_generativeai_preview_GenerativeModel_generateContentStream_com_google_cloud_vertexai_api_Content_"> <code translate="no" dir="ltr">generateContentStream</code></a> method.</p> <div></div><devsite-code><pre class="java" translate="no" dir="ltr" is-upgraded> public ResponseStream&lt;GenerateContentResponse&gt; generateContentStream(Content content) </pre></devsite-code> <p>For a non-streaming response, use the <a href="/java/docs/reference/google-cloud-vertexai/latest/com.google.cloud.vertexai.generativeai.preview.GenerativeModel#com_google_cloud_vertexai_generativeai_preview_GenerativeModel_generateContent_com_google_cloud_vertexai_api_Content_"> <code translate="no" dir="ltr">generateContent</code></a> method.</p> <div></div><devsite-code><pre class="java" translate="no" dir="ltr" is-upgraded> public GenerateContentResponse generateContent(Content content) </pre></devsite-code> <h3 id="sample-code_6" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalMultiImage.java/HEAD/generativeaionvertexai_gemini_single_turn_multi_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalMultiImage.java" feedback-context="{&#34;language&#34;: &#34;java&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-images&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalMultiImage.java&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/vertexai/snippets/src/main/java/vertexai/gemini/MultimodalMultiImage.java" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_single_turn_multi_image" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.VertexAI</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.api.Content</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.api.GenerateContentResponse</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.ContentMaker</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.GenerativeModel</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.PartMaker</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.vertexai.generativeai.ResponseHandler</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.ByteArrayOutputStream</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.IOException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.InputStream</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.net.HttpURLConnection</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.net.URL</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">MultimodalMultiImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"your-google-cloud-project-id"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gemini-1.5-flash-001"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">multimodalMultiImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Generates content from multiple input images.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">multimodalMultiImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// to be created once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">VertexAI</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">vertexAI</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">VertexAI</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-p">))</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">GenerativeModel</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">modelName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">vertexAI</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Content</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">content</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ContentMaker</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">fromMultiModalData</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PartMaker</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">fromMimeTypeAndData</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">readImageFile</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark1.png"</span><span class="devsite-syntax-p">)),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"city: Rome, Landmark: the Colosseum"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PartMaker</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">fromMimeTypeAndData</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">readImageFile</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark2.png"</span><span class="devsite-syntax-p">)),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"city: Beijing, Landmark: Forbidden City"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PartMaker</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">fromMimeTypeAndData</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">readImageFile</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark3.png"</span><span class="devsite-syntax-p">))</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">GenerateContentResponse</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">model</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">generateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">content</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ResponseHandler</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getText</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">System</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">out</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">println</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">output</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Reads the image data from the given URL.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">byte</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">readImageFile</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">url</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">URL</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">urlObj</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">URL</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">url</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">HttpURLConnection</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">connection</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">HttpURLConnection</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">urlObj</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">openConnection</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">connection</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setRequestMethod</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"GET"</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">int</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseCode</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">connection</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getResponseCode</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">responseCode</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">==</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">HttpURLConnection</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">HTTP_OK</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InputStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">inputStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">connection</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getInputStream</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ByteArrayOutputStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">outputStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ByteArrayOutputStream</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">byte</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">buffer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">byte</span><span class="devsite-syntax-o">[</span><span class="devsite-syntax-mi">1024</span><span class="devsite-syntax-o">]</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">int</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">bytesRead</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">while</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">((</span><span class="devsite-syntax-n">bytesRead</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">inputStream</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">read</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">buffer</span><span class="devsite-syntax-p">))</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">outputStream</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">write</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">buffer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">bytesRead</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">outputStream</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toByteArray</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">else</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">throw</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">RuntimeException</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Error fetching file: "</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">+</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseCode</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-images-nodejs" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="Node.js" tabindex="-1"><span class="notranslate">Node.js</span></h3> <p>Before trying this sample, follow the Node.js setup instructions in the <a href="/nodejs/docs/reference/vertexai/latest#before-you-begin">Generative AI quickstart using the Node.js SDK</a>. For more information, see the <a href="/nodejs/docs/reference/vertexai/latest">Node.js SDK for Gemini reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_7" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="/nodejs/docs/reference/vertexai/latest#streaming-content-generation"> <code translate="no" dir="ltr">generateContentStream</code></a> method.</p> <div></div><devsite-code><pre class="javascript" translate="no" dir="ltr" is-upgraded> const streamingResp = await generativeModel.generateContentStream(request); </pre></devsite-code> <p>For a non-streaming response, use the <a href="/nodejs/docs/reference/vertexai/latest#content-generation-non-streaming"> <code translate="no" dir="ltr">generateContent</code></a> method.</p> <div></div><devsite-code><pre class="javascript" translate="no" dir="ltr" is-upgraded> const streamingResp = await generativeModel.generateContent(request); </pre></devsite-code> <h3 id="sample-code_7" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/nodejs-docs-samples/generative-ai/snippets/sendMultiModalPromptWithImage.js/HEAD/generativeaionvertexai_gemini_single_turn_multi_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/generative-ai/snippets/sendMultiModalPromptWithImage.js" feedback-context="{&#34;language&#34;: &#34;nodejs&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-images&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/generative-ai/snippets/sendMultiModalPromptWithImage.js&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="nodejs" data-github-path="GoogleCloudPlatform/nodejs-docs-samples/generative-ai/snippets/sendMultiModalPromptWithImage.js" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_single_turn_multi_image" dir="ltr" is-upgraded syntax="JavaScript"><code translate="no" dir="ltr"><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-nx">VertexAI</span><span class="devsite-syntax-p">}</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'@google-cloud/vertexai'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">axios</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'axios'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">getBase64</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">url</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">image</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">axios</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">url</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-nx">responseType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'arraybuffer'</span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Buffer</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-kr">from</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">image</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">data</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">toString</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'base64'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span> <span class="devsite-syntax-cm">/**</span> <span class="devsite-syntax-cm"> * TODO(developer): Update these variables before running the sample.</span> <span class="devsite-syntax-cm"> */</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sendMultiModalPromptWithImage</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'PROJECT_ID'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'us-central1'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'gemini-1.5-flash-001'</span> <span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// For images, the SDK supports base64 strings</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">landmarkImage1</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">getBase64</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark1.png'</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">landmarkImage2</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">getBase64</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark2.png'</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">landmarkImage3</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">getBase64</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark3.png'</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize Vertex with your Cloud project and location</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">vertexAI</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">VertexAI</span><span class="devsite-syntax-p">({</span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">generativeVisionModel</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">vertexAI</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getGenerativeModel</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Pass multimodal prompt</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">request</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">contents</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">role</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'user'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">parts</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">inlineData</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">data</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">landmarkImage1</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mimeType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'image/png'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">text</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'city: Rome, Landmark: the Colosseum'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">inlineData</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">data</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">landmarkImage2</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mimeType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'image/png'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">text</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'city: Beijing, Landmark: Forbidden City'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">inlineData</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">data</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">landmarkImage3</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mimeType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'image/png'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">};</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create the response</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">generativeVisionModel</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">generateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">request</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Wait for the response to complete</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">aggregatedResponse</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Select the text from the response</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fullTextResponse</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">aggregatedResponse</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">candidates</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mf">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">content</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">parts</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mf">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">text</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">fullTextResponse</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-images-go" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="Go" tabindex="-1"><span class="notranslate">Go</span></h3> <p>Before trying this sample, follow the Go setup instructions in the <a href="/vertex-ai/docs/start/client-libraries">Vertex AI quickstart.</a> For more information, see the <a href="/go/docs/reference/cloud.google.com/go/vertexai/latest">Vertex AI Go SDK for Gemini reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_8" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="https://pkg.go.dev/cloud.google.com/go/vertexai/genai#GenerativeModel.GenerateContentStream"> <code translate="no" dir="ltr">GenerateContentStream</code></a> method.</p> <div></div><devsite-code><pre class="go" translate="no" dir="ltr" is-upgraded> iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short.")) </pre></devsite-code> <p>For a non-streaming response, use the <a href="https://pkg.go.dev/cloud.google.com/go/vertexai/genai#GenerativeModel.GenerateContent"><code translate="no" dir="ltr">GenerateContent</code></a> method.</p> <div></div><devsite-code><pre class="go" translate="no" dir="ltr" is-upgraded> resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?")) </pre></devsite-code> <h3 id="sample-code_8" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/vertexai/multimodal-multiple/multiple-multimodal.go/HEAD/generativeaionvertexai_gemini_single_turn_multi_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/vertexai/multimodal-multiple/multiple-multimodal.go" feedback-context="{&#34;language&#34;: &#34;golang&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-images&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/vertexai/multimodal-multiple/multiple-multimodal.go&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="golang" data-github-path="GoogleCloudPlatform/golang-samples/vertexai/multimodal-multiple/multiple-multimodal.go" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_single_turn_multi_image" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"mime"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"path/filepath"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/vertexai/genai"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1">// generateMultimodalContent shows how to generate a text from a multimodal prompt using the Gemini model,</span> <span class="devsite-syntax-c1">// writing the response to the provided io.Writer.</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">generateMultimodalContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">modelName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// location := "us-central1"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// modelName := "gemini-1.5-flash-001"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// create prompt image parts</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">colosseum</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">FileData</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MIMEType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mime</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">TypeByExtension</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">filepath</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Ext</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"landmark1.png"</span><span class="devsite-syntax-p">)),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">FileURI</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">forbiddenCity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">FileData</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MIMEType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mime</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">TypeByExtension</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">filepath</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Ext</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"landmark2.png"</span><span class="devsite-syntax-p">)),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">FileURI</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">newImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">FileData</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MIMEType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">mime</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">TypeByExtension</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">filepath</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Ext</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"landmark3.png"</span><span class="devsite-syntax-p">)),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">FileURI</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// create a multimodal (multipart) prompt</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">prompt</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Part</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">colosseum</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Text</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"city: Rome, Landmark: the Colosseum "</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">forbiddenCity</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Text</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"city: Beijing, Landmark: the Forbidden City "</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">newImage</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// generate the response</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">genai</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NewClient</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to create client: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">defer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Close</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">GenerativeModel</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">modelName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">res</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">GenerateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">prompt</span><span class="devsite-syntax-o">...</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to generate contents: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"generated response: %s\n"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">res</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Candidates</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-nx">Content</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Parts</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">])</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-images-csharp" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="C#" tabindex="-1"><span class="notranslate">C#</span></h3> <p>Before trying this sample, follow the C# setup instructions in the <a href="/vertex-ai/docs/start/client-libraries">Vertex AI quickstart</a>. For more information, see the <a href="/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest">Vertex AI C# reference documentation</a>.</p> <p>To authenticate to Vertex AI, set up Application Default Credentials. For more information, see <a href="/docs/authentication/set-up-adc-local-dev-environment"> Set up ADC for a local development environment</a>.</p> <h3 id="streaming-and-non-streaming-responses_9" data-text="Streaming and non-streaming responses" tabindex="-1">Streaming and non-streaming responses</h3> <p>You can choose whether the model generates <i>streaming</i> responses or <i>non-streaming</i> responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.</p> <p>For a streaming response, use the <a href="/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient#Google_Cloud_AIPlatform_V1_PredictionServiceClient_StreamGenerateContent_Google_Cloud_AIPlatform_V1_GenerateContentRequest_Google_Api_Gax_Grpc_CallSettings_"> <code translate="no" dir="ltr">StreamGenerateContent</code></a> method.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="C#"><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">virtual</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PredictionServiceClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">StreamGenerateContentStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">StreamGenerateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">GenerateContentRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span></pre></devsite-code> <p>For a non-streaming response, use the <a href="/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient#Google_Cloud_AIPlatform_V1_PredictionServiceClient_GenerateContentAsync_Google_Cloud_AIPlatform_V1_GenerateContentRequest_Google_Api_Gax_Grpc_CallSettings_"> <code translate="no" dir="ltr">GenerateContentAsync</code></a> method.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="C#"><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">virtual</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Task&lt;GenerateContentResponse&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">GenerateContentAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">GenerateContentRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span></pre></devsite-code> <p>For more information on how the server can stream responses, see <a href="/dotnet/docs/reference/help/grpc-streaming">Streaming RPCs</a>.</p> <h3 id="sample-code_9" data-text="Sample code" tabindex="-1">Sample code</h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/dotnet-docs-samples/aiplatform/api/AIPlatform.Samples/MultimodalMultiImage.cs/HEAD/generativeaionvertexai_gemini_single_turn_multi_image" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/HEAD/aiplatform/api/AIPlatform.Samples/MultimodalMultiImage.cs" feedback-context="{&#34;language&#34;: &#34;csharp&#34;, &#34;region_tag&#34;: &#34;gemini-send-multimodal-samples-images&#34;, &#34;snippet_file_url&#34;: &#34;https://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/HEAD/aiplatform/api/AIPlatform.Samples/MultimodalMultiImage.cs&#34;}" feedback-product="1634365" feedback-bucket="cloud-ai" language="csharp" data-github-path="GoogleCloudPlatform/dotnet-docs-samples/aiplatform/api/AIPlatform.Samples/MultimodalMultiImage.cs" data-git-revision="HEAD" data-region-tag="generativeaionvertexai_gemini_single_turn_multi_image" dir="ltr" is-upgraded syntax="C#"><code translate="no" dir="ltr"> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Grpc.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Api.Gax.Grpc" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Grpc.html"><span class="devsite-syntax-nn">Google.Api.Gax.Grpc</span></a><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.html"><span class="devsite-syntax-nn">Google.Cloud.AIPlatform.V1</span></a><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Protobuf" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.html"><span class="devsite-syntax-nn">Google.Protobuf</span></a><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">System.Net.Http</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">System.Text</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">System.Threading.Tasks</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">class</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nc">MultimodalMultiImage</span> <span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Task&lt;string&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">GenerateContent</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"your-project-id"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">location</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">publisher</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">model</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"gemini-1.5-flash-001"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">predictionServiceClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClientBuilder.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClientBuilder.html"><span class="devsite-syntax-n">PredictionServiceClientBuilder</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Endpoint.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Endpoint.html"><span class="devsite-syntax-n">Endpoint</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">$"{location}-aiplatform.googleapis.com"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}.</span><span class="devsite-syntax-n">Build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Protobuf" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html"><span class="devsite-syntax-n">ByteString</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">colosseum</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReadImageFileAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark1.png"</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Protobuf" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html"><span class="devsite-syntax-n">ByteString</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">forbiddenCity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReadImageFileAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark2.png"</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Protobuf" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html"><span class="devsite-syntax-n">ByteString</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">christRedeemer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReadImageFileAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark3.png"</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">generateContentRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentRequest.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentRequest.html"><span class="devsite-syntax-n">GenerateContentRequest</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Model.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Model.html"><span class="devsite-syntax-n">Model</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">$"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Contents</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html"><span class="devsite-syntax-n">Content</span></a> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Role</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"USER"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Parts</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InlineData</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">MimeType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">colosseum</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Text</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"city: Rome, Landmark: the Colosseum"</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InlineData</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">MimeType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">forbiddenCity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Text</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"city: Beijing, Landmark: Forbidden City"</span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Part.html"><span class="devsite-syntax-n">Part</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InlineData</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">MimeType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"image/png"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">christRedeemer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">};</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">PredictionServiceClient.<a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient.StreamGenerateContentStream.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.PredictionServiceClient.StreamGenerateContentStream.html">StreamGenerateContentStream</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">predictionServiceClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">StreamGenerateContent</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">generateContentRequest</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">StringBuilder</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fullText</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AsyncResponseStream&lt;GenerateContentResponse&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseStream</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">GetResponseStream</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">foreach</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentResponse.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.GenerateContentResponse.html"><span class="devsite-syntax-n">GenerateContentResponse</span></a><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseItem</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">in</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">responseStream</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fullText</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">Append</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">responseItem</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">Candidates</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">].</span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html"><span class="devsite-syntax-n">Content</span></a><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">Parts</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-mi">0</span><span class="devsite-syntax-p">].</span><span class="devsite-syntax-n">Text</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fullText</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">ToString</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">private</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Task&lt;ByteString&gt;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">ReadImageFileAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">url</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">HttpClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">client</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">using</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">client</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">GetAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">url</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">byte</span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">imageBytes</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Cloud.AIPlatform.V1" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Cloud.AIPlatform.V1/latest/Google.Cloud.AIPlatform.V1.Content.html"><span class="devsite-syntax-n">Content</span></a><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">ReadAsByteArrayAsync</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Protobuf" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html"><span class="devsite-syntax-n">ByteString</span></a><span class="devsite-syntax-p">.</span><a class="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html#Google_Protobuf_ByteString_CopyFrom_System_Byte___" track-type="exampleCode" track-name="xrefLink" track-metadata-lang="DOTNET" track-metadata-modifier="Google.Protobuf" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ByteString.html#Google_Protobuf_ByteString_CopyFrom_System_Byte___"><span class="devsite-syntax-n">CopyFrom</span></a><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">imageBytes</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section> <h3 id="gemini-send-multimodal-samples-images-drest" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="REST" tabindex="-1">REST</h3> <p> After you <a href="/vertex-ai/generative-ai/docs/start/quickstarts/quickstart-multimodal#gemini-setup-environment-drest">set up your environment</a>, you can use REST to test a text prompt. The following sample sends a request to the publisher model endpoint. </p> <p> Before using any of the request data, make the following replacements: </p> <ul> <li><code translate="no" dir="ltr"><var class="edit" scope="LOCATION" translate="no">LOCATION</var></code>: The region to process the request. Enter a supported region. For the full list of supported regions, see <a href="/vertex-ai/generative-ai/docs/learn/locations#available-regions">Available locations</a>. <devsite-expandable> <p class="showalways"><b>Click to expand a partial list of available regions</b></p> <ul> <li><code translate="no" dir="ltr">us-central1</code></li> <li><code translate="no" dir="ltr">us-west4</code></li> <li><code translate="no" dir="ltr">northamerica-northeast1</code></li> <li><code translate="no" dir="ltr">us-east4</code></li> <li><code translate="no" dir="ltr">us-west1</code></li> <li><code translate="no" dir="ltr">asia-northeast3</code></li> <li><code translate="no" dir="ltr">asia-southeast1</code></li> <li><code translate="no" dir="ltr">asia-northeast1</code></li> </ul> </devsite-expandable> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="PROJECT_ID" translate="no">PROJECT_ID</var></code>: Your <a href="/resource-manager/docs/creating-managing-projects#identifiers">project ID</a>.</li> <li><code translate="no" dir="ltr"><var class="edit" scope="FILE_URI1" translate="no">FILE_URI1</var></code>: The URI or URL of the file to include in the prompt. Acceptable values include the following: <ul> <li><b>Cloud Storage bucket URI:</b> The object must either be publicly readable or reside in the same Google Cloud project that's sending the request. For <code translate="no" dir="ltr">gemini-1.5-pro</code> and <code translate="no" dir="ltr">gemini-1.5-flash</code>, the size limit is 2&nbsp;GB. For <code translate="no" dir="ltr">gemini-1.0-pro-vision</code>, the size limit is 20&nbsp;MB.</li> <li><b>HTTP URL:</b> The file URL must be publicly readable. You can specify one video file, one audio file, and up to 10 image files per request. Audio files, video files, and documents can't exceed 15&nbsp;MB.</li> <li><b>YouTube video URL:</b>The YouTube video must be either owned by the account that you used to sign in to the Google Cloud console or is public. Only one YouTube video URL is supported per request.</li> </ul> <p>When specifying a <code translate="no" dir="ltr">fileURI</code>, you must also specify the media type (<code translate="no" dir="ltr">mimeType</code>) of the file. If VPC Service Controls is enabled, specifying a media file URL for <code translate="no" dir="ltr">fileURI</code> is not supported.</p> <p> If you don't have an image file in Cloud Storage, then you can use the following publicly available file: <code translate="no" dir="ltr">gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png</code> with a mime type of <code translate="no" dir="ltr">image/png</code>. To view this image, <a href="https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark1.png">open the sample image</a> file. </p> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="MIME_TYPE" translate="no">MIME_TYPE</var></code>: The media type of the file specified in the <code translate="no" dir="ltr">data</code> or <code translate="no" dir="ltr">fileUri</code> fields. Acceptable values include the following: <devsite-expandable> <p class="showalways"><b>Click to expand MIME types</b></p> <ul> <li><code translate="no" dir="ltr">application/pdf</code></li> <li><code translate="no" dir="ltr">audio/mpeg</code></li> <li><code translate="no" dir="ltr">audio/mp3</code></li> <li><code translate="no" dir="ltr">audio/wav</code></li> <li><code translate="no" dir="ltr">image/png</code></li> <li><code translate="no" dir="ltr">image/jpeg</code></li> <li><code translate="no" dir="ltr">image/webp</code></li> <li><code translate="no" dir="ltr">text/plain</code></li> <li><code translate="no" dir="ltr">video/mov</code></li> <li><code translate="no" dir="ltr">video/mpeg</code></li> <li><code translate="no" dir="ltr">video/mp4</code></li> <li><code translate="no" dir="ltr">video/mpg</code></li> <li><code translate="no" dir="ltr">video/avi</code></li> <li><code translate="no" dir="ltr">video/wmv</code></li> <li><code translate="no" dir="ltr">video/mpegps</code></li> <li><code translate="no" dir="ltr">video/flv</code></li> </ul> </devsite-expandable> For simplicity, this sample uses the same media type for all three input images. </li> <li><code translate="no" dir="ltr"><var class="edit" scope="TEXT1" translate="no">TEXT1</var></code>: The text instructions to include in the prompt. For example, <code translate="no" dir="ltr">city: Rome, Landmark: the Colosseum</code> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="FILE_URI2" translate="no">FILE_URI2</var></code>: The URI or URL of the file to include in the prompt. Acceptable values include the following: <ul> <li><b>Cloud Storage bucket URI:</b> The object must either be publicly readable or reside in the same Google Cloud project that's sending the request. For <code translate="no" dir="ltr">gemini-1.5-pro</code> and <code translate="no" dir="ltr">gemini-1.5-flash</code>, the size limit is 2&nbsp;GB. For <code translate="no" dir="ltr">gemini-1.0-pro-vision</code>, the size limit is 20&nbsp;MB.</li> <li><b>HTTP URL:</b> The file URL must be publicly readable. You can specify one video file, one audio file, and up to 10 image files per request. Audio files, video files, and documents can't exceed 15&nbsp;MB.</li> <li><b>YouTube video URL:</b>The YouTube video must be either owned by the account that you used to sign in to the Google Cloud console or is public. Only one YouTube video URL is supported per request.</li> </ul> <p>When specifying a <code translate="no" dir="ltr">fileURI</code>, you must also specify the media type (<code translate="no" dir="ltr">mimeType</code>) of the file. If VPC Service Controls is enabled, specifying a media file URL for <code translate="no" dir="ltr">fileURI</code> is not supported.</p> <p> If you don't have an image file in Cloud Storage, then you can use the following publicly available file: <code translate="no" dir="ltr">gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png</code> with a mime type of <code translate="no" dir="ltr">image/png</code>. To view this image, <a href="https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark2.png">open the sample image</a> file. </p> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="TEXT2" translate="no">TEXT2</var></code>: The text instructions to include in the prompt. For example, <code translate="no" dir="ltr">city: Beijing, Landmark: Forbidden City</code> </li> <li><code translate="no" dir="ltr"><var class="edit" scope="FILE_URI3" translate="no">FILE_URI3</var></code>: The URI or URL of the file to include in the prompt. Acceptable values include the following: <ul> <li><b>Cloud Storage bucket URI:</b> The object must either be publicly readable or reside in the same Google Cloud project that's sending the request. For <code translate="no" dir="ltr">gemini-1.5-pro</code> and <code translate="no" dir="ltr">gemini-1.5-flash</code>, the size limit is 2&nbsp;GB. For <code translate="no" dir="ltr">gemini-1.0-pro-vision</code>, the size limit is 20&nbsp;MB.</li> <li><b>HTTP URL:</b> The file URL must be publicly readable. You can specify one video file, one audio file, and up to 10 image files per request. Audio files, video files, and documents can't exceed 15&nbsp;MB.</li> <li><b>YouTube video URL:</b>The YouTube video must be either owned by the account that you used to sign in to the Google Cloud console or is public. Only one YouTube video URL is supported per request.</li> </ul> <p>When specifying a <code translate="no" dir="ltr">fileURI</code>, you must also specify the media type (<code translate="no" dir="ltr">mimeType</code>) of the file. If VPC Service Controls is enabled, specifying a media file URL for <code translate="no" dir="ltr">fileURI</code> is not supported.</p> <p> If you don't have an image file in Cloud Storage, then you can use the following publicly available file: <code translate="no" dir="ltr">gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png</code> with a mime type of <code translate="no" dir="ltr">image/png</code>. To view this image, <a href="https://storage.googleapis.com/cloud-samples-data/vertex-ai/llm/prompts/landmark3.png">open the sample image</a> file. </p> </li> </ul> <p>To send your request, choose one of these options:</p><div class="ds-selector-tabs"> <section > <h4 id="curl_2" data-text="curl" tabindex="-1">curl</h4> <aside class="note"><b>Note:</b> The following command assumes that you have logged in to the <code translate="no" dir="ltr">gcloud</code> CLI with your user account by running <a href="/sdk/gcloud/reference/init"><code translate="no" dir="ltr">gcloud init</code></a> or <a href="/sdk/gcloud/reference/auth/login"><code translate="no" dir="ltr">gcloud auth login</code></a> , or by using <a href="/shell/docs">Cloud Shell</a>, which automatically logs you into the <code translate="no" dir="ltr">gcloud</code> CLI . You can check the currently active account by running <a href="/sdk/gcloud/reference/auth/list"><code translate="no" dir="ltr">gcloud auth list</code></a>. </aside> <p> Save the request body in a file named <code translate="no" dir="ltr">request.json</code>. Run the following command in the terminal to create or overwrite this file in the current directory: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="CURL command to create request body" translate="no" dir="ltr" is-upgraded>cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "<var translate="no">FILE_URI1</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT1</var>" }, { "fileData": { "fileUri": "<var translate="no">FILE_URI2</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT2</var>" }, { "fileData": { "fileUri": "<var translate="no">FILE_URI3</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } } ] } } EOF</pre></devsite-code> <p> Then execute the following command to send your REST request: </p> <section><div></div><devsite-code><pre class="devsite-click-to-copy" data-label=" CURL command" translate="no" dir="ltr" is-upgraded>curl -X POST \<br> -H "Authorization: Bearer $(gcloud auth print-access-token)" \<br> -H "Content-Type: application/json; charset=utf-8" \<br> -d @request.json \<br> "https://<var translate="no">LOCATION</var>-aiplatform.googleapis.com/v1/projects/<var translate="no">PROJECT_ID</var>/locations/<var translate="no">LOCATION</var>/publishers/google/models/gemini-1.5-flash:generateContent"</pre></devsite-code></section> </section> <section > <h4 id="powershell_2" data-text="PowerShell" tabindex="-1">PowerShell</h4> <aside class="note"><b>Note:</b> The following command assumes that you have logged in to the <code translate="no" dir="ltr">gcloud</code> CLI with your user account by running <a href="/sdk/gcloud/reference/init"><code translate="no" dir="ltr">gcloud init</code></a> or <a href="/sdk/gcloud/reference/auth/login"><code translate="no" dir="ltr">gcloud auth login</code></a> . You can check the currently active account by running <a href="/sdk/gcloud/reference/auth/list"><code translate="no" dir="ltr">gcloud auth list</code></a>. </aside> <p> Save the request body in a file named <code translate="no" dir="ltr">request.json</code>. Run the following command in the terminal to create or overwrite this file in the current directory: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="PowerShell command to create request body" translate="no" dir="ltr" is-upgraded>@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "<var translate="no">FILE_URI1</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT1</var>" }, { "fileData": { "fileUri": "<var translate="no">FILE_URI2</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } }, { "text": "<var translate="no">TEXT2</var>" }, { "fileData": { "fileUri": "<var translate="no">FILE_URI3</var>", "mimeType": "<var translate="no">MIME_TYPE</var>" } } ] } } '@ | Out-File -FilePath request.json -Encoding utf8</pre></devsite-code> <p> Then execute the following command to send your REST request: </p> <section><div></div><devsite-code><pre class="devsite-click-to-copy" data-label="PowerShell command" translate="no" dir="ltr" is-upgraded>$cred = gcloud auth print-access-token<br>$headers = @{ "Authorization" = "Bearer $cred" }<br><br>Invoke-WebRequest `<br> -Method POST `<br> -Headers $headers `<br> -ContentType: "application/json; charset=utf-8" `<br> -InFile request.json `<br> -Uri "https://<var translate="no">LOCATION</var>-aiplatform.googleapis.com/v1/projects/<var translate="no">PROJECT_ID</var>/locations/<var translate="no">LOCATION</var>/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content</pre></devsite-code></section> </section> </div> <p>You should receive a JSON response similar to the following.</p> <section class="expandable"><h4 class="showalways" id="response_2" data-text="Response" tabindex="-1">Response</h4> <div></div><devsite-code><pre class="readonly" data-label="sample response" translate="no" dir="ltr" is-upgraded> { "candidates": [ { "content": { "role": "model", "parts": [ { "text": "city: Rio de Janeiro, Landmark: Christ the Redeemer statue \n" } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.05340333, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.08740791 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.13050689, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.10338596 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.05399884, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.09947021 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.10576342, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.066934206 } ] } ], "usageMetadata": { "promptTokenCount": 791, "candidatesTokenCount": 14, "totalTokenCount": 805 } } </pre></devsite-code> </section> Note the following in the URL for this sample: <ul> <li>Use the <a href="/vertex-ai/docs/reference/rest/v1/projects.locations.publishers.models/generateContent"><code translate="no" dir="ltr">generateContent</code></a> method to request that the response is returned after it's fully generated. To reduce the perception of latency to a human audience, stream the response as it's being generated by using the <a href="/vertex-ai/docs/reference/rest/v1/projects.locations.publishers.models/streamGenerateContent"><code translate="no" dir="ltr">streamGenerateContent</code></a> method. </li> <li>The multimodal model ID is located at the end of the URL before the method (for example, <code translate="no" dir="ltr">gemini-1.5-flash</code> or <code translate="no" dir="ltr">gemini-1.0-pro-vision</code>). This sample may support other models as well. </ul> </section> <section> <h3 id="gemini-send-multimodal-samples-images-console" track-metadata-position="gemini-send-multimodal-samples-images" track-metadata-region-tag="gemini-send-multimodal-samples-images" data-text="Console" tabindex="-1">Console</h3> To send a multimodal prompt by using the Google Cloud console, do the following:</p> <ol> <li><p>In the Vertex AI section of the Google Cloud console, go to the <strong>Vertex AI Studio</strong> page.</p> <p><a href="https://console.cloud.google.com/vertex-ai/generative/multimodal" class="button button-primary" target="console" track-name="consoleLink" track-type="task">Go to Vertex AI Studio</a></p></li> <li><p>Click <strong>Open freeform</strong>.</p></li> <li><p>Optional: Configure the model and parameters:</p> <ul> <li><strong>Model</strong>: Select a model.</li> <li><strong>Region</strong>: Select the region that you want to use.</li> <li><p><strong>Temperature</strong>: Use the slider or textbox to enter a value for temperature.</p> <p> The temperature is used for sampling during response generation, which occurs when <code translate="no" dir="ltr">topP</code> and <code translate="no" dir="ltr">topK</code> are applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of <code translate="no" dir="ltr">0</code> means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible. <p>If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature.</p> </p></li> <li><p><strong>Output token limit</strong>: Use the slider or textbox to enter a value for the max output limit.</p> <p> Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words. <p>Specify a lower value for shorter responses and a higher value for potentially longer responses.</p> </p></li> <li><p><strong>Add stop sequence</strong>: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn&#39;t included in the response, and you can add up to five stop sequences.</p></li> </ul></li> <li><p>Optional: To configure advanced parameters, click <strong>Advanced</strong> and configure as follows: <div> <devsite-expandable> <h4 class="showalways" id="click-to-expand-advanced-configurations_1" data-text="Click to expand advanced configurations" tabindex="-1">Click to expand advanced configurations</h4> <ul> <li><p><strong>Top-K</strong>: Use the slider or textbox to enter a value for top-K. (not supported for Gemini 1.5).</p> Top-K changes how the model selects tokens for output. A top-K of <code translate="no" dir="ltr">1</code> means the next selected token is the most probable among all tokens in the model's vocabulary (also called greedy decoding), while a top-K of <code translate="no" dir="ltr">3</code> means that the next token is selected from among the three most probable tokens by using temperature. <p>For each token selection step, the top-K tokens with the highest probabilities are sampled. Then tokens are further filtered based on top-P with the final token selected using temperature sampling.</p> <p>Specify a lower value for less random responses and a higher value for more random responses.</p> </li> <li><strong>Top-P</strong>: Use the slider or textbox to enter a value for top-P. Tokens are selected from most probable to the least until the sum of their probabilities equals the value of top-P. For the least variable results, set top-P to <code translate="no" dir="ltr">0</code>.</li> <li><strong>Max responses</strong>: Use the slider or textbox to enter a value for the number of responses to generate.</li> <li><strong>Streaming responses</strong>: Enable to print responses as they&#39;re generated.</li> <li><strong>Safety filter threshold</strong>: Select the threshold of how likely you are to see responses that could be harmful.</li> <li><strong>Enable Grounding</strong>: Grounding isn&#39;t supported for multimodal prompts.</li> </ul> </devsite-expandable> </div></p></li> <li><p>Click <strong>Insert Media</strong>, and select a source for your file.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="upload_1" data-text=" Upload " tabindex="-1"> Upload </h3><p>Select the file that you want to upload and click <strong>Open</strong>.</p></section> <section><h3 id="by-url_1" data-text=" By URL" tabindex="-1"> By URL</h3><p>Enter the URL of the file that you want to use and click <strong>Insert</strong>.</p></section> <section><h3 id="cloud-storage_1" data-text=" Cloud Storage " tabindex="-1"> Cloud Storage </h3><p>Select the bucket and then the file from the bucket that you want to import and click <strong>Select</strong>.</p></section> <section><h3 id="google-drive_1" data-text=" Google Drive " tabindex="-1"> Google Drive </h3><ol> <li>Choose an account and give consent to Vertex AI Studio to access your account the first time you select this option. You can upload multiple files that have a total size of up to 10 MB. A single file can&#39;t exceed 7 MB.</li> <li>Click the file that you want to add.</li> <li><p>Click <strong>Select</strong>.</p> <p>The file thumbnail displays in the <strong>Prompt</strong> pane. The total number of tokens also displays. If your prompt data exceeds the <a href="/vertex-ai/generative-ai/docs/learn/models#gemini-models">token limit</a>, the tokens are truncated and aren&#39;t included in processing your data.</p></li> </ol></section> </div></li> <li><p>Enter your text prompt in the <strong>Prompt</strong> pane.</p></li> <li><p>Optional: To view the <strong>Token ID to text</strong> and <strong>Token IDs</strong>, click the <strong>tokens count</strong> in the <strong>Prompt</strong> pane.</p> <aside class="note"><strong>Note:</strong><span> Media tokens aren&#39;t supported.</span></aside></li> <li><p>Click <strong>Submit</strong>.</p></li> <li><p>Optional: To save your prompt to <strong>My prompts</strong>, click <span class="material-icons" aria-hidden="true" translate="no">save_alt</span> <strong>Save</strong>.</p></li> <li><p>Optional: To get the Python code or a curl command for your prompt, click <span class="material-icons" aria-hidden="true" translate="no">code</span> <strong>Get code</strong>. </section> </devsite-selector> </div> <h2 id="set-optional-model-parameters" data-text="Set optional model parameters" tabindex="-1">Set optional model parameters</h2> <p>Each model has a set of optional parameters that you can set. For more information, see <a href="/vertex-ai/generative-ai/docs/multimodal/content-generation-parameters">Content generation parameters</a>.</p> <h2 id="image-requirements" data-text="Image requirements" tabindex="-1">Image requirements</h2> <p> Gemini multimodal models support the following image MIME types: <table> <thead> <tr> <th width="25%"><strong>Image MIME type</strong></th> <th style="text-align:center" width="25%"><strong>Gemini&nbsp;1.5&nbsp;Flash</strong></th> <th style="text-align:center" width="25%"><strong>Gemini&nbsp;1.5&nbsp;Pro</strong></th> <th style="text-align:center" width="25%"><strong>Gemini&nbsp;1.0&nbsp;Pro&nbsp;Vision</strong></th> </tr> </thead> <tbody> <tr> <td>PNG - <code translate="no" dir="ltr">image/png</code></td> <td style="text-align:center"><span class="compare-yes"></span></td> <td style="text-align:center"><span class="compare-yes"></span></td> <td style="text-align:center"><span class="compare-yes"></span></td> </tr> <tr> <td>JPEG - <code translate="no" dir="ltr">image/jpeg</code></td> <td style="text-align:center"><span class="compare-yes"></span></td> <td style="text-align:center"><span class="compare-yes"></span></td> <td style="text-align:center"><span class="compare-yes"></span></td> </tr> <tr> <td>WebP - <code translate="no" dir="ltr">image/webp</code></td> <td style="text-align:center"><span class="compare-yes"></span></td> <td style="text-align:center"><span class="compare-yes"></span></td> <td style="text-align:center"><span class="compare-no"></span></td> </tr> </tbody> </table> </p> <p> <p>There isn't a specific limit to the number of pixels in an image. However, larger images are scaled down and padded to fit a maximum resolution of 3072 x 3072 while preserving their original aspect ratio. </p> <p>Here's the maximum number of image files allowed in a prompt request:</p> <ul> <li><strong>Gemini&nbsp;1.0&nbsp;Pro&nbsp;Vision</strong>: 16 images</li> <li><strong>Gemini&nbsp;1.5&nbsp;Flash and Gemini&nbsp;1.5&nbsp;Pro</strong>: 3000 images </li> </ul> </p> <p> <p>Here's how tokens are calculated for images:</p> <ul> <li><strong>Gemini&nbsp;1.0&nbsp;Pro&nbsp;Vision</strong>: Each image accounts for 258 tokens. </li> <li><strong>Gemini&nbsp;1.5&nbsp;Flash and Gemini&nbsp;1.5&nbsp;Pro</strong>: <ul> <li>If both dimensions of an image are less than or equal to 384 pixels, then 258 tokens are used. </li> <li>If one dimension of an image is greater than 384 pixels, then the image is cropped into tiles. Each tile size defaults to the smallest dimension (width or height) divided by 1.5. If necessary, each tile is adjusted so that it's not smaller than 256 pixels and not greater than 768 pixels. Each tile is then resized to 768x768 and uses 258 tokens. </li> </ul> </li> </ul> </p> <h2 id="best-practices" data-text="Best practices" tabindex="-1">Best practices</h2> <p> <p>When using images, use the following best practices and information for the best results: </p> <ul> <li>If you want to detect text in an image, use prompts with a single image to produce better results than prompts with multiple images. </li> <li>If your prompt contains a single image, place the image before the text prompt in your request. </li> <li>If your prompt contains multiple images, and you want to refer to them later in your prompt or have the model refer to them in the model response, it can help to give each image an index before the image. Use <nobr><code translate="no" dir="ltr">a</code> <code translate="no" dir="ltr">b</code> <code translate="no" dir="ltr">c</code></nobr> or <nobr><code translate="no" dir="ltr">image 1</code> <code translate="no" dir="ltr">image 2</code> <code translate="no" dir="ltr">image 3</code></nobr> for your index. The following is an example of using indexed images in a prompt: <div></div><devsite-code><pre class="devsite-disable-click-to-copy" translate="no" dir="ltr" is-upgraded> image 1 <piano_recital.jpeg> image 2 <family_dinner.jpeg> image 3 <coffee_shop.jpeg> Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3.</pre></devsite-code> </li> <li>Use images with higher resolution; they yield better results.</li> <li>Include a few examples in the prompt.</li> <li>Rotate images to their proper orientation before adding them to the prompt. </li> <li>Avoid blurry images.</li> </ul> </p> <h2 id="limitations" data-text="Limitations" tabindex="-1">Limitations</h2> <p> <p>While Gemini multimodal models are powerful in many multimodal use cases, it's important to understand the limitations of the models: </p> <ul> <li><strong>Content moderation</strong>: The models refuse to provide answers on images that violate our safety policies. </li> <li><strong>Spatial reasoning</strong>: The models aren't precise at locating text or objects in images. They might only return the approximated counts of objects. </li> <li><strong>Medical uses</strong>: The models aren't suitable for interpreting medical images (for example, x-rays and CT scans) or providing medical advice. </li> <li><strong>People recognition</strong>: The models aren't meant to be used to identify people who aren't celebrities in images. </li> <li><strong>Accuracy</strong>: The models might hallucinate or make mistakes when interpreting low-quality, rotated, or extremely low-resolution images. The models might also hallucinate when interpreting handwritten text in images documents. </li> </ul> </p> <h2 id="whats_next" data-text="What's next" tabindex="-1">What's next</h2> <ul> <li>Start building with Gemini multimodal models - new customers <a href="https://console.cloud.google.com/freetrial?redirectPath=/vertex-ai/model-garden">get $300 in free Google Cloud credits</a> to explore what they can do with Gemini.</li> <li>Learn how to <a href="/vertex-ai/generative-ai/docs/multimodal/send-chat-prompts-gemini">send chat prompt requests</a>.</li> <li>Learn about <a href="/vertex-ai/generative-ai/docs/learn/responsible-ai">responsible AI best practices and Vertex AI&#39;s safety filters</a>. <devsite-hats-survey class="nocontent" hats-id="mwETRvWii0eU5NUYprb0Y9z5GVbc" listnr-id="83405"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Generative AI" product-id="5164350" bucket="Documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=1130925" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" project-support-url="https://cloud.google.com/support-hub" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2025-02-14 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Generative AI" product-id="5164350" bucket="Documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=1130925" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" project-support-url="https://cloud.google.com/support-hub" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-14 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Why Google</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/why-google-cloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="why google"track-name="choosing google cloud"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/why-google-cloud/"> Choosing Google Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/trust-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-type="footer link"track-metadata-module="footer"track-name="trust and security"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/security/"track-metadata-position="footer"> Trust and security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/modern-infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-type="footer link"track-metadata-module="footer"track-name="modern infrastructure cloud"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/solutions/modern-infrastructure/"track-metadata-position="footer"> Modern Infrastructure Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/multicloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/multicloud/"track-name="multicloud"> Multicloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-position="footer"track-metadata-child_headline="why google"track-name="global infrastructure"track-type="footer link"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/infrastructure/"> Global infrastructure </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/customers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-position="footer"track-name="customers and case studies"track-metadata-eventDetail="cloud.google.com/customers/"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="why google"> Customers and case studies </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/analyst-reports/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-eventDetail="cloud.google.com/analyst-reports/"track-name="analyst reports"track-type="footer link"track-metadata-module="footer"track-metadata-child_headline="why google"track-metadata-position="footer"> Analyst reports </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/whitepapers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-eventDetail="cloud.google.com/whitepapers/"track-name="whitepapers"track-metadata-child_headline="why google"track-metadata-position="footer"track-metadata-module="footer"track-type="footer link"> Whitepapers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/blog/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="engage"track-metadata-eventDetail="cloud.google.com/blog/"track-name="blog"track-type="footer link"> Blog </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Products and pricing</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/pricing/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-eventDetail="cloud.google.com/pricing/"track-name="google cloud pricing"track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="products and pricing"> Google Cloud pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//workspace.google.com/pricing.html" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-type="footer link"target="_blank"track-metadata-position="footer"track-metadata-child_headline="products and pricing"track-metadata-module="footer"track-name="google workspace pricing"track-metadata-eventDetail="workspace.google.com/pricing.html"> Google Workspace pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/products/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/products/"track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="products and pricing"track-name="see all products"> See all products </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Solutions</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/solutions/infrastructure-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/infrastructure-modernization/"track-type="footer link"track-metadata-module="footer"track-name="infrastructure modernization"track-metadata-position="footer"> Infrastructure modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/databases/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/databases"track-name="databases"track-type="footer link"> Databases </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/application-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/solutions/application-modernization/"track-metadata-position="footer"track-name="application development"track-metadata-child_headline="solutions"track-type="footer link"> Application modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/smart-analytics/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-eventDetail="cloud.google.com/solutions/smart-analytics/"track-metadata-position="footer"track-name="smart analytics"track-metadata-child_headline="solutions"track-metadata-module="footer"track-type="footer link"> Smart analytics </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/ai/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/ai/"track-name="artificial intelligence"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"> Artificial Intelligence </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/security/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-type="footer link"track-metadata-eventDetail="cloud.google.com/solutions/security/"track-metadata-module="footer"track-metadata-position="footer"track-name="security"track-metadata-child_headline="solutions"> Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://workspace.google.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" target="_blank"track-name="productivity and work transformation"track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="workspace.google.com/enterprise/"> Productivity & work transformation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#industry-solutions" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/#industry-solutions"track-name="industry solutions"track-type="footer link"> Industry solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/devops/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-module="footer"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/devops/"track-name="devops solutions"track-metadata-child_headline="solutions"track-type="footer link"> DevOps solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#section-14" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-position="footer"track-name="small business solutions"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/#section-14"track-metadata-module="footer"track-type="footer link"> Small business solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-type="footer link"track-metadata-module="footer"track-name="see all solutions"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/"track-metadata-position="footer"> See all solutions </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/affiliate-program/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-name="google cloud affiliate program"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/affiliate-program/"track-metadata-position="footer"track-type="footer link"track-metadata-module="footer"> Google Cloud Affiliate Program </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-type="footer link"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"track-name="google cloud documentation"track-metadata-eventDetail="cloud.google.com/docs/"> Google Cloud documentation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/get-started/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-eventDetail="cloud.google.com/docs/get-started/"track-metadata-module="footer"track-metadata-child_headline="resources"track-name="google cloud quickstarts"track-metadata-position="footer"track-type="footer link"> Google Cloud quickstarts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/marketplace/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-eventDetail="cloud.google.com/marketplace/"track-metadata-module="footer"track-name="google cloud marketplace"track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="resources"> Google Cloud Marketplace </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/discover/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-module="footer"track-name="learn about cloud computing"track-metadata-child_headline="resources"track-type="footer link"track-metadata-position="footer"track-metadata-eventDetail="learn/"> Learn about cloud computing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support-hub/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-position="footer"track-metadata-child_headline="resources"track-metadata-module="footer"track-name="support"track-type="footer link"track-metadata-eventDetail="cloud.google.com/support-hub/"> Support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/samples" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/docs/samples"track-type="footer link"track-name="code samples"> Code samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/architecture/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-type="footer link"track-name="cloud architecture center"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/architecture/"> Cloud Architecture Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/training/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-name="training"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/training/"track-metadata-position="footer"track-metadata-module="footer"track-type="footer link"> Training </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/certification/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-name="certifications"track-type="footer link"track-metadata-eventDetail="cloud.google.com/certification"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="resources"> Certifications </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-eventDetail="developers.google.com"track-metadata-module="footer"track-name="google developers"track-metadata-child_headline="resources"track-metadata-position="footer"target="_blank"track-type="footer link"> Google for Developers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/startup/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" track-metadata-module="footer"track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/startup/"track-name="google cloud for startups"> Google Cloud for Startups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//status.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" track-name="system status"target="_blank"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="resources"track-type="footer link"track-metadata-eventDetail="status.cloud.google.com"> System status </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/release-notes" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 14)" track-type="footer link"track-metadata-eventDetail="cloud.google.com/release-notes/"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"track-name="release notes"> Release Notes </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Engage</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/contact/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-position="footer"track-metadata-child_headline="engage"track-type="footer link"track-metadata-eventDetail="cloud.google.com/contact/"track-name="contact sales"track-metadata-module="footer"> Contact sales </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/find-a-partner" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-eventDetail="cloud.google.com/find-a-partner"track-metadata-child_headline="engage"track-name="find a partner"track-metadata-module="footer"target="_blank"track-metadata-position="footer"track-type="footer link"> Find a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/partners/become-a-partner/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-type="footer link"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/partners/become-a-partner/"track-name="become a partner"track-metadata-position="footer"track-metadata-child_headline="engage"> Become a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/events/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-position="footer"track-metadata-child_headline="engage"track-name="events"track-type="footer link"track-metadata-eventDetail="cloud.withgoogle.com/events"track-metadata-module="footer"> Events </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/podcasts/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-child_headline="engage"track-metadata-position="footer"track-name="podcasts"track-type="footer link"track-metadata-eventDetail="cloud.google.com/podcasts/"target="_blank"rel="noopener"track-metadata-module="footer"> Podcasts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/developers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-name="developer center"track-type="footer link"track-metadata-eventDetail="cloud.google.com/developers/"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="engage"> Developer Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudpresscorner.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" rel="noopener"target="_blank"track-metadata-module="footer"track-name="press corner"track-type="footer link"track-metadata-eventDetail="www.googlecloudpresscorner.com"track-metadata-position="footer"track-metadata-child_headline="engage"> Press Corner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-eventDetail="www.youtube.com/googlecloud"track-metadata-module="footer"target="_blank"rel="noopener"track-metadata-position="footer"track-metadata-child_headline="engage"track-name="google cloud on youtube"track-type="footer link"> Google Cloud on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloudplatform" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-type="footer link"target="_blank"rel="noopener"track-metadata-eventDetail="www.youtube.com/googlecloudplatform"track-metadata-child_headline="engage"track-metadata-module="footer"track-metadata-position="footer"track-name="google cloud tech on youtube"> Google Cloud Tech on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-position="footer"track-metadata-child_headline="engage"track-metadata-module="footer"target="_blank"track-name="follow on x"rel="noopener"track-type="footer link"track-metadata-eventDetail="x.com/googlecloud"> Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//userresearch.google.com/?reserved=1&amp;utm_source=website&amp;Q_Language=en&amp;utm_medium=own_srch&amp;utm_campaign=CloudWebFooter&amp;utm_term=0&amp;utm_content=0&amp;productTag=clou&amp;campaignDate=jul19&amp;pType=devel&amp;referral_code=jk212693" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-position="footer"track-metadata-child_headline="engage"target="_blank"track-name="join user research"track-metadata-module="footer"track-type="footer link"track-metadata-eventDetail="userresearch.google.com/?reserved=1&amp;utm_source=website&amp;Q_Language=en&amp;utm_medium=own_srch&amp;utm_campaign=CloudWebFooter&amp;utm_term=0&amp;utm_content=0&amp;productTag=clou&amp;campaignDate=jul19&amp;pType=devel&amp;referral_code=jk212693"> Join User Research </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//careers.google.com/cloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="careers.google.com/cloud"track-metadata-child_headline="engage"track-name="we are hiring join google cloud"target="_blank"> We're hiring. Join Google Cloud! </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudcommunity.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" track-metadata-child_headline="engage"track-metadata-position="footer"track-type="footer link"target="_blank"rel="noopener"track-metadata-module="footer"track-metadata-eventDetail="www.googlecloudcommunity.com"track-name="google cloud community"> Google Cloud Community </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//about.google/" data-category="Site-Wide Custom Events" data-label="Footer About Google link" target="_blank" track-metadata-module="utility footer" track-name="about google" track-type="footer link" track-metadata-eventDetail="//about.google/" track-metadata-position="footer" > About Google </a> </li> <li class="devsite-footer-utility-item devsite-footer-privacy-link"> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" track-type="footer link" track-metadata-eventDetail="//policies.google.com/privacy" track-name="privacy" track-metadata-module="utility footer" target="_blank" track-metadata-position="footer" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//www.google.com/intl/en/policies/terms/regional.html" data-category="Site-Wide Custom Events" data-label="Footer Site terms link" track-type="footer link" track-metadata-position="footer" track-metadata-eventDetail="//www.google.com/intl/en/policies/terms/regional.html" track-name="site terms" track-metadata-module="utility footer" target="_blank" > Site terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/product-terms/" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud terms link" track-metadata-module="utility footer" track-name="google cloud terms" track-metadata-position="footer" track-type="footer link" track-metadata-eventDetail="/product-terms/" > Google Cloud terms </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" track-metadata-module="utility footer" track-metadata-position="footer" track-type="footer link" track-metadata-eventDetail="#" aria-hidden="true" track-name="Manage cookies" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-carbon-button"> <a class="devsite-footer-utility-link gc-analytics-event" href="/sustainability" data-category="Site-Wide Custom Events" data-label="Footer Our third decade of climate action: join us link" track-metadata-position="footer" track-metadata-module="utility footer" track-type="footer link" track-metadata-eventDetail="/sustainability/" track-name="Our third decade of climate action: join us" > Our third decade of climate action: join us </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google Cloud newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" track-type="footer link" track-metadata-eventDetail="/newsletter/" track-metadata-module="utility footer" track-metadata-position="footer" track-name="subscribe" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5CVQBG&#34;, &#34;purpose&#34;: 1}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Generative AI&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;cloud&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <cloudx-user></cloudx-user> <cloudx-free-trial-eligible-store freeTrialEligible='true'></cloudx-free-trial-eligible-store> <cloudx-pricing-socket></cloudx-pricing-socket> <cloudx-experiments type="TestAACodivertedExperiment" path="/virtual/TestAACodivertedExperiment/configureExperiment" location="SG" variant="variant2" ></cloudx-experiments> <cloudx-experiment-ids userCountry="SG" devsiteExperimentIdList="[39300012, 39300021, 39300118, 39300191, 39300196, 39300251, 39300319, 39300322, 39300326, 39300345, 39300354, 39300364, 39300373, 39300412, 39300422, 39300436, 39300471, 39300488, 39300496, 39300498, 39300569]"> </cloudx-experiment-ids> <script nonce="4tddPF5CTARsrFQQ4DuGR+WEbOvBE1"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/js/app_loader.js', '[2,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud","https://cloud-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/cloud/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/favicon.ico","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","cloud.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_complete_playlist_endpoint","Profiles__enable_awarding_url","Profiles__enable_release_notes_notifications","Search__enable_dynamic_content_confidential_banner","Search__scope_to_project_tenant","EngEduTelemetry__enable_engedu_telemetry","MiscFeatureFlags__enable_firebase_utm","BookNav__enable_tenant_cache_key","Concierge__enable_pushui","Cloud__enable_legacy_calculator_redirect","Profiles__enable_developer_profiles_callout","TpcFeatures__enable_unmirrored_page_left_nav","Profiles__enable_dashboard_curated_recommendations","Experiments__reqs_query_experiments","Cloud__enable_cloudx_experiment_ids","Analytics__enable_clearcut_logging","Cloud__enable_cloud_shell_fte_user_flow","Search__enable_suggestions_from_borg","Profiles__enable_completequiz_endpoint","Profiles__enable_stripe_subscription_management","Search__enable_page_map","Search__enable_ai_search_summaries","Concierge__enable_concierge_restricted","Cloud__enable_free_trial_server_call","Search__enable_ai_search_summaries_restricted","Profiles__enable_recognition_badges","Cloud__enable_cloud_dlp_service","Profiles__enable_profile_collections","Profiles__enable_public_developer_profiles","DevPro__enable_cloud_innovators_plus","Profiles__enable_page_saving","Search__enable_ai_eligibility_checks","MiscFeatureFlags__enable_variable_operator","MiscFeatureFlags__enable_explain_this_code","MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_cloudx_ping","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloud_facet_chat","Profiles__enable_completecodelab_endpoint","Profiles__require_profile_eligibility_for_signin","Cloud__enable_llm_concierge_chat","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__enable_view_transitions","MiscFeatureFlags__emergency_css","TpcFeatures__enable_mirror_tenant_redirects","DevPro__enable_developer_subscriptions","CloudShell__cloud_shell_button","MiscFeatureFlags__developers_footer_image","Cloud__enable_cloud_shell","Profiles__enable_join_program_group_endpoint"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,1,"https://developerprofiles-pa.clients6.google.com",[2,"cloud","Google Cloud","cloud.google.com",null,"cloud-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],"/terms/recommendations"],[1],null,[1],[1,null,1],[1,1,null,null,1,null,["/vertex-ai/"]]],null,[22,null,null,null,null,null,"/images/cloud-logo.svg","/images/favicons/onecloud/apple-icon.png",null,null,null,null,1,1,1,[6,5],[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,null,[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[["docType","Choose a content type",[["ApiReference",null,null,null,null,null,null,null,null,"API reference"],["Sample",null,null,null,null,null,null,null,null,"Code sample"],["ReferenceArchitecture",null,null,null,null,null,null,null,null,"Reference architecture"],["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"Artificial intelligence and machine learning (AI/ML)"],["ApplicationDevelopment",null,null,null,null,null,null,null,null,"Application development"],["BigDataAndAnalytics",null,null,null,null,null,null,null,null,"Big data and analytics"],["Compute",null,null,null,null,null,null,null,null,"Compute"],["Containers",null,null,null,null,null,null,null,null,"Containers"],["Databases",null,null,null,null,null,null,null,null,"Databases"],["HybridCloud",null,null,null,null,null,null,null,null,"Hybrid and multicloud"],["LoggingAndMonitoring",null,null,null,null,null,null,null,null,"Logging and monitoring"],["Migrations",null,null,null,null,null,null,null,null,"Migrations"],["Networking",null,null,null,null,null,null,null,null,"Networking"],["SecurityAndCompliance",null,null,null,null,null,null,null,null,"Security and compliance"],["Serverless",null,null,null,null,null,null,null,null,"Serverless"],["Storage",null,null,null,null,null,null,null,null,"Storage"]]]]]],[1],null,1],[[null,null,null,null,null,["GTM-5CVQBG"],null,null,null,null,null,[["GTM-5CVQBG",2]],1],null,null,null,null,null,1],"mwETRvWii0eU5NUYprb0Y9z5GVbc",4,null,null,null,null,null,null,null,null,null,null,null,null,null,"cloud.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10