mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-16 13:00:34 +02:00
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
1069 lines
35 KiB
Protocol Buffer
1069 lines
35 KiB
Protocol Buffer
// 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 candidate’s token string value.
|
||
optional string token = 1;
|
||
|
||
// The candidate’s 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;
|
||
}
|