googleapis/google/cloud/aiplatform/v1/content.proto
Google APIs 8d0579f581 feat: Add fps to message VideoMetadata
feat: Add `mediaResolution` to `Part`
feat: Add `responseModalities, audioTimestamp, mediaResolution` to `GenerationConfig`
feat: Add `thinkingLevel` to `ThinkingConfig`
feat: Add `imageOutputOptions, personGeneration, imageSize` to `ImageConfig`

PiperOrigin-RevId: 863320215
2026-01-30 11:22:50 -08:00

1069 lines
35 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1/openapi.proto";
import "google/cloud/aiplatform/v1/tool.proto";
import "google/cloud/aiplatform/v1/vertex_rag_data.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/type/date.proto";
option csharp_namespace = "Google.Cloud.AIPlatform.V1";
option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb";
option java_multiple_files = true;
option java_outer_classname = "ContentProto";
option java_package = "com.google.cloud.aiplatform.v1";
option php_namespace = "Google\\Cloud\\AIPlatform\\V1";
option ruby_package = "Google::Cloud::AIPlatform::V1";
option (google.api.resource_definition) = {
type: "modelarmor.googleapis.com/Template"
pattern: "projects/{project}/locations/{location}/templates/{template}"
};
// Harm categories that will block the content.
enum HarmCategory {
// The harm category is unspecified.
HARM_CATEGORY_UNSPECIFIED = 0;
// The harm category is hate speech.
HARM_CATEGORY_HATE_SPEECH = 1;
// The harm category is dangerous content.
HARM_CATEGORY_DANGEROUS_CONTENT = 2;
// The harm category is harassment.
HARM_CATEGORY_HARASSMENT = 3;
// The harm category is sexually explicit content.
HARM_CATEGORY_SEXUALLY_EXPLICIT = 4;
// Deprecated: Election filter is not longer supported.
// The harm category is civic integrity.
HARM_CATEGORY_CIVIC_INTEGRITY = 5 [deprecated = true];
// The harm category is for jailbreak prompts.
HARM_CATEGORY_JAILBREAK = 6;
}
// Content Part modality
enum Modality {
// Unspecified modality.
MODALITY_UNSPECIFIED = 0;
// Plain text.
TEXT = 1;
// Image.
IMAGE = 2;
// Video.
VIDEO = 3;
// Audio.
AUDIO = 4;
// Document, e.g. PDF.
DOCUMENT = 5;
}
// The base structured datatype containing multi-part content of a message.
//
// A `Content` includes a `role` field designating the producer of the `Content`
// and a `parts` field containing multi-part data that contains the content of
// the message turn.
message Content {
// Optional. The producer of the content. Must be either 'user' or 'model'.
//
// Useful to set for multi-turn conversations, otherwise can be left blank
// or unset.
string role = 1 [(google.api.field_behavior) = OPTIONAL];
// Required. Ordered `Parts` that constitute a single message. Parts may have
// different IANA MIME types.
repeated Part parts = 2 [(google.api.field_behavior) = REQUIRED];
}
// A datatype containing media that is part of a multi-part `Content` message.
//
// A `Part` consists of data which has an associated datatype. A `Part` can only
// contain one of the accepted types in `Part.data`.
//
// A `Part` must have a fixed IANA MIME type identifying the type and subtype
// of the media if `inline_data` or `file_data` field is filled with raw bytes.
message Part {
// per part media resolution.
// Media resolution for the input media.
message MediaResolution {
// The media resolution level.
enum Level {
// Media resolution has not been set.
MEDIA_RESOLUTION_UNSPECIFIED = 0;
// Media resolution set to low.
MEDIA_RESOLUTION_LOW = 1;
// Media resolution set to medium.
MEDIA_RESOLUTION_MEDIUM = 2;
// Media resolution set to high.
MEDIA_RESOLUTION_HIGH = 3;
// Media resolution set to ultra high. This is for image only.
MEDIA_RESOLUTION_ULTRA_HIGH = 4;
}
oneof value {
// The tokenization quality used for given media.
Level level = 1;
}
}
oneof data {
// Optional. Text part (can be code).
string text = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. Inlined bytes data.
Blob inline_data = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. URI based data.
FileData file_data = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. A predicted [FunctionCall] returned from the model that
// contains a string representing the [FunctionDeclaration.name] with the
// parameters and their values.
FunctionCall function_call = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. The result output of a [FunctionCall] that contains a string
// representing the [FunctionDeclaration.name] and a structured JSON object
// containing any output from the function call. It is used as context to
// the model.
FunctionResponse function_response = 6
[(google.api.field_behavior) = OPTIONAL];
// Optional. Code generated by the model that is meant to be executed.
ExecutableCode executable_code = 8 [(google.api.field_behavior) = OPTIONAL];
// Optional. Result of executing the [ExecutableCode].
CodeExecutionResult code_execution_result = 9
[(google.api.field_behavior) = OPTIONAL];
}
// Indicates if the part is thought from the model.
bool thought = 10 [(google.api.field_behavior) = OPTIONAL];
// An opaque signature for the thought so it can be reused in subsequent
// requests.
bytes thought_signature = 11 [(google.api.field_behavior) = OPTIONAL];
oneof metadata {
// Optional. Video metadata. The metadata should only be specified while the
// video data is presented in inline_data or file_data.
VideoMetadata video_metadata = 4 [(google.api.field_behavior) = OPTIONAL];
}
// per part media resolution.
// Media resolution for the input media.
MediaResolution media_resolution = 12;
}
// Content blob.
//
// It's preferred to send as [text][google.cloud.aiplatform.v1.Part.text]
// directly rather than raw bytes.
message Blob {
// Required. The IANA standard MIME type of the source data.
string mime_type = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Raw bytes.
bytes data = 2 [(google.api.field_behavior) = REQUIRED];
}
// URI based data.
message FileData {
// Required. The IANA standard MIME type of the source data.
string mime_type = 1 [(google.api.field_behavior) = REQUIRED];
// Required. URI.
string file_uri = 2 [(google.api.field_behavior) = REQUIRED];
}
// Metadata describes the input video content.
message VideoMetadata {
// Optional. The start offset of the video.
google.protobuf.Duration start_offset = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. The end offset of the video.
google.protobuf.Duration end_offset = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. The frame rate of the video sent to the model. If not specified,
// the default value is 1.0. The valid range is (0.0, 24.0].
double fps = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Configuration for a prebuilt voice.
message PrebuiltVoiceConfig {
// The name of the prebuilt voice to use.
optional string voice_name = 1;
}
// The configuration for the replicated voice to use.
message ReplicatedVoiceConfig {
// Optional. The mimetype of the voice sample. The only currently supported
// value is `audio/wav`. This represents 16-bit signed little-endian wav data,
// with a 24kHz sampling rate. `mime_type` will default to `audio/wav` if not
// set.
string mime_type = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The sample of the custom voice.
bytes voice_sample_audio = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Configuration for a voice.
message VoiceConfig {
// The configuration for the speaker to use.
oneof voice_config {
// The configuration for a prebuilt voice.
PrebuiltVoiceConfig prebuilt_voice_config = 1;
// Optional. The configuration for a replicated voice. This enables users to
// replicate a voice from an audio sample.
ReplicatedVoiceConfig replicated_voice_config = 3
[(google.api.field_behavior) = OPTIONAL];
}
}
// Configuration for a single speaker in a multi-speaker setup.
message SpeakerVoiceConfig {
// Required. The name of the speaker. This should be the same as the speaker
// name used in the prompt.
string speaker = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The configuration for the voice of this speaker.
VoiceConfig voice_config = 2 [(google.api.field_behavior) = REQUIRED];
}
// Configuration for a multi-speaker text-to-speech request.
message MultiSpeakerVoiceConfig {
// Required. A list of configurations for the voices of the speakers. Exactly
// two speaker voice configurations must be provided.
repeated SpeakerVoiceConfig speaker_voice_configs = 2
[(google.api.field_behavior) = REQUIRED];
}
// Configuration for speech generation.
message SpeechConfig {
// The configuration for the voice to use.
VoiceConfig voice_config = 1;
// Optional. The language code (ISO 639-1) for the speech synthesis.
string language_code = 2 [(google.api.field_behavior) = OPTIONAL];
// The configuration for a multi-speaker text-to-speech request.
// This field is mutually exclusive with `voice_config`.
MultiSpeakerVoiceConfig multi_speaker_voice_config = 3;
}
// Config for image generation features.
message ImageConfig {
// The image output format for generated images.
message ImageOutputOptions {
// Optional. The image format that the output should be saved as.
optional string mime_type = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The compression quality of the output image.
optional int32 compression_quality = 2
[(google.api.field_behavior) = OPTIONAL];
}
// Enum for controlling the generation of people in images.
enum PersonGeneration {
// The default behavior is unspecified. The model will decide whether to
// generate images of people.
PERSON_GENERATION_UNSPECIFIED = 0;
// Allows the model to generate images of people, including adults and
// children.
ALLOW_ALL = 1;
// Allows the model to generate images of adults, but not children.
ALLOW_ADULT = 2;
// Prevents the model from generating images of people.
ALLOW_NONE = 3;
}
// Optional. The image output format for generated images.
optional ImageOutputOptions image_output_options = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. The desired aspect ratio for the generated images. The following
// aspect ratios are supported:
//
// "1:1"
// "2:3", "3:2"
// "3:4", "4:3"
// "4:5", "5:4"
// "9:16", "16:9"
// "21:9"
optional string aspect_ratio = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Controls whether the model can generate people.
optional PersonGeneration person_generation = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the size of generated images. Supported values are
// `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
optional string image_size = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Generation config.
message GenerationConfig {
// The configuration for routing the request to a specific model.
message RoutingConfig {
// When automated routing is specified, the routing will be determined by
// the pretrained routing model and customer provided model routing
// preference.
message AutoRoutingMode {
// The model routing preference.
enum ModelRoutingPreference {
// Unspecified model routing preference.
UNKNOWN = 0;
// Prefer higher quality over low cost.
PRIORITIZE_QUALITY = 1;
// Balanced model routing preference.
BALANCED = 2;
// Prefer lower cost over higher quality.
PRIORITIZE_COST = 3;
}
// The model routing preference.
optional ModelRoutingPreference model_routing_preference = 1;
}
// When manual routing is set, the specified model will be used directly.
message ManualRoutingMode {
// The model name to use. Only the public LLM models are accepted. e.g.
// 'gemini-1.5-pro-001'.
optional string model_name = 1;
}
// Routing mode.
oneof routing_config {
// Automated routing.
AutoRoutingMode auto_mode = 1;
// Manual routing.
ManualRoutingMode manual_mode = 2;
}
}
// Config for thinking features.
message ThinkingConfig {
// The thinking level for the model.
enum ThinkingLevel {
// Unspecified thinking level.
THINKING_LEVEL_UNSPECIFIED = 0;
// Low thinking level.
LOW = 1;
// Medium thinking level.
MEDIUM = 2;
// High thinking level.
HIGH = 3;
// MINIMAL thinking level.
MINIMAL = 4;
}
// Indicates whether to include thoughts in the response.
// If true, thoughts are returned only when available.
optional bool include_thoughts = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. Indicates the thinking budget in tokens.
// This is only applied when enable_thinking is true.
optional int32 thinking_budget = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The number of thoughts tokens that the model should generate.
optional ThinkingLevel thinking_level = 4
[(google.api.field_behavior) = OPTIONAL];
}
// The modalities of the response.
enum Modality {
// Unspecified modality. Will be processed as text.
MODALITY_UNSPECIFIED = 0;
// Text modality.
TEXT = 1;
// Image modality.
IMAGE = 2;
// Audio modality.
AUDIO = 3;
}
// Media resolution for the input media.
enum MediaResolution {
// Media resolution has not been set.
MEDIA_RESOLUTION_UNSPECIFIED = 0;
// Media resolution set to low (64 tokens).
MEDIA_RESOLUTION_LOW = 1;
// Media resolution set to medium (256 tokens).
MEDIA_RESOLUTION_MEDIUM = 2;
// Media resolution set to high (zoomed reframing with 256 tokens).
MEDIA_RESOLUTION_HIGH = 3;
}
// Optional. Controls the randomness of predictions.
optional float temperature = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. If specified, nucleus sampling will be used.
optional float top_p = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. If specified, top-k sampling will be used.
optional float top_k = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Number of candidates to generate.
optional int32 candidate_count = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. The maximum number of output tokens to generate per message.
optional int32 max_output_tokens = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. Stop sequences.
repeated string stop_sequences = 6 [(google.api.field_behavior) = OPTIONAL];
// Optional. If true, export the logprobs results in response.
optional bool response_logprobs = 18 [(google.api.field_behavior) = OPTIONAL];
// Optional. Logit probabilities.
optional int32 logprobs = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. Positive penalties.
optional float presence_penalty = 8 [(google.api.field_behavior) = OPTIONAL];
// Optional. Frequency penalties.
optional float frequency_penalty = 9 [(google.api.field_behavior) = OPTIONAL];
// Optional. Seed.
optional int32 seed = 12 [(google.api.field_behavior) = OPTIONAL];
// Optional. Output response mimetype of the generated candidate text.
// Supported mimetype:
// - `text/plain`: (default) Text output.
// - `application/json`: JSON response in the candidates.
// The model needs to be prompted to output the appropriate response type,
// otherwise the behavior is undefined.
// This is a preview feature.
string response_mime_type = 13 [(google.api.field_behavior) = OPTIONAL];
// Optional. The `Schema` object allows the definition of input and output
// data types. These types can be objects, but also primitives and arrays.
// Represents a select subset of an [OpenAPI 3.0 schema
// object](https://spec.openapis.org/oas/v3.0.3#schema).
// If set, a compatible response_mime_type must also be set.
// Compatible mimetypes:
// `application/json`: Schema for JSON response.
optional Schema response_schema = 16 [(google.api.field_behavior) = OPTIONAL];
// Optional. Output schema of the generated response. This is an alternative
// to `response_schema` that accepts [JSON Schema](https://json-schema.org/).
//
// If set, `response_schema` must be omitted, but `response_mime_type` is
// required.
//
// While the full JSON Schema may be sent, not all features are supported.
// Specifically, only the following properties are supported:
//
// - `$id`
// - `$defs`
// - `$ref`
// - `$anchor`
// - `type`
// - `format`
// - `title`
// - `description`
// - `enum` (for strings and numbers)
// - `items`
// - `prefixItems`
// - `minItems`
// - `maxItems`
// - `minimum`
// - `maximum`
// - `anyOf`
// - `oneOf` (interpreted the same as `anyOf`)
// - `properties`
// - `additionalProperties`
// - `required`
//
// The non-standard `propertyOrdering` property may also be set.
//
// Cyclic references are unrolled to a limited degree and, as such, may only
// be used within non-required properties. (Nullable properties are not
// sufficient.) If `$ref` is set on a sub-schema, no other properties, except
// for than those starting as a `$`, may be set.
optional google.protobuf.Value response_json_schema = 28
[(google.api.field_behavior) = OPTIONAL];
// Optional. Routing configuration.
optional RoutingConfig routing_config = 17
[(google.api.field_behavior) = OPTIONAL];
// Optional. If enabled, audio timestamps will be included in the request to
// the model. This can be useful for synchronizing audio with other modalities
// in the response.
optional bool audio_timestamp = 20 [(google.api.field_behavior) = OPTIONAL];
// Optional. The modalities of the response. The model will generate a
// response that includes all the specified modalities. For example, if this
// is set to `[TEXT, IMAGE]`, the response will include both text and an
// image.
repeated Modality response_modalities = 21
[(google.api.field_behavior) = OPTIONAL];
// Optional. The token resolution at which input media content is sampled.
// This is used to control the trade-off between the quality of the response
// and the number of tokens used to represent the media. A higher resolution
// allows the model to perceive more detail, which can lead to a more nuanced
// response, but it will also use more tokens. This does not affect the
// image dimensions sent to the model.
optional MediaResolution media_resolution = 22
[(google.api.field_behavior) = OPTIONAL];
// Optional. The speech generation config.
optional SpeechConfig speech_config = 23
[(google.api.field_behavior) = OPTIONAL];
// Optional. Config for thinking features.
// An error will be returned if this field is set for models that don't
// support thinking.
ThinkingConfig thinking_config = 25 [(google.api.field_behavior) = OPTIONAL];
// Optional. Config for image generation features.
optional ImageConfig image_config = 30
[(google.api.field_behavior) = OPTIONAL];
}
// Safety settings.
message SafetySetting {
// Probability based thresholds levels for blocking.
enum HarmBlockThreshold {
// Unspecified harm block threshold.
HARM_BLOCK_THRESHOLD_UNSPECIFIED = 0;
// Block low threshold and above (i.e. block more).
BLOCK_LOW_AND_ABOVE = 1;
// Block medium threshold and above.
BLOCK_MEDIUM_AND_ABOVE = 2;
// Block only high threshold (i.e. block less).
BLOCK_ONLY_HIGH = 3;
// Block none.
BLOCK_NONE = 4;
// Turn off the safety filter.
OFF = 5;
}
// Probability vs severity.
enum HarmBlockMethod {
// The harm block method is unspecified.
HARM_BLOCK_METHOD_UNSPECIFIED = 0;
// The harm block method uses both probability and severity scores.
SEVERITY = 1;
// The harm block method uses the probability score.
PROBABILITY = 2;
}
// Required. Harm category.
HarmCategory category = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The harm block threshold.
HarmBlockThreshold threshold = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. Specify if the threshold is used for probability or severity
// score. If not specified, the threshold is used for probability score.
HarmBlockMethod method = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Safety rating corresponding to the generated content.
message SafetyRating {
// Harm probability levels in the content.
enum HarmProbability {
// Harm probability unspecified.
HARM_PROBABILITY_UNSPECIFIED = 0;
// Negligible level of harm.
NEGLIGIBLE = 1;
// Low level of harm.
LOW = 2;
// Medium level of harm.
MEDIUM = 3;
// High level of harm.
HIGH = 4;
}
// Harm severity levels.
enum HarmSeverity {
// Harm severity unspecified.
HARM_SEVERITY_UNSPECIFIED = 0;
// Negligible level of harm severity.
HARM_SEVERITY_NEGLIGIBLE = 1;
// Low level of harm severity.
HARM_SEVERITY_LOW = 2;
// Medium level of harm severity.
HARM_SEVERITY_MEDIUM = 3;
// High level of harm severity.
HARM_SEVERITY_HIGH = 4;
}
// Output only. Harm category.
HarmCategory category = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Harm probability levels in the content.
HarmProbability probability = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Harm probability score.
float probability_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Harm severity levels in the content.
HarmSeverity severity = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Harm severity score.
float severity_score = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Indicates whether the content was filtered out because of this
// rating.
bool blocked = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// A collection of source attributions for a piece of content.
message CitationMetadata {
// Output only. List of citations.
repeated Citation citations = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Source attributions for content.
message Citation {
// Output only. Start index into the content.
int32 start_index = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. End index into the content.
int32 end_index = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Url reference of the attribution.
string uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Title of the attribution.
string title = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. License of the attribution.
string license = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Publication date of the attribution.
google.type.Date publication_date = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// A response candidate generated from the model.
message Candidate {
// The reason why the model stopped generating tokens.
// If empty, the model has not stopped generating the tokens.
enum FinishReason {
// The finish reason is unspecified.
FINISH_REASON_UNSPECIFIED = 0;
// Token generation reached a natural stopping point or a configured stop
// sequence.
STOP = 1;
// Token generation reached the configured maximum output tokens.
MAX_TOKENS = 2;
// Token generation stopped because the content potentially contains safety
// violations. NOTE: When streaming,
// [content][google.cloud.aiplatform.v1.Candidate.content] is empty if
// content filters blocks the output.
SAFETY = 3;
// Token generation stopped because the content potentially contains
// copyright violations.
RECITATION = 4;
// All other reasons that stopped the token generation.
OTHER = 5;
// Token generation stopped because the content contains forbidden terms.
BLOCKLIST = 6;
// Token generation stopped for potentially containing prohibited content.
PROHIBITED_CONTENT = 7;
// Token generation stopped because the content potentially contains
// Sensitive Personally Identifiable Information (SPII).
SPII = 8;
// The function call generated by the model is invalid.
MALFORMED_FUNCTION_CALL = 9;
// The model response was blocked by Model Armor.
MODEL_ARMOR = 10;
}
// Output only. Index of the candidate.
int32 index = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Content parts of the candidate.
Content content = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Confidence score of the candidate.
double score = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Average log probability score of the candidate.
double avg_logprobs = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Log-likelihood scores for the response tokens and top tokens
LogprobsResult logprobs_result = 10
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The reason why the model stopped generating tokens.
// If empty, the model has not stopped generating the tokens.
FinishReason finish_reason = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. List of ratings for the safety of a response candidate.
//
// There is at most one rating per category.
repeated SafetyRating safety_ratings = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Describes the reason the mode stopped generating tokens in
// more detail. This is only filled when `finish_reason` is set.
optional string finish_message = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Source attribution of the generated content.
CitationMetadata citation_metadata = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Metadata specifies sources used to ground generated content.
GroundingMetadata grounding_metadata = 7
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Metadata related to url context retrieval tool.
UrlContextMetadata url_context_metadata = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Metadata related to url context retrieval tool.
message UrlContextMetadata {
// Output only. List of url context.
repeated UrlMetadata url_metadata = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Context of the a single url retrieval.
message UrlMetadata {
// Status of the url retrieval.
enum UrlRetrievalStatus {
// Default value. This value is unused.
URL_RETRIEVAL_STATUS_UNSPECIFIED = 0;
// Url retrieval is successful.
URL_RETRIEVAL_STATUS_SUCCESS = 1;
// Url retrieval is failed due to error.
URL_RETRIEVAL_STATUS_ERROR = 2;
}
// Retrieved url by the tool.
string retrieved_url = 1;
// Status of the url retrieval.
UrlRetrievalStatus url_retrieval_status = 2;
}
// Logprobs Result
message LogprobsResult {
// Candidate for the logprobs token and score.
message Candidate {
// The candidates token string value.
optional string token = 1;
// The candidates token id value.
optional int32 token_id = 3;
// The candidate's log probability.
optional float log_probability = 2;
}
// Candidates with top log probabilities at each decoding step.
message TopCandidates {
// Sorted by log probability in descending order.
repeated Candidate candidates = 1;
}
// Length = total number of decoding steps.
repeated TopCandidates top_candidates = 1;
// Length = total number of decoding steps.
// The chosen candidates may or may not be in top_candidates.
repeated Candidate chosen_candidates = 2;
}
// Segment of the content.
message Segment {
// Output only. The index of a Part object within its parent Content object.
int32 part_index = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Start index in the given Part, measured in bytes. Offset from
// the start of the Part, inclusive, starting at zero.
int32 start_index = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. End index in the given Part, measured in bytes. Offset from
// the start of the Part, exclusive, starting at zero.
int32 end_index = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The text corresponding to the segment from the response.
string text = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Grounding chunk.
message GroundingChunk {
// Chunk from the web.
message Web {
// URI reference of the chunk.
optional string uri = 1;
// Title of the chunk.
optional string title = 2;
}
// Chunk from context retrieved by the retrieval tools.
message RetrievedContext {
// Tool-specific details about the retrieved context.
oneof context_details {
// Additional context for the RAG retrieval result. This is only populated
// when using the RAG retrieval tool.
RagChunk rag_chunk = 4;
}
// URI reference of the attribution.
optional string uri = 1;
// Title of the attribution.
optional string title = 2;
// Text of the attribution.
optional string text = 3;
// Output only. The full document name for the referenced Vertex AI Search
// document.
optional string document_name = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Chunk from Google Maps.
message Maps {
message PlaceAnswerSources {
// Encapsulates a review snippet.
message ReviewSnippet {
// Id of the review referencing the place.
string review_id = 1;
// A link to show the review on Google Maps.
string google_maps_uri = 2;
// Title of the review.
string title = 3;
}
// Snippets of reviews that are used to generate the answer.
repeated ReviewSnippet review_snippets = 1;
}
// URI reference of the chunk.
optional string uri = 1;
// Title of the chunk.
optional string title = 2;
// Text of the chunk.
optional string text = 3;
// This Place's resource name, in `places/{place_id}` format. Can be used
// to look up the Place.
optional string place_id = 4;
// Sources used to generate the place answer.
// This includes review snippets and photos that were used to generate the
// answer, as well as uris to flag content.
PlaceAnswerSources place_answer_sources = 5;
}
// Chunk type.
oneof chunk_type {
// Grounding chunk from the web.
Web web = 1;
// Grounding chunk from context retrieved by the retrieval tools.
RetrievedContext retrieved_context = 2;
// Grounding chunk from Google Maps.
Maps maps = 3;
}
}
// Grounding support.
message GroundingSupport {
// Segment of the content this support belongs to.
optional Segment segment = 1;
// A list of indices (into 'grounding_chunk') specifying the
// citations associated with the claim. For instance [1,3,4] means
// that grounding_chunk[1], grounding_chunk[3],
// grounding_chunk[4] are the retrieved content attributed to the claim.
repeated int32 grounding_chunk_indices = 2;
// Confidence score of the support references. Ranges from 0 to 1. 1 is the
// most confident. This list must have the same size as the
// grounding_chunk_indices.
repeated float confidence_scores = 3;
}
// Metadata returned to client when grounding is enabled.
message GroundingMetadata {
// Optional. Web search queries for the following-up web search.
repeated string web_search_queries = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. Google search entry for the following-up web searches.
optional SearchEntryPoint search_entry_point = 4
[(google.api.field_behavior) = OPTIONAL];
// List of supporting references retrieved from specified grounding source.
repeated GroundingChunk grounding_chunks = 5;
// Optional. List of grounding support.
repeated GroundingSupport grounding_supports = 6
[(google.api.field_behavior) = OPTIONAL];
// Optional. Output only. Retrieval metadata.
optional RetrievalMetadata retrieval_metadata = 7 [
(google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = OUTPUT_ONLY
];
// Optional. Output only. Resource name of the Google Maps widget context
// token to be used with the PlacesContextElement widget to render contextual
// data. This is populated only for Google Maps grounding.
optional string google_maps_widget_context_token = 8 [
(google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = OUTPUT_ONLY
];
// Source content flagging uri for a place or review. This is currently
// populated only for Google Maps grounding.
message SourceFlaggingUri {
// Id of the place or review.
string source_id = 1;
// A link where users can flag a problem with the source (place or review).
// (-- The link is generated by Google and it does not contain
// information from the user query. It may contain information of the
// content it is flagging, which can be used to identify places. --)
string flag_content_uri = 2;
}
// List of source flagging uris. This is currently populated only for Google
// Maps grounding.
repeated SourceFlaggingUri source_flagging_uris = 9;
}
// Google search entry point.
message SearchEntryPoint {
// Optional. Web content snippet that can be embedded in a web page or an app
// webview.
string rendered_content = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. Base64 encoded JSON representing array of <search term, search
// url> tuple.
bytes sdk_blob = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Metadata related to retrieval in the grounding flow.
message RetrievalMetadata {
// Optional. Score indicating how likely information from Google Search could
// help answer the prompt. The score is in the range `[0, 1]`, where 0 is the
// least likely and 1 is the most likely. This score is only populated when
// Google Search grounding and dynamic retrieval is enabled. It will be
// compared to the threshold to determine whether to trigger Google Search.
float google_search_dynamic_retrieval_score = 2
[(google.api.field_behavior) = OPTIONAL];
}
// Configuration for Model Armor integrations of prompt and responses.
message ModelArmorConfig {
// Optional. The name of the Model Armor template to use for prompt
// sanitization.
string prompt_template_name = 1 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "modelarmor.googleapis.com/Template"
}
];
// Optional. The name of the Model Armor template to use for response
// sanitization.
string response_template_name = 2 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "modelarmor.googleapis.com/Template"
}
];
}
// Represents token counting info for a single modality.
message ModalityTokenCount {
// The modality associated with this token count.
Modality modality = 1;
// Number of tokens.
int32 token_count = 2;
}