Grounding API

In generative AI, grounding is the ability to connect model output to verifiable sources of information. If you provide models with access to specific data sources, then grounding tethers their output to these data and reduces the chances of inventing content.

With Vertex AI, you can ground model outputs in the following ways:

  • Ground with Google Search - ground a model with publicly-available web data.
  • Ground with Google Maps - ground a model with geospatial data from Google Maps.
  • Ground to your data - ground a model with your data from Vertex AI Search as a data store.

For more information about grounding, see Grounding overview .

Supported models

Parameter list

See examples for implementation details.

googleSearch

Ground the response with publicly-available web data from Google Search.

googleMaps

Ground the response with publicly-available geospatial data from Google Maps.

The API input includes the following parameter:

Input parameter

enable_widget

Required: boolean

Flag that can be set to true or false . A value of true returns a token using the API response that you can use with the Google Maps context widget user interface.

The API response structure includes the following parameter:

Response parameter

grounding_metadata

Required: Object

The primary field that contains grounding information.

  • grounding_support : A sub-field indicating the level of grounding support.
  • grounding_chunks.maps : A sub-field containing the places sources used to generate the grounded response.
    • place_answer_sources.review_snippets : A sub-field within grounding_chunks.maps that appears when a place answer is used to answer a query. Place answers provide deeper contextual information about a specific place using data, such as user reviews. The place answer is backed by a list of sources like user reviews.

Attributes

A place or user review source has the following attributes:

Attributes

title

Required: Object

The title of the source.

uri

Required: string

A URI linking to the source.

place_id

Required: string

A unique identifier for the place.

review_id

Required: string

A unique identifier for review.

retrieval

Ground the response with private data from Vertex AI Search as a data store. Defines a retrieval tool that the model can call to access external knowledge.

Parameters

vertexAiSearch

Required: VertexAISearch

Ground with Vertex AI Search data sources.

VertexAISearch

Parameters

datastore

Required: string

Fully-qualified data store resource ID from Vertex AI Search, in the following format: projects/{project}/locations/{location}/collections/default_collection/dataStores/{datastore}

Examples

This section provides examples for grounding a response on public web data using Google Search and grounding a response on private data using Vertex AI Search.

Ground response on public web data using Google Search

Ground the response with Google Search public data. Include the google_search_retrieval tool in the request. No additional parameters are required.

Python

Install

pip install --upgrade google-genai

To learn more, see the SDK reference documentation .

Set environment variables to use the Gen AI SDK with Vertex AI:

 # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values 
 # with appropriate values for your project. 
 export 
  
 GOOGLE_CLOUD_PROJECT 
 = 
 GOOGLE_CLOUD_PROJECT 
 export 
  
 GOOGLE_CLOUD_LOCATION 
 = 
 global 
 export 
  
 GOOGLE_GENAI_USE_VERTEXAI 
 = 
True
  from 
  
 google 
  
 import 
 genai 
 from 
  
 google.genai.types 
  
 import 
 ( 
 GenerateContentConfig 
 , 
 GoogleSearch 
 , 
 HttpOptions 
 , 
 Tool 
 , 
 ) 
 client 
 = 
 genai 
 . 
 Client 
 ( 
 http_options 
 = 
 HttpOptions 
 ( 
 api_version 
 = 
 "v1" 
 )) 
 response 
 = 
 client 
 . 
 models 
 . 
 generate_content 
 ( 
 model 
 = 
 "gemini-2.5-flash" 
 , 
 contents 
 = 
 "When is the next total solar eclipse in the United States?" 
 , 
 config 
 = 
 GenerateContentConfig 
 ( 
 tools 
 = 
 [ 
 # Use Google Search Tool 
 Tool 
 ( 
 google_search 
 = 
 GoogleSearch 
 ()) 
 ], 
 ), 
 ) 
 print 
 ( 
 response 
 . 
 text 
 ) 
 # Example response: 
 # 'The next total solar eclipse in the United States will occur on ...' 
 

Go

Learn how to install or update the Go .

To learn more, see the SDK reference documentation .

Set environment variables to use the Gen AI SDK with Vertex AI:

 # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values 
 # with appropriate values for your project. 
 export 
  
 GOOGLE_CLOUD_PROJECT 
 = 
 GOOGLE_CLOUD_PROJECT 
 export 
  
 GOOGLE_CLOUD_LOCATION 
 = 
 global 
 export 
  
 GOOGLE_GENAI_USE_VERTEXAI 
 = 
True
  import 
  
 ( 
 "context" 
 "fmt" 
 "io" 
 genai 
 "google.golang.org/genai" 
 ) 
 // 
 generateWithGoogleSearch 
 shows 
 how 
 to 
 generate 
 text 
 using 
 Google 
 Search 
 . 
 func 
 generateWithGoogleSearch 
 ( 
 w 
 io 
 . 
 Writer 
 ) 
 error 
 { 
 ctx 
 := 
 context 
 . 
 Background 
 () 
 client 
 , 
 err 
 := 
 genai 
 . 
 NewClient 
 ( 
 ctx 
 , 
& genai 
 . 
 ClientConfig 
 { 
 HTTPOptions 
 : 
 genai 
 . 
 HTTPOptions 
 { 
 APIVersion 
 : 
 "v1" 
 }, 
 }) 
 if 
 err 
 != 
 nil 
 { 
 return 
 fmt 
 . 
 Errorf 
 ( 
 "failed to create genai client: %w" 
 , 
 err 
 ) 
 } 
 modelName 
 := 
 "gemini-2.5-flash" 
 contents 
 := 
 [] 
 * 
 genai 
 . 
 Content 
 { 
 { 
 Parts 
 : 
 [] 
 * 
 genai 
 . 
 Part 
 { 
 { 
 Text 
 : 
 "When is the next total solar eclipse in the United States?" 
 }, 
 }, 
 Role 
 : 
 "user" 
 }, 
 } 
 config 
 := 
& genai 
 . 
 GenerateContentConfig 
 { 
 Tools 
 : 
 [] 
 * 
 genai 
 . 
 Tool 
 { 
 { 
 GoogleSearch 
 : 
& genai 
 . 
 GoogleSearch 
 {}}, 
 }, 
 } 
 resp 
 , 
 err 
 := 
 client 
 . 
 Models 
 . 
 GenerateContent 
 ( 
 ctx 
 , 
 modelName 
 , 
 contents 
 , 
 config 
 ) 
 if 
 err 
 != 
 nil 
 { 
 return 
 fmt 
 . 
 Errorf 
 ( 
 "failed to generate content: %w" 
 , 
 err 
 ) 
 } 
 respText 
 := 
 resp 
 . 
 Text 
 () 
 fmt 
 . 
 Fprintln 
 ( 
 w 
 , 
 respText 
 ) 
 // 
 Example 
 response 
 : 
 // 
 The 
 next 
 total 
 solar 
 eclipse 
 in 
 the 
 United 
 States 
 will 
 occur 
 on 
 March 
 30 
 , 
 2033 
 , 
 but 
 it 
 will 
 only 
 ... 
 return 
 nil 
 } 
 

Java

Learn how to install or update the Java .

To learn more, see the SDK reference documentation .

Set environment variables to use the Gen AI SDK with Vertex AI:

 # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values 
 # with appropriate values for your project. 
 export 
  
 GOOGLE_CLOUD_PROJECT 
 = 
 GOOGLE_CLOUD_PROJECT 
 export 
  
 GOOGLE_CLOUD_LOCATION 
 = 
 global 
 export 
  
 GOOGLE_GENAI_USE_VERTEXAI 
 = 
True
  import 
  
 com.google.genai.Client 
 ; 
 import 
  
 com.google.genai.types.GenerateContentConfig 
 ; 
 import 
  
 com.google.genai.types.GenerateContentResponse 
 ; 
 import 
  
 com.google.genai.types.GoogleSearch 
 ; 
 import 
  
 com.google.genai.types.HttpOptions 
 ; 
 import 
  
 com.google.genai.types.Tool 
 ; 
 public 
 class 
  
 ToolsGoogleSearchWithText 
 { 
 public 
 static 
 void 
 main 
 ( 
 String 
 [] 
 args 
 ) 
 { 
 // 
 TODO 
 ( 
 developer 
 ): 
 Replace 
 these 
 variables 
 before 
 running 
 the 
 sample 
 . 
 String 
 modelId 
 = 
 "gemini-2.5-flash" 
 ; 
 generateContent 
 ( 
 modelId 
 ); 
 } 
 // 
 Generates 
 text 
 with 
 Google 
 Search 
 tool 
 public 
 static 
 String 
 generateContent 
 ( 
 String 
 modelId 
 ) 
 { 
 // 
 Initialize 
 client 
 that 
 will 
 be 
 used 
 to 
 send 
 requests 
 . 
 This 
 client 
 only 
 needs 
 to 
 be 
 created 
 // 
 once 
 , 
 and 
 can 
 be 
 reused 
 for 
 multiple 
 requests 
 . 
 try 
 ( 
 Client 
 client 
 = 
 Client 
 . 
 builder 
 () 
 . 
 location 
 ( 
 "global" 
 ) 
 . 
 vertexAI 
 ( 
 true 
 ) 
 . 
 httpOptions 
 ( 
 HttpOptions 
 . 
 builder 
 () 
 . 
 apiVersion 
 ( 
 "v1" 
 ) 
 . 
 build 
 ()) 
 . 
 build 
 ()) 
 { 
 // 
 Create 
 a 
 GenerateContentConfig 
 and 
 set 
 Google 
 Search 
 tool 
 GenerateContentConfig 
 contentConfig 
 = 
 GenerateContentConfig 
 . 
 builder 
 () 
 . 
 tools 
 ( 
 Tool 
 . 
 builder 
 () 
 . 
 googleSearch 
 ( 
 GoogleSearch 
 . 
 builder 
 () 
 . 
 build 
 ()) 
 . 
 build 
 ()) 
 . 
 build 
 (); 
 GenerateContentResponse 
 response 
 = 
 client 
 . 
 models 
 . 
 generateContent 
 ( 
 modelId 
 , 
 "When is the next total solar eclipse in the United States?" 
 , 
 contentConfig 
 ); 
 System 
 . 
 out 
 . 
 print 
 ( 
 response 
 . 
 text 
 ()); 
 // 
 Example 
 response 
 : 
 // 
 The 
 next 
 total 
 solar 
 eclipse 
 in 
 the 
 United 
 States 
 will 
 occur 
 on 
 ... 
 return 
 response 
 . 
 text 
 (); 
 } 
 } 
 } 
 

Ground response on private data using Vertex AI Search

Ground the response with data from a Vertex AI Search data store. For more information, see AI Applications .

Before you ground a response with private data, create a data store and a search app .

WARNING: For the time being, this "grounding" interface does not support Vertex AI Search "chunk mode".

Gen AI SDK for Python

  from 
  
 google 
  
 import 
 genai 
 from 
  
 google.genai.types 
  
 import 
 ( 
 GenerateContentConfig 
 , 
 HttpOptions 
 , 
 Retrieval 
 , 
 Tool 
 , 
 VertexAISearch 
 , 
 ) 
 client 
 = 
 genai 
 . 
 Client 
 ( 
 http_options 
 = 
 HttpOptions 
 ( 
 api_version 
 = 
 "v1" 
 )) 
 # Load Data Store ID from Vertex AI Search 
 # datastore = "projects/111111111111/locations/global/collections/default_collection/dataStores/data-store-id" 
 response 
 = 
 client 
 . 
 models 
 . 
 generate_content 
 ( 
 model 
 = 
 "gemini-2.5-flash" 
 , 
 contents 
 = 
 "How do I make an appointment to renew my driver's license?" 
 , 
 config 
 = 
 GenerateContentConfig 
 ( 
 tools 
 = 
 [ 
 # Use Vertex AI Search Tool 
 Tool 
 ( 
 retrieval 
 = 
 Retrieval 
 ( 
 vertex_ai_search 
 = 
 VertexAISearch 
 ( 
 datastore 
 = 
 datastore 
 , 
 ) 
 ) 
 ) 
 ], 
 ), 
 ) 
 print 
 ( 
 response 
 . 
 text 
 ) 
 # Example response: 
 # 'The process for making an appointment to renew your driver's license varies depending on your location. To provide you with the most accurate instructions...' 
 

What's next

For detailed documentation, see the following:

Design a Mobile Site
View Site in Mobile | Classic
Share by: