google-cloud-discovery_engine-v1 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/operations.rb +2 -2
  3. data/lib/google/cloud/discovery_engine/v1/control_service/client.rb +6 -6
  4. data/lib/google/cloud/discovery_engine/v1/control_service/rest/client.rb +6 -6
  5. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/client.rb +15 -12
  6. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/client.rb +15 -12
  7. data/lib/google/cloud/discovery_engine/v1/data_store_service/rest/operations.rb +2 -2
  8. data/lib/google/cloud/discovery_engine/v1/document_service/paths.rb +25 -0
  9. data/lib/google/cloud/discovery_engine/v1/document_service/rest/operations.rb +2 -2
  10. data/lib/google/cloud/discovery_engine/v1/engine_service/rest/operations.rb +2 -2
  11. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/client.rb +219 -3
  12. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/paths.rb +85 -0
  13. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/rest/client.rb +126 -3
  14. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/rest/service_stub.rb +60 -0
  15. data/lib/google/cloud/discovery_engine/v1/project_service/rest/operations.rb +2 -2
  16. data/lib/google/cloud/discovery_engine/v1/rank_service/client.rb +1 -1
  17. data/lib/google/cloud/discovery_engine/v1/rank_service/rest/client.rb +1 -1
  18. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/operations.rb +2 -2
  19. data/lib/google/cloud/discovery_engine/v1/search_service/client.rb +5 -1
  20. data/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb +5 -1
  21. data/lib/google/cloud/discovery_engine/v1/search_tuning_service/rest/operations.rb +2 -2
  22. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/client.rb +5 -1
  23. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/rest/client.rb +5 -1
  24. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/rest/operations.rb +2 -2
  25. data/lib/google/cloud/discovery_engine/v1/user_event_service/client.rb +1 -1
  26. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/client.rb +1 -1
  27. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/operations.rb +2 -2
  28. data/lib/google/cloud/discovery_engine/v1/version.rb +1 -1
  29. data/lib/google/cloud/discoveryengine/v1/answer_pb.rb +1 -1
  30. data/lib/google/cloud/discoveryengine/v1/common_pb.rb +1 -1
  31. data/lib/google/cloud/discoveryengine/v1/conversational_search_service_pb.rb +2 -1
  32. data/lib/google/cloud/discoveryengine/v1/custom_tuning_model_pb.rb +1 -1
  33. data/lib/google/cloud/discoveryengine/v1/data_store_pb.rb +4 -1
  34. data/lib/google/cloud/discoveryengine/v1/document_service_pb.rb +2 -1
  35. data/lib/google/cloud/discoveryengine/v1/engine_pb.rb +1 -1
  36. data/lib/google/cloud/discoveryengine/v1/grounded_generation_service_pb.rb +23 -1
  37. data/lib/google/cloud/discoveryengine/v1/grounded_generation_service_services_pb.rb +4 -0
  38. data/lib/google/cloud/discoveryengine/v1/search_service_pb.rb +5 -1
  39. data/lib/google/cloud/discoveryengine/v1/site_search_engine_service_pb.rb +1 -1
  40. data/proto_docs/google/cloud/discoveryengine/v1/answer.rb +12 -2
  41. data/proto_docs/google/cloud/discoveryengine/v1/control_service.rb +6 -6
  42. data/proto_docs/google/cloud/discoveryengine/v1/conversational_search_service.rb +59 -15
  43. data/proto_docs/google/cloud/discoveryengine/v1/custom_tuning_model.rb +8 -3
  44. data/proto_docs/google/cloud/discoveryengine/v1/data_store.rb +88 -0
  45. data/proto_docs/google/cloud/discoveryengine/v1/document_processing_config.rb +7 -5
  46. data/proto_docs/google/cloud/discoveryengine/v1/document_service.rb +19 -0
  47. data/proto_docs/google/cloud/discoveryengine/v1/engine.rb +5 -1
  48. data/proto_docs/google/cloud/discoveryengine/v1/grounded_generation_service.rb +383 -0
  49. data/proto_docs/google/cloud/discoveryengine/v1/project.rb +1 -1
  50. data/proto_docs/google/cloud/discoveryengine/v1/purge_config.rb +1 -1
  51. data/proto_docs/google/cloud/discoveryengine/v1/rank_service.rb +1 -1
  52. data/proto_docs/google/cloud/discoveryengine/v1/search_service.rb +116 -0
  53. data/proto_docs/google/cloud/discoveryengine/v1/site_search_engine_service.rb +5 -0
  54. data/proto_docs/google/cloud/discoveryengine/v1/user_event.rb +1 -1
  55. metadata +3 -3
@@ -183,6 +183,208 @@ module Google
183
183
 
184
184
  # Service calls
185
185
 
186
+ ##
187
+ # Generates grounded content in a streaming fashion.
188
+ #
189
+ # @param request [::Gapic::StreamInput, ::Enumerable<::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest, ::Hash>]
190
+ # An enumerable of {::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest} instances.
191
+ # @param options [::Gapic::CallOptions, ::Hash]
192
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
193
+ #
194
+ # @yield [response, operation] Access the result along with the RPC operation
195
+ # @yieldparam response [::Enumerable<::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse>]
196
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
197
+ #
198
+ # @return [::Enumerable<::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse>]
199
+ #
200
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
201
+ #
202
+ # @example Basic example
203
+ # require "google/cloud/discovery_engine/v1"
204
+ #
205
+ # # Create a client object. The client can be reused for multiple calls.
206
+ # client = Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Client.new
207
+ #
208
+ # # Create an input stream.
209
+ # input = Gapic::StreamInput.new
210
+ #
211
+ # # Call the stream_generate_grounded_content method to start streaming.
212
+ # output = client.stream_generate_grounded_content input
213
+ #
214
+ # # Send requests on the stream. For each request object, set fields by
215
+ # # passing keyword arguments. Be sure to close the stream when done.
216
+ # input << Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest.new
217
+ # input << Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest.new
218
+ # input.close
219
+ #
220
+ # # The returned object is a streamed enumerable yielding elements of type
221
+ # # ::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse
222
+ # output.each do |current_response|
223
+ # p current_response
224
+ # end
225
+ #
226
+ def stream_generate_grounded_content request, options = nil
227
+ unless request.is_a? ::Enumerable
228
+ raise ::ArgumentError, "request must be an Enumerable" unless request.respond_to? :to_enum
229
+ request = request.to_enum
230
+ end
231
+
232
+ request = request.lazy.map do |req|
233
+ ::Gapic::Protobuf.coerce req, to: ::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest
234
+ end
235
+
236
+ # Converts hash and nil to an options object
237
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
238
+
239
+ # Customize the options with defaults
240
+ metadata = @config.rpcs.stream_generate_grounded_content.metadata.to_h
241
+
242
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
243
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
244
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
245
+ gapic_version: ::Google::Cloud::DiscoveryEngine::V1::VERSION
246
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
247
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
248
+
249
+ options.apply_defaults timeout: @config.rpcs.stream_generate_grounded_content.timeout,
250
+ metadata: metadata,
251
+ retry_policy: @config.rpcs.stream_generate_grounded_content.retry_policy
252
+
253
+ options.apply_defaults timeout: @config.timeout,
254
+ metadata: @config.metadata,
255
+ retry_policy: @config.retry_policy
256
+
257
+ @grounded_generation_service_stub.call_rpc :stream_generate_grounded_content, request, options: options do |response, operation|
258
+ yield response, operation if block_given?
259
+ return response
260
+ end
261
+ rescue ::GRPC::BadStatus => e
262
+ raise ::Google::Cloud::Error.from_error(e)
263
+ end
264
+
265
+ ##
266
+ # Generates grounded content.
267
+ #
268
+ # @overload generate_grounded_content(request, options = nil)
269
+ # Pass arguments to `generate_grounded_content` via a request object, either of type
270
+ # {::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest} or an equivalent Hash.
271
+ #
272
+ # @param request [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest, ::Hash]
273
+ # A request object representing the call parameters. Required. To specify no
274
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
275
+ # @param options [::Gapic::CallOptions, ::Hash]
276
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
277
+ #
278
+ # @overload generate_grounded_content(location: nil, system_instruction: nil, contents: nil, generation_spec: nil, grounding_spec: nil, user_labels: nil)
279
+ # Pass arguments to `generate_grounded_content` via keyword arguments. Note that at
280
+ # least one keyword argument is required. To specify no parameters, or to keep all
281
+ # the default parameter values, pass an empty Hash as a request object (see above).
282
+ #
283
+ # @param location [::String]
284
+ # Required. Location resource.
285
+ #
286
+ # Format: `projects/{project}/locations/{location}`.
287
+ # @param system_instruction [::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationContent, ::Hash]
288
+ # Content of the system instruction for the current API.
289
+ #
290
+ # These instructions will take priority over any other prompt instructions
291
+ # if the selected model is supporting them.
292
+ # @param contents [::Array<::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationContent, ::Hash>]
293
+ # Content of the current conversation with the model.
294
+ #
295
+ # For single-turn queries, this is a single instance. For multi-turn queries,
296
+ # this is a repeated field that contains conversation history + latest
297
+ # request.
298
+ #
299
+ # Only a single-turn query is supported currently.
300
+ # @param generation_spec [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest::GenerationSpec, ::Hash]
301
+ # Content generation specification.
302
+ # @param grounding_spec [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest::GroundingSpec, ::Hash]
303
+ # Grounding specification.
304
+ # @param user_labels [::Hash{::String => ::String}]
305
+ # The user labels applied to a resource must meet the following requirements:
306
+ #
307
+ # * Each resource can have multiple labels, up to a maximum of 64.
308
+ # * Each label must be a key-value pair.
309
+ # * Keys have a minimum length of 1 character and a maximum length of 63
310
+ # characters and cannot be empty. Values can be empty and have a maximum
311
+ # length of 63 characters.
312
+ # * Keys and values can contain only lowercase letters, numeric characters,
313
+ # underscores, and dashes. All characters must use UTF-8 encoding, and
314
+ # international characters are allowed.
315
+ # * The key portion of a label must be unique. However, you can use the same
316
+ # key with multiple resources.
317
+ # * Keys must start with a lowercase letter or international character.
318
+ #
319
+ # See [Google Cloud
320
+ # Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
321
+ # for more details.
322
+ #
323
+ # @yield [response, operation] Access the result along with the RPC operation
324
+ # @yieldparam response [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse]
325
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
326
+ #
327
+ # @return [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse]
328
+ #
329
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
330
+ #
331
+ # @example Basic example
332
+ # require "google/cloud/discovery_engine/v1"
333
+ #
334
+ # # Create a client object. The client can be reused for multiple calls.
335
+ # client = Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Client.new
336
+ #
337
+ # # Create a request. To set request fields, pass in keyword arguments.
338
+ # request = Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest.new
339
+ #
340
+ # # Call the generate_grounded_content method.
341
+ # result = client.generate_grounded_content request
342
+ #
343
+ # # The returned object is of type Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse.
344
+ # p result
345
+ #
346
+ def generate_grounded_content request, options = nil
347
+ raise ::ArgumentError, "request must be provided" if request.nil?
348
+
349
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest
350
+
351
+ # Converts hash and nil to an options object
352
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
353
+
354
+ # Customize the options with defaults
355
+ metadata = @config.rpcs.generate_grounded_content.metadata.to_h
356
+
357
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
358
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
359
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
360
+ gapic_version: ::Google::Cloud::DiscoveryEngine::V1::VERSION
361
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
362
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
363
+
364
+ header_params = {}
365
+ if request.location
366
+ header_params["location"] = request.location
367
+ end
368
+
369
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
370
+ metadata[:"x-goog-request-params"] ||= request_params_header
371
+
372
+ options.apply_defaults timeout: @config.rpcs.generate_grounded_content.timeout,
373
+ metadata: metadata,
374
+ retry_policy: @config.rpcs.generate_grounded_content.retry_policy
375
+
376
+ options.apply_defaults timeout: @config.timeout,
377
+ metadata: @config.metadata,
378
+ retry_policy: @config.retry_policy
379
+
380
+ @grounded_generation_service_stub.call_rpc :generate_grounded_content, request, options: options do |response, operation|
381
+ yield response, operation if block_given?
382
+ return response
383
+ end
384
+ rescue ::GRPC::BadStatus => e
385
+ raise ::Google::Cloud::Error.from_error(e)
386
+ end
387
+
186
388
  ##
187
389
  # Performs a grounding check.
188
390
  #
@@ -311,17 +513,17 @@ module Google
311
513
  # @example
312
514
  #
313
515
  # # Modify the global config, setting the timeout for
314
- # # check_grounding to 20 seconds,
516
+ # # stream_generate_grounded_content to 20 seconds,
315
517
  # # and all remaining timeouts to 10 seconds.
316
518
  # ::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Client.configure do |config|
317
519
  # config.timeout = 10.0
318
- # config.rpcs.check_grounding.timeout = 20.0
520
+ # config.rpcs.stream_generate_grounded_content.timeout = 20.0
319
521
  # end
320
522
  #
321
523
  # # Apply the above configuration only to a new client.
322
524
  # client = ::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Client.new do |config|
323
525
  # config.timeout = 10.0
324
- # config.rpcs.check_grounding.timeout = 20.0
526
+ # config.rpcs.stream_generate_grounded_content.timeout = 20.0
325
527
  # end
326
528
  #
327
529
  # @!attribute [rw] endpoint
@@ -448,6 +650,16 @@ module Google
448
650
  # trigger a retry.
449
651
  #
450
652
  class Rpcs
653
+ ##
654
+ # RPC-specific configuration for `stream_generate_grounded_content`
655
+ # @return [::Gapic::Config::Method]
656
+ #
657
+ attr_reader :stream_generate_grounded_content
658
+ ##
659
+ # RPC-specific configuration for `generate_grounded_content`
660
+ # @return [::Gapic::Config::Method]
661
+ #
662
+ attr_reader :generate_grounded_content
451
663
  ##
452
664
  # RPC-specific configuration for `check_grounding`
453
665
  # @return [::Gapic::Config::Method]
@@ -456,6 +668,10 @@ module Google
456
668
 
457
669
  # @private
458
670
  def initialize parent_rpcs = nil
671
+ stream_generate_grounded_content_config = parent_rpcs.stream_generate_grounded_content if parent_rpcs.respond_to? :stream_generate_grounded_content
672
+ @stream_generate_grounded_content = ::Gapic::Config::Method.new stream_generate_grounded_content_config
673
+ generate_grounded_content_config = parent_rpcs.generate_grounded_content if parent_rpcs.respond_to? :generate_grounded_content
674
+ @generate_grounded_content = ::Gapic::Config::Method.new generate_grounded_content_config
459
675
  check_grounding_config = parent_rpcs.check_grounding if parent_rpcs.respond_to? :check_grounding
460
676
  @check_grounding = ::Gapic::Config::Method.new check_grounding_config
461
677
 
@@ -43,6 +43,91 @@ module Google
43
43
  "projects/#{project}/locations/#{location}/groundingConfigs/#{grounding_config}"
44
44
  end
45
45
 
46
+ ##
47
+ # Create a fully-qualified Location resource string.
48
+ #
49
+ # The resource will be in the following format:
50
+ #
51
+ # `projects/{project}/locations/{location}`
52
+ #
53
+ # @param project [String]
54
+ # @param location [String]
55
+ #
56
+ # @return [::String]
57
+ def location_path project:, location:
58
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
59
+
60
+ "projects/#{project}/locations/#{location}"
61
+ end
62
+
63
+ ##
64
+ # Create a fully-qualified ServingConfig resource string.
65
+ #
66
+ # @overload serving_config_path(project:, location:, data_store:, serving_config:)
67
+ # The resource will be in the following format:
68
+ #
69
+ # `projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}`
70
+ #
71
+ # @param project [String]
72
+ # @param location [String]
73
+ # @param data_store [String]
74
+ # @param serving_config [String]
75
+ #
76
+ # @overload serving_config_path(project:, location:, collection:, data_store:, serving_config:)
77
+ # The resource will be in the following format:
78
+ #
79
+ # `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}`
80
+ #
81
+ # @param project [String]
82
+ # @param location [String]
83
+ # @param collection [String]
84
+ # @param data_store [String]
85
+ # @param serving_config [String]
86
+ #
87
+ # @overload serving_config_path(project:, location:, collection:, engine:, serving_config:)
88
+ # The resource will be in the following format:
89
+ #
90
+ # `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}`
91
+ #
92
+ # @param project [String]
93
+ # @param location [String]
94
+ # @param collection [String]
95
+ # @param engine [String]
96
+ # @param serving_config [String]
97
+ #
98
+ # @return [::String]
99
+ def serving_config_path **args
100
+ resources = {
101
+ "data_store:location:project:serving_config" => (proc do |project:, location:, data_store:, serving_config:|
102
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
103
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
104
+ raise ::ArgumentError, "data_store cannot contain /" if data_store.to_s.include? "/"
105
+
106
+ "projects/#{project}/locations/#{location}/dataStores/#{data_store}/servingConfigs/#{serving_config}"
107
+ end),
108
+ "collection:data_store:location:project:serving_config" => (proc do |project:, location:, collection:, data_store:, serving_config:|
109
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
110
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
111
+ raise ::ArgumentError, "collection cannot contain /" if collection.to_s.include? "/"
112
+ raise ::ArgumentError, "data_store cannot contain /" if data_store.to_s.include? "/"
113
+
114
+ "projects/#{project}/locations/#{location}/collections/#{collection}/dataStores/#{data_store}/servingConfigs/#{serving_config}"
115
+ end),
116
+ "collection:engine:location:project:serving_config" => (proc do |project:, location:, collection:, engine:, serving_config:|
117
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
118
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
119
+ raise ::ArgumentError, "collection cannot contain /" if collection.to_s.include? "/"
120
+ raise ::ArgumentError, "engine cannot contain /" if engine.to_s.include? "/"
121
+
122
+ "projects/#{project}/locations/#{location}/collections/#{collection}/engines/#{engine}/servingConfigs/#{serving_config}"
123
+ end)
124
+ }
125
+
126
+ resource = resources[args.keys.sort.join(":")]
127
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
128
+ resource.call(**args)
129
+ end
130
+
46
131
  extend self
47
132
  end
48
133
  end
@@ -176,6 +176,122 @@ module Google
176
176
 
177
177
  # Service calls
178
178
 
179
+ ##
180
+ # Generates grounded content.
181
+ #
182
+ # @overload generate_grounded_content(request, options = nil)
183
+ # Pass arguments to `generate_grounded_content` via a request object, either of type
184
+ # {::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest} or an equivalent Hash.
185
+ #
186
+ # @param request [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest, ::Hash]
187
+ # A request object representing the call parameters. Required. To specify no
188
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
189
+ # @param options [::Gapic::CallOptions, ::Hash]
190
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
191
+ #
192
+ # @overload generate_grounded_content(location: nil, system_instruction: nil, contents: nil, generation_spec: nil, grounding_spec: nil, user_labels: nil)
193
+ # Pass arguments to `generate_grounded_content` via keyword arguments. Note that at
194
+ # least one keyword argument is required. To specify no parameters, or to keep all
195
+ # the default parameter values, pass an empty Hash as a request object (see above).
196
+ #
197
+ # @param location [::String]
198
+ # Required. Location resource.
199
+ #
200
+ # Format: `projects/{project}/locations/{location}`.
201
+ # @param system_instruction [::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationContent, ::Hash]
202
+ # Content of the system instruction for the current API.
203
+ #
204
+ # These instructions will take priority over any other prompt instructions
205
+ # if the selected model is supporting them.
206
+ # @param contents [::Array<::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationContent, ::Hash>]
207
+ # Content of the current conversation with the model.
208
+ #
209
+ # For single-turn queries, this is a single instance. For multi-turn queries,
210
+ # this is a repeated field that contains conversation history + latest
211
+ # request.
212
+ #
213
+ # Only a single-turn query is supported currently.
214
+ # @param generation_spec [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest::GenerationSpec, ::Hash]
215
+ # Content generation specification.
216
+ # @param grounding_spec [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest::GroundingSpec, ::Hash]
217
+ # Grounding specification.
218
+ # @param user_labels [::Hash{::String => ::String}]
219
+ # The user labels applied to a resource must meet the following requirements:
220
+ #
221
+ # * Each resource can have multiple labels, up to a maximum of 64.
222
+ # * Each label must be a key-value pair.
223
+ # * Keys have a minimum length of 1 character and a maximum length of 63
224
+ # characters and cannot be empty. Values can be empty and have a maximum
225
+ # length of 63 characters.
226
+ # * Keys and values can contain only lowercase letters, numeric characters,
227
+ # underscores, and dashes. All characters must use UTF-8 encoding, and
228
+ # international characters are allowed.
229
+ # * The key portion of a label must be unique. However, you can use the same
230
+ # key with multiple resources.
231
+ # * Keys must start with a lowercase letter or international character.
232
+ #
233
+ # See [Google Cloud
234
+ # Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
235
+ # for more details.
236
+ # @yield [result, operation] Access the result along with the TransportOperation object
237
+ # @yieldparam result [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse]
238
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
239
+ #
240
+ # @return [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse]
241
+ #
242
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
243
+ #
244
+ # @example Basic example
245
+ # require "google/cloud/discovery_engine/v1"
246
+ #
247
+ # # Create a client object. The client can be reused for multiple calls.
248
+ # client = Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Rest::Client.new
249
+ #
250
+ # # Create a request. To set request fields, pass in keyword arguments.
251
+ # request = Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest.new
252
+ #
253
+ # # Call the generate_grounded_content method.
254
+ # result = client.generate_grounded_content request
255
+ #
256
+ # # The returned object is of type Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse.
257
+ # p result
258
+ #
259
+ def generate_grounded_content request, options = nil
260
+ raise ::ArgumentError, "request must be provided" if request.nil?
261
+
262
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest
263
+
264
+ # Converts hash and nil to an options object
265
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
266
+
267
+ # Customize the options with defaults
268
+ call_metadata = @config.rpcs.generate_grounded_content.metadata.to_h
269
+
270
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
271
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
272
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
273
+ gapic_version: ::Google::Cloud::DiscoveryEngine::V1::VERSION,
274
+ transports_version_send: [:rest]
275
+
276
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
277
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
278
+
279
+ options.apply_defaults timeout: @config.rpcs.generate_grounded_content.timeout,
280
+ metadata: call_metadata,
281
+ retry_policy: @config.rpcs.generate_grounded_content.retry_policy
282
+
283
+ options.apply_defaults timeout: @config.timeout,
284
+ metadata: @config.metadata,
285
+ retry_policy: @config.retry_policy
286
+
287
+ @grounded_generation_service_stub.generate_grounded_content request, options do |result, operation|
288
+ yield result, operation if block_given?
289
+ return result
290
+ end
291
+ rescue ::Gapic::Rest::Error => e
292
+ raise ::Google::Cloud::Error.from_error(e)
293
+ end
294
+
179
295
  ##
180
296
  # Performs a grounding check.
181
297
  #
@@ -297,17 +413,17 @@ module Google
297
413
  # @example
298
414
  #
299
415
  # # Modify the global config, setting the timeout for
300
- # # check_grounding to 20 seconds,
416
+ # # generate_grounded_content to 20 seconds,
301
417
  # # and all remaining timeouts to 10 seconds.
302
418
  # ::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Rest::Client.configure do |config|
303
419
  # config.timeout = 10.0
304
- # config.rpcs.check_grounding.timeout = 20.0
420
+ # config.rpcs.generate_grounded_content.timeout = 20.0
305
421
  # end
306
422
  #
307
423
  # # Apply the above configuration only to a new client.
308
424
  # client = ::Google::Cloud::DiscoveryEngine::V1::GroundedGenerationService::Rest::Client.new do |config|
309
425
  # config.timeout = 10.0
310
- # config.rpcs.check_grounding.timeout = 20.0
426
+ # config.rpcs.generate_grounded_content.timeout = 20.0
311
427
  # end
312
428
  #
313
429
  # @!attribute [rw] endpoint
@@ -414,6 +530,11 @@ module Google
414
530
  # trigger a retry.
415
531
  #
416
532
  class Rpcs
533
+ ##
534
+ # RPC-specific configuration for `generate_grounded_content`
535
+ # @return [::Gapic::Config::Method]
536
+ #
537
+ attr_reader :generate_grounded_content
417
538
  ##
418
539
  # RPC-specific configuration for `check_grounding`
419
540
  # @return [::Gapic::Config::Method]
@@ -422,6 +543,8 @@ module Google
422
543
 
423
544
  # @private
424
545
  def initialize parent_rpcs = nil
546
+ generate_grounded_content_config = parent_rpcs.generate_grounded_content if parent_rpcs.respond_to? :generate_grounded_content
547
+ @generate_grounded_content = ::Gapic::Config::Method.new generate_grounded_content_config
425
548
  check_grounding_config = parent_rpcs.check_grounding if parent_rpcs.respond_to? :check_grounding
426
549
  @check_grounding = ::Gapic::Config::Method.new check_grounding_config
427
550
 
@@ -61,6 +61,44 @@ module Google
61
61
  @client_stub.endpoint
62
62
  end
63
63
 
64
+ ##
65
+ # Baseline implementation for the generate_grounded_content REST call
66
+ #
67
+ # @param request_pb [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest]
68
+ # A request object representing the call parameters. Required.
69
+ # @param options [::Gapic::CallOptions]
70
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
71
+ #
72
+ # @yield [result, operation] Access the result along with the TransportOperation object
73
+ # @yieldparam result [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse]
74
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
75
+ #
76
+ # @return [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse]
77
+ # A result object deserialized from the server's reply
78
+ def generate_grounded_content request_pb, options = nil
79
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
80
+
81
+ verb, uri, query_string_params, body = ServiceStub.transcode_generate_grounded_content_request request_pb
82
+ query_string_params = if query_string_params.any?
83
+ query_string_params.to_h { |p| p.split "=", 2 }
84
+ else
85
+ {}
86
+ end
87
+
88
+ response = @client_stub.make_http_request(
89
+ verb,
90
+ uri: uri,
91
+ body: body || "",
92
+ params: query_string_params,
93
+ options: options
94
+ )
95
+ operation = ::Gapic::Rest::TransportOperation.new response
96
+ result = ::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentResponse.decode_json response.body, ignore_unknown_fields: true
97
+
98
+ yield result, operation if block_given?
99
+ result
100
+ end
101
+
64
102
  ##
65
103
  # Baseline implementation for the check_grounding REST call
66
104
  #
@@ -99,6 +137,28 @@ module Google
99
137
  result
100
138
  end
101
139
 
140
+ ##
141
+ # @private
142
+ #
143
+ # GRPC transcoding helper method for the generate_grounded_content REST call
144
+ #
145
+ # @param request_pb [::Google::Cloud::DiscoveryEngine::V1::GenerateGroundedContentRequest]
146
+ # A request object representing the call parameters. Required.
147
+ # @return [Array(String, [String, nil], Hash{String => String})]
148
+ # Uri, Body, Query string parameters
149
+ def self.transcode_generate_grounded_content_request request_pb
150
+ transcoder = Gapic::Rest::GrpcTranscoder.new
151
+ .with_bindings(
152
+ uri_method: :post,
153
+ uri_template: "/v1/{location}:generateGroundedContent",
154
+ body: "*",
155
+ matches: [
156
+ ["location", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
157
+ ]
158
+ )
159
+ transcoder.transcode request_pb
160
+ end
161
+
102
162
  ##
103
163
  # @private
104
164
  #
@@ -915,7 +915,7 @@ module Google
915
915
  uri_method: :get,
916
916
  uri_template: "/v1/{name}/operations",
917
917
  matches: [
918
- ["name", %r{^projects/[^/]+/locations/[^/]+/identity_mapping_stores/[^/]+/?$}, false]
918
+ ["name", %r{^projects/[^/]+/locations/[^/]+/identityMappingStores/[^/]+/?$}, false]
919
919
  ]
920
920
  )
921
921
  .with_bindings(
@@ -1041,7 +1041,7 @@ module Google
1041
1041
  uri_method: :get,
1042
1042
  uri_template: "/v1/{name}",
1043
1043
  matches: [
1044
- ["name", %r{^projects/[^/]+/locations/[^/]+/identity_mapping_stores/[^/]+/operations/[^/]+/?$}, false]
1044
+ ["name", %r{^projects/[^/]+/locations/[^/]+/identityMappingStores/[^/]+/operations/[^/]+/?$}, false]
1045
1045
  ]
1046
1046
  )
1047
1047
  .with_bindings(
@@ -203,7 +203,7 @@ module Google
203
203
  #
204
204
  # @param ranking_config [::String]
205
205
  # Required. The resource name of the rank service config, such as
206
- # `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`.
206
+ # `projects/{project_num}/locations/{location}/rankingConfigs/default_ranking_config`.
207
207
  # @param model [::String]
208
208
  # The identifier of the model to use. It is one of:
209
209
  #
@@ -196,7 +196,7 @@ module Google
196
196
  #
197
197
  # @param ranking_config [::String]
198
198
  # Required. The resource name of the rank service config, such as
199
- # `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`.
199
+ # `projects/{project_num}/locations/{location}/rankingConfigs/default_ranking_config`.
200
200
  # @param model [::String]
201
201
  # The identifier of the model to use. It is one of:
202
202
  #
@@ -915,7 +915,7 @@ module Google
915
915
  uri_method: :get,
916
916
  uri_template: "/v1/{name}/operations",
917
917
  matches: [
918
- ["name", %r{^projects/[^/]+/locations/[^/]+/identity_mapping_stores/[^/]+/?$}, false]
918
+ ["name", %r{^projects/[^/]+/locations/[^/]+/identityMappingStores/[^/]+/?$}, false]
919
919
  ]
920
920
  )
921
921
  .with_bindings(
@@ -1041,7 +1041,7 @@ module Google
1041
1041
  uri_method: :get,
1042
1042
  uri_template: "/v1/{name}",
1043
1043
  matches: [
1044
- ["name", %r{^projects/[^/]+/locations/[^/]+/identity_mapping_stores/[^/]+/operations/[^/]+/?$}, false]
1044
+ ["name", %r{^projects/[^/]+/locations/[^/]+/identityMappingStores/[^/]+/operations/[^/]+/?$}, false]
1045
1045
  ]
1046
1046
  )
1047
1047
  .with_bindings(