mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-14 12:42:59 +02:00
229 lines
8.5 KiB
Protocol Buffer
229 lines
8.5 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.ces.v1beta;
|
|
|
|
import "google/api/field_behavior.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/cloud/ces/v1beta/toolset_tool.proto";
|
|
import "google/protobuf/struct.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option go_package = "cloud.google.com/go/ces/apiv1beta/cespb;cespb";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "ExampleProto";
|
|
option java_package = "com.google.cloud.ces.v1beta";
|
|
|
|
// An example represents a sample conversation between the user and the
|
|
// agent(s).
|
|
message Example {
|
|
option (google.api.resource) = {
|
|
type: "ces.googleapis.com/Example"
|
|
pattern: "projects/{project}/locations/{location}/apps/{app}/examples/{example}"
|
|
plural: "examples"
|
|
singular: "example"
|
|
};
|
|
|
|
// Identifier. The unique identifier of the example.
|
|
// Format:
|
|
// `projects/{project}/locations/{location}/apps/{app}/examples/{example}`
|
|
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
|
|
|
// Required. Display name of the example.
|
|
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Human-readable description of the example.
|
|
string description = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. The agent that initially handles the conversation. If not
|
|
// specified, the example represents a conversation that is handled by the
|
|
// root agent. Format:
|
|
// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
|
|
string entry_agent = 4 [
|
|
(google.api.field_behavior) = OPTIONAL,
|
|
(google.api.resource_reference) = { type: "ces.googleapis.com/Agent" }
|
|
];
|
|
|
|
// Optional. The collection of messages that make up the conversation.
|
|
repeated Message messages = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Timestamp when the example was created.
|
|
google.protobuf.Timestamp create_time = 6
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Timestamp when the example was last updated.
|
|
google.protobuf.Timestamp update_time = 7
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The example may become invalid if referencing resources are
|
|
// deleted. Invalid examples will not be used as few-shot examples.
|
|
bool invalid = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Etag used to ensure the object hasn't changed during a read-modify-write
|
|
// operation. If the etag is empty, the update will overwrite any concurrent
|
|
// changes.
|
|
string etag = 9;
|
|
}
|
|
|
|
// A message within a conversation.
|
|
message Message {
|
|
// Optional. The role within the conversation, e.g., user, agent.
|
|
string role = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Content of the message as a series of chunks.
|
|
repeated Chunk chunks = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Timestamp when the message was sent or received. Should not be
|
|
// used if the message is part of an
|
|
// [example][google.cloud.ces.v1beta.Example].
|
|
google.protobuf.Timestamp event_time = 4
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// A chunk of content within a message.
|
|
message Chunk {
|
|
// Chunk data.
|
|
oneof data {
|
|
// Optional. Text data.
|
|
string text = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Transcript associated with the audio.
|
|
string transcript = 9 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Blob data.
|
|
Blob blob = 7 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Custom payload data.
|
|
google.protobuf.Struct payload = 11
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Image data.
|
|
Image image = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Tool execution request.
|
|
ToolCall tool_call = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Tool execution response.
|
|
ToolResponse tool_response = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Agent transfer event.
|
|
AgentTransfer agent_transfer = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// A struct represents variables that were updated in the conversation,
|
|
// keyed by variable names.
|
|
google.protobuf.Struct updated_variables = 8;
|
|
|
|
// A struct represents default variables at the start of the conversation,
|
|
// keyed by variable names.
|
|
google.protobuf.Struct default_variables = 10;
|
|
}
|
|
}
|
|
|
|
// Represents a blob input or output in the conversation.
|
|
message Blob {
|
|
// Required. The IANA standard MIME type of the source data.
|
|
string mime_type = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Raw bytes of the blob.
|
|
bytes data = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Represents an image input or output in the conversation.
|
|
message Image {
|
|
// Required. The IANA standard MIME type of the source data.
|
|
// Supported image types includes:
|
|
// * image/png
|
|
// * image/jpeg
|
|
// * image/webp
|
|
string mime_type = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Raw bytes of the image.
|
|
bytes data = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Request for the client or the agent to execute the specified tool.
|
|
message ToolCall {
|
|
// The identifier of the tool to execute. It could be either a persisted tool
|
|
// or a tool from a toolset.
|
|
oneof tool_identifier {
|
|
// Optional. The name of the tool to execute.
|
|
// Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
|
|
string tool = 2 [
|
|
(google.api.field_behavior) = OPTIONAL,
|
|
(google.api.resource_reference) = { type: "ces.googleapis.com/Tool" }
|
|
];
|
|
|
|
// Optional. The toolset tool to execute.
|
|
ToolsetTool toolset_tool = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Optional. The unique identifier of the tool call. If populated, the client
|
|
// should return the execution result with the matching ID in
|
|
// [ToolResponse][google.cloud.ces.v1beta.ToolResponse.id].
|
|
string id = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Display name of the tool.
|
|
string display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. The input parameters and values for the tool in JSON object
|
|
// format.
|
|
google.protobuf.Struct args = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// The execution result of a specific tool from the client or the agent.
|
|
message ToolResponse {
|
|
// The identifier of the tool that got executed. It could be either a
|
|
// persisted tool or a tool from a toolset.
|
|
oneof tool_identifier {
|
|
// Optional. The name of the tool to execute.
|
|
// Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
|
|
string tool = 2 [
|
|
(google.api.field_behavior) = OPTIONAL,
|
|
(google.api.resource_reference) = { type: "ces.googleapis.com/Tool" }
|
|
];
|
|
|
|
// Optional. The toolset tool that got executed.
|
|
ToolsetTool toolset_tool = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Optional. The matching ID of the [tool
|
|
// call][google.cloud.ces.v1beta.ToolCall] the response is for.
|
|
string id = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Display name of the tool.
|
|
string display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Required. The tool execution result in JSON object format.
|
|
// Use "output" key to specify tool response and "error" key to specify
|
|
// error details (if any). If "output" and "error" keys are not specified,
|
|
// then whole "response" is treated as tool execution result.
|
|
google.protobuf.Struct response = 3 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Represents an event indicating the transfer of a conversation to a different
|
|
// agent.
|
|
message AgentTransfer {
|
|
// Required. The agent to which the conversation is being transferred. The
|
|
// agent will handle the conversation from this point forward. Format:
|
|
// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
|
|
string target_agent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "ces.googleapis.com/Agent" }
|
|
];
|
|
|
|
// Output only. Display name of the agent.
|
|
string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|