mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-18 13:08:24 +02:00
771 lines
28 KiB
Protocol Buffer
771 lines
28 KiB
Protocol Buffer
// Copyright 2025 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.ai.generativelanguage.v1beta;
|
|
|
|
import "google/api/field_behavior.proto";
|
|
import "google/protobuf/duration.proto";
|
|
import "google/protobuf/struct.proto";
|
|
import "google/type/interval.proto";
|
|
import "google/type/latlng.proto";
|
|
|
|
option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "ContentProto";
|
|
option java_package = "com.google.ai.generativelanguage.v1beta";
|
|
|
|
// Type contains the list of OpenAPI data types as defined by
|
|
// https://spec.openapis.org/oas/v3.0.3#data-types
|
|
enum Type {
|
|
// Not specified, should not be used.
|
|
TYPE_UNSPECIFIED = 0;
|
|
|
|
// String type.
|
|
STRING = 1;
|
|
|
|
// Number type.
|
|
NUMBER = 2;
|
|
|
|
// Integer type.
|
|
INTEGER = 3;
|
|
|
|
// Boolean type.
|
|
BOOLEAN = 4;
|
|
|
|
// Array type.
|
|
ARRAY = 5;
|
|
|
|
// Object type.
|
|
OBJECT = 6;
|
|
|
|
// Null type.
|
|
NULL = 7;
|
|
}
|
|
|
|
// 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 {
|
|
// Ordered `Parts` that constitute a single message. Parts may have different
|
|
// MIME types.
|
|
repeated Part parts = 1;
|
|
|
|
// 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 = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// 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 the `inline_data` field is filled with raw bytes.
|
|
message Part {
|
|
oneof data {
|
|
// Inline text.
|
|
string text = 2;
|
|
|
|
// Inline media bytes.
|
|
Blob inline_data = 3;
|
|
|
|
// A predicted `FunctionCall` returned from the model that contains
|
|
// a string representing the `FunctionDeclaration.name` with the
|
|
// arguments and their values.
|
|
FunctionCall function_call = 4;
|
|
|
|
// 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 is used as context to
|
|
// the model.
|
|
FunctionResponse function_response = 5;
|
|
|
|
// URI based data.
|
|
FileData file_data = 6;
|
|
|
|
// Code generated by the model that is meant to be executed.
|
|
ExecutableCode executable_code = 9;
|
|
|
|
// Result of executing the `ExecutableCode`.
|
|
CodeExecutionResult code_execution_result = 10;
|
|
}
|
|
|
|
// Controls extra preprocessing of data.
|
|
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 = 14 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Optional. Indicates if the part is thought from the model.
|
|
bool thought = 11 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. An opaque signature for the thought so it can be reused in
|
|
// subsequent requests.
|
|
bytes thought_signature = 13 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Custom metadata associated with the Part.
|
|
// Agents using genai.Part as content representation may need to keep track
|
|
// of the additional information. For example it can be name of a file/source
|
|
// from which the Part originates or a way to multiplex multiple Part streams.
|
|
google.protobuf.Struct part_metadata = 8;
|
|
}
|
|
|
|
// A datatype containing media that is part of a `FunctionResponse` message.
|
|
//
|
|
// A `FunctionResponsePart` consists of data which has an associated datatype. A
|
|
// `FunctionResponsePart` can only contain one of the accepted types in
|
|
// `FunctionResponsePart.data`.
|
|
//
|
|
// A `FunctionResponsePart` must have a fixed IANA MIME type identifying the
|
|
// type and subtype of the media if the `inline_data` field is filled with raw
|
|
// bytes.
|
|
message FunctionResponsePart {
|
|
// The data of the function response part.
|
|
oneof data {
|
|
// Inline media bytes.
|
|
FunctionResponseBlob inline_data = 1;
|
|
}
|
|
}
|
|
|
|
// Raw media bytes.
|
|
//
|
|
// Text should not be sent as raw bytes, use the 'text' field.
|
|
message Blob {
|
|
// The IANA standard MIME type of the source data.
|
|
// Examples:
|
|
// - image/png
|
|
// - image/jpeg
|
|
// If an unsupported MIME type is provided, an error will be returned. For a
|
|
// complete list of supported types, see [Supported file
|
|
// formats](https://ai.google.dev/gemini-api/docs/prompting_with_media#supported_file_formats).
|
|
string mime_type = 1;
|
|
|
|
// Raw bytes for media formats.
|
|
bytes data = 2;
|
|
}
|
|
|
|
// Raw media bytes for function response.
|
|
//
|
|
// Text should not be sent as raw bytes, use the 'FunctionResponse.response'
|
|
// field.
|
|
message FunctionResponseBlob {
|
|
// The IANA standard MIME type of the source data.
|
|
// Examples:
|
|
// - image/png
|
|
// - image/jpeg
|
|
// If an unsupported MIME type is provided, an error will be returned. For a
|
|
// complete list of supported types, see [Supported file
|
|
// formats](https://ai.google.dev/gemini-api/docs/prompting_with_media#supported_file_formats).
|
|
string mime_type = 1;
|
|
|
|
// Raw bytes for media formats.
|
|
bytes data = 2;
|
|
}
|
|
|
|
// URI based data.
|
|
message FileData {
|
|
// Optional. The IANA standard MIME type of the source data.
|
|
string mime_type = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// 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 will be 1.0. The fps range is (0.0, 24.0].
|
|
double fps = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Code generated by the model that is meant to be executed, and the result
|
|
// returned to the model.
|
|
//
|
|
// Only generated when using the `CodeExecution` tool, in which the code will
|
|
// be automatically executed, and a corresponding `CodeExecutionResult` will
|
|
// also be generated.
|
|
message ExecutableCode {
|
|
// Supported programming languages for the generated code.
|
|
enum Language {
|
|
// Unspecified language. This value should not be used.
|
|
LANGUAGE_UNSPECIFIED = 0;
|
|
|
|
// Python >= 3.10, with numpy and simpy available.
|
|
PYTHON = 1;
|
|
}
|
|
|
|
// Required. Programming language of the `code`.
|
|
Language language = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The code to be executed.
|
|
string code = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Result of executing the `ExecutableCode`.
|
|
//
|
|
// Only generated when using the `CodeExecution`, and always follows a `part`
|
|
// containing the `ExecutableCode`.
|
|
message CodeExecutionResult {
|
|
// Enumeration of possible outcomes of the code execution.
|
|
enum Outcome {
|
|
// Unspecified status. This value should not be used.
|
|
OUTCOME_UNSPECIFIED = 0;
|
|
|
|
// Code execution completed successfully.
|
|
OUTCOME_OK = 1;
|
|
|
|
// Code execution finished but with a failure. `stderr` should contain the
|
|
// reason.
|
|
OUTCOME_FAILED = 2;
|
|
|
|
// Code execution ran for too long, and was cancelled. There may or may not
|
|
// be a partial output present.
|
|
OUTCOME_DEADLINE_EXCEEDED = 3;
|
|
}
|
|
|
|
// Required. Outcome of the code execution.
|
|
Outcome outcome = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Contains stdout when code execution is successful, stderr or
|
|
// other description otherwise.
|
|
string output = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Tool details that the model may use to generate response.
|
|
//
|
|
// A `Tool` is a piece of code that enables the system to interact with
|
|
// external systems to perform an action, or set of actions, outside of
|
|
// knowledge and scope of the model.
|
|
//
|
|
// Next ID: 12
|
|
message Tool {
|
|
// GoogleSearch tool type.
|
|
// Tool to support Google Search in Model. Powered by Google.
|
|
message GoogleSearch {
|
|
// Optional. Filter search results to a specific time range.
|
|
// If customers set a start time, they must set an end time (and vice
|
|
// versa).
|
|
google.type.Interval time_range_filter = 2
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Computer Use tool type.
|
|
message ComputerUse {
|
|
// Represents the environment being operated, such as a web browser.
|
|
enum Environment {
|
|
// Defaults to browser.
|
|
ENVIRONMENT_UNSPECIFIED = 0;
|
|
|
|
// Operates in a web browser.
|
|
ENVIRONMENT_BROWSER = 1;
|
|
}
|
|
|
|
// Required. The environment being operated.
|
|
Environment environment = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. By default, predefined functions are included in the final
|
|
// model call. Some of them can be explicitly excluded from being
|
|
// automatically included. This can serve two purposes:
|
|
// 1. Using a more restricted / different action space.
|
|
// 2. Improving the definitions / instructions of predefined functions.
|
|
repeated string excluded_predefined_functions = 5
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Optional. A list of `FunctionDeclarations` available to the model that can
|
|
// be used for function calling.
|
|
//
|
|
// The model or system does not execute the function. Instead the defined
|
|
// function may be returned as a
|
|
// [FunctionCall][google.ai.generativelanguage.v1beta.Part.function_call] with
|
|
// arguments to the client side for execution. The model may decide to call a
|
|
// subset of these functions by populating
|
|
// [FunctionCall][google.ai.generativelanguage.v1beta.Part.function_call] in
|
|
// the response. The next conversation turn may contain a
|
|
// [FunctionResponse][google.ai.generativelanguage.v1beta.Part.function_response]
|
|
// with the [Content.role][google.ai.generativelanguage.v1beta.Content.role]
|
|
// "function" generation context for the next model turn.
|
|
repeated FunctionDeclaration function_declarations = 1
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Retrieval tool that is powered by Google search.
|
|
GoogleSearchRetrieval google_search_retrieval = 2
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Enables the model to execute code as part of generation.
|
|
CodeExecution code_execution = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. GoogleSearch tool type.
|
|
// Tool to support Google Search in Model. Powered by Google.
|
|
GoogleSearch google_search = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Tool to support the model interacting directly with the computer.
|
|
// If enabled, it automatically populates computer-use specific Function
|
|
// Declarations.
|
|
ComputerUse computer_use = 6 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Tool to support URL context retrieval.
|
|
UrlContext url_context = 8 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. FileSearch tool type.
|
|
// Tool to retrieve knowledge from Semantic Retrieval corpora.
|
|
FileSearch file_search = 9 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Tool that allows grounding the model's response with geospatial
|
|
// context related to the user's query.
|
|
GoogleMaps google_maps = 11 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// The GoogleMaps Tool that provides geospatial context for the user's query.
|
|
message GoogleMaps {
|
|
// Optional. Whether to return a widget context token in the GroundingMetadata
|
|
// of the response. Developers can use the widget context token to render a
|
|
// Google Maps widget with geospatial context related to the places that the
|
|
// model references in the response.
|
|
bool enable_widget = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Tool to support URL context retrieval.
|
|
message UrlContext {}
|
|
|
|
// The FileSearch tool that retrieves knowledge from Semantic Retrieval corpora.
|
|
// Files are imported to Semantic Retrieval corpora using the ImportFile API.
|
|
message FileSearch {
|
|
// The semantic retrieval resource to retrieve from.
|
|
message RetrievalResource {
|
|
// Required. The name of the semantic retrieval resource to retrieve from.
|
|
// Example: `ragStores/my-rag-store-123`
|
|
string rag_store_name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Semantic retrieval configuration.
|
|
message RetrievalConfig {
|
|
// Optional. The number of semantic retrieval chunks to retrieve.
|
|
optional int32 top_k = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Metadata filter to apply to the semantic retrieval documents
|
|
// and chunks.
|
|
string metadata_filter = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Required. Semantic retrieval resources to retrieve from.
|
|
// Currently only supports one corpus. In the future we may open up multiple
|
|
// corpora support.
|
|
repeated RetrievalResource retrieval_resources = 1
|
|
[(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. The configuration for the retrieval.
|
|
RetrievalConfig retrieval_config = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Tool to retrieve public web data for grounding, powered by Google.
|
|
message GoogleSearchRetrieval {
|
|
// Specifies the dynamic retrieval configuration for the given source.
|
|
DynamicRetrievalConfig dynamic_retrieval_config = 1;
|
|
}
|
|
|
|
// Describes the options to customize dynamic retrieval.
|
|
message DynamicRetrievalConfig {
|
|
// The mode of the predictor to be used in dynamic retrieval.
|
|
enum Mode {
|
|
// Always trigger retrieval.
|
|
MODE_UNSPECIFIED = 0;
|
|
|
|
// Run retrieval only when system decides it is necessary.
|
|
MODE_DYNAMIC = 1;
|
|
}
|
|
|
|
// The mode of the predictor to be used in dynamic retrieval.
|
|
Mode mode = 1;
|
|
|
|
// The threshold to be used in dynamic retrieval.
|
|
// If not set, a system default value is used.
|
|
optional float dynamic_threshold = 2;
|
|
}
|
|
|
|
// Tool that executes code generated by the model, and automatically returns
|
|
// the result to the model.
|
|
//
|
|
// See also `ExecutableCode` and `CodeExecutionResult` which are only generated
|
|
// when using this tool.
|
|
message CodeExecution {}
|
|
|
|
// The Tool configuration containing parameters for specifying `Tool` use
|
|
// in the request.
|
|
message ToolConfig {
|
|
// Optional. Function calling config.
|
|
FunctionCallingConfig function_calling_config = 1
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Retrieval config.
|
|
RetrievalConfig retrieval_config = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Retrieval config.
|
|
message RetrievalConfig {
|
|
// Optional. The location of the user.
|
|
google.type.LatLng lat_lng = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. The language code of the user.
|
|
// Language code for content. Use language tags defined by
|
|
// [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
|
|
string language_code = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Configuration for specifying function calling behavior.
|
|
message FunctionCallingConfig {
|
|
// Defines the execution behavior for function calling by defining the
|
|
// execution mode.
|
|
enum Mode {
|
|
// Unspecified function calling mode. This value should not be used.
|
|
MODE_UNSPECIFIED = 0;
|
|
|
|
// Default model behavior, model decides to predict either a function call
|
|
// or a natural language response.
|
|
AUTO = 1;
|
|
|
|
// Model is constrained to always predicting a function call only.
|
|
// If "allowed_function_names" are set, the predicted function call will be
|
|
// limited to any one of "allowed_function_names", else the predicted
|
|
// function call will be any one of the provided "function_declarations".
|
|
ANY = 2;
|
|
|
|
// Model will not predict any function call. Model behavior is same as when
|
|
// not passing any function declarations.
|
|
NONE = 3;
|
|
|
|
// Model decides to predict either a function call
|
|
// or a natural language response, but will validate function calls with
|
|
// constrained decoding.
|
|
// If "allowed_function_names" are set, the predicted function call will be
|
|
// limited to any one of "allowed_function_names", else the predicted
|
|
// function call will be any one of the provided "function_declarations".
|
|
VALIDATED = 4;
|
|
}
|
|
|
|
// Optional. Specifies the mode in which function calling should execute. If
|
|
// unspecified, the default value will be set to AUTO.
|
|
Mode mode = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. A set of function names that, when provided, limits the functions
|
|
// the model will call.
|
|
//
|
|
// This should only be set when the Mode is ANY or VALIDATED. Function names
|
|
// should match [FunctionDeclaration.name]. When set, model will
|
|
// predict a function call from only allowed function names.
|
|
repeated string allowed_function_names = 2
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Structured representation of a function declaration as defined by the
|
|
// [OpenAPI 3.03 specification](https://spec.openapis.org/oas/v3.0.3). Included
|
|
// in this declaration are the function name and parameters. This
|
|
// FunctionDeclaration is a representation of a block of code that can be used
|
|
// as a `Tool` by the model and executed by the client.
|
|
message FunctionDeclaration {
|
|
// Defines the function behavior. Defaults to `BLOCKING`.
|
|
enum Behavior {
|
|
// This value is unused.
|
|
UNSPECIFIED = 0;
|
|
|
|
// If set, the system will wait to receive the function response before
|
|
// continuing the conversation.
|
|
BLOCKING = 1;
|
|
|
|
// If set, the system will not wait to receive the function response.
|
|
// Instead, it will attempt to handle function responses as they become
|
|
// available while maintaining the conversation between the user and the
|
|
// model.
|
|
NON_BLOCKING = 2;
|
|
}
|
|
|
|
// Required. The name of the function.
|
|
// Must be a-z, A-Z, 0-9, or contain underscores, colons, dots, and dashes,
|
|
// with a maximum length of 64.
|
|
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. A brief description of the function.
|
|
string description = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Describes the parameters to this function. Reflects the Open
|
|
// API 3.03 Parameter Object string Key: the name of the parameter. Parameter
|
|
// names are case sensitive. Schema Value: the Schema defining the type used
|
|
// for the parameter.
|
|
optional Schema parameters = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Describes the parameters to the function in JSON Schema format.
|
|
// The schema must describe an object where the properties are the parameters
|
|
// to the function. For example:
|
|
//
|
|
// ```
|
|
// {
|
|
// "type": "object",
|
|
// "properties": {
|
|
// "name": { "type": "string" },
|
|
// "age": { "type": "integer" }
|
|
// },
|
|
// "additionalProperties": false,
|
|
// "required": ["name", "age"],
|
|
// "propertyOrdering": ["name", "age"]
|
|
// }
|
|
// ```
|
|
//
|
|
// This field is mutually exclusive with `parameters`.
|
|
optional google.protobuf.Value parameters_json_schema = 6
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Describes the output from this function in JSON Schema format.
|
|
// Reflects the Open API 3.03 Response Object. The Schema defines the type
|
|
// used for the response value of the function.
|
|
optional Schema response = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Describes the output from this function in JSON Schema format.
|
|
// The value specified by the schema is the response value of the function.
|
|
//
|
|
// This field is mutually exclusive with `response`.
|
|
optional google.protobuf.Value response_json_schema = 7
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Specifies the function Behavior.
|
|
// Currently only supported by the BidiGenerateContent method.
|
|
Behavior behavior = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// A predicted `FunctionCall` returned from the model that contains
|
|
// a string representing the `FunctionDeclaration.name` with the
|
|
// arguments and their values.
|
|
message FunctionCall {
|
|
// Optional. The unique id of the function call. If populated, the client to
|
|
// execute the `function_call` and return the response with the matching `id`.
|
|
string id = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Required. The name of the function to call.
|
|
// Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum
|
|
// length of 64.
|
|
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. The function parameters and values in JSON object format.
|
|
optional google.protobuf.Struct args = 2
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// The result output from a `FunctionCall` that contains a string
|
|
// representing the `FunctionDeclaration.name` and a structured JSON
|
|
// object containing any output from the function is used as context to
|
|
// the model. This should contain the result of a`FunctionCall` made
|
|
// based on model prediction.
|
|
message FunctionResponse {
|
|
// Specifies how the response should be scheduled in the conversation.
|
|
enum Scheduling {
|
|
// This value is unused.
|
|
SCHEDULING_UNSPECIFIED = 0;
|
|
|
|
// Only add the result to the conversation context, do not interrupt or
|
|
// trigger generation.
|
|
SILENT = 1;
|
|
|
|
// Add the result to the conversation context, and prompt to generate output
|
|
// without interrupting ongoing generation.
|
|
WHEN_IDLE = 2;
|
|
|
|
// Add the result to the conversation context, interrupt ongoing generation
|
|
// and prompt to generate output.
|
|
INTERRUPT = 3;
|
|
}
|
|
|
|
// Optional. The id of the function call this response is for. Populated by
|
|
// the client to match the corresponding function call `id`.
|
|
string id = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Required. The name of the function to call.
|
|
// Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum
|
|
// length of 64.
|
|
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The function response in JSON object format.
|
|
// Callers can use any keys of their choice that fit the function's syntax
|
|
// to return the function output, e.g. "output", "result", etc.
|
|
// In particular, if the function call failed to execute, the response can
|
|
// have an "error" key to return error details to the model.
|
|
google.protobuf.Struct response = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Ordered `Parts` that constitute a function response. Parts may
|
|
// have different IANA MIME types.
|
|
repeated FunctionResponsePart parts = 8
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Signals that function call continues, and more responses will be
|
|
// returned, turning the function call into a generator.
|
|
// Is only applicable to NON_BLOCKING function calls, is ignored otherwise.
|
|
// If set to false, future responses will not be considered.
|
|
// It is allowed to return empty `response` with `will_continue=False` to
|
|
// signal that the function call is finished. This may still trigger the model
|
|
// generation. To avoid triggering the generation and finish the function
|
|
// call, additionally set `scheduling` to `SILENT`.
|
|
bool will_continue = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Specifies how the response should be scheduled in the
|
|
// conversation. Only applicable to NON_BLOCKING function calls, is ignored
|
|
// otherwise. Defaults to WHEN_IDLE.
|
|
optional Scheduling scheduling = 5 [(google.api.field_behavior) = 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).
|
|
message Schema {
|
|
// Required. Data type.
|
|
Type type = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. The format of the data. Any value is allowed, but most do not
|
|
// trigger any special functionality.
|
|
string format = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. The title of the schema.
|
|
string title = 24 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. A brief description of the parameter. This could contain examples
|
|
// of use. Parameter description may be formatted as Markdown.
|
|
string description = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Indicates if the value may be null.
|
|
bool nullable = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Possible values of the element of Type.STRING with enum format.
|
|
// For example we can define an Enum Direction as :
|
|
// {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}
|
|
repeated string enum = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Schema of the elements of Type.ARRAY.
|
|
optional Schema items = 6 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Maximum number of the elements for Type.ARRAY.
|
|
int64 max_items = 21 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Minimum number of the elements for Type.ARRAY.
|
|
int64 min_items = 22 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Properties of Type.OBJECT.
|
|
map<string, Schema> properties = 7 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Required properties of Type.OBJECT.
|
|
repeated string required = 8 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Minimum number of the properties for Type.OBJECT.
|
|
int64 min_properties = 9 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Maximum number of the properties for Type.OBJECT.
|
|
int64 max_properties = 10 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER
|
|
// Minimum value of the Type.INTEGER and Type.NUMBER
|
|
optional double minimum = 11 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Maximum value of the Type.INTEGER and Type.NUMBER
|
|
optional double maximum = 12 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. SCHEMA FIELDS FOR TYPE STRING
|
|
// Minimum length of the Type.STRING
|
|
int64 min_length = 13 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Maximum length of the Type.STRING
|
|
int64 max_length = 14 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Pattern of the Type.STRING to restrict a string to a regular
|
|
// expression.
|
|
string pattern = 15 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Example of the object. Will only populated when the object is the
|
|
// root.
|
|
google.protobuf.Value example = 16 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. The value should be validated against any (one or more) of the
|
|
// subschemas in the list.
|
|
repeated Schema any_of = 18 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. The order of the properties.
|
|
// Not a standard field in open api spec. Used to determine the order of the
|
|
// properties in the response.
|
|
repeated string property_ordering = 23
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Default value of the field. Per JSON Schema, this field is
|
|
// intended for documentation generators and doesn't affect validation. Thus
|
|
// it's included here and ignored so that developers who send schemas with a
|
|
// `default` field don't get unknown-field errors.
|
|
google.protobuf.Value default = 25 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Passage included inline with a grounding configuration.
|
|
message GroundingPassage {
|
|
// Identifier for the passage for attributing this passage in grounded
|
|
// answers.
|
|
string id = 1;
|
|
|
|
// Content of the passage.
|
|
Content content = 2;
|
|
}
|
|
|
|
// A repeated list of passages.
|
|
message GroundingPassages {
|
|
// List of passages.
|
|
repeated GroundingPassage passages = 1;
|
|
}
|
|
|
|
// 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;
|
|
}
|