1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.dialogflow.v2; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2/audio_config.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2/context.proto"; 25*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2/intent.proto"; 26*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2/session_entity_type.proto"; 27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto"; 28*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 29*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto"; 30*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto"; 31*d5c09012SAndroid Build Coastguard Workerimport "google/type/latlng.proto"; 32*d5c09012SAndroid Build Coastguard Worker 33*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true; 34*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dialogflow.V2"; 35*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb"; 36*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 37*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "SessionProto"; 38*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dialogflow.v2"; 39*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "DF"; 40*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 41*d5c09012SAndroid Build Coastguard Worker type: "dialogflow.googleapis.com/Session" 42*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/agent/sessions/{session}" 43*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}" 44*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/agent/sessions/{session}" 45*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}" 46*d5c09012SAndroid Build Coastguard Worker}; 47*d5c09012SAndroid Build Coastguard Worker 48*d5c09012SAndroid Build Coastguard Worker// A service used for session interactions. 49*d5c09012SAndroid Build Coastguard Worker// 50*d5c09012SAndroid Build Coastguard Worker// For more information, see the [API interactions 51*d5c09012SAndroid Build Coastguard Worker// guide](https://cloud.google.com/dialogflow/docs/api-overview). 52*d5c09012SAndroid Build Coastguard Workerservice Sessions { 53*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "dialogflow.googleapis.com"; 54*d5c09012SAndroid Build Coastguard Worker option (google.api.oauth_scopes) = 55*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform," 56*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/dialogflow"; 57*d5c09012SAndroid Build Coastguard Worker 58*d5c09012SAndroid Build Coastguard Worker // Processes a natural language query and returns structured, actionable data 59*d5c09012SAndroid Build Coastguard Worker // as a result. This method is not idempotent, because it may cause contexts 60*d5c09012SAndroid Build Coastguard Worker // and session entity types to be updated, which in turn might affect 61*d5c09012SAndroid Build Coastguard Worker // results of future queries. 62*d5c09012SAndroid Build Coastguard Worker // 63*d5c09012SAndroid Build Coastguard Worker // If you might use 64*d5c09012SAndroid Build Coastguard Worker // [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) 65*d5c09012SAndroid Build Coastguard Worker // or other CCAI products now or in the future, consider using 66*d5c09012SAndroid Build Coastguard Worker // [AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] 67*d5c09012SAndroid Build Coastguard Worker // instead of `DetectIntent`. `AnalyzeContent` has additional 68*d5c09012SAndroid Build Coastguard Worker // functionality for Agent Assist and other CCAI products. 69*d5c09012SAndroid Build Coastguard Worker // 70*d5c09012SAndroid Build Coastguard Worker // Note: Always use agent versions for production traffic. 71*d5c09012SAndroid Build Coastguard Worker // See [Versions and 72*d5c09012SAndroid Build Coastguard Worker // environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). 73*d5c09012SAndroid Build Coastguard Worker rpc DetectIntent(DetectIntentRequest) returns (DetectIntentResponse) { 74*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 75*d5c09012SAndroid Build Coastguard Worker post: "/v2/{session=projects/*/agent/sessions/*}:detectIntent" 76*d5c09012SAndroid Build Coastguard Worker body: "*" 77*d5c09012SAndroid Build Coastguard Worker additional_bindings { 78*d5c09012SAndroid Build Coastguard Worker post: "/v2/{session=projects/*/agent/environments/*/users/*/sessions/*}:detectIntent" 79*d5c09012SAndroid Build Coastguard Worker body: "*" 80*d5c09012SAndroid Build Coastguard Worker } 81*d5c09012SAndroid Build Coastguard Worker additional_bindings { 82*d5c09012SAndroid Build Coastguard Worker post: "/v2/{session=projects/*/locations/*/agent/sessions/*}:detectIntent" 83*d5c09012SAndroid Build Coastguard Worker body: "*" 84*d5c09012SAndroid Build Coastguard Worker } 85*d5c09012SAndroid Build Coastguard Worker additional_bindings { 86*d5c09012SAndroid Build Coastguard Worker post: "/v2/{session=projects/*/locations/*/agent/environments/*/users/*/sessions/*}:detectIntent" 87*d5c09012SAndroid Build Coastguard Worker body: "*" 88*d5c09012SAndroid Build Coastguard Worker } 89*d5c09012SAndroid Build Coastguard Worker }; 90*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "session,query_input"; 91*d5c09012SAndroid Build Coastguard Worker } 92*d5c09012SAndroid Build Coastguard Worker 93*d5c09012SAndroid Build Coastguard Worker // Processes a natural language query in audio format in a streaming fashion 94*d5c09012SAndroid Build Coastguard Worker // and returns structured, actionable data as a result. This method is only 95*d5c09012SAndroid Build Coastguard Worker // available via the gRPC API (not REST). 96*d5c09012SAndroid Build Coastguard Worker // 97*d5c09012SAndroid Build Coastguard Worker // If you might use 98*d5c09012SAndroid Build Coastguard Worker // [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) 99*d5c09012SAndroid Build Coastguard Worker // or other CCAI products now or in the future, consider using 100*d5c09012SAndroid Build Coastguard Worker // [StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] 101*d5c09012SAndroid Build Coastguard Worker // instead of `StreamingDetectIntent`. `StreamingAnalyzeContent` has 102*d5c09012SAndroid Build Coastguard Worker // additional functionality for Agent Assist and other CCAI products. 103*d5c09012SAndroid Build Coastguard Worker // 104*d5c09012SAndroid Build Coastguard Worker // Note: Always use agent versions for production traffic. 105*d5c09012SAndroid Build Coastguard Worker // See [Versions and 106*d5c09012SAndroid Build Coastguard Worker // environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). 107*d5c09012SAndroid Build Coastguard Worker rpc StreamingDetectIntent(stream StreamingDetectIntentRequest) 108*d5c09012SAndroid Build Coastguard Worker returns (stream StreamingDetectIntentResponse) {} 109*d5c09012SAndroid Build Coastguard Worker} 110*d5c09012SAndroid Build Coastguard Worker 111*d5c09012SAndroid Build Coastguard Worker// The request to detect user's intent. 112*d5c09012SAndroid Build Coastguard Workermessage DetectIntentRequest { 113*d5c09012SAndroid Build Coastguard Worker // Required. The name of the session this query is sent to. Format: 114*d5c09012SAndroid Build Coastguard Worker // `projects/<Project ID>/agent/sessions/<Session ID>`, or 115*d5c09012SAndroid Build Coastguard Worker // `projects/<Project ID>/agent/environments/<Environment ID>/users/<User 116*d5c09012SAndroid Build Coastguard Worker // ID>/sessions/<Session ID>`. If `Environment ID` is not specified, we assume 117*d5c09012SAndroid Build Coastguard Worker // default 'draft' environment (`Environment ID` might be referred to as 118*d5c09012SAndroid Build Coastguard Worker // environment name at some places). If `User ID` is not specified, we are 119*d5c09012SAndroid Build Coastguard Worker // using "-". It's up to the API caller to choose an appropriate `Session ID` 120*d5c09012SAndroid Build Coastguard Worker // and `User Id`. They can be a random number or some type of user and session 121*d5c09012SAndroid Build Coastguard Worker // identifiers (preferably hashed). The length of the `Session ID` and 122*d5c09012SAndroid Build Coastguard Worker // `User ID` must not exceed 36 characters. 123*d5c09012SAndroid Build Coastguard Worker // 124*d5c09012SAndroid Build Coastguard Worker // For more information, see the [API interactions 125*d5c09012SAndroid Build Coastguard Worker // guide](https://cloud.google.com/dialogflow/docs/api-overview). 126*d5c09012SAndroid Build Coastguard Worker // 127*d5c09012SAndroid Build Coastguard Worker // Note: Always use agent versions for production traffic. 128*d5c09012SAndroid Build Coastguard Worker // See [Versions and 129*d5c09012SAndroid Build Coastguard Worker // environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). 130*d5c09012SAndroid Build Coastguard Worker string session = 1 [ 131*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 132*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 133*d5c09012SAndroid Build Coastguard Worker type: "dialogflow.googleapis.com/Session" 134*d5c09012SAndroid Build Coastguard Worker } 135*d5c09012SAndroid Build Coastguard Worker ]; 136*d5c09012SAndroid Build Coastguard Worker 137*d5c09012SAndroid Build Coastguard Worker // The parameters of this query. 138*d5c09012SAndroid Build Coastguard Worker QueryParameters query_params = 2; 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // Required. The input specification. It can be set to: 141*d5c09012SAndroid Build Coastguard Worker // 142*d5c09012SAndroid Build Coastguard Worker // 1. an audio config which instructs the speech recognizer how to process 143*d5c09012SAndroid Build Coastguard Worker // the speech audio, 144*d5c09012SAndroid Build Coastguard Worker // 145*d5c09012SAndroid Build Coastguard Worker // 2. a conversational query in the form of text, or 146*d5c09012SAndroid Build Coastguard Worker // 147*d5c09012SAndroid Build Coastguard Worker // 3. an event that specifies which intent to trigger. 148*d5c09012SAndroid Build Coastguard Worker QueryInput query_input = 3 [(google.api.field_behavior) = REQUIRED]; 149*d5c09012SAndroid Build Coastguard Worker 150*d5c09012SAndroid Build Coastguard Worker // Instructs the speech synthesizer how to generate the output 151*d5c09012SAndroid Build Coastguard Worker // audio. If this field is not set and agent-level speech synthesizer is not 152*d5c09012SAndroid Build Coastguard Worker // configured, no output audio is generated. 153*d5c09012SAndroid Build Coastguard Worker OutputAudioConfig output_audio_config = 4; 154*d5c09012SAndroid Build Coastguard Worker 155*d5c09012SAndroid Build Coastguard Worker // Mask for 156*d5c09012SAndroid Build Coastguard Worker // [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] 157*d5c09012SAndroid Build Coastguard Worker // indicating which settings in this request-level config should override 158*d5c09012SAndroid Build Coastguard Worker // speech synthesizer settings defined at agent-level. 159*d5c09012SAndroid Build Coastguard Worker // 160*d5c09012SAndroid Build Coastguard Worker // If unspecified or empty, 161*d5c09012SAndroid Build Coastguard Worker // [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] 162*d5c09012SAndroid Build Coastguard Worker // replaces the agent-level config in its entirety. 163*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask output_audio_config_mask = 7; 164*d5c09012SAndroid Build Coastguard Worker 165*d5c09012SAndroid Build Coastguard Worker // The natural language speech audio to be processed. This field 166*d5c09012SAndroid Build Coastguard Worker // should be populated iff `query_input` is set to an input audio config. 167*d5c09012SAndroid Build Coastguard Worker // A single request can contain up to 1 minute of speech audio data. 168*d5c09012SAndroid Build Coastguard Worker bytes input_audio = 5; 169*d5c09012SAndroid Build Coastguard Worker} 170*d5c09012SAndroid Build Coastguard Worker 171*d5c09012SAndroid Build Coastguard Worker// The message returned from the DetectIntent method. 172*d5c09012SAndroid Build Coastguard Workermessage DetectIntentResponse { 173*d5c09012SAndroid Build Coastguard Worker // The unique identifier of the response. It can be used to 174*d5c09012SAndroid Build Coastguard Worker // locate a response in the training example set or for reporting issues. 175*d5c09012SAndroid Build Coastguard Worker string response_id = 1; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // The selected results of the conversational query or event processing. 178*d5c09012SAndroid Build Coastguard Worker // See `alternative_query_results` for additional potential results. 179*d5c09012SAndroid Build Coastguard Worker QueryResult query_result = 2; 180*d5c09012SAndroid Build Coastguard Worker 181*d5c09012SAndroid Build Coastguard Worker // Specifies the status of the webhook request. 182*d5c09012SAndroid Build Coastguard Worker google.rpc.Status webhook_status = 3; 183*d5c09012SAndroid Build Coastguard Worker 184*d5c09012SAndroid Build Coastguard Worker // The audio data bytes encoded as specified in the request. 185*d5c09012SAndroid Build Coastguard Worker // Note: The output audio is generated based on the values of default platform 186*d5c09012SAndroid Build Coastguard Worker // text responses found in the `query_result.fulfillment_messages` field. If 187*d5c09012SAndroid Build Coastguard Worker // multiple default text responses exist, they will be concatenated when 188*d5c09012SAndroid Build Coastguard Worker // generating audio. If no default platform text responses exist, the 189*d5c09012SAndroid Build Coastguard Worker // generated audio content will be empty. 190*d5c09012SAndroid Build Coastguard Worker // 191*d5c09012SAndroid Build Coastguard Worker // In some scenarios, multiple output audio fields may be present in the 192*d5c09012SAndroid Build Coastguard Worker // response structure. In these cases, only the top-most-level audio output 193*d5c09012SAndroid Build Coastguard Worker // has content. 194*d5c09012SAndroid Build Coastguard Worker bytes output_audio = 4; 195*d5c09012SAndroid Build Coastguard Worker 196*d5c09012SAndroid Build Coastguard Worker // The config used by the speech synthesizer to generate the output audio. 197*d5c09012SAndroid Build Coastguard Worker OutputAudioConfig output_audio_config = 6; 198*d5c09012SAndroid Build Coastguard Worker} 199*d5c09012SAndroid Build Coastguard Worker 200*d5c09012SAndroid Build Coastguard Worker// Represents the parameters of the conversational query. 201*d5c09012SAndroid Build Coastguard Workermessage QueryParameters { 202*d5c09012SAndroid Build Coastguard Worker // The time zone of this conversational query from the 203*d5c09012SAndroid Build Coastguard Worker // [time zone database](https://www.iana.org/time-zones), e.g., 204*d5c09012SAndroid Build Coastguard Worker // America/New_York, Europe/Paris. If not provided, the time zone specified in 205*d5c09012SAndroid Build Coastguard Worker // agent settings is used. 206*d5c09012SAndroid Build Coastguard Worker string time_zone = 1; 207*d5c09012SAndroid Build Coastguard Worker 208*d5c09012SAndroid Build Coastguard Worker // The geo location of this conversational query. 209*d5c09012SAndroid Build Coastguard Worker google.type.LatLng geo_location = 2; 210*d5c09012SAndroid Build Coastguard Worker 211*d5c09012SAndroid Build Coastguard Worker // The collection of contexts to be activated before this query is 212*d5c09012SAndroid Build Coastguard Worker // executed. 213*d5c09012SAndroid Build Coastguard Worker repeated Context contexts = 3; 214*d5c09012SAndroid Build Coastguard Worker 215*d5c09012SAndroid Build Coastguard Worker // Specifies whether to delete all contexts in the current session 216*d5c09012SAndroid Build Coastguard Worker // before the new ones are activated. 217*d5c09012SAndroid Build Coastguard Worker bool reset_contexts = 4; 218*d5c09012SAndroid Build Coastguard Worker 219*d5c09012SAndroid Build Coastguard Worker // Additional session entity types to replace or extend developer 220*d5c09012SAndroid Build Coastguard Worker // entity types with. The entity synonyms apply to all languages and persist 221*d5c09012SAndroid Build Coastguard Worker // for the session of this query. 222*d5c09012SAndroid Build Coastguard Worker repeated SessionEntityType session_entity_types = 5; 223*d5c09012SAndroid Build Coastguard Worker 224*d5c09012SAndroid Build Coastguard Worker // This field can be used to pass custom data to your webhook. 225*d5c09012SAndroid Build Coastguard Worker // Arbitrary JSON objects are supported. 226*d5c09012SAndroid Build Coastguard Worker // If supplied, the value is used to populate the 227*d5c09012SAndroid Build Coastguard Worker // `WebhookRequest.original_detect_intent_request.payload` 228*d5c09012SAndroid Build Coastguard Worker // field sent to your webhook. 229*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct payload = 6; 230*d5c09012SAndroid Build Coastguard Worker 231*d5c09012SAndroid Build Coastguard Worker // Configures the type of sentiment analysis to perform. If not 232*d5c09012SAndroid Build Coastguard Worker // provided, sentiment analysis is not performed. 233*d5c09012SAndroid Build Coastguard Worker SentimentAnalysisRequestConfig sentiment_analysis_request_config = 10; 234*d5c09012SAndroid Build Coastguard Worker 235*d5c09012SAndroid Build Coastguard Worker // This field can be used to pass HTTP headers for a webhook 236*d5c09012SAndroid Build Coastguard Worker // call. These headers will be sent to webhook along with the headers that 237*d5c09012SAndroid Build Coastguard Worker // have been configured through the Dialogflow web console. The headers 238*d5c09012SAndroid Build Coastguard Worker // defined within this field will overwrite the headers configured through the 239*d5c09012SAndroid Build Coastguard Worker // Dialogflow console if there is a conflict. Header names are 240*d5c09012SAndroid Build Coastguard Worker // case-insensitive. Google's specified headers are not allowed. Including: 241*d5c09012SAndroid Build Coastguard Worker // "Host", "Content-Length", "Connection", "From", "User-Agent", 242*d5c09012SAndroid Build Coastguard Worker // "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", 243*d5c09012SAndroid Build Coastguard Worker // etc. 244*d5c09012SAndroid Build Coastguard Worker map<string, string> webhook_headers = 14; 245*d5c09012SAndroid Build Coastguard Worker 246*d5c09012SAndroid Build Coastguard Worker // The platform of the virtual agent response messages. 247*d5c09012SAndroid Build Coastguard Worker // 248*d5c09012SAndroid Build Coastguard Worker // If not empty, only emits messages from this platform in the response. 249*d5c09012SAndroid Build Coastguard Worker // Valid values are the enum names of 250*d5c09012SAndroid Build Coastguard Worker // [platform][google.cloud.dialogflow.v2.Intent.Message.platform]. 251*d5c09012SAndroid Build Coastguard Worker string platform = 18; 252*d5c09012SAndroid Build Coastguard Worker} 253*d5c09012SAndroid Build Coastguard Worker 254*d5c09012SAndroid Build Coastguard Worker// Represents the query input. It can contain either: 255*d5c09012SAndroid Build Coastguard Worker// 256*d5c09012SAndroid Build Coastguard Worker// 1. An audio config which instructs the speech recognizer how to process the 257*d5c09012SAndroid Build Coastguard Worker// speech audio. 258*d5c09012SAndroid Build Coastguard Worker// 259*d5c09012SAndroid Build Coastguard Worker// 2. A conversational query in the form of text. 260*d5c09012SAndroid Build Coastguard Worker// 261*d5c09012SAndroid Build Coastguard Worker// 3. An event that specifies which intent to trigger. 262*d5c09012SAndroid Build Coastguard Workermessage QueryInput { 263*d5c09012SAndroid Build Coastguard Worker // Required. The input specification. 264*d5c09012SAndroid Build Coastguard Worker oneof input { 265*d5c09012SAndroid Build Coastguard Worker // Instructs the speech recognizer how to process the speech audio. 266*d5c09012SAndroid Build Coastguard Worker InputAudioConfig audio_config = 1; 267*d5c09012SAndroid Build Coastguard Worker 268*d5c09012SAndroid Build Coastguard Worker // The natural language text to be processed. Text length must not exceed 269*d5c09012SAndroid Build Coastguard Worker // 256 character for virtual agent interactions. 270*d5c09012SAndroid Build Coastguard Worker TextInput text = 2; 271*d5c09012SAndroid Build Coastguard Worker 272*d5c09012SAndroid Build Coastguard Worker // The event to be processed. 273*d5c09012SAndroid Build Coastguard Worker EventInput event = 3; 274*d5c09012SAndroid Build Coastguard Worker } 275*d5c09012SAndroid Build Coastguard Worker} 276*d5c09012SAndroid Build Coastguard Worker 277*d5c09012SAndroid Build Coastguard Worker// Represents the result of conversational query or event processing. 278*d5c09012SAndroid Build Coastguard Workermessage QueryResult { 279*d5c09012SAndroid Build Coastguard Worker // The original conversational query text: 280*d5c09012SAndroid Build Coastguard Worker // 281*d5c09012SAndroid Build Coastguard Worker // - If natural language text was provided as input, `query_text` contains 282*d5c09012SAndroid Build Coastguard Worker // a copy of the input. 283*d5c09012SAndroid Build Coastguard Worker // - If natural language speech audio was provided as input, `query_text` 284*d5c09012SAndroid Build Coastguard Worker // contains the speech recognition result. If speech recognizer produced 285*d5c09012SAndroid Build Coastguard Worker // multiple alternatives, a particular one is picked. 286*d5c09012SAndroid Build Coastguard Worker // - If automatic spell correction is enabled, `query_text` will contain the 287*d5c09012SAndroid Build Coastguard Worker // corrected user input. 288*d5c09012SAndroid Build Coastguard Worker string query_text = 1; 289*d5c09012SAndroid Build Coastguard Worker 290*d5c09012SAndroid Build Coastguard Worker // The language that was triggered during intent detection. 291*d5c09012SAndroid Build Coastguard Worker // See [Language 292*d5c09012SAndroid Build Coastguard Worker // Support](https://cloud.google.com/dialogflow/docs/reference/language) 293*d5c09012SAndroid Build Coastguard Worker // for a list of the currently supported language codes. 294*d5c09012SAndroid Build Coastguard Worker string language_code = 15; 295*d5c09012SAndroid Build Coastguard Worker 296*d5c09012SAndroid Build Coastguard Worker // The Speech recognition confidence between 0.0 and 1.0. A higher number 297*d5c09012SAndroid Build Coastguard Worker // indicates an estimated greater likelihood that the recognized words are 298*d5c09012SAndroid Build Coastguard Worker // correct. The default of 0.0 is a sentinel value indicating that confidence 299*d5c09012SAndroid Build Coastguard Worker // was not set. 300*d5c09012SAndroid Build Coastguard Worker // 301*d5c09012SAndroid Build Coastguard Worker // This field is not guaranteed to be accurate or set. In particular this 302*d5c09012SAndroid Build Coastguard Worker // field isn't set for StreamingDetectIntent since the streaming endpoint has 303*d5c09012SAndroid Build Coastguard Worker // separate confidence estimates per portion of the audio in 304*d5c09012SAndroid Build Coastguard Worker // StreamingRecognitionResult. 305*d5c09012SAndroid Build Coastguard Worker float speech_recognition_confidence = 2; 306*d5c09012SAndroid Build Coastguard Worker 307*d5c09012SAndroid Build Coastguard Worker // The action name from the matched intent. 308*d5c09012SAndroid Build Coastguard Worker string action = 3; 309*d5c09012SAndroid Build Coastguard Worker 310*d5c09012SAndroid Build Coastguard Worker // The collection of extracted parameters. 311*d5c09012SAndroid Build Coastguard Worker // 312*d5c09012SAndroid Build Coastguard Worker // Depending on your protocol or client library language, this is a 313*d5c09012SAndroid Build Coastguard Worker // map, associative array, symbol table, dictionary, or JSON object 314*d5c09012SAndroid Build Coastguard Worker // composed of a collection of (MapKey, MapValue) pairs: 315*d5c09012SAndroid Build Coastguard Worker // 316*d5c09012SAndroid Build Coastguard Worker // * MapKey type: string 317*d5c09012SAndroid Build Coastguard Worker // * MapKey value: parameter name 318*d5c09012SAndroid Build Coastguard Worker // * MapValue type: If parameter's entity type is a composite entity then use 319*d5c09012SAndroid Build Coastguard Worker // map, otherwise, depending on the parameter value type, it could be one of 320*d5c09012SAndroid Build Coastguard Worker // string, number, boolean, null, list or map. 321*d5c09012SAndroid Build Coastguard Worker // * MapValue value: If parameter's entity type is a composite entity then use 322*d5c09012SAndroid Build Coastguard Worker // map from composite entity property names to property values, otherwise, 323*d5c09012SAndroid Build Coastguard Worker // use parameter value. 324*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct parameters = 4; 325*d5c09012SAndroid Build Coastguard Worker 326*d5c09012SAndroid Build Coastguard Worker // This field is set to: 327*d5c09012SAndroid Build Coastguard Worker // 328*d5c09012SAndroid Build Coastguard Worker // - `false` if the matched intent has required parameters and not all of 329*d5c09012SAndroid Build Coastguard Worker // the required parameter values have been collected. 330*d5c09012SAndroid Build Coastguard Worker // - `true` if all required parameter values have been collected, or if the 331*d5c09012SAndroid Build Coastguard Worker // matched intent doesn't contain any required parameters. 332*d5c09012SAndroid Build Coastguard Worker bool all_required_params_present = 5; 333*d5c09012SAndroid Build Coastguard Worker 334*d5c09012SAndroid Build Coastguard Worker // Indicates whether the conversational query triggers a cancellation for slot 335*d5c09012SAndroid Build Coastguard Worker // filling. For more information, see the [cancel slot filling 336*d5c09012SAndroid Build Coastguard Worker // documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). 337*d5c09012SAndroid Build Coastguard Worker bool cancels_slot_filling = 21; 338*d5c09012SAndroid Build Coastguard Worker 339*d5c09012SAndroid Build Coastguard Worker // The text to be pronounced to the user or shown on the screen. 340*d5c09012SAndroid Build Coastguard Worker // Note: This is a legacy field, `fulfillment_messages` should be preferred. 341*d5c09012SAndroid Build Coastguard Worker string fulfillment_text = 6; 342*d5c09012SAndroid Build Coastguard Worker 343*d5c09012SAndroid Build Coastguard Worker // The collection of rich messages to present to the user. 344*d5c09012SAndroid Build Coastguard Worker repeated Intent.Message fulfillment_messages = 7; 345*d5c09012SAndroid Build Coastguard Worker 346*d5c09012SAndroid Build Coastguard Worker // If the query was fulfilled by a webhook call, this field is set to the 347*d5c09012SAndroid Build Coastguard Worker // value of the `source` field returned in the webhook response. 348*d5c09012SAndroid Build Coastguard Worker string webhook_source = 8; 349*d5c09012SAndroid Build Coastguard Worker 350*d5c09012SAndroid Build Coastguard Worker // If the query was fulfilled by a webhook call, this field is set to the 351*d5c09012SAndroid Build Coastguard Worker // value of the `payload` field returned in the webhook response. 352*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct webhook_payload = 9; 353*d5c09012SAndroid Build Coastguard Worker 354*d5c09012SAndroid Build Coastguard Worker // The collection of output contexts. If applicable, 355*d5c09012SAndroid Build Coastguard Worker // `output_contexts.parameters` contains entries with name 356*d5c09012SAndroid Build Coastguard Worker // `<parameter name>.original` containing the original parameter values 357*d5c09012SAndroid Build Coastguard Worker // before the query. 358*d5c09012SAndroid Build Coastguard Worker repeated Context output_contexts = 10; 359*d5c09012SAndroid Build Coastguard Worker 360*d5c09012SAndroid Build Coastguard Worker // The intent that matched the conversational query. Some, not 361*d5c09012SAndroid Build Coastguard Worker // all fields are filled in this message, including but not limited to: 362*d5c09012SAndroid Build Coastguard Worker // `name`, `display_name`, `end_interaction` and `is_fallback`. 363*d5c09012SAndroid Build Coastguard Worker Intent intent = 11; 364*d5c09012SAndroid Build Coastguard Worker 365*d5c09012SAndroid Build Coastguard Worker // The intent detection confidence. Values range from 0.0 366*d5c09012SAndroid Build Coastguard Worker // (completely uncertain) to 1.0 (completely certain). 367*d5c09012SAndroid Build Coastguard Worker // This value is for informational purpose only and is only used to 368*d5c09012SAndroid Build Coastguard Worker // help match the best intent within the classification threshold. 369*d5c09012SAndroid Build Coastguard Worker // This value may change for the same end-user expression at any time due to a 370*d5c09012SAndroid Build Coastguard Worker // model retraining or change in implementation. 371*d5c09012SAndroid Build Coastguard Worker // If there are `multiple knowledge_answers` messages, this value is set to 372*d5c09012SAndroid Build Coastguard Worker // the greatest `knowledgeAnswers.match_confidence` value in the list. 373*d5c09012SAndroid Build Coastguard Worker float intent_detection_confidence = 12; 374*d5c09012SAndroid Build Coastguard Worker 375*d5c09012SAndroid Build Coastguard Worker // Free-form diagnostic information for the associated detect intent request. 376*d5c09012SAndroid Build Coastguard Worker // The fields of this data can change without notice, so you should not write 377*d5c09012SAndroid Build Coastguard Worker // code that depends on its structure. 378*d5c09012SAndroid Build Coastguard Worker // The data may contain: 379*d5c09012SAndroid Build Coastguard Worker // 380*d5c09012SAndroid Build Coastguard Worker // - webhook call latency 381*d5c09012SAndroid Build Coastguard Worker // - webhook errors 382*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct diagnostic_info = 14; 383*d5c09012SAndroid Build Coastguard Worker 384*d5c09012SAndroid Build Coastguard Worker // The sentiment analysis result, which depends on the 385*d5c09012SAndroid Build Coastguard Worker // `sentiment_analysis_request_config` specified in the request. 386*d5c09012SAndroid Build Coastguard Worker SentimentAnalysisResult sentiment_analysis_result = 17; 387*d5c09012SAndroid Build Coastguard Worker} 388*d5c09012SAndroid Build Coastguard Worker 389*d5c09012SAndroid Build Coastguard Worker// The top-level message sent by the client to the 390*d5c09012SAndroid Build Coastguard Worker// [Sessions.StreamingDetectIntent][google.cloud.dialogflow.v2.Sessions.StreamingDetectIntent] 391*d5c09012SAndroid Build Coastguard Worker// method. 392*d5c09012SAndroid Build Coastguard Worker// 393*d5c09012SAndroid Build Coastguard Worker// Multiple request messages should be sent in order: 394*d5c09012SAndroid Build Coastguard Worker// 395*d5c09012SAndroid Build Coastguard Worker// 1. The first message must contain 396*d5c09012SAndroid Build Coastguard Worker// [session][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.session], 397*d5c09012SAndroid Build Coastguard Worker// [query_input][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.query_input] 398*d5c09012SAndroid Build Coastguard Worker// plus optionally 399*d5c09012SAndroid Build Coastguard Worker// [query_params][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.query_params]. 400*d5c09012SAndroid Build Coastguard Worker// If the client wants to receive an audio response, it should also contain 401*d5c09012SAndroid Build Coastguard Worker// [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config]. 402*d5c09012SAndroid Build Coastguard Worker// The message must not contain 403*d5c09012SAndroid Build Coastguard Worker// [input_audio][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.input_audio]. 404*d5c09012SAndroid Build Coastguard Worker// 2. If 405*d5c09012SAndroid Build Coastguard Worker// [query_input][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.query_input] 406*d5c09012SAndroid Build Coastguard Worker// was set to 407*d5c09012SAndroid Build Coastguard Worker// [query_input.audio_config][google.cloud.dialogflow.v2.InputAudioConfig], 408*d5c09012SAndroid Build Coastguard Worker// all subsequent messages must contain 409*d5c09012SAndroid Build Coastguard Worker// [input_audio][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.input_audio] 410*d5c09012SAndroid Build Coastguard Worker// to continue with Speech recognition. If you decide to rather detect an 411*d5c09012SAndroid Build Coastguard Worker// intent from text input after you already started Speech recognition, 412*d5c09012SAndroid Build Coastguard Worker// please send a message with 413*d5c09012SAndroid Build Coastguard Worker// [query_input.text][google.cloud.dialogflow.v2.QueryInput.text]. 414*d5c09012SAndroid Build Coastguard Worker// 415*d5c09012SAndroid Build Coastguard Worker// However, note that: 416*d5c09012SAndroid Build Coastguard Worker// 417*d5c09012SAndroid Build Coastguard Worker// * Dialogflow will bill you for the audio duration so far. 418*d5c09012SAndroid Build Coastguard Worker// * Dialogflow discards all Speech recognition results in favor of the 419*d5c09012SAndroid Build Coastguard Worker// input text. 420*d5c09012SAndroid Build Coastguard Worker// * Dialogflow will use the language code from the first message. 421*d5c09012SAndroid Build Coastguard Worker// 422*d5c09012SAndroid Build Coastguard Worker// After you sent all input, you must half-close or abort the request stream. 423*d5c09012SAndroid Build Coastguard Workermessage StreamingDetectIntentRequest { 424*d5c09012SAndroid Build Coastguard Worker // Required. The name of the session the query is sent to. 425*d5c09012SAndroid Build Coastguard Worker // Format of the session name: 426*d5c09012SAndroid Build Coastguard Worker // `projects/<Project ID>/agent/sessions/<Session ID>`, or 427*d5c09012SAndroid Build Coastguard Worker // `projects/<Project ID>/agent/environments/<Environment ID>/users/<User 428*d5c09012SAndroid Build Coastguard Worker // ID>/sessions/<Session ID>`. If `Environment ID` is not specified, we assume 429*d5c09012SAndroid Build Coastguard Worker // default 'draft' environment. If `User ID` is not specified, we are using 430*d5c09012SAndroid Build Coastguard Worker // "-". It's up to the API caller to choose an appropriate `Session ID` and 431*d5c09012SAndroid Build Coastguard Worker // `User Id`. They can be a random number or some type of user and session 432*d5c09012SAndroid Build Coastguard Worker // identifiers (preferably hashed). The length of the `Session ID` and 433*d5c09012SAndroid Build Coastguard Worker // `User ID` must not exceed 36 characters. 434*d5c09012SAndroid Build Coastguard Worker // 435*d5c09012SAndroid Build Coastguard Worker // For more information, see the [API interactions 436*d5c09012SAndroid Build Coastguard Worker // guide](https://cloud.google.com/dialogflow/docs/api-overview). 437*d5c09012SAndroid Build Coastguard Worker // 438*d5c09012SAndroid Build Coastguard Worker // Note: Always use agent versions for production traffic. 439*d5c09012SAndroid Build Coastguard Worker // See [Versions and 440*d5c09012SAndroid Build Coastguard Worker // environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). 441*d5c09012SAndroid Build Coastguard Worker string session = 1 [ 442*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 443*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 444*d5c09012SAndroid Build Coastguard Worker type: "dialogflow.googleapis.com/Session" 445*d5c09012SAndroid Build Coastguard Worker } 446*d5c09012SAndroid Build Coastguard Worker ]; 447*d5c09012SAndroid Build Coastguard Worker 448*d5c09012SAndroid Build Coastguard Worker // The parameters of this query. 449*d5c09012SAndroid Build Coastguard Worker QueryParameters query_params = 2; 450*d5c09012SAndroid Build Coastguard Worker 451*d5c09012SAndroid Build Coastguard Worker // Required. The input specification. It can be set to: 452*d5c09012SAndroid Build Coastguard Worker // 453*d5c09012SAndroid Build Coastguard Worker // 1. an audio config which instructs the speech recognizer how to process 454*d5c09012SAndroid Build Coastguard Worker // the speech audio, 455*d5c09012SAndroid Build Coastguard Worker // 456*d5c09012SAndroid Build Coastguard Worker // 2. a conversational query in the form of text, or 457*d5c09012SAndroid Build Coastguard Worker // 458*d5c09012SAndroid Build Coastguard Worker // 3. an event that specifies which intent to trigger. 459*d5c09012SAndroid Build Coastguard Worker QueryInput query_input = 3 [(google.api.field_behavior) = REQUIRED]; 460*d5c09012SAndroid Build Coastguard Worker 461*d5c09012SAndroid Build Coastguard Worker // Please use 462*d5c09012SAndroid Build Coastguard Worker // [InputAudioConfig.single_utterance][google.cloud.dialogflow.v2.InputAudioConfig.single_utterance] 463*d5c09012SAndroid Build Coastguard Worker // instead. If `false` (default), recognition does not cease until the client 464*d5c09012SAndroid Build Coastguard Worker // closes the stream. If `true`, the recognizer will detect a single spoken 465*d5c09012SAndroid Build Coastguard Worker // utterance in input audio. Recognition ceases when it detects the audio's 466*d5c09012SAndroid Build Coastguard Worker // voice has stopped or paused. In this case, once a detected intent is 467*d5c09012SAndroid Build Coastguard Worker // received, the client should close the stream and start a new request with a 468*d5c09012SAndroid Build Coastguard Worker // new stream as needed. This setting is ignored when `query_input` is a piece 469*d5c09012SAndroid Build Coastguard Worker // of text or an event. 470*d5c09012SAndroid Build Coastguard Worker bool single_utterance = 4 [deprecated = true]; 471*d5c09012SAndroid Build Coastguard Worker 472*d5c09012SAndroid Build Coastguard Worker // Instructs the speech synthesizer how to generate the output 473*d5c09012SAndroid Build Coastguard Worker // audio. If this field is not set and agent-level speech synthesizer is not 474*d5c09012SAndroid Build Coastguard Worker // configured, no output audio is generated. 475*d5c09012SAndroid Build Coastguard Worker OutputAudioConfig output_audio_config = 5; 476*d5c09012SAndroid Build Coastguard Worker 477*d5c09012SAndroid Build Coastguard Worker // Mask for 478*d5c09012SAndroid Build Coastguard Worker // [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] 479*d5c09012SAndroid Build Coastguard Worker // indicating which settings in this request-level config should override 480*d5c09012SAndroid Build Coastguard Worker // speech synthesizer settings defined at agent-level. 481*d5c09012SAndroid Build Coastguard Worker // 482*d5c09012SAndroid Build Coastguard Worker // If unspecified or empty, 483*d5c09012SAndroid Build Coastguard Worker // [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] 484*d5c09012SAndroid Build Coastguard Worker // replaces the agent-level config in its entirety. 485*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask output_audio_config_mask = 7; 486*d5c09012SAndroid Build Coastguard Worker 487*d5c09012SAndroid Build Coastguard Worker // The input audio content to be recognized. Must be sent if 488*d5c09012SAndroid Build Coastguard Worker // `query_input` was set to a streaming input audio config. The complete audio 489*d5c09012SAndroid Build Coastguard Worker // over all streaming messages must not exceed 1 minute. 490*d5c09012SAndroid Build Coastguard Worker bytes input_audio = 6; 491*d5c09012SAndroid Build Coastguard Worker 492*d5c09012SAndroid Build Coastguard Worker // if true, `StreamingDetectIntentResponse.debugging_info` will get populated. 493*d5c09012SAndroid Build Coastguard Worker bool enable_debugging_info = 8; 494*d5c09012SAndroid Build Coastguard Worker} 495*d5c09012SAndroid Build Coastguard Worker 496*d5c09012SAndroid Build Coastguard Worker// Cloud conversation info for easier debugging. 497*d5c09012SAndroid Build Coastguard Worker// It will get populated in `StreamingDetectIntentResponse` or 498*d5c09012SAndroid Build Coastguard Worker// `StreamingAnalyzeContentResponse` when the flag `enable_debugging_info` is 499*d5c09012SAndroid Build Coastguard Worker// set to true in corresponding requests. 500*d5c09012SAndroid Build Coastguard Workermessage CloudConversationDebuggingInfo { 501*d5c09012SAndroid Build Coastguard Worker // Number of input audio data chunks in streaming requests. 502*d5c09012SAndroid Build Coastguard Worker int32 audio_data_chunks = 1; 503*d5c09012SAndroid Build Coastguard Worker 504*d5c09012SAndroid Build Coastguard Worker // Time offset of the end of speech utterance relative to the 505*d5c09012SAndroid Build Coastguard Worker // beginning of the first audio chunk. 506*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration result_end_time_offset = 2; 507*d5c09012SAndroid Build Coastguard Worker 508*d5c09012SAndroid Build Coastguard Worker // Duration of first audio chunk. 509*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration first_audio_duration = 3; 510*d5c09012SAndroid Build Coastguard Worker 511*d5c09012SAndroid Build Coastguard Worker // Whether client used single utterance mode. 512*d5c09012SAndroid Build Coastguard Worker bool single_utterance = 5; 513*d5c09012SAndroid Build Coastguard Worker 514*d5c09012SAndroid Build Coastguard Worker // Time offsets of the speech partial results relative to the beginning of 515*d5c09012SAndroid Build Coastguard Worker // the stream. 516*d5c09012SAndroid Build Coastguard Worker repeated google.protobuf.Duration speech_partial_results_end_times = 6; 517*d5c09012SAndroid Build Coastguard Worker 518*d5c09012SAndroid Build Coastguard Worker // Time offsets of the speech final results (is_final=true) relative to the 519*d5c09012SAndroid Build Coastguard Worker // beginning of the stream. 520*d5c09012SAndroid Build Coastguard Worker repeated google.protobuf.Duration speech_final_results_end_times = 7; 521*d5c09012SAndroid Build Coastguard Worker 522*d5c09012SAndroid Build Coastguard Worker // Total number of partial responses. 523*d5c09012SAndroid Build Coastguard Worker int32 partial_responses = 8; 524*d5c09012SAndroid Build Coastguard Worker 525*d5c09012SAndroid Build Coastguard Worker // Time offset of Speaker ID stream close time relative to the Speech stream 526*d5c09012SAndroid Build Coastguard Worker // close time in milliseconds. Only meaningful for conversations involving 527*d5c09012SAndroid Build Coastguard Worker // passive verification. 528*d5c09012SAndroid Build Coastguard Worker int32 speaker_id_passive_latency_ms_offset = 9; 529*d5c09012SAndroid Build Coastguard Worker 530*d5c09012SAndroid Build Coastguard Worker // Whether a barge-in event is triggered in this request. 531*d5c09012SAndroid Build Coastguard Worker bool bargein_event_triggered = 10; 532*d5c09012SAndroid Build Coastguard Worker 533*d5c09012SAndroid Build Coastguard Worker // Whether speech uses single utterance mode. 534*d5c09012SAndroid Build Coastguard Worker bool speech_single_utterance = 11; 535*d5c09012SAndroid Build Coastguard Worker 536*d5c09012SAndroid Build Coastguard Worker // Time offsets of the DTMF partial results relative to the beginning of 537*d5c09012SAndroid Build Coastguard Worker // the stream. 538*d5c09012SAndroid Build Coastguard Worker repeated google.protobuf.Duration dtmf_partial_results_times = 12; 539*d5c09012SAndroid Build Coastguard Worker 540*d5c09012SAndroid Build Coastguard Worker // Time offsets of the DTMF final results relative to the beginning of 541*d5c09012SAndroid Build Coastguard Worker // the stream. 542*d5c09012SAndroid Build Coastguard Worker repeated google.protobuf.Duration dtmf_final_results_times = 13; 543*d5c09012SAndroid Build Coastguard Worker 544*d5c09012SAndroid Build Coastguard Worker // Time offset of the end-of-single-utterance signal relative to the 545*d5c09012SAndroid Build Coastguard Worker // beginning of the stream. 546*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration single_utterance_end_time_offset = 14; 547*d5c09012SAndroid Build Coastguard Worker 548*d5c09012SAndroid Build Coastguard Worker // No speech timeout settings for the stream. 549*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration no_speech_timeout = 15; 550*d5c09012SAndroid Build Coastguard Worker 551*d5c09012SAndroid Build Coastguard Worker // Speech endpointing timeout settings for the stream. 552*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration endpointing_timeout = 19; 553*d5c09012SAndroid Build Coastguard Worker 554*d5c09012SAndroid Build Coastguard Worker // Whether the streaming terminates with an injected text query. 555*d5c09012SAndroid Build Coastguard Worker bool is_input_text = 16; 556*d5c09012SAndroid Build Coastguard Worker 557*d5c09012SAndroid Build Coastguard Worker // Client half close time in terms of input audio duration. 558*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration client_half_close_time_offset = 17; 559*d5c09012SAndroid Build Coastguard Worker 560*d5c09012SAndroid Build Coastguard Worker // Client half close time in terms of API streaming duration. 561*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration client_half_close_streaming_time_offset = 18; 562*d5c09012SAndroid Build Coastguard Worker} 563*d5c09012SAndroid Build Coastguard Worker 564*d5c09012SAndroid Build Coastguard Worker// The top-level message returned from the 565*d5c09012SAndroid Build Coastguard Worker// `StreamingDetectIntent` method. 566*d5c09012SAndroid Build Coastguard Worker// 567*d5c09012SAndroid Build Coastguard Worker// Multiple response messages can be returned in order: 568*d5c09012SAndroid Build Coastguard Worker// 569*d5c09012SAndroid Build Coastguard Worker// 1. If the `StreamingDetectIntentRequest.input_audio` field was 570*d5c09012SAndroid Build Coastguard Worker// set, the `recognition_result` field is populated for one 571*d5c09012SAndroid Build Coastguard Worker// or more messages. 572*d5c09012SAndroid Build Coastguard Worker// See the 573*d5c09012SAndroid Build Coastguard Worker// [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] 574*d5c09012SAndroid Build Coastguard Worker// message for details about the result message sequence. 575*d5c09012SAndroid Build Coastguard Worker// 576*d5c09012SAndroid Build Coastguard Worker// 2. The next message contains `response_id`, `query_result` 577*d5c09012SAndroid Build Coastguard Worker// and optionally `webhook_status` if a WebHook was called. 578*d5c09012SAndroid Build Coastguard Workermessage StreamingDetectIntentResponse { 579*d5c09012SAndroid Build Coastguard Worker // The unique identifier of the response. It can be used to 580*d5c09012SAndroid Build Coastguard Worker // locate a response in the training example set or for reporting issues. 581*d5c09012SAndroid Build Coastguard Worker string response_id = 1; 582*d5c09012SAndroid Build Coastguard Worker 583*d5c09012SAndroid Build Coastguard Worker // The result of speech recognition. 584*d5c09012SAndroid Build Coastguard Worker StreamingRecognitionResult recognition_result = 2; 585*d5c09012SAndroid Build Coastguard Worker 586*d5c09012SAndroid Build Coastguard Worker // The result of the conversational query or event processing. 587*d5c09012SAndroid Build Coastguard Worker QueryResult query_result = 3; 588*d5c09012SAndroid Build Coastguard Worker 589*d5c09012SAndroid Build Coastguard Worker // Specifies the status of the webhook request. 590*d5c09012SAndroid Build Coastguard Worker google.rpc.Status webhook_status = 4; 591*d5c09012SAndroid Build Coastguard Worker 592*d5c09012SAndroid Build Coastguard Worker // The audio data bytes encoded as specified in the request. 593*d5c09012SAndroid Build Coastguard Worker // Note: The output audio is generated based on the values of default platform 594*d5c09012SAndroid Build Coastguard Worker // text responses found in the `query_result.fulfillment_messages` field. If 595*d5c09012SAndroid Build Coastguard Worker // multiple default text responses exist, they will be concatenated when 596*d5c09012SAndroid Build Coastguard Worker // generating audio. If no default platform text responses exist, the 597*d5c09012SAndroid Build Coastguard Worker // generated audio content will be empty. 598*d5c09012SAndroid Build Coastguard Worker // 599*d5c09012SAndroid Build Coastguard Worker // In some scenarios, multiple output audio fields may be present in the 600*d5c09012SAndroid Build Coastguard Worker // response structure. In these cases, only the top-most-level audio output 601*d5c09012SAndroid Build Coastguard Worker // has content. 602*d5c09012SAndroid Build Coastguard Worker bytes output_audio = 5; 603*d5c09012SAndroid Build Coastguard Worker 604*d5c09012SAndroid Build Coastguard Worker // The config used by the speech synthesizer to generate the output audio. 605*d5c09012SAndroid Build Coastguard Worker OutputAudioConfig output_audio_config = 6; 606*d5c09012SAndroid Build Coastguard Worker 607*d5c09012SAndroid Build Coastguard Worker // Debugging info that would get populated when 608*d5c09012SAndroid Build Coastguard Worker // `StreamingDetectIntentRequest.enable_debugging_info` is set to true. 609*d5c09012SAndroid Build Coastguard Worker CloudConversationDebuggingInfo debugging_info = 8; 610*d5c09012SAndroid Build Coastguard Worker} 611*d5c09012SAndroid Build Coastguard Worker 612*d5c09012SAndroid Build Coastguard Worker// Contains a speech recognition result corresponding to a portion of the audio 613*d5c09012SAndroid Build Coastguard Worker// that is currently being processed or an indication that this is the end 614*d5c09012SAndroid Build Coastguard Worker// of the single requested utterance. 615*d5c09012SAndroid Build Coastguard Worker// 616*d5c09012SAndroid Build Coastguard Worker// While end-user audio is being processed, Dialogflow sends a series of 617*d5c09012SAndroid Build Coastguard Worker// results. Each result may contain a `transcript` value. A transcript 618*d5c09012SAndroid Build Coastguard Worker// represents a portion of the utterance. While the recognizer is processing 619*d5c09012SAndroid Build Coastguard Worker// audio, transcript values may be interim values or finalized values. 620*d5c09012SAndroid Build Coastguard Worker// Once a transcript is finalized, the `is_final` value is set to true and 621*d5c09012SAndroid Build Coastguard Worker// processing continues for the next transcript. 622*d5c09012SAndroid Build Coastguard Worker// 623*d5c09012SAndroid Build Coastguard Worker// If `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` 624*d5c09012SAndroid Build Coastguard Worker// was true, and the recognizer has completed processing audio, 625*d5c09012SAndroid Build Coastguard Worker// the `message_type` value is set to `END_OF_SINGLE_UTTERANCE and the 626*d5c09012SAndroid Build Coastguard Worker// following (last) result contains the last finalized transcript. 627*d5c09012SAndroid Build Coastguard Worker// 628*d5c09012SAndroid Build Coastguard Worker// The complete end-user utterance is determined by concatenating the 629*d5c09012SAndroid Build Coastguard Worker// finalized transcript values received for the series of results. 630*d5c09012SAndroid Build Coastguard Worker// 631*d5c09012SAndroid Build Coastguard Worker// In the following example, single utterance is enabled. In the case where 632*d5c09012SAndroid Build Coastguard Worker// single utterance is not enabled, result 7 would not occur. 633*d5c09012SAndroid Build Coastguard Worker// 634*d5c09012SAndroid Build Coastguard Worker// ``` 635*d5c09012SAndroid Build Coastguard Worker// Num | transcript | message_type | is_final 636*d5c09012SAndroid Build Coastguard Worker// --- | ----------------------- | ----------------------- | -------- 637*d5c09012SAndroid Build Coastguard Worker// 1 | "tube" | TRANSCRIPT | false 638*d5c09012SAndroid Build Coastguard Worker// 2 | "to be a" | TRANSCRIPT | false 639*d5c09012SAndroid Build Coastguard Worker// 3 | "to be" | TRANSCRIPT | false 640*d5c09012SAndroid Build Coastguard Worker// 4 | "to be or not to be" | TRANSCRIPT | true 641*d5c09012SAndroid Build Coastguard Worker// 5 | "that's" | TRANSCRIPT | false 642*d5c09012SAndroid Build Coastguard Worker// 6 | "that is | TRANSCRIPT | false 643*d5c09012SAndroid Build Coastguard Worker// 7 | unset | END_OF_SINGLE_UTTERANCE | unset 644*d5c09012SAndroid Build Coastguard Worker// 8 | " that is the question" | TRANSCRIPT | true 645*d5c09012SAndroid Build Coastguard Worker// ``` 646*d5c09012SAndroid Build Coastguard Worker// 647*d5c09012SAndroid Build Coastguard Worker// Concatenating the finalized transcripts with `is_final` set to true, 648*d5c09012SAndroid Build Coastguard Worker// the complete utterance becomes "to be or not to be that is the question". 649*d5c09012SAndroid Build Coastguard Workermessage StreamingRecognitionResult { 650*d5c09012SAndroid Build Coastguard Worker // Type of the response message. 651*d5c09012SAndroid Build Coastguard Worker enum MessageType { 652*d5c09012SAndroid Build Coastguard Worker // Not specified. Should never be used. 653*d5c09012SAndroid Build Coastguard Worker MESSAGE_TYPE_UNSPECIFIED = 0; 654*d5c09012SAndroid Build Coastguard Worker 655*d5c09012SAndroid Build Coastguard Worker // Message contains a (possibly partial) transcript. 656*d5c09012SAndroid Build Coastguard Worker TRANSCRIPT = 1; 657*d5c09012SAndroid Build Coastguard Worker 658*d5c09012SAndroid Build Coastguard Worker // This event indicates that the server has detected the end of the user's 659*d5c09012SAndroid Build Coastguard Worker // speech utterance and expects no additional inputs. 660*d5c09012SAndroid Build Coastguard Worker // Therefore, the server will not process additional audio (although it may 661*d5c09012SAndroid Build Coastguard Worker // subsequently return additional results). The client should stop sending 662*d5c09012SAndroid Build Coastguard Worker // additional audio data, half-close the gRPC connection, and wait for any 663*d5c09012SAndroid Build Coastguard Worker // additional results until the server closes the gRPC connection. This 664*d5c09012SAndroid Build Coastguard Worker // message is only sent if `single_utterance` was set to `true`, and is not 665*d5c09012SAndroid Build Coastguard Worker // used otherwise. 666*d5c09012SAndroid Build Coastguard Worker END_OF_SINGLE_UTTERANCE = 2; 667*d5c09012SAndroid Build Coastguard Worker } 668*d5c09012SAndroid Build Coastguard Worker 669*d5c09012SAndroid Build Coastguard Worker // Type of the result message. 670*d5c09012SAndroid Build Coastguard Worker MessageType message_type = 1; 671*d5c09012SAndroid Build Coastguard Worker 672*d5c09012SAndroid Build Coastguard Worker // Transcript text representing the words that the user spoke. 673*d5c09012SAndroid Build Coastguard Worker // Populated if and only if `message_type` = `TRANSCRIPT`. 674*d5c09012SAndroid Build Coastguard Worker string transcript = 2; 675*d5c09012SAndroid Build Coastguard Worker 676*d5c09012SAndroid Build Coastguard Worker // If `false`, the `StreamingRecognitionResult` represents an 677*d5c09012SAndroid Build Coastguard Worker // interim result that may change. If `true`, the recognizer will not return 678*d5c09012SAndroid Build Coastguard Worker // any further hypotheses about this piece of the audio. May only be populated 679*d5c09012SAndroid Build Coastguard Worker // for `message_type` = `TRANSCRIPT`. 680*d5c09012SAndroid Build Coastguard Worker bool is_final = 3; 681*d5c09012SAndroid Build Coastguard Worker 682*d5c09012SAndroid Build Coastguard Worker // The Speech confidence between 0.0 and 1.0 for the current portion of audio. 683*d5c09012SAndroid Build Coastguard Worker // A higher number indicates an estimated greater likelihood that the 684*d5c09012SAndroid Build Coastguard Worker // recognized words are correct. The default of 0.0 is a sentinel value 685*d5c09012SAndroid Build Coastguard Worker // indicating that confidence was not set. 686*d5c09012SAndroid Build Coastguard Worker // 687*d5c09012SAndroid Build Coastguard Worker // This field is typically only provided if `is_final` is true and you should 688*d5c09012SAndroid Build Coastguard Worker // not rely on it being accurate or even set. 689*d5c09012SAndroid Build Coastguard Worker float confidence = 4; 690*d5c09012SAndroid Build Coastguard Worker 691*d5c09012SAndroid Build Coastguard Worker // Word-specific information for the words recognized by Speech in 692*d5c09012SAndroid Build Coastguard Worker // [transcript][google.cloud.dialogflow.v2.StreamingRecognitionResult.transcript]. 693*d5c09012SAndroid Build Coastguard Worker // Populated if and only if `message_type` = `TRANSCRIPT` and 694*d5c09012SAndroid Build Coastguard Worker // [InputAudioConfig.enable_word_info] is set. 695*d5c09012SAndroid Build Coastguard Worker repeated SpeechWordInfo speech_word_info = 7; 696*d5c09012SAndroid Build Coastguard Worker 697*d5c09012SAndroid Build Coastguard Worker // Time offset of the end of this Speech recognition result relative to the 698*d5c09012SAndroid Build Coastguard Worker // beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`. 699*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration speech_end_offset = 8; 700*d5c09012SAndroid Build Coastguard Worker 701*d5c09012SAndroid Build Coastguard Worker // Detected language code for the transcript. 702*d5c09012SAndroid Build Coastguard Worker string language_code = 10; 703*d5c09012SAndroid Build Coastguard Worker} 704*d5c09012SAndroid Build Coastguard Worker 705*d5c09012SAndroid Build Coastguard Worker// Auxiliary proto messages. 706*d5c09012SAndroid Build Coastguard Worker// 707*d5c09012SAndroid Build Coastguard Worker// Represents the natural language text to be processed. 708*d5c09012SAndroid Build Coastguard Workermessage TextInput { 709*d5c09012SAndroid Build Coastguard Worker // Required. The UTF-8 encoded natural language text to be processed. 710*d5c09012SAndroid Build Coastguard Worker // Text length must not exceed 256 characters for virtual agent interactions. 711*d5c09012SAndroid Build Coastguard Worker string text = 1 [(google.api.field_behavior) = REQUIRED]; 712*d5c09012SAndroid Build Coastguard Worker 713*d5c09012SAndroid Build Coastguard Worker // Required. The language of this conversational query. See [Language 714*d5c09012SAndroid Build Coastguard Worker // Support](https://cloud.google.com/dialogflow/docs/reference/language) 715*d5c09012SAndroid Build Coastguard Worker // for a list of the currently supported language codes. Note that queries in 716*d5c09012SAndroid Build Coastguard Worker // the same session do not necessarily need to specify the same language. 717*d5c09012SAndroid Build Coastguard Worker string language_code = 2 [(google.api.field_behavior) = REQUIRED]; 718*d5c09012SAndroid Build Coastguard Worker} 719*d5c09012SAndroid Build Coastguard Worker 720*d5c09012SAndroid Build Coastguard Worker// Events allow for matching intents by event name instead of the natural 721*d5c09012SAndroid Build Coastguard Worker// language input. For instance, input `<event: { name: "welcome_event", 722*d5c09012SAndroid Build Coastguard Worker// parameters: { name: "Sam" } }>` can trigger a personalized welcome response. 723*d5c09012SAndroid Build Coastguard Worker// The parameter `name` may be used by the agent in the response: 724*d5c09012SAndroid Build Coastguard Worker// `"Hello #welcome_event.name! What can I do for you today?"`. 725*d5c09012SAndroid Build Coastguard Workermessage EventInput { 726*d5c09012SAndroid Build Coastguard Worker // Required. The unique identifier of the event. 727*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = REQUIRED]; 728*d5c09012SAndroid Build Coastguard Worker 729*d5c09012SAndroid Build Coastguard Worker // The collection of parameters associated with the event. 730*d5c09012SAndroid Build Coastguard Worker // 731*d5c09012SAndroid Build Coastguard Worker // Depending on your protocol or client library language, this is a 732*d5c09012SAndroid Build Coastguard Worker // map, associative array, symbol table, dictionary, or JSON object 733*d5c09012SAndroid Build Coastguard Worker // composed of a collection of (MapKey, MapValue) pairs: 734*d5c09012SAndroid Build Coastguard Worker // 735*d5c09012SAndroid Build Coastguard Worker // * MapKey type: string 736*d5c09012SAndroid Build Coastguard Worker // * MapKey value: parameter name 737*d5c09012SAndroid Build Coastguard Worker // * MapValue type: If parameter's entity type is a composite entity then use 738*d5c09012SAndroid Build Coastguard Worker // map, otherwise, depending on the parameter value type, it could be one of 739*d5c09012SAndroid Build Coastguard Worker // string, number, boolean, null, list or map. 740*d5c09012SAndroid Build Coastguard Worker // * MapValue value: If parameter's entity type is a composite entity then use 741*d5c09012SAndroid Build Coastguard Worker // map from composite entity property names to property values, otherwise, 742*d5c09012SAndroid Build Coastguard Worker // use parameter value. 743*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct parameters = 2; 744*d5c09012SAndroid Build Coastguard Worker 745*d5c09012SAndroid Build Coastguard Worker // Required. The language of this query. See [Language 746*d5c09012SAndroid Build Coastguard Worker // Support](https://cloud.google.com/dialogflow/docs/reference/language) 747*d5c09012SAndroid Build Coastguard Worker // for a list of the currently supported language codes. Note that queries in 748*d5c09012SAndroid Build Coastguard Worker // the same session do not necessarily need to specify the same language. 749*d5c09012SAndroid Build Coastguard Worker // 750*d5c09012SAndroid Build Coastguard Worker // This field is ignored when used in the context of a 751*d5c09012SAndroid Build Coastguard Worker // [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2.WebhookResponse.followup_event_input] 752*d5c09012SAndroid Build Coastguard Worker // field, because the language was already defined in the originating detect 753*d5c09012SAndroid Build Coastguard Worker // intent request. 754*d5c09012SAndroid Build Coastguard Worker string language_code = 3 [(google.api.field_behavior) = REQUIRED]; 755*d5c09012SAndroid Build Coastguard Worker} 756*d5c09012SAndroid Build Coastguard Worker 757*d5c09012SAndroid Build Coastguard Worker// Configures the types of sentiment analysis to perform. 758*d5c09012SAndroid Build Coastguard Workermessage SentimentAnalysisRequestConfig { 759*d5c09012SAndroid Build Coastguard Worker // Instructs the service to perform sentiment analysis on 760*d5c09012SAndroid Build Coastguard Worker // `query_text`. If not provided, sentiment analysis is not performed on 761*d5c09012SAndroid Build Coastguard Worker // `query_text`. 762*d5c09012SAndroid Build Coastguard Worker bool analyze_query_text_sentiment = 1; 763*d5c09012SAndroid Build Coastguard Worker} 764*d5c09012SAndroid Build Coastguard Worker 765*d5c09012SAndroid Build Coastguard Worker// The result of sentiment analysis. Sentiment analysis inspects user input 766*d5c09012SAndroid Build Coastguard Worker// and identifies the prevailing subjective opinion, especially to determine a 767*d5c09012SAndroid Build Coastguard Worker// user's attitude as positive, negative, or neutral. 768*d5c09012SAndroid Build Coastguard Worker// For [Participants.DetectIntent][], it needs to be configured in 769*d5c09012SAndroid Build Coastguard Worker// [DetectIntentRequest.query_params][google.cloud.dialogflow.v2.DetectIntentRequest.query_params]. 770*d5c09012SAndroid Build Coastguard Worker// For [Participants.StreamingDetectIntent][], it needs to be configured in 771*d5c09012SAndroid Build Coastguard Worker// [StreamingDetectIntentRequest.query_params][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.query_params]. 772*d5c09012SAndroid Build Coastguard Worker// And for 773*d5c09012SAndroid Build Coastguard Worker// [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] 774*d5c09012SAndroid Build Coastguard Worker// and 775*d5c09012SAndroid Build Coastguard Worker// [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent], 776*d5c09012SAndroid Build Coastguard Worker// it needs to be configured in 777*d5c09012SAndroid Build Coastguard Worker// [ConversationProfile.human_agent_assistant_config][google.cloud.dialogflow.v2.ConversationProfile.human_agent_assistant_config] 778*d5c09012SAndroid Build Coastguard Workermessage SentimentAnalysisResult { 779*d5c09012SAndroid Build Coastguard Worker // The sentiment analysis result for `query_text`. 780*d5c09012SAndroid Build Coastguard Worker Sentiment query_text_sentiment = 1; 781*d5c09012SAndroid Build Coastguard Worker} 782*d5c09012SAndroid Build Coastguard Worker 783*d5c09012SAndroid Build Coastguard Worker// The sentiment, such as positive/negative feeling or association, for a unit 784*d5c09012SAndroid Build Coastguard Worker// of analysis, such as the query text. See: 785*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values 786*d5c09012SAndroid Build Coastguard Worker// for how to interpret the result. 787*d5c09012SAndroid Build Coastguard Workermessage Sentiment { 788*d5c09012SAndroid Build Coastguard Worker // Sentiment score between -1.0 (negative sentiment) and 1.0 (positive 789*d5c09012SAndroid Build Coastguard Worker // sentiment). 790*d5c09012SAndroid Build Coastguard Worker float score = 1; 791*d5c09012SAndroid Build Coastguard Worker 792*d5c09012SAndroid Build Coastguard Worker // A non-negative number in the [0, +inf) range, which represents the absolute 793*d5c09012SAndroid Build Coastguard Worker // magnitude of sentiment, regardless of score (positive or negative). 794*d5c09012SAndroid Build Coastguard Worker float magnitude = 2; 795*d5c09012SAndroid Build Coastguard Worker} 796