@@ -123,3 +123,183 @@ def rank_sample(
123123 # [END genappbuilder_rank]
124124
125125 return response
126+
127+
128+ def grounded_generation_inline_vais_sample (
129+ project_number : str ,
130+ engine_id : str ,
131+ ) -> discoveryengine .GenerateGroundedContentResponse :
132+ # [START genappbuilder_grounded_generation_inline_vais]
133+ from google .cloud import discoveryengine_v1 as discoveryengine
134+
135+ # TODO(developer): Uncomment these variables before running the sample.
136+ # project_number = "YOUR_PROJECT_NUMBER"
137+ # engine_id = "YOUR_ENGINE_ID"
138+
139+ client = discoveryengine .GroundedGenerationServiceClient ()
140+
141+ request = discoveryengine .GenerateGroundedContentRequest (
142+ # The full resource name of the location.
143+ # Format: projects/{project_number}/locations/{location}
144+ location = client .common_location_path (project = project_number , location = "global" ),
145+ generation_spec = discoveryengine .GenerateGroundedContentRequest .GenerationSpec (
146+ model_id = "default" ,
147+ ),
148+ # Conversation between user and model
149+ contents = [
150+ discoveryengine .GroundedGenerationContent (
151+ role = "user" ,
152+ parts = [
153+ discoveryengine .GroundedGenerationContent .Part (
154+ text = "How did Google do in 2020? Where can I find BigQuery docs?"
155+ )
156+ ],
157+ )
158+ ],
159+ system_instruction = discoveryengine .GroundedGenerationContent (
160+ parts = [
161+ discoveryengine .GroundedGenerationContent .Part (
162+ text = "Add a smiley emoji after the answer."
163+ )
164+ ],
165+ ),
166+ # What to ground on.
167+ grounding_spec = discoveryengine .GenerateGroundedContentRequest .GroundingSpec (
168+ grounding_sources = [
169+ discoveryengine .GenerateGroundedContentRequest .GroundingSource (
170+ inline_source = discoveryengine .GenerateGroundedContentRequest .GroundingSource .InlineSource (
171+ grounding_facts = [
172+ discoveryengine .GroundingFact (
173+ fact_text = (
174+ "The BigQuery documentation can be found at https://cloud.google.com/bigquery/docs/introduction"
175+ ),
176+ attributes = {
177+ "title" : "BigQuery Overview" ,
178+ "uri" : "https://cloud.google.com/bigquery/docs/introduction" ,
179+ },
180+ ),
181+ ]
182+ ),
183+ ),
184+ discoveryengine .GenerateGroundedContentRequest .GroundingSource (
185+ search_source = discoveryengine .GenerateGroundedContentRequest .GroundingSource .SearchSource (
186+ # The full resource name of the serving config for a Vertex AI Search App
187+ serving_config = f"projects/{ project_number } /locations/global/collections/default_collection/engines/{ engine_id } /servingConfigs/default_search" ,
188+ ),
189+ ),
190+ ]
191+ ),
192+ )
193+ response = client .generate_grounded_content (request )
194+
195+ # Handle the response
196+ print (response )
197+ # [END genappbuilder_grounded_generation_inline_vais]
198+
199+ return response
200+
201+
202+ def grounded_generation_google_search_sample (
203+ project_number : str ,
204+ ) -> discoveryengine .GenerateGroundedContentResponse :
205+ # [START genappbuilder_grounded_generation_google_search]
206+ from google .cloud import discoveryengine_v1 as discoveryengine
207+
208+ # TODO(developer): Uncomment these variables before running the sample.
209+ # project_number = "YOUR_PROJECT_NUMBER"
210+
211+ client = discoveryengine .GroundedGenerationServiceClient ()
212+
213+ request = discoveryengine .GenerateGroundedContentRequest (
214+ # The full resource name of the location.
215+ # Format: projects/{project_number}/locations/{location}
216+ location = client .common_location_path (project = project_number , location = "global" ),
217+ generation_spec = discoveryengine .GenerateGroundedContentRequest .GenerationSpec (
218+ model_id = "default" ,
219+ ),
220+ # Conversation between user and model
221+ contents = [
222+ discoveryengine .GroundedGenerationContent (
223+ role = "user" ,
224+ parts = [
225+ discoveryengine .GroundedGenerationContent .Part (
226+ text = "How much is Google stock?"
227+ )
228+ ],
229+ )
230+ ],
231+ system_instruction = discoveryengine .GroundedGenerationContent (
232+ parts = [
233+ discoveryengine .GroundedGenerationContent .Part (text = "Be comprehensive." )
234+ ],
235+ ),
236+ # What to ground on.
237+ grounding_spec = discoveryengine .GenerateGroundedContentRequest .GroundingSpec (
238+ grounding_sources = [
239+ discoveryengine .GenerateGroundedContentRequest .GroundingSource (
240+ google_search_source = discoveryengine .GenerateGroundedContentRequest .GroundingSource .GoogleSearchSource (
241+ # Optional: For Dynamic Retrieval
242+ dynamic_retrieval_config = discoveryengine .GenerateGroundedContentRequest .DynamicRetrievalConfiguration (
243+ predictor = discoveryengine .GenerateGroundedContentRequest .DynamicRetrievalConfiguration .DynamicRetrievalPredictor (
244+ threshold = 0.7
245+ )
246+ )
247+ )
248+ ),
249+ ]
250+ ),
251+ )
252+ response = client .generate_grounded_content (request )
253+
254+ # Handle the response
255+ print (response )
256+ # [END genappbuilder_grounded_generation_google_search]
257+
258+ return response
259+
260+
261+ def grounded_generation_streaming_sample (
262+ project_number : str ,
263+ ) -> discoveryengine .GenerateGroundedContentResponse :
264+ # [START genappbuilder_grounded_generation_streaming]
265+ from google .cloud import discoveryengine_v1 as discoveryengine
266+
267+ # TODO(developer): Uncomment these variables before running the sample.
268+ # project_id = "YOUR_PROJECT_ID"
269+
270+ client = discoveryengine .GroundedGenerationServiceClient ()
271+
272+ request = discoveryengine .GenerateGroundedContentRequest (
273+ # The full resource name of the location.
274+ # Format: projects/{project_number}/locations/{location}
275+ location = client .common_location_path (project = project_number , location = "global" ),
276+ generation_spec = discoveryengine .GenerateGroundedContentRequest .GenerationSpec (
277+ model_id = "default" ,
278+ ),
279+ # Conversation between user and model
280+ contents = [
281+ discoveryengine .GroundedGenerationContent (
282+ role = "user" ,
283+ parts = [
284+ discoveryengine .GroundedGenerationContent .Part (
285+ text = "Summarize how to delete a data store in Vertex AI Agent Builder?"
286+ )
287+ ],
288+ )
289+ ],
290+ grounding_spec = discoveryengine .GenerateGroundedContentRequest .GroundingSpec (
291+ grounding_sources = [
292+ discoveryengine .GenerateGroundedContentRequest .GroundingSource (
293+ google_search_source = discoveryengine .GenerateGroundedContentRequest .GroundingSource .GoogleSearchSource ()
294+ ),
295+ ]
296+ ),
297+ )
298+ responses = client .stream_generate_grounded_content (iter ([request ]))
299+
300+ for response in responses :
301+ # Handle the response
302+ print (response )
303+ # [END genappbuilder_grounded_generation_streaming]
304+
305+ return response
0 commit comments