You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
339 lines
13 KiB
339 lines
13 KiB
// Copyright 2019 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.dialogflow.v2beta1;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/longrunning/operations.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "google/protobuf/field_mask.proto";
|
|
import "google/protobuf/struct.proto";
|
|
|
|
option cc_enable_arenas = true;
|
|
option csharp_namespace = "Google.Cloud.Dialogflow.V2beta1";
|
|
option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1;dialogflow";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "AgentProto";
|
|
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
|
option objc_class_prefix = "DF";
|
|
|
|
// Agents are best described as Natural Language Understanding (NLU) modules
|
|
// that transform user requests into actionable data. You can include agents
|
|
// in your app, product, or service to determine user intent and respond to the
|
|
// user in a natural way.
|
|
//
|
|
// After you create an agent, you can add [Intents][google.cloud.dialogflow.v2beta1.Intents], [Contexts][google.cloud.dialogflow.v2beta1.Contexts],
|
|
// [Entity Types][google.cloud.dialogflow.v2beta1.EntityTypes], [Webhooks][google.cloud.dialogflow.v2beta1.WebhookRequest], and so on to
|
|
// manage the flow of a conversation and match user input to predefined intents
|
|
// and actions.
|
|
//
|
|
// You can create an agent using both Dialogflow Standard Edition and
|
|
// Dialogflow Enterprise Edition. For details, see
|
|
// [Dialogflow
|
|
// Editions](https://cloud.google.com/dialogflow-enterprise/docs/editions).
|
|
//
|
|
// You can save your agent for backup or versioning by exporting the agent by
|
|
// using the [ExportAgent][google.cloud.dialogflow.v2beta1.Agents.ExportAgent] method. You can import a saved
|
|
// agent by using the [ImportAgent][google.cloud.dialogflow.v2beta1.Agents.ImportAgent] method.
|
|
//
|
|
// Dialogflow provides several
|
|
// [prebuilt
|
|
// agents](https://cloud.google.com/dialogflow-enterprise/docs/agents-prebuilt)
|
|
// for common conversation scenarios such as determining a date and time,
|
|
// converting currency, and so on.
|
|
//
|
|
// For more information about agents, see the
|
|
// [Dialogflow
|
|
// documentation](https://cloud.google.com/dialogflow-enterprise/docs/agents-overview).
|
|
service Agents {
|
|
// Retrieves the specified agent.
|
|
rpc GetAgent(GetAgentRequest) returns (Agent) {
|
|
option (google.api.http) = {
|
|
get: "/v2beta1/{parent=projects/*}/agent"
|
|
};
|
|
}
|
|
|
|
// Returns the list of agents.
|
|
//
|
|
// Since there is at most one conversational agent per project, this method is
|
|
// useful primarily for listing all agents across projects the caller has
|
|
// access to. One can achieve that with a wildcard project collection id "-".
|
|
// Refer to [List
|
|
// Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).
|
|
rpc SearchAgents(SearchAgentsRequest) returns (SearchAgentsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v2beta1/{parent=projects/*}/agent:search"
|
|
};
|
|
}
|
|
|
|
// Trains the specified agent.
|
|
//
|
|
//
|
|
// Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
|
|
rpc TrainAgent(TrainAgentRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v2beta1/{parent=projects/*}/agent:train"
|
|
body: "*"
|
|
};
|
|
}
|
|
|
|
// Exports the specified agent to a ZIP file.
|
|
//
|
|
//
|
|
// Operation <response: [ExportAgentResponse][google.cloud.dialogflow.v2beta1.ExportAgentResponse]>
|
|
rpc ExportAgent(ExportAgentRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v2beta1/{parent=projects/*}/agent:export"
|
|
body: "*"
|
|
};
|
|
}
|
|
|
|
// Imports the specified agent from a ZIP file.
|
|
//
|
|
// Uploads new intents and entity types without deleting the existing ones.
|
|
// Intents and entity types with the same name are replaced with the new
|
|
// versions from ImportAgentRequest.
|
|
//
|
|
//
|
|
// Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
|
|
rpc ImportAgent(ImportAgentRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v2beta1/{parent=projects/*}/agent:import"
|
|
body: "*"
|
|
};
|
|
}
|
|
|
|
// Restores the specified agent from a ZIP file.
|
|
//
|
|
// Replaces the current agent version with a new one. All the intents and
|
|
// entity types in the older version are deleted.
|
|
//
|
|
//
|
|
// Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
|
|
rpc RestoreAgent(RestoreAgentRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v2beta1/{parent=projects/*}/agent:restore"
|
|
body: "*"
|
|
};
|
|
}
|
|
}
|
|
|
|
// Represents a conversational agent.
|
|
message Agent {
|
|
// Match mode determines how intents are detected from user queries.
|
|
enum MatchMode {
|
|
// Not specified.
|
|
MATCH_MODE_UNSPECIFIED = 0;
|
|
|
|
// Best for agents with a small number of examples in intents and/or wide
|
|
// use of templates syntax and composite entities.
|
|
MATCH_MODE_HYBRID = 1;
|
|
|
|
// Can be used for agents with a large number of examples in intents,
|
|
// especially the ones using @sys.any or very large developer entities.
|
|
MATCH_MODE_ML_ONLY = 2;
|
|
}
|
|
|
|
// Required. The project of this agent.
|
|
// Format: `projects/<Project ID>`.
|
|
string parent = 1;
|
|
|
|
// Required. The name of this agent.
|
|
string display_name = 2;
|
|
|
|
// Required. The default language of the agent as a language tag. See
|
|
// [Language
|
|
// Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
|
|
// for a list of the currently supported language codes. This field cannot be
|
|
// set by the `Update` method.
|
|
string default_language_code = 3;
|
|
|
|
// Optional. The list of all languages supported by this agent (except for the
|
|
// `default_language_code`).
|
|
repeated string supported_language_codes = 4;
|
|
|
|
// Required. The time zone of this agent from the
|
|
// [time zone database](https://www.iana.org/time-zones), e.g.,
|
|
// America/New_York, Europe/Paris.
|
|
string time_zone = 5;
|
|
|
|
// Optional. The description of this agent.
|
|
// The maximum length is 500 characters. If exceeded, the request is rejected.
|
|
string description = 6;
|
|
|
|
// Optional. The URI of the agent's avatar.
|
|
// Avatars are used throughout the Dialogflow console and in the self-hosted
|
|
// [Web
|
|
// Demo](https://cloud.google.com/dialogflow-enterprise/docs/integrations/web-demo)
|
|
// integration.
|
|
string avatar_uri = 7;
|
|
|
|
// Optional. Determines whether this agent should log conversation queries.
|
|
bool enable_logging = 8;
|
|
|
|
// Optional. Determines how intents are detected from user queries.
|
|
MatchMode match_mode = 9;
|
|
|
|
// Optional. To filter out false positive results and still get variety in
|
|
// matched natural language inputs for your agent, you can tune the machine
|
|
// learning classification threshold. If the returned score value is less than
|
|
// the threshold value, then a fallback intent will be triggered or, if there
|
|
// are no fallback intents defined, no intent will be triggered. The score
|
|
// values range from 0.0 (completely uncertain) to 1.0 (completely certain).
|
|
// If set to 0.0, the default of 0.3 is used.
|
|
float classification_threshold = 10;
|
|
}
|
|
|
|
// The request message for [Agents.GetAgent][google.cloud.dialogflow.v2beta1.Agents.GetAgent].
|
|
message GetAgentRequest {
|
|
// Required. The project that the agent to fetch is associated with.
|
|
// Format: `projects/<Project ID>`.
|
|
string parent = 1;
|
|
}
|
|
|
|
// The request message for [Agents.SearchAgents][google.cloud.dialogflow.v2beta1.Agents.SearchAgents].
|
|
message SearchAgentsRequest {
|
|
// Required. The project to list agents from.
|
|
// Format: `projects/<Project ID or '-'>`.
|
|
string parent = 1;
|
|
|
|
// Optional. The maximum number of items to return in a single page. By
|
|
// default 100 and at most 1000.
|
|
int32 page_size = 2;
|
|
|
|
// Optional. The next_page_token value returned from a previous list request.
|
|
string page_token = 3;
|
|
}
|
|
|
|
// The response message for [Agents.SearchAgents][google.cloud.dialogflow.v2beta1.Agents.SearchAgents].
|
|
message SearchAgentsResponse {
|
|
// The list of agents. There will be a maximum number of items returned based
|
|
// on the page_size field in the request.
|
|
repeated Agent agents = 1;
|
|
|
|
// Token to retrieve the next page of results, or empty if there are no
|
|
// more results in the list.
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
// The request message for [Agents.TrainAgent][google.cloud.dialogflow.v2beta1.Agents.TrainAgent].
|
|
message TrainAgentRequest {
|
|
// Required. The project that the agent to train is associated with.
|
|
// Format: `projects/<Project ID>`.
|
|
string parent = 1;
|
|
}
|
|
|
|
// The request message for [Agents.ExportAgent][google.cloud.dialogflow.v2beta1.Agents.ExportAgent].
|
|
message ExportAgentRequest {
|
|
// Required. The project that the agent to export is associated with.
|
|
// Format: `projects/<Project ID>`.
|
|
string parent = 1;
|
|
|
|
// Optional. The
|
|
// [Google Cloud Storage](https://cloud.google.com/storage/docs/)
|
|
// URI to export the agent to.
|
|
// The format of this URI must be `gs://<bucket-name>/<object-name>`.
|
|
// If left unspecified, the serialized agent is returned inline.
|
|
string agent_uri = 2;
|
|
}
|
|
|
|
// The response message for [Agents.ExportAgent][google.cloud.dialogflow.v2beta1.Agents.ExportAgent].
|
|
message ExportAgentResponse {
|
|
// Required. The exported agent.
|
|
oneof agent {
|
|
// The URI to a file containing the exported agent. This field is populated
|
|
// only if `agent_uri` is specified in `ExportAgentRequest`.
|
|
string agent_uri = 1;
|
|
|
|
// The exported agent.
|
|
//
|
|
// Example for how to export an agent to a zip file via a command line:
|
|
// <pre>curl \
|
|
// 'https://dialogflow.googleapis.com/v2beta1/projects/<project_name>/agent:export'\
|
|
// -X POST \
|
|
// -H 'Authorization: Bearer '$(gcloud auth application-default
|
|
// print-access-token) \
|
|
// -H 'Accept: application/json' \
|
|
// -H 'Content-Type: application/json' \
|
|
// --compressed \
|
|
// --data-binary '{}' \
|
|
// | grep agentContent | sed -e 's/.*"agentContent": "\([^"]*\)".*/\1/' \
|
|
// | base64 --decode > <agent zip file></pre>
|
|
bytes agent_content = 2;
|
|
}
|
|
}
|
|
|
|
// The request message for [Agents.ImportAgent][google.cloud.dialogflow.v2beta1.Agents.ImportAgent].
|
|
message ImportAgentRequest {
|
|
// Required. The project that the agent to import is associated with.
|
|
// Format: `projects/<Project ID>`.
|
|
string parent = 1;
|
|
|
|
// Required. The agent to import.
|
|
oneof agent {
|
|
// The URI to a Google Cloud Storage file containing the agent to import.
|
|
// Note: The URI must start with "gs://".
|
|
string agent_uri = 2;
|
|
|
|
// The agent to import.
|
|
//
|
|
// Example for how to import an agent via the command line:
|
|
// <pre>curl \
|
|
// 'https://dialogflow.googleapis.com/v2beta1/projects/<project_name>/agent:import\
|
|
// -X POST \
|
|
// -H 'Authorization: Bearer '$(gcloud auth application-default
|
|
// print-access-token) \
|
|
// -H 'Accept: application/json' \
|
|
// -H 'Content-Type: application/json' \
|
|
// --compressed \
|
|
// --data-binary "{
|
|
// 'agentContent': '$(cat <agent zip file> | base64 -w 0)'
|
|
// }"</pre>
|
|
bytes agent_content = 3;
|
|
}
|
|
}
|
|
|
|
// The request message for [Agents.RestoreAgent][google.cloud.dialogflow.v2beta1.Agents.RestoreAgent].
|
|
message RestoreAgentRequest {
|
|
// Required. The project that the agent to restore is associated with.
|
|
// Format: `projects/<Project ID>`.
|
|
string parent = 1;
|
|
|
|
// Required. The agent to restore.
|
|
oneof agent {
|
|
// The URI to a Google Cloud Storage file containing the agent to restore.
|
|
// Note: The URI must start with "gs://".
|
|
string agent_uri = 2;
|
|
|
|
// The agent to restore.
|
|
//
|
|
// Example for how to restore an agent via the command line:
|
|
// <pre>curl \
|
|
// 'https://dialogflow.googleapis.com/v2beta1/projects/<project_name>/agent:restore\
|
|
// -X POST \
|
|
// -H 'Authorization: Bearer '$(gcloud auth application-default
|
|
// print-access-token) \
|
|
// -H 'Accept: application/json' \
|
|
// -H 'Content-Type: application/json' \
|
|
// --compressed \
|
|
// --data-binary "{
|
|
// 'agentContent': '$(cat <agent zip file> | base64 -w 0)'
|
|
// }"</pre>
|
|
bytes agent_content = 3;
|
|
}
|
|
}
|
|
|