google-apis-aiplatform_v1 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -647,6 +647,12 @@ module Google
647
647
  # @return [Array<Google::Apis::AiplatformV1::CloudAiNlLlmProtoServiceCandidate>]
648
648
  attr_accessor :candidates
649
649
 
650
+ # Debug information containing message metadata. Clients should not consume this
651
+ # field, and this is only populated for Flow Runner path.
652
+ # Corresponds to the JSON property `debugMetadata`
653
+ # @return [Google::Apis::AiplatformV1::CloudAiNlLlmProtoServiceMessageMetadata]
654
+ attr_accessor :debug_metadata
655
+
650
656
  # Content filter results for a prompt sent in the request.
651
657
  # Corresponds to the JSON property `promptFeedback`
652
658
  # @return [Google::Apis::AiplatformV1::CloudAiNlLlmProtoServicePromptFeedback]
@@ -669,12 +675,46 @@ module Google
669
675
  # Update properties of this object
670
676
  def update!(**args)
671
677
  @candidates = args[:candidates] if args.key?(:candidates)
678
+ @debug_metadata = args[:debug_metadata] if args.key?(:debug_metadata)
672
679
  @prompt_feedback = args[:prompt_feedback] if args.key?(:prompt_feedback)
673
680
  @reporting_metrics = args[:reporting_metrics] if args.key?(:reporting_metrics)
674
681
  @usage_metadata = args[:usage_metadata] if args.key?(:usage_metadata)
675
682
  end
676
683
  end
677
684
 
685
+ #
686
+ class CloudAiNlLlmProtoServiceMessageMetadata
687
+ include Google::Apis::Core::Hashable
688
+
689
+ # LINT.IfChange This metadata contains additional information required for
690
+ # debugging.
691
+ # Corresponds to the JSON property `inputFilterInfo`
692
+ # @return [Google::Apis::AiplatformV1::LearningServingLlmMessageMetadata]
693
+ attr_accessor :input_filter_info
694
+
695
+ # Holds the final routing decision, by storing the model_config_id. And
696
+ # individual scores each model got.
697
+ # Corresponds to the JSON property `modelRoutingDecision`
698
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRoutingDecision]
699
+ attr_accessor :model_routing_decision
700
+
701
+ # Filter metadata of the output messages.
702
+ # Corresponds to the JSON property `outputFilterInfo`
703
+ # @return [Array<Google::Apis::AiplatformV1::LearningServingLlmMessageMetadata>]
704
+ attr_accessor :output_filter_info
705
+
706
+ def initialize(**args)
707
+ update!(**args)
708
+ end
709
+
710
+ # Update properties of this object
711
+ def update!(**args)
712
+ @input_filter_info = args[:input_filter_info] if args.key?(:input_filter_info)
713
+ @model_routing_decision = args[:model_routing_decision] if args.key?(:model_routing_decision)
714
+ @output_filter_info = args[:output_filter_info] if args.key?(:output_filter_info)
715
+ end
716
+ end
717
+
678
718
  # A single part of a message.
679
719
  class CloudAiNlLlmProtoServicePart
680
720
  include Google::Apis::Core::Hashable
@@ -837,6 +877,122 @@ module Google
837
877
  end
838
878
  end
839
879
 
880
+ # The RAI results for a given text.
881
+ class CloudAiNlLlmProtoServiceRaiResult
882
+ include Google::Apis::Core::Hashable
883
+
884
+ # The recitation result for one input
885
+ # Corresponds to the JSON property `aidaRecitationResult`
886
+ # @return [Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoRecitationResult]
887
+ attr_accessor :aida_recitation_result
888
+
889
+ # Use `triggered_blocklist`.
890
+ # Corresponds to the JSON property `blocked`
891
+ # @return [Boolean]
892
+ attr_accessor :blocked
893
+ alias_method :blocked?, :blocked
894
+
895
+ # The error codes indicate which RAI filters block the response.
896
+ # Corresponds to the JSON property `errorCodes`
897
+ # @return [Array<Fixnum>]
898
+ attr_accessor :error_codes
899
+
900
+ # Whether the text should be filtered and not shown to the end user. This is
901
+ # determined based on a combination of `triggered_recitation`, `
902
+ # triggered_blocklist`, `language_filter_result`, and `triggered_safety_filter`.
903
+ # Corresponds to the JSON property `filtered`
904
+ # @return [Boolean]
905
+ attr_accessor :filtered
906
+ alias_method :filtered?, :filtered
907
+
908
+ # Language filter result from SAFT LangId.
909
+ # Corresponds to the JSON property `languageFilterResult`
910
+ # @return [Google::Apis::AiplatformV1::LearningServingLlmLanguageFilterResult]
911
+ attr_accessor :language_filter_result
912
+
913
+ # The RAI signals for the text.
914
+ # Corresponds to the JSON property `raiSignals`
915
+ # @return [Array<Google::Apis::AiplatformV1::CloudAiNlLlmProtoServiceRaiSignal>]
916
+ attr_accessor :rai_signals
917
+
918
+ # Whether the text triggered the blocklist.
919
+ # Corresponds to the JSON property `triggeredBlocklist`
920
+ # @return [Boolean]
921
+ attr_accessor :triggered_blocklist
922
+ alias_method :triggered_blocklist?, :triggered_blocklist
923
+
924
+ # Whether the text should be blocked by the recitation result from Aida
925
+ # recitation checker. It is determined from aida_recitation_result.
926
+ # Corresponds to the JSON property `triggeredRecitation`
927
+ # @return [Boolean]
928
+ attr_accessor :triggered_recitation
929
+ alias_method :triggered_recitation?, :triggered_recitation
930
+
931
+ # Whether the text triggered the safety filter. Currently, this is due to CSAI
932
+ # triggering or one of four categories (derogatory, sexual, toxic, violent)
933
+ # having a score over the filter threshold.
934
+ # Corresponds to the JSON property `triggeredSafetyFilter`
935
+ # @return [Boolean]
936
+ attr_accessor :triggered_safety_filter
937
+ alias_method :triggered_safety_filter?, :triggered_safety_filter
938
+
939
+ def initialize(**args)
940
+ update!(**args)
941
+ end
942
+
943
+ # Update properties of this object
944
+ def update!(**args)
945
+ @aida_recitation_result = args[:aida_recitation_result] if args.key?(:aida_recitation_result)
946
+ @blocked = args[:blocked] if args.key?(:blocked)
947
+ @error_codes = args[:error_codes] if args.key?(:error_codes)
948
+ @filtered = args[:filtered] if args.key?(:filtered)
949
+ @language_filter_result = args[:language_filter_result] if args.key?(:language_filter_result)
950
+ @rai_signals = args[:rai_signals] if args.key?(:rai_signals)
951
+ @triggered_blocklist = args[:triggered_blocklist] if args.key?(:triggered_blocklist)
952
+ @triggered_recitation = args[:triggered_recitation] if args.key?(:triggered_recitation)
953
+ @triggered_safety_filter = args[:triggered_safety_filter] if args.key?(:triggered_safety_filter)
954
+ end
955
+ end
956
+
957
+ # An RAI signal for a single category.
958
+ class CloudAiNlLlmProtoServiceRaiSignal
959
+ include Google::Apis::Core::Hashable
960
+
961
+ # The confidence level for the RAI category.
962
+ # Corresponds to the JSON property `confidence`
963
+ # @return [String]
964
+ attr_accessor :confidence
965
+
966
+ # Whether the category is flagged as being present. Currently, this is set to
967
+ # true if score >= 0.5.
968
+ # Corresponds to the JSON property `flagged`
969
+ # @return [Boolean]
970
+ attr_accessor :flagged
971
+ alias_method :flagged?, :flagged
972
+
973
+ # The RAI category.
974
+ # Corresponds to the JSON property `raiCategory`
975
+ # @return [String]
976
+ attr_accessor :rai_category
977
+
978
+ # The score for the category, in the range [0.0, 1.0].
979
+ # Corresponds to the JSON property `score`
980
+ # @return [Float]
981
+ attr_accessor :score
982
+
983
+ def initialize(**args)
984
+ update!(**args)
985
+ end
986
+
987
+ # Update properties of this object
988
+ def update!(**args)
989
+ @confidence = args[:confidence] if args.key?(:confidence)
990
+ @flagged = args[:flagged] if args.key?(:flagged)
991
+ @rai_category = args[:rai_category] if args.key?(:rai_category)
992
+ @score = args[:score] if args.key?(:score)
993
+ end
994
+ end
995
+
840
996
  # Safety rating corresponding to the generated content.
841
997
  class CloudAiNlLlmProtoServiceSafetyRating
842
998
  include Google::Apis::Core::Hashable
@@ -9141,12 +9297,6 @@ module Google
9141
9297
  # @return [Array<Google::Apis::AiplatformV1::GoogleCloudAiplatformV1Content>]
9142
9298
  attr_accessor :contents
9143
9299
 
9144
- # Required. The name of the Endpoint requested to serve the prediction. Format: `
9145
- # projects/`project`/locations/`location`/endpoints/`endpoint``
9146
- # Corresponds to the JSON property `endpoint`
9147
- # @return [String]
9148
- attr_accessor :endpoint
9149
-
9150
9300
  # Generation config.
9151
9301
  # Corresponds to the JSON property `generationConfig`
9152
9302
  # @return [Google::Apis::AiplatformV1::GoogleCloudAiplatformV1GenerationConfig]
@@ -9173,7 +9323,6 @@ module Google
9173
9323
  # Update properties of this object
9174
9324
  def update!(**args)
9175
9325
  @contents = args[:contents] if args.key?(:contents)
9176
- @endpoint = args[:endpoint] if args.key?(:endpoint)
9177
9326
  @generation_config = args[:generation_config] if args.key?(:generation_config)
9178
9327
  @safety_settings = args[:safety_settings] if args.key?(:safety_settings)
9179
9328
  @tools = args[:tools] if args.key?(:tools)
@@ -16334,6 +16483,11 @@ module Google
16334
16483
  # @return [Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences]
16335
16484
  attr_accessor :open_fine_tuning_pipeline
16336
16485
 
16486
+ # Open fine tuning pipelines.
16487
+ # Corresponds to the JSON property `openFineTuningPipelines`
16488
+ # @return [Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines]
16489
+ attr_accessor :open_fine_tuning_pipelines
16490
+
16337
16491
  # The regional resource name or the URI. Key is region, e.g., us-central1,
16338
16492
  # europe-west2, global, etc..
16339
16493
  # Corresponds to the JSON property `openGenerationAiStudio`
@@ -16352,6 +16506,11 @@ module Google
16352
16506
  # @return [Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences]
16353
16507
  attr_accessor :open_notebook
16354
16508
 
16509
+ # Open notebooks.
16510
+ # Corresponds to the JSON property `openNotebooks`
16511
+ # @return [Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks]
16512
+ attr_accessor :open_notebooks
16513
+
16355
16514
  # The regional resource name or the URI. Key is region, e.g., us-central1,
16356
16515
  # europe-west2, global, etc..
16357
16516
  # Corresponds to the JSON property `openPromptTuningPipeline`
@@ -16379,9 +16538,11 @@ module Google
16379
16538
  @deploy = args[:deploy] if args.key?(:deploy)
16380
16539
  @open_evaluation_pipeline = args[:open_evaluation_pipeline] if args.key?(:open_evaluation_pipeline)
16381
16540
  @open_fine_tuning_pipeline = args[:open_fine_tuning_pipeline] if args.key?(:open_fine_tuning_pipeline)
16541
+ @open_fine_tuning_pipelines = args[:open_fine_tuning_pipelines] if args.key?(:open_fine_tuning_pipelines)
16382
16542
  @open_generation_ai_studio = args[:open_generation_ai_studio] if args.key?(:open_generation_ai_studio)
16383
16543
  @open_genie = args[:open_genie] if args.key?(:open_genie)
16384
16544
  @open_notebook = args[:open_notebook] if args.key?(:open_notebook)
16545
+ @open_notebooks = args[:open_notebooks] if args.key?(:open_notebooks)
16385
16546
  @open_prompt_tuning_pipeline = args[:open_prompt_tuning_pipeline] if args.key?(:open_prompt_tuning_pipeline)
16386
16547
  @request_access = args[:request_access] if args.key?(:request_access)
16387
16548
  @view_rest_api = args[:view_rest_api] if args.key?(:view_rest_api)
@@ -16465,6 +16626,44 @@ module Google
16465
16626
  end
16466
16627
  end
16467
16628
 
16629
+ # Open fine tuning pipelines.
16630
+ class GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines
16631
+ include Google::Apis::Core::Hashable
16632
+
16633
+ # Required. Regional resource references to fine tuning pipelines.
16634
+ # Corresponds to the JSON property `fineTuningPipelines`
16635
+ # @return [Array<Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences>]
16636
+ attr_accessor :fine_tuning_pipelines
16637
+
16638
+ def initialize(**args)
16639
+ update!(**args)
16640
+ end
16641
+
16642
+ # Update properties of this object
16643
+ def update!(**args)
16644
+ @fine_tuning_pipelines = args[:fine_tuning_pipelines] if args.key?(:fine_tuning_pipelines)
16645
+ end
16646
+ end
16647
+
16648
+ # Open notebooks.
16649
+ class GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks
16650
+ include Google::Apis::Core::Hashable
16651
+
16652
+ # Required. Regional resource references to notebooks.
16653
+ # Corresponds to the JSON property `notebooks`
16654
+ # @return [Array<Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences>]
16655
+ attr_accessor :notebooks
16656
+
16657
+ def initialize(**args)
16658
+ update!(**args)
16659
+ end
16660
+
16661
+ # Update properties of this object
16662
+ def update!(**args)
16663
+ @notebooks = args[:notebooks] if args.key?(:notebooks)
16664
+ end
16665
+ end
16666
+
16468
16667
  # The regional resource name or the URI. Key is region, e.g., us-central1,
16469
16668
  # europe-west2, global, etc..
16470
16669
  class GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences
@@ -16475,7 +16674,22 @@ module Google
16475
16674
  # @return [Hash<String,Google::Apis::AiplatformV1::GoogleCloudAiplatformV1PublisherModelResourceReference>]
16476
16675
  attr_accessor :references
16477
16676
 
16478
- # Required. The title of the regional resource reference.
16677
+ # Optional. Description of the resource.
16678
+ # Corresponds to the JSON property `resourceDescription`
16679
+ # @return [String]
16680
+ attr_accessor :resource_description
16681
+
16682
+ # Optional. Title of the resource.
16683
+ # Corresponds to the JSON property `resourceTitle`
16684
+ # @return [String]
16685
+ attr_accessor :resource_title
16686
+
16687
+ # Optional. Use case (CUJ) of the resource.
16688
+ # Corresponds to the JSON property `resourceUseCase`
16689
+ # @return [String]
16690
+ attr_accessor :resource_use_case
16691
+
16692
+ # Required.
16479
16693
  # Corresponds to the JSON property `title`
16480
16694
  # @return [String]
16481
16695
  attr_accessor :title
@@ -16487,6 +16701,9 @@ module Google
16487
16701
  # Update properties of this object
16488
16702
  def update!(**args)
16489
16703
  @references = args[:references] if args.key?(:references)
16704
+ @resource_description = args[:resource_description] if args.key?(:resource_description)
16705
+ @resource_title = args[:resource_title] if args.key?(:resource_title)
16706
+ @resource_use_case = args[:resource_use_case] if args.key?(:resource_use_case)
16490
16707
  @title = args[:title] if args.key?(:title)
16491
16708
  end
16492
16709
  end
@@ -19633,7 +19850,7 @@ module Google
19633
19850
  attr_accessor :enterprise_datastore
19634
19851
 
19635
19852
  # The grounding text passed inline with the Predict API. It can support up to 1
19636
- # million token context.
19853
+ # million bytes.
19637
19854
  # Corresponds to the JSON property `inlineContext`
19638
19855
  # @return [String]
19639
19856
  attr_accessor :inline_context
@@ -28164,6 +28381,2272 @@ module Google
28164
28381
  @metric_entries = args[:metric_entries] if args.key?(:metric_entries)
28165
28382
  end
28166
28383
  end
28384
+
28385
+ # The proto defines the attribution information for a document using whatever
28386
+ # fields are most applicable for that document's datasource. For example, a
28387
+ # Wikipedia article's attribution is in the form of its article title, a website
28388
+ # is in the form of a URL, and a Github repo is in the form of a repo name. Next
28389
+ # id:28
28390
+ class LanguageLabsAidaTrustRecitationProtoDocAttribution
28391
+ include Google::Apis::Core::Hashable
28392
+
28393
+ #
28394
+ # Corresponds to the JSON property `amarnaId`
28395
+ # @return [String]
28396
+ attr_accessor :amarna_id
28397
+
28398
+ #
28399
+ # Corresponds to the JSON property `arxivId`
28400
+ # @return [String]
28401
+ attr_accessor :arxiv_id
28402
+
28403
+ #
28404
+ # Corresponds to the JSON property `author`
28405
+ # @return [String]
28406
+ attr_accessor :author
28407
+
28408
+ #
28409
+ # Corresponds to the JSON property `bibkey`
28410
+ # @return [String]
28411
+ attr_accessor :bibkey
28412
+
28413
+ #
28414
+ # Corresponds to the JSON property `bookTitle`
28415
+ # @return [String]
28416
+ attr_accessor :book_title
28417
+
28418
+ # The Oceanographers full-view books dataset uses a 'volume id' as the unique ID
28419
+ # of a book. There is a deterministic function from a volume id to a URL under
28420
+ # the books.google.com domain. Marked as 'optional' since a volume ID of zero is
28421
+ # potentially possible and we want to distinguish that from the volume ID not
28422
+ # being set.
28423
+ # Corresponds to the JSON property `bookVolumeId`
28424
+ # @return [Fixnum]
28425
+ attr_accessor :book_volume_id
28426
+
28427
+ #
28428
+ # Corresponds to the JSON property `category`
28429
+ # @return [String]
28430
+ attr_accessor :category
28431
+
28432
+ #
28433
+ # Corresponds to the JSON property `conversationId`
28434
+ # @return [String]
28435
+ attr_accessor :conversation_id
28436
+
28437
+ # The dataset this document comes from.
28438
+ # Corresponds to the JSON property `dataset`
28439
+ # @return [String]
28440
+ attr_accessor :dataset
28441
+
28442
+ #
28443
+ # Corresponds to the JSON property `filepath`
28444
+ # @return [String]
28445
+ attr_accessor :filepath
28446
+
28447
+ #
28448
+ # Corresponds to the JSON property `geminiId`
28449
+ # @return [String]
28450
+ attr_accessor :gemini_id
28451
+
28452
+ #
28453
+ # Corresponds to the JSON property `gnewsArticleTitle`
28454
+ # @return [String]
28455
+ attr_accessor :gnews_article_title
28456
+
28457
+ #
28458
+ # Corresponds to the JSON property `goodallExampleId`
28459
+ # @return [String]
28460
+ attr_accessor :goodall_example_id
28461
+
28462
+ # Whether the document is opted out.
28463
+ # Corresponds to the JSON property `isOptOut`
28464
+ # @return [Boolean]
28465
+ attr_accessor :is_opt_out
28466
+ alias_method :is_opt_out?, :is_opt_out
28467
+
28468
+ #
28469
+ # Corresponds to the JSON property `isPrompt`
28470
+ # @return [Boolean]
28471
+ attr_accessor :is_prompt
28472
+ alias_method :is_prompt?, :is_prompt
28473
+
28474
+ #
28475
+ # Corresponds to the JSON property `lamdaExampleId`
28476
+ # @return [String]
28477
+ attr_accessor :lamda_example_id
28478
+
28479
+ #
28480
+ # Corresponds to the JSON property `license`
28481
+ # @return [String]
28482
+ attr_accessor :license
28483
+
28484
+ #
28485
+ # Corresponds to the JSON property `meenaConversationId`
28486
+ # @return [String]
28487
+ attr_accessor :meena_conversation_id
28488
+
28489
+ # Natural (not programming) language of the document. Language code as defined
28490
+ # by http://www.unicode.org/reports/tr35/#Identifiers and https://tools.ietf.org/
28491
+ # html/bcp47. Currently applicable to full-view books. Use docinfo-util.h to set
28492
+ # & read language fields. See go/iii.
28493
+ # Corresponds to the JSON property `naturalLanguageCode`
28494
+ # @return [String]
28495
+ attr_accessor :natural_language_code
28496
+
28497
+ # True if this doc has no attribution information available. We use an explicit
28498
+ # field for this instead of just implicitly leaving all the DocAttribution
28499
+ # fields blank to distinguish a case where a bug/oversight has left the
28500
+ # attribution information empty vs when we really have no attribution
28501
+ # information available.
28502
+ # Corresponds to the JSON property `noAttribution`
28503
+ # @return [Boolean]
28504
+ attr_accessor :no_attribution
28505
+ alias_method :no_attribution?, :no_attribution
28506
+
28507
+ #
28508
+ # Corresponds to the JSON property `podcastUtteranceId`
28509
+ # @return [String]
28510
+ attr_accessor :podcast_utterance_id
28511
+
28512
+ # Represents a whole or partial calendar date, such as a birthday. The time of
28513
+ # day and time zone are either specified elsewhere or are insignificant. The
28514
+ # date is relative to the Gregorian Calendar. This can represent one of the
28515
+ # following: * A full date, with non-zero year, month, and day values. * A month
28516
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
28517
+ # with a zero month and a zero day. * A year and month, with a zero day (for
28518
+ # example, a credit card expiration date). Related types: * google.type.
28519
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
28520
+ # Corresponds to the JSON property `publicationDate`
28521
+ # @return [Google::Apis::AiplatformV1::GoogleTypeDate]
28522
+ attr_accessor :publication_date
28523
+
28524
+ # This field is for opt-out experiment only, MUST never be used during actual
28525
+ # production/serving.
28526
+ # Corresponds to the JSON property `qualityScoreExperimentOnly`
28527
+ # @return [Float]
28528
+ attr_accessor :quality_score_experiment_only
28529
+
28530
+ # Github repository
28531
+ # Corresponds to the JSON property `repo`
28532
+ # @return [String]
28533
+ attr_accessor :repo
28534
+
28535
+ # URL of a webdoc
28536
+ # Corresponds to the JSON property `url`
28537
+ # @return [String]
28538
+ attr_accessor :url
28539
+
28540
+ #
28541
+ # Corresponds to the JSON property `volumeId`
28542
+ # @return [String]
28543
+ attr_accessor :volume_id
28544
+
28545
+ # Wikipedia article title. The Wikipedia TFDS dataset includes article titles
28546
+ # but not URLs. While a URL is to the best of our knowledge a deterministic
28547
+ # function of the title, we store the original title to reflect the information
28548
+ # in the original dataset.
28549
+ # Corresponds to the JSON property `wikipediaArticleTitle`
28550
+ # @return [String]
28551
+ attr_accessor :wikipedia_article_title
28552
+
28553
+ def initialize(**args)
28554
+ update!(**args)
28555
+ end
28556
+
28557
+ # Update properties of this object
28558
+ def update!(**args)
28559
+ @amarna_id = args[:amarna_id] if args.key?(:amarna_id)
28560
+ @arxiv_id = args[:arxiv_id] if args.key?(:arxiv_id)
28561
+ @author = args[:author] if args.key?(:author)
28562
+ @bibkey = args[:bibkey] if args.key?(:bibkey)
28563
+ @book_title = args[:book_title] if args.key?(:book_title)
28564
+ @book_volume_id = args[:book_volume_id] if args.key?(:book_volume_id)
28565
+ @category = args[:category] if args.key?(:category)
28566
+ @conversation_id = args[:conversation_id] if args.key?(:conversation_id)
28567
+ @dataset = args[:dataset] if args.key?(:dataset)
28568
+ @filepath = args[:filepath] if args.key?(:filepath)
28569
+ @gemini_id = args[:gemini_id] if args.key?(:gemini_id)
28570
+ @gnews_article_title = args[:gnews_article_title] if args.key?(:gnews_article_title)
28571
+ @goodall_example_id = args[:goodall_example_id] if args.key?(:goodall_example_id)
28572
+ @is_opt_out = args[:is_opt_out] if args.key?(:is_opt_out)
28573
+ @is_prompt = args[:is_prompt] if args.key?(:is_prompt)
28574
+ @lamda_example_id = args[:lamda_example_id] if args.key?(:lamda_example_id)
28575
+ @license = args[:license] if args.key?(:license)
28576
+ @meena_conversation_id = args[:meena_conversation_id] if args.key?(:meena_conversation_id)
28577
+ @natural_language_code = args[:natural_language_code] if args.key?(:natural_language_code)
28578
+ @no_attribution = args[:no_attribution] if args.key?(:no_attribution)
28579
+ @podcast_utterance_id = args[:podcast_utterance_id] if args.key?(:podcast_utterance_id)
28580
+ @publication_date = args[:publication_date] if args.key?(:publication_date)
28581
+ @quality_score_experiment_only = args[:quality_score_experiment_only] if args.key?(:quality_score_experiment_only)
28582
+ @repo = args[:repo] if args.key?(:repo)
28583
+ @url = args[:url] if args.key?(:url)
28584
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
28585
+ @wikipedia_article_title = args[:wikipedia_article_title] if args.key?(:wikipedia_article_title)
28586
+ end
28587
+ end
28588
+
28589
+ # The recitation result for one input
28590
+ class LanguageLabsAidaTrustRecitationProtoRecitationResult
28591
+ include Google::Apis::Core::Hashable
28592
+
28593
+ #
28594
+ # Corresponds to the JSON property `dynamicSegmentResults`
28595
+ # @return [Array<Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoSegmentResult>]
28596
+ attr_accessor :dynamic_segment_results
28597
+
28598
+ # The recitation action for one given input. When its segments contain different
28599
+ # actions, the overall action will be returned in the precedence of BLOCK > CITE
28600
+ # > NO_ACTION.
28601
+ # Corresponds to the JSON property `recitationAction`
28602
+ # @return [String]
28603
+ attr_accessor :recitation_action
28604
+
28605
+ #
28606
+ # Corresponds to the JSON property `trainingSegmentResults`
28607
+ # @return [Array<Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoSegmentResult>]
28608
+ attr_accessor :training_segment_results
28609
+
28610
+ def initialize(**args)
28611
+ update!(**args)
28612
+ end
28613
+
28614
+ # Update properties of this object
28615
+ def update!(**args)
28616
+ @dynamic_segment_results = args[:dynamic_segment_results] if args.key?(:dynamic_segment_results)
28617
+ @recitation_action = args[:recitation_action] if args.key?(:recitation_action)
28618
+ @training_segment_results = args[:training_segment_results] if args.key?(:training_segment_results)
28619
+ end
28620
+ end
28621
+
28622
+ # The recitation result for each segment in a given input.
28623
+ class LanguageLabsAidaTrustRecitationProtoSegmentResult
28624
+ include Google::Apis::Core::Hashable
28625
+
28626
+ # The dataset the segment came from.
28627
+ # Corresponds to the JSON property `attributionDataset`
28628
+ # @return [String]
28629
+ attr_accessor :attribution_dataset
28630
+
28631
+ # human-friendly string that contains information from doc_attribution which
28632
+ # could be shown by clients
28633
+ # Corresponds to the JSON property `displayAttributionMessage`
28634
+ # @return [String]
28635
+ attr_accessor :display_attribution_message
28636
+
28637
+ # The proto defines the attribution information for a document using whatever
28638
+ # fields are most applicable for that document's datasource. For example, a
28639
+ # Wikipedia article's attribution is in the form of its article title, a website
28640
+ # is in the form of a URL, and a Github repo is in the form of a repo name. Next
28641
+ # id:28
28642
+ # Corresponds to the JSON property `docAttribution`
28643
+ # @return [Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoDocAttribution]
28644
+ attr_accessor :doc_attribution
28645
+
28646
+ # number of documents that contained this segment
28647
+ # Corresponds to the JSON property `docOccurrences`
28648
+ # @return [Fixnum]
28649
+ attr_accessor :doc_occurrences
28650
+
28651
+ #
28652
+ # Corresponds to the JSON property `endIndex`
28653
+ # @return [Fixnum]
28654
+ attr_accessor :end_index
28655
+
28656
+ # The raw text in the given input that is corresponding to the segment. It will
28657
+ # be available only when 'return_segment_raw_text' is enabled in the request
28658
+ # options.
28659
+ # Corresponds to the JSON property `rawText`
28660
+ # @return [String]
28661
+ attr_accessor :raw_text
28662
+
28663
+ #
28664
+ # Corresponds to the JSON property `segmentRecitationAction`
28665
+ # @return [String]
28666
+ attr_accessor :segment_recitation_action
28667
+
28668
+ # The segment boundary start (inclusive) and end index (exclusive) in the given
28669
+ # text. In the streaming RPC, the indexes always start from the beginning of the
28670
+ # first text in the entire stream. The indexes are measured in UTF-16 code units.
28671
+ # Corresponds to the JSON property `startIndex`
28672
+ # @return [Fixnum]
28673
+ attr_accessor :start_index
28674
+
28675
+ def initialize(**args)
28676
+ update!(**args)
28677
+ end
28678
+
28679
+ # Update properties of this object
28680
+ def update!(**args)
28681
+ @attribution_dataset = args[:attribution_dataset] if args.key?(:attribution_dataset)
28682
+ @display_attribution_message = args[:display_attribution_message] if args.key?(:display_attribution_message)
28683
+ @doc_attribution = args[:doc_attribution] if args.key?(:doc_attribution)
28684
+ @doc_occurrences = args[:doc_occurrences] if args.key?(:doc_occurrences)
28685
+ @end_index = args[:end_index] if args.key?(:end_index)
28686
+ @raw_text = args[:raw_text] if args.key?(:raw_text)
28687
+ @segment_recitation_action = args[:segment_recitation_action] if args.key?(:segment_recitation_action)
28688
+ @start_index = args[:start_index] if args.key?(:start_index)
28689
+ end
28690
+ end
28691
+
28692
+ # The recitation result for one stream input
28693
+ class LanguageLabsAidaTrustRecitationProtoStreamRecitationResult
28694
+ include Google::Apis::Core::Hashable
28695
+
28696
+ # The recitation result against the given dynamic data source.
28697
+ # Corresponds to the JSON property `dynamicSegmentResults`
28698
+ # @return [Array<Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoSegmentResult>]
28699
+ attr_accessor :dynamic_segment_results
28700
+
28701
+ # Last index of input text fully checked for recitation in the entire streaming
28702
+ # context. Would return `-1` if no Input was checked for recitation.
28703
+ # Corresponds to the JSON property `fullyCheckedTextIndex`
28704
+ # @return [Fixnum]
28705
+ attr_accessor :fully_checked_text_index
28706
+
28707
+ # The recitation action for one given input. When its segments contain different
28708
+ # actions, the overall action will be returned in the precedence of BLOCK > CITE
28709
+ # > NO_ACTION.
28710
+ # Corresponds to the JSON property `recitationAction`
28711
+ # @return [String]
28712
+ attr_accessor :recitation_action
28713
+
28714
+ # The recitation result against model training data.
28715
+ # Corresponds to the JSON property `trainingSegmentResults`
28716
+ # @return [Array<Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoSegmentResult>]
28717
+ attr_accessor :training_segment_results
28718
+
28719
+ def initialize(**args)
28720
+ update!(**args)
28721
+ end
28722
+
28723
+ # Update properties of this object
28724
+ def update!(**args)
28725
+ @dynamic_segment_results = args[:dynamic_segment_results] if args.key?(:dynamic_segment_results)
28726
+ @fully_checked_text_index = args[:fully_checked_text_index] if args.key?(:fully_checked_text_index)
28727
+ @recitation_action = args[:recitation_action] if args.key?(:recitation_action)
28728
+ @training_segment_results = args[:training_segment_results] if args.key?(:training_segment_results)
28729
+ end
28730
+ end
28731
+
28732
+ # The proto defines the attribution information for a document using whatever
28733
+ # fields are most applicable for that document's datasource. For example, a
28734
+ # Wikipedia article's attribution is in the form of its article title, a website
28735
+ # is in the form of a URL, and a Github repo is in the form of a repo name. Next
28736
+ # id: 28
28737
+ class LearningGenaiRecitationDocAttribution
28738
+ include Google::Apis::Core::Hashable
28739
+
28740
+ #
28741
+ # Corresponds to the JSON property `amarnaId`
28742
+ # @return [String]
28743
+ attr_accessor :amarna_id
28744
+
28745
+ #
28746
+ # Corresponds to the JSON property `arxivId`
28747
+ # @return [String]
28748
+ attr_accessor :arxiv_id
28749
+
28750
+ #
28751
+ # Corresponds to the JSON property `author`
28752
+ # @return [String]
28753
+ attr_accessor :author
28754
+
28755
+ #
28756
+ # Corresponds to the JSON property `bibkey`
28757
+ # @return [String]
28758
+ attr_accessor :bibkey
28759
+
28760
+ #
28761
+ # Corresponds to the JSON property `bookTitle`
28762
+ # @return [String]
28763
+ attr_accessor :book_title
28764
+
28765
+ # The Oceanographers full-view books dataset uses a 'volume id' as the unique ID
28766
+ # of a book. There is a deterministic function from a volume id to a URL under
28767
+ # the books.google.com domain. Marked as 'optional' since a volume ID of zero is
28768
+ # potentially possible and we want to distinguish that from the volume ID not
28769
+ # being set.
28770
+ # Corresponds to the JSON property `bookVolumeId`
28771
+ # @return [Fixnum]
28772
+ attr_accessor :book_volume_id
28773
+
28774
+ #
28775
+ # Corresponds to the JSON property `conversationId`
28776
+ # @return [String]
28777
+ attr_accessor :conversation_id
28778
+
28779
+ # The dataset this document comes from.
28780
+ # Corresponds to the JSON property `dataset`
28781
+ # @return [String]
28782
+ attr_accessor :dataset
28783
+
28784
+ #
28785
+ # Corresponds to the JSON property `filepath`
28786
+ # @return [String]
28787
+ attr_accessor :filepath
28788
+
28789
+ #
28790
+ # Corresponds to the JSON property `geminiId`
28791
+ # @return [String]
28792
+ attr_accessor :gemini_id
28793
+
28794
+ #
28795
+ # Corresponds to the JSON property `gnewsArticleTitle`
28796
+ # @return [String]
28797
+ attr_accessor :gnews_article_title
28798
+
28799
+ #
28800
+ # Corresponds to the JSON property `goodallExampleId`
28801
+ # @return [String]
28802
+ attr_accessor :goodall_example_id
28803
+
28804
+ # Whether the document is opted out.
28805
+ # Corresponds to the JSON property `isOptOut`
28806
+ # @return [Boolean]
28807
+ attr_accessor :is_opt_out
28808
+ alias_method :is_opt_out?, :is_opt_out
28809
+
28810
+ # When true, this attribution came from the user's prompt.
28811
+ # Corresponds to the JSON property `isPrompt`
28812
+ # @return [Boolean]
28813
+ attr_accessor :is_prompt
28814
+ alias_method :is_prompt?, :is_prompt
28815
+
28816
+ #
28817
+ # Corresponds to the JSON property `lamdaExampleId`
28818
+ # @return [String]
28819
+ attr_accessor :lamda_example_id
28820
+
28821
+ #
28822
+ # Corresponds to the JSON property `license`
28823
+ # @return [String]
28824
+ attr_accessor :license
28825
+
28826
+ #
28827
+ # Corresponds to the JSON property `meenaConversationId`
28828
+ # @return [String]
28829
+ attr_accessor :meena_conversation_id
28830
+
28831
+ # Natural (not programming) language of the document. Language code as defined
28832
+ # by http://www.unicode.org/reports/tr35/#Identifiers and https://tools.ietf.org/
28833
+ # html/bcp47. Currently applicable to full-view books. Use docinfo-util.h to set
28834
+ # & read language fields. See go/iii.
28835
+ # Corresponds to the JSON property `naturalLanguageCode`
28836
+ # @return [String]
28837
+ attr_accessor :natural_language_code
28838
+
28839
+ # True if this doc has no attribution information available. We use an explicit
28840
+ # field for this instead of just implicitly leaving all the DocAttribution
28841
+ # fields blank to distinguish a case where a bug/oversight has left the
28842
+ # attribution information empty vs when we really have no attribution
28843
+ # information available.
28844
+ # Corresponds to the JSON property `noAttribution`
28845
+ # @return [Boolean]
28846
+ attr_accessor :no_attribution
28847
+ alias_method :no_attribution?, :no_attribution
28848
+
28849
+ #
28850
+ # Corresponds to the JSON property `podcastUtteranceId`
28851
+ # @return [String]
28852
+ attr_accessor :podcast_utterance_id
28853
+
28854
+ # Represents a whole or partial calendar date, such as a birthday. The time of
28855
+ # day and time zone are either specified elsewhere or are insignificant. The
28856
+ # date is relative to the Gregorian Calendar. This can represent one of the
28857
+ # following: * A full date, with non-zero year, month, and day values. * A month
28858
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
28859
+ # with a zero month and a zero day. * A year and month, with a zero day (for
28860
+ # example, a credit card expiration date). Related types: * google.type.
28861
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
28862
+ # Corresponds to the JSON property `publicationDate`
28863
+ # @return [Google::Apis::AiplatformV1::GoogleTypeDate]
28864
+ attr_accessor :publication_date
28865
+
28866
+ # This field is for opt-out experiment only, MUST never be used during actual
28867
+ # production/serving.
28868
+ # Corresponds to the JSON property `qualityScoreExperimentOnly`
28869
+ # @return [Float]
28870
+ attr_accessor :quality_score_experiment_only
28871
+
28872
+ # Github repository
28873
+ # Corresponds to the JSON property `repo`
28874
+ # @return [String]
28875
+ attr_accessor :repo
28876
+
28877
+ # URL of a webdoc
28878
+ # Corresponds to the JSON property `url`
28879
+ # @return [String]
28880
+ attr_accessor :url
28881
+
28882
+ #
28883
+ # Corresponds to the JSON property `volumeId`
28884
+ # @return [String]
28885
+ attr_accessor :volume_id
28886
+
28887
+ # Wikipedia article title. The Wikipedia TFDS dataset includes article titles
28888
+ # but not URLs. While a URL is to the best of our knowledge a deterministic
28889
+ # function of the title, we store the original title to reflect the information
28890
+ # in the original dataset.
28891
+ # Corresponds to the JSON property `wikipediaArticleTitle`
28892
+ # @return [String]
28893
+ attr_accessor :wikipedia_article_title
28894
+
28895
+ def initialize(**args)
28896
+ update!(**args)
28897
+ end
28898
+
28899
+ # Update properties of this object
28900
+ def update!(**args)
28901
+ @amarna_id = args[:amarna_id] if args.key?(:amarna_id)
28902
+ @arxiv_id = args[:arxiv_id] if args.key?(:arxiv_id)
28903
+ @author = args[:author] if args.key?(:author)
28904
+ @bibkey = args[:bibkey] if args.key?(:bibkey)
28905
+ @book_title = args[:book_title] if args.key?(:book_title)
28906
+ @book_volume_id = args[:book_volume_id] if args.key?(:book_volume_id)
28907
+ @conversation_id = args[:conversation_id] if args.key?(:conversation_id)
28908
+ @dataset = args[:dataset] if args.key?(:dataset)
28909
+ @filepath = args[:filepath] if args.key?(:filepath)
28910
+ @gemini_id = args[:gemini_id] if args.key?(:gemini_id)
28911
+ @gnews_article_title = args[:gnews_article_title] if args.key?(:gnews_article_title)
28912
+ @goodall_example_id = args[:goodall_example_id] if args.key?(:goodall_example_id)
28913
+ @is_opt_out = args[:is_opt_out] if args.key?(:is_opt_out)
28914
+ @is_prompt = args[:is_prompt] if args.key?(:is_prompt)
28915
+ @lamda_example_id = args[:lamda_example_id] if args.key?(:lamda_example_id)
28916
+ @license = args[:license] if args.key?(:license)
28917
+ @meena_conversation_id = args[:meena_conversation_id] if args.key?(:meena_conversation_id)
28918
+ @natural_language_code = args[:natural_language_code] if args.key?(:natural_language_code)
28919
+ @no_attribution = args[:no_attribution] if args.key?(:no_attribution)
28920
+ @podcast_utterance_id = args[:podcast_utterance_id] if args.key?(:podcast_utterance_id)
28921
+ @publication_date = args[:publication_date] if args.key?(:publication_date)
28922
+ @quality_score_experiment_only = args[:quality_score_experiment_only] if args.key?(:quality_score_experiment_only)
28923
+ @repo = args[:repo] if args.key?(:repo)
28924
+ @url = args[:url] if args.key?(:url)
28925
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
28926
+ @wikipedia_article_title = args[:wikipedia_article_title] if args.key?(:wikipedia_article_title)
28927
+ end
28928
+ end
28929
+
28930
+ # The recitation result for one input
28931
+ class LearningGenaiRecitationRecitationResult
28932
+ include Google::Apis::Core::Hashable
28933
+
28934
+ #
28935
+ # Corresponds to the JSON property `dynamicSegmentResults`
28936
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRecitationSegmentResult>]
28937
+ attr_accessor :dynamic_segment_results
28938
+
28939
+ # The recitation action for one given input. When its segments contain different
28940
+ # actions, the overall action will be returned in the precedence of BLOCK > CITE
28941
+ # > NO_ACTION.
28942
+ # Corresponds to the JSON property `recitationAction`
28943
+ # @return [String]
28944
+ attr_accessor :recitation_action
28945
+
28946
+ #
28947
+ # Corresponds to the JSON property `trainingSegmentResults`
28948
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRecitationSegmentResult>]
28949
+ attr_accessor :training_segment_results
28950
+
28951
+ def initialize(**args)
28952
+ update!(**args)
28953
+ end
28954
+
28955
+ # Update properties of this object
28956
+ def update!(**args)
28957
+ @dynamic_segment_results = args[:dynamic_segment_results] if args.key?(:dynamic_segment_results)
28958
+ @recitation_action = args[:recitation_action] if args.key?(:recitation_action)
28959
+ @training_segment_results = args[:training_segment_results] if args.key?(:training_segment_results)
28960
+ end
28961
+ end
28962
+
28963
+ # The recitation result for each segment in a given input.
28964
+ class LearningGenaiRecitationSegmentResult
28965
+ include Google::Apis::Core::Hashable
28966
+
28967
+ # The dataset the segment came from.
28968
+ # Corresponds to the JSON property `attributionDataset`
28969
+ # @return [String]
28970
+ attr_accessor :attribution_dataset
28971
+
28972
+ # human-friendly string that contains information from doc_attribution which
28973
+ # could be shown by clients
28974
+ # Corresponds to the JSON property `displayAttributionMessage`
28975
+ # @return [String]
28976
+ attr_accessor :display_attribution_message
28977
+
28978
+ # The proto defines the attribution information for a document using whatever
28979
+ # fields are most applicable for that document's datasource. For example, a
28980
+ # Wikipedia article's attribution is in the form of its article title, a website
28981
+ # is in the form of a URL, and a Github repo is in the form of a repo name. Next
28982
+ # id: 28
28983
+ # Corresponds to the JSON property `docAttribution`
28984
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRecitationDocAttribution]
28985
+ attr_accessor :doc_attribution
28986
+
28987
+ # number of documents that contained this segment
28988
+ # Corresponds to the JSON property `docOccurrences`
28989
+ # @return [Fixnum]
28990
+ attr_accessor :doc_occurrences
28991
+
28992
+ #
28993
+ # Corresponds to the JSON property `endIndex`
28994
+ # @return [Fixnum]
28995
+ attr_accessor :end_index
28996
+
28997
+ # The raw text in the given input that is corresponding to the segment. It will
28998
+ # be available only when 'return_segment_raw_text' is enabled in the request
28999
+ # options.
29000
+ # Corresponds to the JSON property `rawText`
29001
+ # @return [String]
29002
+ attr_accessor :raw_text
29003
+
29004
+ #
29005
+ # Corresponds to the JSON property `segmentRecitationAction`
29006
+ # @return [String]
29007
+ attr_accessor :segment_recitation_action
29008
+
29009
+ # The segment boundary start (inclusive) and end index (exclusive) in the given
29010
+ # text. In the streaming RPC, the indexes always start from the beginning of the
29011
+ # first text in the entire stream. The indexes are measured in UTF-16 code units.
29012
+ # Corresponds to the JSON property `startIndex`
29013
+ # @return [Fixnum]
29014
+ attr_accessor :start_index
29015
+
29016
+ def initialize(**args)
29017
+ update!(**args)
29018
+ end
29019
+
29020
+ # Update properties of this object
29021
+ def update!(**args)
29022
+ @attribution_dataset = args[:attribution_dataset] if args.key?(:attribution_dataset)
29023
+ @display_attribution_message = args[:display_attribution_message] if args.key?(:display_attribution_message)
29024
+ @doc_attribution = args[:doc_attribution] if args.key?(:doc_attribution)
29025
+ @doc_occurrences = args[:doc_occurrences] if args.key?(:doc_occurrences)
29026
+ @end_index = args[:end_index] if args.key?(:end_index)
29027
+ @raw_text = args[:raw_text] if args.key?(:raw_text)
29028
+ @segment_recitation_action = args[:segment_recitation_action] if args.key?(:segment_recitation_action)
29029
+ @start_index = args[:start_index] if args.key?(:start_index)
29030
+ end
29031
+ end
29032
+
29033
+ # The type used for final weights calculation.
29034
+ class LearningGenaiRootCalculationType
29035
+ include Google::Apis::Core::Hashable
29036
+
29037
+ #
29038
+ # Corresponds to the JSON property `scoreType`
29039
+ # @return [String]
29040
+ attr_accessor :score_type
29041
+
29042
+ #
29043
+ # Corresponds to the JSON property `weights`
29044
+ # @return [Float]
29045
+ attr_accessor :weights
29046
+
29047
+ def initialize(**args)
29048
+ update!(**args)
29049
+ end
29050
+
29051
+ # Update properties of this object
29052
+ def update!(**args)
29053
+ @score_type = args[:score_type] if args.key?(:score_type)
29054
+ @weights = args[:weights] if args.key?(:weights)
29055
+ end
29056
+ end
29057
+
29058
+ #
29059
+ class LearningGenaiRootClassifierOutput
29060
+ include Google::Apis::Core::Hashable
29061
+
29062
+ # If set, this is the output of the first matching rule.
29063
+ # Corresponds to the JSON property `ruleOutput`
29064
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRuleOutput]
29065
+ attr_accessor :rule_output
29066
+
29067
+ # outputs of all matching rule.
29068
+ # Corresponds to the JSON property `ruleOutputs`
29069
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootRuleOutput>]
29070
+ attr_accessor :rule_outputs
29071
+
29072
+ # DataProviderOutput and MetricOutput can be saved between calls to the
29073
+ # Classifier framework. For instance, you can run the query classifier, get
29074
+ # outputs from those metrics, then use them in a result classifier as well.
29075
+ # Example rule based on this idea: and_rules ` rule ` metric_name: '
29076
+ # query_safesearch_v2' ... ` rule ` metric_name: 'response_safesearch_v2' ... ` `
29077
+ # Corresponds to the JSON property `state`
29078
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootClassifierState]
29079
+ attr_accessor :state
29080
+
29081
+ def initialize(**args)
29082
+ update!(**args)
29083
+ end
29084
+
29085
+ # Update properties of this object
29086
+ def update!(**args)
29087
+ @rule_output = args[:rule_output] if args.key?(:rule_output)
29088
+ @rule_outputs = args[:rule_outputs] if args.key?(:rule_outputs)
29089
+ @state = args[:state] if args.key?(:state)
29090
+ end
29091
+ end
29092
+
29093
+ #
29094
+ class LearningGenaiRootClassifierOutputSummary
29095
+ include Google::Apis::Core::Hashable
29096
+
29097
+ #
29098
+ # Corresponds to the JSON property `metrics`
29099
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootMetricOutput>]
29100
+ attr_accessor :metrics
29101
+
29102
+ # Output of the first matching rule.
29103
+ # Corresponds to the JSON property `ruleOutput`
29104
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRuleOutput]
29105
+ attr_accessor :rule_output
29106
+
29107
+ # outputs of all matching rule.
29108
+ # Corresponds to the JSON property `ruleOutputs`
29109
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootRuleOutput>]
29110
+ attr_accessor :rule_outputs
29111
+
29112
+ def initialize(**args)
29113
+ update!(**args)
29114
+ end
29115
+
29116
+ # Update properties of this object
29117
+ def update!(**args)
29118
+ @metrics = args[:metrics] if args.key?(:metrics)
29119
+ @rule_output = args[:rule_output] if args.key?(:rule_output)
29120
+ @rule_outputs = args[:rule_outputs] if args.key?(:rule_outputs)
29121
+ end
29122
+ end
29123
+
29124
+ # DataProviderOutput and MetricOutput can be saved between calls to the
29125
+ # Classifier framework. For instance, you can run the query classifier, get
29126
+ # outputs from those metrics, then use them in a result classifier as well.
29127
+ # Example rule based on this idea: and_rules ` rule ` metric_name: '
29128
+ # query_safesearch_v2' ... ` rule ` metric_name: 'response_safesearch_v2' ... ` `
29129
+ class LearningGenaiRootClassifierState
29130
+ include Google::Apis::Core::Hashable
29131
+
29132
+ #
29133
+ # Corresponds to the JSON property `dataProviderOutput`
29134
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootDataProviderOutput>]
29135
+ attr_accessor :data_provider_output
29136
+
29137
+ #
29138
+ # Corresponds to the JSON property `metricOutput`
29139
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootMetricOutput>]
29140
+ attr_accessor :metric_output
29141
+
29142
+ def initialize(**args)
29143
+ update!(**args)
29144
+ end
29145
+
29146
+ # Update properties of this object
29147
+ def update!(**args)
29148
+ @data_provider_output = args[:data_provider_output] if args.key?(:data_provider_output)
29149
+ @metric_output = args[:metric_output] if args.key?(:metric_output)
29150
+ end
29151
+ end
29152
+
29153
+ #
29154
+ class LearningGenaiRootDataProviderOutput
29155
+ include Google::Apis::Core::Hashable
29156
+
29157
+ #
29158
+ # Corresponds to the JSON property `name`
29159
+ # @return [String]
29160
+ attr_accessor :name
29161
+
29162
+ # Wire-format for a Status object
29163
+ # Corresponds to the JSON property `status`
29164
+ # @return [Google::Apis::AiplatformV1::UtilStatusProto]
29165
+ attr_accessor :status
29166
+
29167
+ def initialize(**args)
29168
+ update!(**args)
29169
+ end
29170
+
29171
+ # Update properties of this object
29172
+ def update!(**args)
29173
+ @name = args[:name] if args.key?(:name)
29174
+ @status = args[:status] if args.key?(:status)
29175
+ end
29176
+ end
29177
+
29178
+ #
29179
+ class LearningGenaiRootFilterMetadata
29180
+ include Google::Apis::Core::Hashable
29181
+
29182
+ # Filter confidence.
29183
+ # Corresponds to the JSON property `confidence`
29184
+ # @return [String]
29185
+ attr_accessor :confidence
29186
+
29187
+ # Debug info for the message.
29188
+ # Corresponds to the JSON property `debugInfo`
29189
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootFilterMetadataFilterDebugInfo]
29190
+ attr_accessor :debug_info
29191
+
29192
+ # A fallback message chosen by the applied filter.
29193
+ # Corresponds to the JSON property `fallback`
29194
+ # @return [String]
29195
+ attr_accessor :fallback
29196
+
29197
+ # Additional info for the filter.
29198
+ # Corresponds to the JSON property `info`
29199
+ # @return [String]
29200
+ attr_accessor :info
29201
+
29202
+ # Name of the filter that triggered.
29203
+ # Corresponds to the JSON property `name`
29204
+ # @return [String]
29205
+ attr_accessor :name
29206
+
29207
+ # Filter reason.
29208
+ # Corresponds to the JSON property `reason`
29209
+ # @return [String]
29210
+ attr_accessor :reason
29211
+
29212
+ # The input query or generated response that is getting filtered.
29213
+ # Corresponds to the JSON property `text`
29214
+ # @return [String]
29215
+ attr_accessor :text
29216
+
29217
+ def initialize(**args)
29218
+ update!(**args)
29219
+ end
29220
+
29221
+ # Update properties of this object
29222
+ def update!(**args)
29223
+ @confidence = args[:confidence] if args.key?(:confidence)
29224
+ @debug_info = args[:debug_info] if args.key?(:debug_info)
29225
+ @fallback = args[:fallback] if args.key?(:fallback)
29226
+ @info = args[:info] if args.key?(:info)
29227
+ @name = args[:name] if args.key?(:name)
29228
+ @reason = args[:reason] if args.key?(:reason)
29229
+ @text = args[:text] if args.key?(:text)
29230
+ end
29231
+ end
29232
+
29233
+ #
29234
+ class LearningGenaiRootFilterMetadataFilterDebugInfo
29235
+ include Google::Apis::Core::Hashable
29236
+
29237
+ #
29238
+ # Corresponds to the JSON property `classifierOutput`
29239
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootClassifierOutput]
29240
+ attr_accessor :classifier_output
29241
+
29242
+ #
29243
+ # Corresponds to the JSON property `defaultMetadata`
29244
+ # @return [String]
29245
+ attr_accessor :default_metadata
29246
+
29247
+ #
29248
+ # Corresponds to the JSON property `languageFilterResult`
29249
+ # @return [Google::Apis::AiplatformV1::LearningServingLlmLanguageFilterResult]
29250
+ attr_accessor :language_filter_result
29251
+
29252
+ # This is per harm.
29253
+ # Corresponds to the JSON property `raiOutput`
29254
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRaiOutput]
29255
+ attr_accessor :rai_output
29256
+
29257
+ # The RAI results for a given text.
29258
+ # Corresponds to the JSON property `raiResult`
29259
+ # @return [Google::Apis::AiplatformV1::CloudAiNlLlmProtoServiceRaiResult]
29260
+ attr_accessor :rai_result
29261
+
29262
+ # An RAI signal for a single category.
29263
+ # Corresponds to the JSON property `raiSignal`
29264
+ # @return [Google::Apis::AiplatformV1::CloudAiNlLlmProtoServiceRaiSignal]
29265
+ attr_accessor :rai_signal
29266
+
29267
+ # The recitation result for one stream input
29268
+ # Corresponds to the JSON property `streamRecitationResult`
29269
+ # @return [Google::Apis::AiplatformV1::LanguageLabsAidaTrustRecitationProtoStreamRecitationResult]
29270
+ attr_accessor :stream_recitation_result
29271
+
29272
+ #
29273
+ # Corresponds to the JSON property `takedownResult`
29274
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootTakedownResult]
29275
+ attr_accessor :takedown_result
29276
+
29277
+ # A model can generate multiple signals and this captures all the generated
29278
+ # signals for a single message.
29279
+ # Corresponds to the JSON property `toxicityResult`
29280
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootToxicityResult]
29281
+ attr_accessor :toxicity_result
29282
+
29283
+ def initialize(**args)
29284
+ update!(**args)
29285
+ end
29286
+
29287
+ # Update properties of this object
29288
+ def update!(**args)
29289
+ @classifier_output = args[:classifier_output] if args.key?(:classifier_output)
29290
+ @default_metadata = args[:default_metadata] if args.key?(:default_metadata)
29291
+ @language_filter_result = args[:language_filter_result] if args.key?(:language_filter_result)
29292
+ @rai_output = args[:rai_output] if args.key?(:rai_output)
29293
+ @rai_result = args[:rai_result] if args.key?(:rai_result)
29294
+ @rai_signal = args[:rai_signal] if args.key?(:rai_signal)
29295
+ @stream_recitation_result = args[:stream_recitation_result] if args.key?(:stream_recitation_result)
29296
+ @takedown_result = args[:takedown_result] if args.key?(:takedown_result)
29297
+ @toxicity_result = args[:toxicity_result] if args.key?(:toxicity_result)
29298
+ end
29299
+ end
29300
+
29301
+ #
29302
+ class LearningGenaiRootHarm
29303
+ include Google::Apis::Core::Hashable
29304
+
29305
+ # Please do not use, this is still under development.
29306
+ # Corresponds to the JSON property `contextualDangerous`
29307
+ # @return [Boolean]
29308
+ attr_accessor :contextual_dangerous
29309
+ alias_method :contextual_dangerous?, :contextual_dangerous
29310
+
29311
+ #
29312
+ # Corresponds to the JSON property `csam`
29313
+ # @return [Boolean]
29314
+ attr_accessor :csam
29315
+ alias_method :csam?, :csam
29316
+
29317
+ #
29318
+ # Corresponds to the JSON property `fringe`
29319
+ # @return [Boolean]
29320
+ attr_accessor :fringe
29321
+ alias_method :fringe?, :fringe
29322
+
29323
+ # Harm type for images
29324
+ # Corresponds to the JSON property `grailImageHarmType`
29325
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootHarmGrailImageHarmType]
29326
+ attr_accessor :grail_image_harm_type
29327
+
29328
+ # Harm type for text
29329
+ # Corresponds to the JSON property `grailTextHarmType`
29330
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootHarmGrailTextHarmType]
29331
+ attr_accessor :grail_text_harm_type
29332
+
29333
+ #
29334
+ # Corresponds to the JSON property `imageCsam`
29335
+ # @return [Boolean]
29336
+ attr_accessor :image_csam
29337
+ alias_method :image_csam?, :image_csam
29338
+
29339
+ #
29340
+ # Corresponds to the JSON property `imagePedo`
29341
+ # @return [Boolean]
29342
+ attr_accessor :image_pedo
29343
+ alias_method :image_pedo?, :image_pedo
29344
+
29345
+ # Image signals
29346
+ # Corresponds to the JSON property `imagePorn`
29347
+ # @return [Boolean]
29348
+ attr_accessor :image_porn
29349
+ alias_method :image_porn?, :image_porn
29350
+
29351
+ #
29352
+ # Corresponds to the JSON property `imageViolence`
29353
+ # @return [Boolean]
29354
+ attr_accessor :image_violence
29355
+ alias_method :image_violence?, :image_violence
29356
+
29357
+ #
29358
+ # Corresponds to the JSON property `pqc`
29359
+ # @return [Boolean]
29360
+ attr_accessor :pqc
29361
+ alias_method :pqc?, :pqc
29362
+
29363
+ #
29364
+ # Corresponds to the JSON property `safetycat`
29365
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootHarmSafetyCatCategories]
29366
+ attr_accessor :safetycat
29367
+
29368
+ #
29369
+ # Corresponds to the JSON property `spii`
29370
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootHarmSpiiFilter]
29371
+ attr_accessor :spii
29372
+
29373
+ #
29374
+ # Corresponds to the JSON property `threshold`
29375
+ # @return [Float]
29376
+ attr_accessor :threshold
29377
+
29378
+ #
29379
+ # Corresponds to the JSON property `videoFrameCsam`
29380
+ # @return [Boolean]
29381
+ attr_accessor :video_frame_csam
29382
+ alias_method :video_frame_csam?, :video_frame_csam
29383
+
29384
+ #
29385
+ # Corresponds to the JSON property `videoFramePedo`
29386
+ # @return [Boolean]
29387
+ attr_accessor :video_frame_pedo
29388
+ alias_method :video_frame_pedo?, :video_frame_pedo
29389
+
29390
+ # Video frame signals
29391
+ # Corresponds to the JSON property `videoFramePorn`
29392
+ # @return [Boolean]
29393
+ attr_accessor :video_frame_porn
29394
+ alias_method :video_frame_porn?, :video_frame_porn
29395
+
29396
+ #
29397
+ # Corresponds to the JSON property `videoFrameViolence`
29398
+ # @return [Boolean]
29399
+ attr_accessor :video_frame_violence
29400
+ alias_method :video_frame_violence?, :video_frame_violence
29401
+
29402
+ def initialize(**args)
29403
+ update!(**args)
29404
+ end
29405
+
29406
+ # Update properties of this object
29407
+ def update!(**args)
29408
+ @contextual_dangerous = args[:contextual_dangerous] if args.key?(:contextual_dangerous)
29409
+ @csam = args[:csam] if args.key?(:csam)
29410
+ @fringe = args[:fringe] if args.key?(:fringe)
29411
+ @grail_image_harm_type = args[:grail_image_harm_type] if args.key?(:grail_image_harm_type)
29412
+ @grail_text_harm_type = args[:grail_text_harm_type] if args.key?(:grail_text_harm_type)
29413
+ @image_csam = args[:image_csam] if args.key?(:image_csam)
29414
+ @image_pedo = args[:image_pedo] if args.key?(:image_pedo)
29415
+ @image_porn = args[:image_porn] if args.key?(:image_porn)
29416
+ @image_violence = args[:image_violence] if args.key?(:image_violence)
29417
+ @pqc = args[:pqc] if args.key?(:pqc)
29418
+ @safetycat = args[:safetycat] if args.key?(:safetycat)
29419
+ @spii = args[:spii] if args.key?(:spii)
29420
+ @threshold = args[:threshold] if args.key?(:threshold)
29421
+ @video_frame_csam = args[:video_frame_csam] if args.key?(:video_frame_csam)
29422
+ @video_frame_pedo = args[:video_frame_pedo] if args.key?(:video_frame_pedo)
29423
+ @video_frame_porn = args[:video_frame_porn] if args.key?(:video_frame_porn)
29424
+ @video_frame_violence = args[:video_frame_violence] if args.key?(:video_frame_violence)
29425
+ end
29426
+ end
29427
+
29428
+ # Harm type for images
29429
+ class LearningGenaiRootHarmGrailImageHarmType
29430
+ include Google::Apis::Core::Hashable
29431
+
29432
+ #
29433
+ # Corresponds to the JSON property `imageHarmType`
29434
+ # @return [Array<String>]
29435
+ attr_accessor :image_harm_type
29436
+
29437
+ def initialize(**args)
29438
+ update!(**args)
29439
+ end
29440
+
29441
+ # Update properties of this object
29442
+ def update!(**args)
29443
+ @image_harm_type = args[:image_harm_type] if args.key?(:image_harm_type)
29444
+ end
29445
+ end
29446
+
29447
+ # Harm type for text
29448
+ class LearningGenaiRootHarmGrailTextHarmType
29449
+ include Google::Apis::Core::Hashable
29450
+
29451
+ #
29452
+ # Corresponds to the JSON property `harmType`
29453
+ # @return [Array<String>]
29454
+ attr_accessor :harm_type
29455
+
29456
+ def initialize(**args)
29457
+ update!(**args)
29458
+ end
29459
+
29460
+ # Update properties of this object
29461
+ def update!(**args)
29462
+ @harm_type = args[:harm_type] if args.key?(:harm_type)
29463
+ end
29464
+ end
29465
+
29466
+ #
29467
+ class LearningGenaiRootHarmSafetyCatCategories
29468
+ include Google::Apis::Core::Hashable
29469
+
29470
+ #
29471
+ # Corresponds to the JSON property `categories`
29472
+ # @return [Array<String>]
29473
+ attr_accessor :categories
29474
+
29475
+ def initialize(**args)
29476
+ update!(**args)
29477
+ end
29478
+
29479
+ # Update properties of this object
29480
+ def update!(**args)
29481
+ @categories = args[:categories] if args.key?(:categories)
29482
+ end
29483
+ end
29484
+
29485
+ #
29486
+ class LearningGenaiRootHarmSpiiFilter
29487
+ include Google::Apis::Core::Hashable
29488
+
29489
+ #
29490
+ # Corresponds to the JSON property `usBankRoutingMicr`
29491
+ # @return [Boolean]
29492
+ attr_accessor :us_bank_routing_micr
29493
+ alias_method :us_bank_routing_micr?, :us_bank_routing_micr
29494
+
29495
+ #
29496
+ # Corresponds to the JSON property `usEmployerIdentificationNumber`
29497
+ # @return [Boolean]
29498
+ attr_accessor :us_employer_identification_number
29499
+ alias_method :us_employer_identification_number?, :us_employer_identification_number
29500
+
29501
+ #
29502
+ # Corresponds to the JSON property `usSocialSecurityNumber`
29503
+ # @return [Boolean]
29504
+ attr_accessor :us_social_security_number
29505
+ alias_method :us_social_security_number?, :us_social_security_number
29506
+
29507
+ def initialize(**args)
29508
+ update!(**args)
29509
+ end
29510
+
29511
+ # Update properties of this object
29512
+ def update!(**args)
29513
+ @us_bank_routing_micr = args[:us_bank_routing_micr] if args.key?(:us_bank_routing_micr)
29514
+ @us_employer_identification_number = args[:us_employer_identification_number] if args.key?(:us_employer_identification_number)
29515
+ @us_social_security_number = args[:us_social_security_number] if args.key?(:us_social_security_number)
29516
+ end
29517
+ end
29518
+
29519
+ #
29520
+ class LearningGenaiRootInternalMetadata
29521
+ include Google::Apis::Core::Hashable
29522
+
29523
+ #
29524
+ # Corresponds to the JSON property `scoredTokens`
29525
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootScoredToken>]
29526
+ attr_accessor :scored_tokens
29527
+
29528
+ def initialize(**args)
29529
+ update!(**args)
29530
+ end
29531
+
29532
+ # Update properties of this object
29533
+ def update!(**args)
29534
+ @scored_tokens = args[:scored_tokens] if args.key?(:scored_tokens)
29535
+ end
29536
+ end
29537
+
29538
+ #
29539
+ class LearningGenaiRootMetricOutput
29540
+ include Google::Apis::Core::Hashable
29541
+
29542
+ #
29543
+ # Corresponds to the JSON property `debug`
29544
+ # @return [String]
29545
+ attr_accessor :debug
29546
+
29547
+ # Name of the metric.
29548
+ # Corresponds to the JSON property `name`
29549
+ # @return [String]
29550
+ attr_accessor :name
29551
+
29552
+ #
29553
+ # Corresponds to the JSON property `numericValue`
29554
+ # @return [Float]
29555
+ attr_accessor :numeric_value
29556
+
29557
+ # Wire-format for a Status object
29558
+ # Corresponds to the JSON property `status`
29559
+ # @return [Google::Apis::AiplatformV1::UtilStatusProto]
29560
+ attr_accessor :status
29561
+
29562
+ #
29563
+ # Corresponds to the JSON property `stringValue`
29564
+ # @return [String]
29565
+ attr_accessor :string_value
29566
+
29567
+ def initialize(**args)
29568
+ update!(**args)
29569
+ end
29570
+
29571
+ # Update properties of this object
29572
+ def update!(**args)
29573
+ @debug = args[:debug] if args.key?(:debug)
29574
+ @name = args[:name] if args.key?(:name)
29575
+ @numeric_value = args[:numeric_value] if args.key?(:numeric_value)
29576
+ @status = args[:status] if args.key?(:status)
29577
+ @string_value = args[:string_value] if args.key?(:string_value)
29578
+ end
29579
+ end
29580
+
29581
+ # This is per harm.
29582
+ class LearningGenaiRootRaiOutput
29583
+ include Google::Apis::Core::Hashable
29584
+
29585
+ #
29586
+ # Corresponds to the JSON property `allowed`
29587
+ # @return [Boolean]
29588
+ attr_accessor :allowed
29589
+ alias_method :allowed?, :allowed
29590
+
29591
+ #
29592
+ # Corresponds to the JSON property `harm`
29593
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootHarm]
29594
+ attr_accessor :harm
29595
+
29596
+ #
29597
+ # Corresponds to the JSON property `name`
29598
+ # @return [String]
29599
+ attr_accessor :name
29600
+
29601
+ #
29602
+ # Corresponds to the JSON property `score`
29603
+ # @return [Float]
29604
+ attr_accessor :score
29605
+
29606
+ def initialize(**args)
29607
+ update!(**args)
29608
+ end
29609
+
29610
+ # Update properties of this object
29611
+ def update!(**args)
29612
+ @allowed = args[:allowed] if args.key?(:allowed)
29613
+ @harm = args[:harm] if args.key?(:harm)
29614
+ @name = args[:name] if args.key?(:name)
29615
+ @score = args[:score] if args.key?(:score)
29616
+ end
29617
+ end
29618
+
29619
+ #
29620
+ class LearningGenaiRootRegexTakedownResult
29621
+ include Google::Apis::Core::Hashable
29622
+
29623
+ # False when query or response should be taken down due to match with a blocked
29624
+ # regex, true otherwise.
29625
+ # Corresponds to the JSON property `allowed`
29626
+ # @return [Boolean]
29627
+ attr_accessor :allowed
29628
+ alias_method :allowed?, :allowed
29629
+
29630
+ # Regex used to decide that query or response should be taken down. Empty when
29631
+ # query or response is kept.
29632
+ # Corresponds to the JSON property `takedownRegex`
29633
+ # @return [String]
29634
+ attr_accessor :takedown_regex
29635
+
29636
+ def initialize(**args)
29637
+ update!(**args)
29638
+ end
29639
+
29640
+ # Update properties of this object
29641
+ def update!(**args)
29642
+ @allowed = args[:allowed] if args.key?(:allowed)
29643
+ @takedown_regex = args[:takedown_regex] if args.key?(:takedown_regex)
29644
+ end
29645
+ end
29646
+
29647
+ #
29648
+ class LearningGenaiRootRequestResponseTakedownResult
29649
+ include Google::Apis::Core::Hashable
29650
+
29651
+ # False when response has to be taken down per above config.
29652
+ # Corresponds to the JSON property `allowed`
29653
+ # @return [Boolean]
29654
+ attr_accessor :allowed
29655
+ alias_method :allowed?, :allowed
29656
+
29657
+ # Regex used to match the request.
29658
+ # Corresponds to the JSON property `requestTakedownRegex`
29659
+ # @return [String]
29660
+ attr_accessor :request_takedown_regex
29661
+
29662
+ # Regex used to decide that response should be taken down. Empty when response
29663
+ # is kept.
29664
+ # Corresponds to the JSON property `responseTakedownRegex`
29665
+ # @return [String]
29666
+ attr_accessor :response_takedown_regex
29667
+
29668
+ def initialize(**args)
29669
+ update!(**args)
29670
+ end
29671
+
29672
+ # Update properties of this object
29673
+ def update!(**args)
29674
+ @allowed = args[:allowed] if args.key?(:allowed)
29675
+ @request_takedown_regex = args[:request_takedown_regex] if args.key?(:request_takedown_regex)
29676
+ @response_takedown_regex = args[:response_takedown_regex] if args.key?(:response_takedown_regex)
29677
+ end
29678
+ end
29679
+
29680
+ # Holds the final routing decision, by storing the model_config_id. And
29681
+ # individual scores each model got.
29682
+ class LearningGenaiRootRoutingDecision
29683
+ include Google::Apis::Core::Hashable
29684
+
29685
+ # Debug metadata about the routing decision.
29686
+ # Corresponds to the JSON property `metadata`
29687
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRoutingDecisionMetadata]
29688
+ attr_accessor :metadata
29689
+
29690
+ # The selected model to route traffic to.
29691
+ # Corresponds to the JSON property `modelConfigId`
29692
+ # @return [String]
29693
+ attr_accessor :model_config_id
29694
+
29695
+ def initialize(**args)
29696
+ update!(**args)
29697
+ end
29698
+
29699
+ # Update properties of this object
29700
+ def update!(**args)
29701
+ @metadata = args[:metadata] if args.key?(:metadata)
29702
+ @model_config_id = args[:model_config_id] if args.key?(:model_config_id)
29703
+ end
29704
+ end
29705
+
29706
+ # Debug metadata about the routing decision.
29707
+ class LearningGenaiRootRoutingDecisionMetadata
29708
+ include Google::Apis::Core::Hashable
29709
+
29710
+ # If we are routing using scored based configuration, then the metadata about
29711
+ # that is available in this proto.
29712
+ # Corresponds to the JSON property `scoreBasedRoutingMetadata`
29713
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRoutingDecisionMetadataScoreBased]
29714
+ attr_accessor :score_based_routing_metadata
29715
+
29716
+ #
29717
+ # Corresponds to the JSON property `tokenLengthBasedRoutingMetadata`
29718
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRoutingDecisionMetadataTokenLengthBased]
29719
+ attr_accessor :token_length_based_routing_metadata
29720
+
29721
+ def initialize(**args)
29722
+ update!(**args)
29723
+ end
29724
+
29725
+ # Update properties of this object
29726
+ def update!(**args)
29727
+ @score_based_routing_metadata = args[:score_based_routing_metadata] if args.key?(:score_based_routing_metadata)
29728
+ @token_length_based_routing_metadata = args[:token_length_based_routing_metadata] if args.key?(:token_length_based_routing_metadata)
29729
+ end
29730
+ end
29731
+
29732
+ # If we are routing using scored based configuration, then the metadata about
29733
+ # that is available in this proto.
29734
+ class LearningGenaiRootRoutingDecisionMetadataScoreBased
29735
+ include Google::Apis::Core::Hashable
29736
+
29737
+ # The rule that was matched.
29738
+ # Corresponds to the JSON property `matchedRule`
29739
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootScoreBasedRoutingConfigRule]
29740
+ attr_accessor :matched_rule
29741
+
29742
+ # The score that was generated by the router i.e. the model.
29743
+ # Corresponds to the JSON property `score`
29744
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootScore]
29745
+ attr_accessor :score
29746
+
29747
+ # No rules were matched & therefore used the default fallback.
29748
+ # Corresponds to the JSON property `usedDefaultFallback`
29749
+ # @return [Boolean]
29750
+ attr_accessor :used_default_fallback
29751
+ alias_method :used_default_fallback?, :used_default_fallback
29752
+
29753
+ def initialize(**args)
29754
+ update!(**args)
29755
+ end
29756
+
29757
+ # Update properties of this object
29758
+ def update!(**args)
29759
+ @matched_rule = args[:matched_rule] if args.key?(:matched_rule)
29760
+ @score = args[:score] if args.key?(:score)
29761
+ @used_default_fallback = args[:used_default_fallback] if args.key?(:used_default_fallback)
29762
+ end
29763
+ end
29764
+
29765
+ #
29766
+ class LearningGenaiRootRoutingDecisionMetadataTokenLengthBased
29767
+ include Google::Apis::Core::Hashable
29768
+
29769
+ #
29770
+ # Corresponds to the JSON property `modelInputTokenMetadata`
29771
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelInputTokenMetadata>]
29772
+ attr_accessor :model_input_token_metadata
29773
+
29774
+ #
29775
+ # Corresponds to the JSON property `modelMaxTokenMetadata`
29776
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelMaxTokenMetadata>]
29777
+ attr_accessor :model_max_token_metadata
29778
+
29779
+ def initialize(**args)
29780
+ update!(**args)
29781
+ end
29782
+
29783
+ # Update properties of this object
29784
+ def update!(**args)
29785
+ @model_input_token_metadata = args[:model_input_token_metadata] if args.key?(:model_input_token_metadata)
29786
+ @model_max_token_metadata = args[:model_max_token_metadata] if args.key?(:model_max_token_metadata)
29787
+ end
29788
+ end
29789
+
29790
+ #
29791
+ class LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelInputTokenMetadata
29792
+ include Google::Apis::Core::Hashable
29793
+
29794
+ # The length computed by backends using the formatter & tokenizer specific to
29795
+ # the model
29796
+ # Corresponds to the JSON property `computedInputTokenLength`
29797
+ # @return [Fixnum]
29798
+ attr_accessor :computed_input_token_length
29799
+
29800
+ #
29801
+ # Corresponds to the JSON property `modelId`
29802
+ # @return [String]
29803
+ attr_accessor :model_id
29804
+
29805
+ def initialize(**args)
29806
+ update!(**args)
29807
+ end
29808
+
29809
+ # Update properties of this object
29810
+ def update!(**args)
29811
+ @computed_input_token_length = args[:computed_input_token_length] if args.key?(:computed_input_token_length)
29812
+ @model_id = args[:model_id] if args.key?(:model_id)
29813
+ end
29814
+ end
29815
+
29816
+ #
29817
+ class LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelMaxTokenMetadata
29818
+ include Google::Apis::Core::Hashable
29819
+
29820
+ #
29821
+ # Corresponds to the JSON property `maxNumInputTokens`
29822
+ # @return [Fixnum]
29823
+ attr_accessor :max_num_input_tokens
29824
+
29825
+ #
29826
+ # Corresponds to the JSON property `maxNumOutputTokens`
29827
+ # @return [Fixnum]
29828
+ attr_accessor :max_num_output_tokens
29829
+
29830
+ #
29831
+ # Corresponds to the JSON property `modelId`
29832
+ # @return [String]
29833
+ attr_accessor :model_id
29834
+
29835
+ def initialize(**args)
29836
+ update!(**args)
29837
+ end
29838
+
29839
+ # Update properties of this object
29840
+ def update!(**args)
29841
+ @max_num_input_tokens = args[:max_num_input_tokens] if args.key?(:max_num_input_tokens)
29842
+ @max_num_output_tokens = args[:max_num_output_tokens] if args.key?(:max_num_output_tokens)
29843
+ @model_id = args[:model_id] if args.key?(:model_id)
29844
+ end
29845
+ end
29846
+
29847
+ #
29848
+ class LearningGenaiRootRuleOutput
29849
+ include Google::Apis::Core::Hashable
29850
+
29851
+ #
29852
+ # Corresponds to the JSON property `decision`
29853
+ # @return [String]
29854
+ attr_accessor :decision
29855
+
29856
+ #
29857
+ # Corresponds to the JSON property `name`
29858
+ # @return [String]
29859
+ attr_accessor :name
29860
+
29861
+ def initialize(**args)
29862
+ update!(**args)
29863
+ end
29864
+
29865
+ # Update properties of this object
29866
+ def update!(**args)
29867
+ @decision = args[:decision] if args.key?(:decision)
29868
+ @name = args[:name] if args.key?(:name)
29869
+ end
29870
+ end
29871
+
29872
+ #
29873
+ class LearningGenaiRootScore
29874
+ include Google::Apis::Core::Hashable
29875
+
29876
+ # The type used for final weights calculation.
29877
+ # Corresponds to the JSON property `calculationType`
29878
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootCalculationType]
29879
+ attr_accessor :calculation_type
29880
+
29881
+ # The internal_metadata is intended to be used by internal processors and will
29882
+ # be cleared before returns.
29883
+ # Corresponds to the JSON property `internalMetadata`
29884
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootInternalMetadata]
29885
+ attr_accessor :internal_metadata
29886
+
29887
+ # The type of score that bundled with a threshold, and will not be attending the
29888
+ # final score calculation. How each score type uses the threshold can be
29889
+ # implementation details.
29890
+ # Corresponds to the JSON property `thresholdType`
29891
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootThresholdType]
29892
+ attr_accessor :threshold_type
29893
+
29894
+ # Results of RandomSamplingParams::top_k_logprob_per_decoding_step.
29895
+ # Corresponds to the JSON property `tokensAndLogprobPerDecodingStep`
29896
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootTokensAndLogProbPerDecodingStep]
29897
+ attr_accessor :tokens_and_logprob_per_decoding_step
29898
+
29899
+ #
29900
+ # Corresponds to the JSON property `value`
29901
+ # @return [Float]
29902
+ attr_accessor :value
29903
+
29904
+ def initialize(**args)
29905
+ update!(**args)
29906
+ end
29907
+
29908
+ # Update properties of this object
29909
+ def update!(**args)
29910
+ @calculation_type = args[:calculation_type] if args.key?(:calculation_type)
29911
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
29912
+ @threshold_type = args[:threshold_type] if args.key?(:threshold_type)
29913
+ @tokens_and_logprob_per_decoding_step = args[:tokens_and_logprob_per_decoding_step] if args.key?(:tokens_and_logprob_per_decoding_step)
29914
+ @value = args[:value] if args.key?(:value)
29915
+ end
29916
+ end
29917
+
29918
+ #
29919
+ class LearningGenaiRootScoreBasedRoutingConfigRule
29920
+ include Google::Apis::Core::Hashable
29921
+
29922
+ # NOTE: Hardest examples have smaller values in their routing scores.
29923
+ # Corresponds to the JSON property `equalOrGreaterThan`
29924
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootScore]
29925
+ attr_accessor :equal_or_greater_than
29926
+
29927
+ #
29928
+ # Corresponds to the JSON property `lessThan`
29929
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootScore]
29930
+ attr_accessor :less_than
29931
+
29932
+ # This model_config_id points to ModelConfig::id which allows us to find the
29933
+ # ModelConfig to route to. This is part of the banks specified in the
29934
+ # ModelBankConfig.
29935
+ # Corresponds to the JSON property `modelConfigId`
29936
+ # @return [String]
29937
+ attr_accessor :model_config_id
29938
+
29939
+ def initialize(**args)
29940
+ update!(**args)
29941
+ end
29942
+
29943
+ # Update properties of this object
29944
+ def update!(**args)
29945
+ @equal_or_greater_than = args[:equal_or_greater_than] if args.key?(:equal_or_greater_than)
29946
+ @less_than = args[:less_than] if args.key?(:less_than)
29947
+ @model_config_id = args[:model_config_id] if args.key?(:model_config_id)
29948
+ end
29949
+ end
29950
+
29951
+ # Proto containing the results from the Universal Sentence Encoder / Other
29952
+ # models
29953
+ class LearningGenaiRootScoredSimilarityTakedownPhrase
29954
+ include Google::Apis::Core::Hashable
29955
+
29956
+ # Each SimilarityTakedownPhrase treats a logical group of blocked and allowed
29957
+ # phrases together along with a corresponding punt If the closest matching
29958
+ # response is of the allowed type, we allow the response If the closest matching
29959
+ # response is of the blocked type, we block the response. eg: Blocked phrase - "
29960
+ # All lives matter"
29961
+ # Corresponds to the JSON property `phrase`
29962
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootSimilarityTakedownPhrase]
29963
+ attr_accessor :phrase
29964
+
29965
+ #
29966
+ # Corresponds to the JSON property `similarityScore`
29967
+ # @return [Float]
29968
+ attr_accessor :similarity_score
29969
+
29970
+ def initialize(**args)
29971
+ update!(**args)
29972
+ end
29973
+
29974
+ # Update properties of this object
29975
+ def update!(**args)
29976
+ @phrase = args[:phrase] if args.key?(:phrase)
29977
+ @similarity_score = args[:similarity_score] if args.key?(:similarity_score)
29978
+ end
29979
+ end
29980
+
29981
+ # A token with its own score.
29982
+ class LearningGenaiRootScoredToken
29983
+ include Google::Apis::Core::Hashable
29984
+
29985
+ # Each end_token_score is a logprob for how well the completion would end at a
29986
+ # particular token. See http://google3/labs/language/aida/config/proto/
29987
+ # model_config.proto;l=376;rcl=573039459
29988
+ # Corresponds to the JSON property `endTokenScore`
29989
+ # @return [Float]
29990
+ attr_accessor :end_token_score
29991
+
29992
+ # Each score is the logprob for the token in model response.
29993
+ # Corresponds to the JSON property `score`
29994
+ # @return [Float]
29995
+ attr_accessor :score
29996
+
29997
+ #
29998
+ # Corresponds to the JSON property `token`
29999
+ # @return [String]
30000
+ attr_accessor :token
30001
+
30002
+ def initialize(**args)
30003
+ update!(**args)
30004
+ end
30005
+
30006
+ # Update properties of this object
30007
+ def update!(**args)
30008
+ @end_token_score = args[:end_token_score] if args.key?(:end_token_score)
30009
+ @score = args[:score] if args.key?(:score)
30010
+ @token = args[:token] if args.key?(:token)
30011
+ end
30012
+ end
30013
+
30014
+ # Each SimilarityTakedownPhrase treats a logical group of blocked and allowed
30015
+ # phrases together along with a corresponding punt If the closest matching
30016
+ # response is of the allowed type, we allow the response If the closest matching
30017
+ # response is of the blocked type, we block the response. eg: Blocked phrase - "
30018
+ # All lives matter"
30019
+ class LearningGenaiRootSimilarityTakedownPhrase
30020
+ include Google::Apis::Core::Hashable
30021
+
30022
+ #
30023
+ # Corresponds to the JSON property `blockedPhrase`
30024
+ # @return [String]
30025
+ attr_accessor :blocked_phrase
30026
+
30027
+ def initialize(**args)
30028
+ update!(**args)
30029
+ end
30030
+
30031
+ # Update properties of this object
30032
+ def update!(**args)
30033
+ @blocked_phrase = args[:blocked_phrase] if args.key?(:blocked_phrase)
30034
+ end
30035
+ end
30036
+
30037
+ #
30038
+ class LearningGenaiRootSimilarityTakedownResult
30039
+ include Google::Apis::Core::Hashable
30040
+
30041
+ # False when query or response should be taken down by any of the takedown rules,
30042
+ # true otherwise.
30043
+ # Corresponds to the JSON property `allowed`
30044
+ # @return [Boolean]
30045
+ attr_accessor :allowed
30046
+ alias_method :allowed?, :allowed
30047
+
30048
+ # List of similar phrases with score. Set only if allowed=false.
30049
+ # Corresponds to the JSON property `scoredPhrases`
30050
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootScoredSimilarityTakedownPhrase>]
30051
+ attr_accessor :scored_phrases
30052
+
30053
+ def initialize(**args)
30054
+ update!(**args)
30055
+ end
30056
+
30057
+ # Update properties of this object
30058
+ def update!(**args)
30059
+ @allowed = args[:allowed] if args.key?(:allowed)
30060
+ @scored_phrases = args[:scored_phrases] if args.key?(:scored_phrases)
30061
+ end
30062
+ end
30063
+
30064
+ #
30065
+ class LearningGenaiRootTakedownResult
30066
+ include Google::Apis::Core::Hashable
30067
+
30068
+ # False when query or response should be taken down by any of the takedown rules,
30069
+ # true otherwise.
30070
+ # Corresponds to the JSON property `allowed`
30071
+ # @return [Boolean]
30072
+ attr_accessor :allowed
30073
+ alias_method :allowed?, :allowed
30074
+
30075
+ #
30076
+ # Corresponds to the JSON property `regexTakedownResult`
30077
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRegexTakedownResult]
30078
+ attr_accessor :regex_takedown_result
30079
+
30080
+ #
30081
+ # Corresponds to the JSON property `requestResponseTakedownResult`
30082
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootRequestResponseTakedownResult]
30083
+ attr_accessor :request_response_takedown_result
30084
+
30085
+ #
30086
+ # Corresponds to the JSON property `similarityTakedownResult`
30087
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootSimilarityTakedownResult]
30088
+ attr_accessor :similarity_takedown_result
30089
+
30090
+ def initialize(**args)
30091
+ update!(**args)
30092
+ end
30093
+
30094
+ # Update properties of this object
30095
+ def update!(**args)
30096
+ @allowed = args[:allowed] if args.key?(:allowed)
30097
+ @regex_takedown_result = args[:regex_takedown_result] if args.key?(:regex_takedown_result)
30098
+ @request_response_takedown_result = args[:request_response_takedown_result] if args.key?(:request_response_takedown_result)
30099
+ @similarity_takedown_result = args[:similarity_takedown_result] if args.key?(:similarity_takedown_result)
30100
+ end
30101
+ end
30102
+
30103
+ # The type of score that bundled with a threshold, and will not be attending the
30104
+ # final score calculation. How each score type uses the threshold can be
30105
+ # implementation details.
30106
+ class LearningGenaiRootThresholdType
30107
+ include Google::Apis::Core::Hashable
30108
+
30109
+ #
30110
+ # Corresponds to the JSON property `scoreType`
30111
+ # @return [String]
30112
+ attr_accessor :score_type
30113
+
30114
+ #
30115
+ # Corresponds to the JSON property `threshold`
30116
+ # @return [Float]
30117
+ attr_accessor :threshold
30118
+
30119
+ def initialize(**args)
30120
+ update!(**args)
30121
+ end
30122
+
30123
+ # Update properties of this object
30124
+ def update!(**args)
30125
+ @score_type = args[:score_type] if args.key?(:score_type)
30126
+ @threshold = args[:threshold] if args.key?(:threshold)
30127
+ end
30128
+ end
30129
+
30130
+ # Results of RandomSamplingParams::top_k_logprob_per_decoding_step.
30131
+ class LearningGenaiRootTokensAndLogProbPerDecodingStep
30132
+ include Google::Apis::Core::Hashable
30133
+
30134
+ # Length = total number of decoding steps. The chosen candidates may or may not
30135
+ # be in top_candidates.
30136
+ # Corresponds to the JSON property `chosenCandidates`
30137
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate>]
30138
+ attr_accessor :chosen_candidates
30139
+
30140
+ # Length = total number of decoding steps.
30141
+ # Corresponds to the JSON property `topCandidates`
30142
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootTokensAndLogProbPerDecodingStepTopCandidates>]
30143
+ attr_accessor :top_candidates
30144
+
30145
+ def initialize(**args)
30146
+ update!(**args)
30147
+ end
30148
+
30149
+ # Update properties of this object
30150
+ def update!(**args)
30151
+ @chosen_candidates = args[:chosen_candidates] if args.key?(:chosen_candidates)
30152
+ @top_candidates = args[:top_candidates] if args.key?(:top_candidates)
30153
+ end
30154
+ end
30155
+
30156
+ # A candidate at a decoding step.
30157
+ class LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate
30158
+ include Google::Apis::Core::Hashable
30159
+
30160
+ # The candidate's log probability.
30161
+ # Corresponds to the JSON property `logProbability`
30162
+ # @return [Float]
30163
+ attr_accessor :log_probability
30164
+
30165
+ # The candidate’s token value.
30166
+ # Corresponds to the JSON property `token`
30167
+ # @return [String]
30168
+ attr_accessor :token
30169
+
30170
+ def initialize(**args)
30171
+ update!(**args)
30172
+ end
30173
+
30174
+ # Update properties of this object
30175
+ def update!(**args)
30176
+ @log_probability = args[:log_probability] if args.key?(:log_probability)
30177
+ @token = args[:token] if args.key?(:token)
30178
+ end
30179
+ end
30180
+
30181
+ # Candidates with top log probabilities at each decoding step.
30182
+ class LearningGenaiRootTokensAndLogProbPerDecodingStepTopCandidates
30183
+ include Google::Apis::Core::Hashable
30184
+
30185
+ # Sorted by log probability in descending order.
30186
+ # Corresponds to the JSON property `candidates`
30187
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate>]
30188
+ attr_accessor :candidates
30189
+
30190
+ def initialize(**args)
30191
+ update!(**args)
30192
+ end
30193
+
30194
+ # Update properties of this object
30195
+ def update!(**args)
30196
+ @candidates = args[:candidates] if args.key?(:candidates)
30197
+ end
30198
+ end
30199
+
30200
+ # A model can generate multiple signals and this captures all the generated
30201
+ # signals for a single message.
30202
+ class LearningGenaiRootToxicityResult
30203
+ include Google::Apis::Core::Hashable
30204
+
30205
+ #
30206
+ # Corresponds to the JSON property `signals`
30207
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootToxicitySignal>]
30208
+ attr_accessor :signals
30209
+
30210
+ def initialize(**args)
30211
+ update!(**args)
30212
+ end
30213
+
30214
+ # Update properties of this object
30215
+ def update!(**args)
30216
+ @signals = args[:signals] if args.key?(:signals)
30217
+ end
30218
+ end
30219
+
30220
+ # Proto to capture a signal generated by the toxicity model.
30221
+ class LearningGenaiRootToxicitySignal
30222
+ include Google::Apis::Core::Hashable
30223
+
30224
+ #
30225
+ # Corresponds to the JSON property `allowed`
30226
+ # @return [Boolean]
30227
+ attr_accessor :allowed
30228
+ alias_method :allowed?, :allowed
30229
+
30230
+ #
30231
+ # Corresponds to the JSON property `label`
30232
+ # @return [String]
30233
+ attr_accessor :label
30234
+
30235
+ #
30236
+ # Corresponds to the JSON property `score`
30237
+ # @return [Float]
30238
+ attr_accessor :score
30239
+
30240
+ def initialize(**args)
30241
+ update!(**args)
30242
+ end
30243
+
30244
+ # Update properties of this object
30245
+ def update!(**args)
30246
+ @allowed = args[:allowed] if args.key?(:allowed)
30247
+ @label = args[:label] if args.key?(:label)
30248
+ @score = args[:score] if args.key?(:score)
30249
+ end
30250
+ end
30251
+
30252
+ #
30253
+ class LearningServingLlmLanguageFilterResult
30254
+ include Google::Apis::Core::Hashable
30255
+
30256
+ # False when query or response should be filtered out due to unsupported
30257
+ # language.
30258
+ # Corresponds to the JSON property `allowed`
30259
+ # @return [Boolean]
30260
+ attr_accessor :allowed
30261
+ alias_method :allowed?, :allowed
30262
+
30263
+ # Language of the query or response.
30264
+ # Corresponds to the JSON property `detectedLanguage`
30265
+ # @return [String]
30266
+ attr_accessor :detected_language
30267
+
30268
+ # Probability of the language predicted as returned by LangID.
30269
+ # Corresponds to the JSON property `detectedLanguageProbability`
30270
+ # @return [Float]
30271
+ attr_accessor :detected_language_probability
30272
+
30273
+ def initialize(**args)
30274
+ update!(**args)
30275
+ end
30276
+
30277
+ # Update properties of this object
30278
+ def update!(**args)
30279
+ @allowed = args[:allowed] if args.key?(:allowed)
30280
+ @detected_language = args[:detected_language] if args.key?(:detected_language)
30281
+ @detected_language_probability = args[:detected_language_probability] if args.key?(:detected_language_probability)
30282
+ end
30283
+ end
30284
+
30285
+ # LINT.IfChange This metadata contains additional information required for
30286
+ # debugging.
30287
+ class LearningServingLlmMessageMetadata
30288
+ include Google::Apis::Core::Hashable
30289
+
30290
+ # Summary of classifier output. We attach this to all messages regardless of
30291
+ # whether classification rules triggered or not.
30292
+ # Corresponds to the JSON property `classifierSummary`
30293
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootClassifierOutputSummary]
30294
+ attr_accessor :classifier_summary
30295
+
30296
+ #
30297
+ # Corresponds to the JSON property `currentStreamTextLength`
30298
+ # @return [Fixnum]
30299
+ attr_accessor :current_stream_text_length
30300
+
30301
+ # Whether the corresponding message has been deleted.
30302
+ # Corresponds to the JSON property `deleted`
30303
+ # @return [Boolean]
30304
+ attr_accessor :deleted
30305
+ alias_method :deleted?, :deleted
30306
+
30307
+ # Metadata for filters that triggered.
30308
+ # Corresponds to the JSON property `filterMeta`
30309
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootFilterMetadata>]
30310
+ attr_accessor :filter_meta
30311
+
30312
+ # This score is finally used for ranking the message. This will be same as the
30313
+ # score present in `Message.score` field.
30314
+ # Corresponds to the JSON property `finalMessageScore`
30315
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRootScore]
30316
+ attr_accessor :final_message_score
30317
+
30318
+ # NOT YET IMPLEMENTED.
30319
+ # Corresponds to the JSON property `finishReason`
30320
+ # @return [String]
30321
+ attr_accessor :finish_reason
30322
+
30323
+ # Applies to Response message only. Indicates whether the message is a fallback
30324
+ # and the response would have otherwise been empty.
30325
+ # Corresponds to the JSON property `isFallback`
30326
+ # @return [Boolean]
30327
+ attr_accessor :is_fallback
30328
+ alias_method :is_fallback?, :is_fallback
30329
+
30330
+ # Result from nlp_saft DetectLanguage method. Currently the predicted language
30331
+ # code and language probability is used.
30332
+ # Corresponds to the JSON property `langidResult`
30333
+ # @return [Google::Apis::AiplatformV1::NlpSaftLangIdResult]
30334
+ attr_accessor :langid_result
30335
+
30336
+ # Detected language.
30337
+ # Corresponds to the JSON property `language`
30338
+ # @return [String]
30339
+ attr_accessor :language
30340
+
30341
+ # The LM prefix used to generate this response.
30342
+ # Corresponds to the JSON property `lmPrefix`
30343
+ # @return [String]
30344
+ attr_accessor :lm_prefix
30345
+
30346
+ # The original text generated by LLM. This is the raw output for debugging
30347
+ # purposes.
30348
+ # Corresponds to the JSON property `originalText`
30349
+ # @return [String]
30350
+ attr_accessor :original_text
30351
+
30352
+ # NOT YET IMPLEMENTED. Applies to streaming only. Number of tokens decoded /
30353
+ # emitted by the model as part of this stream. This may be different from
30354
+ # token_count, which contains number of tokens returned in this response after
30355
+ # any response rewriting / truncation.
30356
+ # Corresponds to the JSON property `perStreamDecodedTokenCount`
30357
+ # @return [Fixnum]
30358
+ attr_accessor :per_stream_decoded_token_count
30359
+
30360
+ # Results of running RAI on the query or this response candidate. One output per
30361
+ # rai_config. It will be populated regardless of whether the threshold is
30362
+ # exceeded or not.
30363
+ # Corresponds to the JSON property `raiOutputs`
30364
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootRaiOutput>]
30365
+ attr_accessor :rai_outputs
30366
+
30367
+ # The recitation result for one input
30368
+ # Corresponds to the JSON property `recitationResult`
30369
+ # @return [Google::Apis::AiplatformV1::LearningGenaiRecitationRecitationResult]
30370
+ attr_accessor :recitation_result
30371
+
30372
+ # NOT YET IMPLEMENTED. Number of tokens returned as part of this candidate.
30373
+ # Corresponds to the JSON property `returnTokenCount`
30374
+ # @return [Fixnum]
30375
+ attr_accessor :return_token_count
30376
+
30377
+ # All the different scores for a message are logged here.
30378
+ # Corresponds to the JSON property `scores`
30379
+ # @return [Array<Google::Apis::AiplatformV1::LearningGenaiRootScore>]
30380
+ attr_accessor :scores
30381
+
30382
+ # Whether the response is terminated during streaming return. Only used for
30383
+ # streaming requests.
30384
+ # Corresponds to the JSON property `streamTerminated`
30385
+ # @return [Boolean]
30386
+ attr_accessor :stream_terminated
30387
+ alias_method :stream_terminated?, :stream_terminated
30388
+
30389
+ # NOT YET IMPLEMENTED. Aggregated number of total tokens decoded so far. For
30390
+ # streaming, this is sum of all the tokens decoded so far i.e. aggregated count.
30391
+ # Corresponds to the JSON property `totalDecodedTokenCount`
30392
+ # @return [Fixnum]
30393
+ attr_accessor :total_decoded_token_count
30394
+
30395
+ # Translated user-prompt used for RAI post processing. This is for internal
30396
+ # processing only. We will translate in pre-processor and pass the translated
30397
+ # text to the post processor using this field. It will be empty if non of the
30398
+ # signals requested need translation.
30399
+ # Corresponds to the JSON property `translatedUserPrompts`
30400
+ # @return [Array<String>]
30401
+ attr_accessor :translated_user_prompts
30402
+
30403
+ # The RAI results for a given text.
30404
+ # Corresponds to the JSON property `vertexRaiResult`
30405
+ # @return [Google::Apis::AiplatformV1::CloudAiNlLlmProtoServiceRaiResult]
30406
+ attr_accessor :vertex_rai_result
30407
+
30408
+ def initialize(**args)
30409
+ update!(**args)
30410
+ end
30411
+
30412
+ # Update properties of this object
30413
+ def update!(**args)
30414
+ @classifier_summary = args[:classifier_summary] if args.key?(:classifier_summary)
30415
+ @current_stream_text_length = args[:current_stream_text_length] if args.key?(:current_stream_text_length)
30416
+ @deleted = args[:deleted] if args.key?(:deleted)
30417
+ @filter_meta = args[:filter_meta] if args.key?(:filter_meta)
30418
+ @final_message_score = args[:final_message_score] if args.key?(:final_message_score)
30419
+ @finish_reason = args[:finish_reason] if args.key?(:finish_reason)
30420
+ @is_fallback = args[:is_fallback] if args.key?(:is_fallback)
30421
+ @langid_result = args[:langid_result] if args.key?(:langid_result)
30422
+ @language = args[:language] if args.key?(:language)
30423
+ @lm_prefix = args[:lm_prefix] if args.key?(:lm_prefix)
30424
+ @original_text = args[:original_text] if args.key?(:original_text)
30425
+ @per_stream_decoded_token_count = args[:per_stream_decoded_token_count] if args.key?(:per_stream_decoded_token_count)
30426
+ @rai_outputs = args[:rai_outputs] if args.key?(:rai_outputs)
30427
+ @recitation_result = args[:recitation_result] if args.key?(:recitation_result)
30428
+ @return_token_count = args[:return_token_count] if args.key?(:return_token_count)
30429
+ @scores = args[:scores] if args.key?(:scores)
30430
+ @stream_terminated = args[:stream_terminated] if args.key?(:stream_terminated)
30431
+ @total_decoded_token_count = args[:total_decoded_token_count] if args.key?(:total_decoded_token_count)
30432
+ @translated_user_prompts = args[:translated_user_prompts] if args.key?(:translated_user_prompts)
30433
+ @vertex_rai_result = args[:vertex_rai_result] if args.key?(:vertex_rai_result)
30434
+ end
30435
+ end
30436
+
30437
+ #
30438
+ class NlpSaftLangIdLocalesResult
30439
+ include Google::Apis::Core::Hashable
30440
+
30441
+ # List of locales in which the text would be considered acceptable. Sorted in
30442
+ # descending order according to each locale's respective likelihood. For example,
30443
+ # if a Portuguese text is acceptable in both Brazil and Portugal, but is more
30444
+ # strongly associated with Brazil, then the predictions would be ["pt-BR", "pt-
30445
+ # PT"], in that order. May be empty, indicating that the model did not predict
30446
+ # any acceptable locales.
30447
+ # Corresponds to the JSON property `predictions`
30448
+ # @return [Array<Google::Apis::AiplatformV1::NlpSaftLangIdLocalesResultLocale>]
30449
+ attr_accessor :predictions
30450
+
30451
+ def initialize(**args)
30452
+ update!(**args)
30453
+ end
30454
+
30455
+ # Update properties of this object
30456
+ def update!(**args)
30457
+ @predictions = args[:predictions] if args.key?(:predictions)
30458
+ end
30459
+ end
30460
+
30461
+ #
30462
+ class NlpSaftLangIdLocalesResultLocale
30463
+ include Google::Apis::Core::Hashable
30464
+
30465
+ # A BCP 47 language code that includes region information. For example, "pt-BR"
30466
+ # or "pt-PT". This field will always be populated.
30467
+ # Corresponds to the JSON property `languageCode`
30468
+ # @return [String]
30469
+ attr_accessor :language_code
30470
+
30471
+ def initialize(**args)
30472
+ update!(**args)
30473
+ end
30474
+
30475
+ # Update properties of this object
30476
+ def update!(**args)
30477
+ @language_code = args[:language_code] if args.key?(:language_code)
30478
+ end
30479
+ end
30480
+
30481
+ #
30482
+ class NlpSaftLangIdResult
30483
+ include Google::Apis::Core::Hashable
30484
+
30485
+ # The version of the model used to create these annotations.
30486
+ # Corresponds to the JSON property `modelVersion`
30487
+ # @return [String]
30488
+ attr_accessor :model_version
30489
+
30490
+ # This field stores the n-best list of possible BCP 47 language code strings for
30491
+ # a given input sorted in descending order according to each code's respective
30492
+ # probability.
30493
+ # Corresponds to the JSON property `predictions`
30494
+ # @return [Array<Google::Apis::AiplatformV1::NlpSaftLanguageSpan>]
30495
+ attr_accessor :predictions
30496
+
30497
+ # This field stores language predictions of subspans of the input, when
30498
+ # available. Each LanguageSpanSequence is a sequence of LanguageSpans. A
30499
+ # particular sequence of LanguageSpans has an associated probability, and need
30500
+ # not necessarily cover the entire input. If no language could be predicted for
30501
+ # any span, then this field may be empty.
30502
+ # Corresponds to the JSON property `spanPredictions`
30503
+ # @return [Array<Google::Apis::AiplatformV1::NlpSaftLanguageSpanSequence>]
30504
+ attr_accessor :span_predictions
30505
+
30506
+ def initialize(**args)
30507
+ update!(**args)
30508
+ end
30509
+
30510
+ # Update properties of this object
30511
+ def update!(**args)
30512
+ @model_version = args[:model_version] if args.key?(:model_version)
30513
+ @predictions = args[:predictions] if args.key?(:predictions)
30514
+ @span_predictions = args[:span_predictions] if args.key?(:span_predictions)
30515
+ end
30516
+ end
30517
+
30518
+ #
30519
+ class NlpSaftLanguageSpan
30520
+ include Google::Apis::Core::Hashable
30521
+
30522
+ #
30523
+ # Corresponds to the JSON property `end`
30524
+ # @return [Fixnum]
30525
+ attr_accessor :end
30526
+
30527
+ # A BCP 47 language code for this span.
30528
+ # Corresponds to the JSON property `languageCode`
30529
+ # @return [String]
30530
+ attr_accessor :language_code
30531
+
30532
+ # Optional field containing any information that was predicted about the
30533
+ # specific locale(s) of the span.
30534
+ # Corresponds to the JSON property `locales`
30535
+ # @return [Google::Apis::AiplatformV1::NlpSaftLangIdLocalesResult]
30536
+ attr_accessor :locales
30537
+
30538
+ # A probability associated with this prediction.
30539
+ # Corresponds to the JSON property `probability`
30540
+ # @return [Float]
30541
+ attr_accessor :probability
30542
+
30543
+ # Start and end byte offsets, inclusive, within the given input string. A value
30544
+ # of -1 implies that this field is not set. Both fields must either be set with
30545
+ # a nonnegative value or both are unset. If both are unset then this
30546
+ # LanguageSpan applies to the entire input.
30547
+ # Corresponds to the JSON property `start`
30548
+ # @return [Fixnum]
30549
+ attr_accessor :start
30550
+
30551
+ def initialize(**args)
30552
+ update!(**args)
30553
+ end
30554
+
30555
+ # Update properties of this object
30556
+ def update!(**args)
30557
+ @end = args[:end] if args.key?(:end)
30558
+ @language_code = args[:language_code] if args.key?(:language_code)
30559
+ @locales = args[:locales] if args.key?(:locales)
30560
+ @probability = args[:probability] if args.key?(:probability)
30561
+ @start = args[:start] if args.key?(:start)
30562
+ end
30563
+ end
30564
+
30565
+ #
30566
+ class NlpSaftLanguageSpanSequence
30567
+ include Google::Apis::Core::Hashable
30568
+
30569
+ # A sequence of LanguageSpan objects, each assigning a language to a subspan of
30570
+ # the input.
30571
+ # Corresponds to the JSON property `languageSpans`
30572
+ # @return [Array<Google::Apis::AiplatformV1::NlpSaftLanguageSpan>]
30573
+ attr_accessor :language_spans
30574
+
30575
+ # The probability of this sequence of LanguageSpans.
30576
+ # Corresponds to the JSON property `probability`
30577
+ # @return [Float]
30578
+ attr_accessor :probability
30579
+
30580
+ def initialize(**args)
30581
+ update!(**args)
30582
+ end
30583
+
30584
+ # Update properties of this object
30585
+ def update!(**args)
30586
+ @language_spans = args[:language_spans] if args.key?(:language_spans)
30587
+ @probability = args[:probability] if args.key?(:probability)
30588
+ end
30589
+ end
30590
+
30591
+ # This is proto2's version of MessageSet.
30592
+ class Proto2BridgeMessageSet
30593
+ include Google::Apis::Core::Hashable
30594
+
30595
+ def initialize(**args)
30596
+ update!(**args)
30597
+ end
30598
+
30599
+ # Update properties of this object
30600
+ def update!(**args)
30601
+ end
30602
+ end
30603
+
30604
+ # Wire-format for a Status object
30605
+ class UtilStatusProto
30606
+ include Google::Apis::Core::Hashable
30607
+
30608
+ # The canonical error code (see codes.proto) that most closely corresponds to
30609
+ # this status. This may be missing, and in the common case of the generic space,
30610
+ # it definitely will be.
30611
+ # Corresponds to the JSON property `canonicalCode`
30612
+ # @return [Fixnum]
30613
+ attr_accessor :canonical_code
30614
+
30615
+ # Numeric code drawn from the space specified below. Often, this is the
30616
+ # canonical error space, and code is drawn from google3/util/task/codes.proto
30617
+ # Corresponds to the JSON property `code`
30618
+ # @return [Fixnum]
30619
+ attr_accessor :code
30620
+
30621
+ # Detail message
30622
+ # Corresponds to the JSON property `message`
30623
+ # @return [String]
30624
+ attr_accessor :message
30625
+
30626
+ # This is proto2's version of MessageSet.
30627
+ # Corresponds to the JSON property `messageSet`
30628
+ # @return [Google::Apis::AiplatformV1::Proto2BridgeMessageSet]
30629
+ attr_accessor :message_set
30630
+
30631
+ # The following are usually only present when code != 0 Space to which this
30632
+ # status belongs
30633
+ # Corresponds to the JSON property `space`
30634
+ # @return [String]
30635
+ attr_accessor :space
30636
+
30637
+ def initialize(**args)
30638
+ update!(**args)
30639
+ end
30640
+
30641
+ # Update properties of this object
30642
+ def update!(**args)
30643
+ @canonical_code = args[:canonical_code] if args.key?(:canonical_code)
30644
+ @code = args[:code] if args.key?(:code)
30645
+ @message = args[:message] if args.key?(:message)
30646
+ @message_set = args[:message_set] if args.key?(:message_set)
30647
+ @space = args[:space] if args.key?(:space)
30648
+ end
30649
+ end
28167
30650
  end
28168
30651
  end
28169
30652
  end