mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-19 13:17:47 +02:00
feat: Add CCAI API
PiperOrigin-RevId: 361003369
This commit is contained in:
parent
4b4e8be384
commit
369e98ef9c
13 changed files with 3055 additions and 0 deletions
|
|
@ -22,14 +22,20 @@ proto_library(
|
|||
name = "dialogflow_proto",
|
||||
srcs = [
|
||||
"agent.proto",
|
||||
"answer_record.proto",
|
||||
"audio_config.proto",
|
||||
"context.proto",
|
||||
"conversation.proto",
|
||||
"conversation_event.proto",
|
||||
"conversation_profile.proto",
|
||||
"document.proto",
|
||||
"entity_type.proto",
|
||||
"environment.proto",
|
||||
"gcs.proto",
|
||||
"human_agent_assistant_event.proto",
|
||||
"intent.proto",
|
||||
"knowledge_base.proto",
|
||||
"participant.proto",
|
||||
"session.proto",
|
||||
"session_entity_type.proto",
|
||||
"validation_result.proto",
|
||||
|
|
@ -43,6 +49,7 @@ proto_library(
|
|||
"//google/longrunning:operations_proto",
|
||||
"//google/rpc:status_proto",
|
||||
"//google/type:latlng_proto",
|
||||
"@com_google_protobuf//:any_proto",
|
||||
"@com_google_protobuf//:duration_proto",
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:field_mask_proto",
|
||||
|
|
@ -56,6 +63,7 @@ proto_library_with_info(
|
|||
deps = [
|
||||
":dialogflow_proto",
|
||||
"//google/cloud:common_resources_proto",
|
||||
"//google/cloud/dialogflow:common_resources_proto",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -148,6 +156,7 @@ go_gapic_library(
|
|||
"//google/longrunning:longrunning_go_proto",
|
||||
"@com_google_cloud_go//longrunning:go_default_library",
|
||||
"@com_google_cloud_go//longrunning/autogen:go_default_library",
|
||||
"@io_bazel_rules_go//proto/wkt:any_go_proto",
|
||||
"@io_bazel_rules_go//proto/wkt:duration_go_proto",
|
||||
"@io_bazel_rules_go//proto/wkt:struct_go_proto",
|
||||
],
|
||||
|
|
|
|||
322
google/cloud/dialogflow/v2beta1/answer_record.proto
Normal file
322
google/cloud/dialogflow/v2beta1/answer_record.proto
Normal file
|
|
@ -0,0 +1,322 @@
|
|||
// Copyright 2021 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/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/participant.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/timestamp.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 = "AnswerRecordsProto";
|
||||
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
||||
option objc_class_prefix = "DF";
|
||||
|
||||
// Service for managing [AnswerRecords][google.cloud.dialogflow.v2beta1.AnswerRecord].
|
||||
service AnswerRecords {
|
||||
option (google.api.default_host) = "dialogflow.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/dialogflow";
|
||||
|
||||
// Deprecated.
|
||||
// Retrieves a specific answer record.
|
||||
rpc GetAnswerRecord(GetAnswerRecordRequest) returns (AnswerRecord) {
|
||||
option deprecated = true;
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{name=projects/*/answerRecords/*}"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{name=projects/*/locations/*/answerRecords/*}"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Returns the list of all answer records in the specified project in reverse
|
||||
// chronological order.
|
||||
rpc ListAnswerRecords(ListAnswerRecordsRequest) returns (ListAnswerRecordsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{parent=projects/*}/answerRecords"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{parent=projects/*/locations/*}/answerRecords"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Updates the specified answer record.
|
||||
rpc UpdateAnswerRecord(UpdateAnswerRecordRequest) returns (AnswerRecord) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v2beta1/{answer_record.name=projects/*/answerRecords/*}"
|
||||
body: "answer_record"
|
||||
additional_bindings {
|
||||
patch: "/v2beta1/{answer_record.name=projects/*/locations/*/answerRecords/*}"
|
||||
body: "answer_record"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "answer_record,update_mask";
|
||||
}
|
||||
}
|
||||
|
||||
// Answer records are records to manage answer history and feedbacks for
|
||||
// Dialogflow.
|
||||
//
|
||||
// Currently, answer record includes:
|
||||
//
|
||||
// - human agent assistant article suggestion
|
||||
// - human agent assistant faq article
|
||||
//
|
||||
// It doesn't include:
|
||||
//
|
||||
// - `DetectIntent` intent matching
|
||||
// - `DetectIntent` knowledge
|
||||
//
|
||||
// Answer records are not related to the conversation history in the
|
||||
// Dialogflow Console. A Record is generated even when the end-user disables
|
||||
// conversation history in the console. Records are created when there's a human
|
||||
// agent assistant suggestion generated.
|
||||
//
|
||||
// A typical workflow for customers provide feedback to an answer is:
|
||||
//
|
||||
// 1. For human agent assistant, customers get suggestion via ListSuggestions
|
||||
// API. Together with the answers, [AnswerRecord.name][google.cloud.dialogflow.v2beta1.AnswerRecord.name] are returned to the
|
||||
// customers.
|
||||
// 2. The customer uses the [AnswerRecord.name][google.cloud.dialogflow.v2beta1.AnswerRecord.name] to call the
|
||||
// [UpdateAnswerRecord][] method to send feedback about a specific answer
|
||||
// that they believe is wrong.
|
||||
message AnswerRecord {
|
||||
option (google.api.resource) = {
|
||||
type: "dialogflow.googleapis.com/AnswerRecord"
|
||||
pattern: "projects/{project}/answerRecords/{answer_record}"
|
||||
pattern: "projects/{project}/locations/{location}/answerRecords/{answer_record}"
|
||||
};
|
||||
|
||||
// The unique identifier of this answer record.
|
||||
// Required for [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2beta1.AnswerRecords.UpdateAnswerRecord] method.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/answerRecords/<Answer Record ID>`.
|
||||
string name = 1;
|
||||
|
||||
// Optional. The AnswerFeedback for this record. You can set this with
|
||||
// [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2beta1.AnswerRecords.UpdateAnswerRecord] in order to give us feedback about
|
||||
// this answer.
|
||||
AnswerFeedback answer_feedback = 3;
|
||||
|
||||
// Output only. The record for this answer.
|
||||
oneof record {
|
||||
// Output only. The record for human agent assistant.
|
||||
AgentAssistantRecord agent_assistant_record = 4;
|
||||
}
|
||||
}
|
||||
|
||||
// Represents a record of a human agent assistant answer.
|
||||
message AgentAssistantRecord {
|
||||
// Output only. The agent assistant answer.
|
||||
oneof answer {
|
||||
// Output only. The article suggestion answer.
|
||||
ArticleAnswer article_suggestion_answer = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. The FAQ answer.
|
||||
FaqAnswer faq_answer = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
}
|
||||
|
||||
// Represents feedback the customer has about the quality & correctness of a
|
||||
// certain answer in a conversation.
|
||||
message AnswerFeedback {
|
||||
// The correctness level of an answer.
|
||||
enum CorrectnessLevel {
|
||||
// Correctness level unspecified.
|
||||
CORRECTNESS_LEVEL_UNSPECIFIED = 0;
|
||||
|
||||
// Answer is totally wrong.
|
||||
NOT_CORRECT = 1;
|
||||
|
||||
// Answer is partially correct.
|
||||
PARTIALLY_CORRECT = 2;
|
||||
|
||||
// Answer is fully correct.
|
||||
FULLY_CORRECT = 3;
|
||||
}
|
||||
|
||||
// The correctness level of the specific answer.
|
||||
CorrectnessLevel correctness_level = 1;
|
||||
|
||||
// Normally, detail feedback is provided when answer is not fully correct.
|
||||
oneof detail_feedback {
|
||||
// Optional. Detail feedback of agent assistant suggestions.
|
||||
AgentAssistantFeedback agent_assistant_detail_feedback = 2;
|
||||
}
|
||||
|
||||
// Indicates whether the answer/item was clicked by the human agent
|
||||
// or not. Default to false.
|
||||
bool clicked = 3;
|
||||
|
||||
// Time when the answer/item was clicked.
|
||||
google.protobuf.Timestamp click_time = 5;
|
||||
|
||||
// Indicates whether the answer/item was displayed to the human
|
||||
// agent in the agent desktop UI. Default to false.
|
||||
bool displayed = 4;
|
||||
|
||||
// Time when the answer/item was displayed.
|
||||
google.protobuf.Timestamp display_time = 6;
|
||||
}
|
||||
|
||||
// Detail feedback of Agent Assistant result.
|
||||
message AgentAssistantFeedback {
|
||||
// Feedback for conversation summarization.
|
||||
message SummarizationFeedback {
|
||||
// Timestamp when composing of the summary starts.
|
||||
google.protobuf.Timestamp start_timestamp = 1;
|
||||
|
||||
// Timestamp when the summary was submitted.
|
||||
google.protobuf.Timestamp submit_timestamp = 2;
|
||||
|
||||
// Text of actual submitted summary.
|
||||
string summary_text = 3;
|
||||
}
|
||||
|
||||
// Relevance of an answer.
|
||||
enum AnswerRelevance {
|
||||
// Answer relevance unspecified.
|
||||
ANSWER_RELEVANCE_UNSPECIFIED = 0;
|
||||
|
||||
// Answer is irrelevant to query.
|
||||
IRRELEVANT = 1;
|
||||
|
||||
// Answer is relevant to query.
|
||||
RELEVANT = 2;
|
||||
}
|
||||
|
||||
// Correctness of document.
|
||||
enum DocumentCorrectness {
|
||||
// Document correctness unspecified.
|
||||
DOCUMENT_CORRECTNESS_UNSPECIFIED = 0;
|
||||
|
||||
// Information in document is incorrect.
|
||||
INCORRECT = 1;
|
||||
|
||||
// Information in document is correct.
|
||||
CORRECT = 2;
|
||||
}
|
||||
|
||||
// Efficiency of document.
|
||||
enum DocumentEfficiency {
|
||||
// Document efficiency unspecified.
|
||||
DOCUMENT_EFFICIENCY_UNSPECIFIED = 0;
|
||||
|
||||
// Document is inefficient.
|
||||
INEFFICIENT = 1;
|
||||
|
||||
// Document is efficient.
|
||||
EFFICIENT = 2;
|
||||
}
|
||||
|
||||
// Optional. Whether or not the suggested answer is relevant.
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// * Query: "Can I change my mailing address?"
|
||||
// * Suggested document says: "Items must be returned/exchanged within 60
|
||||
// days of the purchase date."
|
||||
// * [answer_relevance][google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.answer_relevance]: [AnswerRelevance.IRRELEVANT][google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.AnswerRelevance.IRRELEVANT]
|
||||
AnswerRelevance answer_relevance = 1;
|
||||
|
||||
// Optional. Whether or not the information in the document is correct.
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// * Query: "Can I return the package in 2 days once received?"
|
||||
// * Suggested document says: "Items must be returned/exchanged within 60
|
||||
// days of the purchase date."
|
||||
// * Ground truth: "No return or exchange is allowed."
|
||||
// * [document_correctness]: INCORRECT
|
||||
DocumentCorrectness document_correctness = 2;
|
||||
|
||||
// Optional. Whether or not the suggested document is efficient. For example,
|
||||
// if the document is poorly written, hard to understand, hard to use or
|
||||
// too long to find useful information, [document_efficiency][google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.document_efficiency] is
|
||||
// [DocumentEfficiency.INEFFICIENT][google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentEfficiency.INEFFICIENT].
|
||||
DocumentEfficiency document_efficiency = 3;
|
||||
|
||||
// Feedback for conversation summarization.
|
||||
SummarizationFeedback summarization_feedback = 4;
|
||||
}
|
||||
|
||||
// Request message for [AnswerRecords.GetAnswerRecord][google.cloud.dialogflow.v2beta1.AnswerRecords.GetAnswerRecord].
|
||||
message GetAnswerRecordRequest {
|
||||
// Required. The name of the answer record to retrieve.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/answerRecords/<Answer Record Id>`.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// Request message for [AnswerRecords.ListAnswerRecords][google.cloud.dialogflow.v2beta1.AnswerRecords.ListAnswerRecords].
|
||||
message ListAnswerRecordsRequest {
|
||||
// Required. The project to list all answer records for in reverse
|
||||
// chronological order. Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>`.
|
||||
string parent = 1 [(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/AnswerRecord"
|
||||
}];
|
||||
|
||||
// Optional. The maximum number of records to return in a single page.
|
||||
// The server may return fewer records than this. If unspecified, we use 10.
|
||||
// The maximum is 100.
|
||||
int32 page_size = 3;
|
||||
|
||||
// Optional. The
|
||||
// [ListAnswerRecordsResponse.next_page_token][google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse.next_page_token]
|
||||
// value returned from a previous list request used to continue listing on
|
||||
// the next page.
|
||||
string page_token = 4;
|
||||
}
|
||||
|
||||
// Response message for [AnswerRecords.ListAnswerRecords][google.cloud.dialogflow.v2beta1.AnswerRecords.ListAnswerRecords].
|
||||
message ListAnswerRecordsResponse {
|
||||
// The list of answer records.
|
||||
repeated AnswerRecord answer_records = 1;
|
||||
|
||||
// A token to retrieve next page of results. Or empty if there are no more
|
||||
// results.
|
||||
// Pass this value in the
|
||||
// [ListAnswerRecordsRequest.page_token][google.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest.page_token]
|
||||
// field in the subsequent call to `ListAnswerRecords` method to retrieve the
|
||||
// next page of results.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// Request message for [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2beta1.AnswerRecords.UpdateAnswerRecord].
|
||||
message UpdateAnswerRecordRequest {
|
||||
// Required. Answer record to update.
|
||||
AnswerRecord answer_record = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/AnswerRecord"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The mask to control which fields get updated.
|
||||
google.protobuf.FieldMask update_mask = 2;
|
||||
}
|
||||
|
|
@ -248,6 +248,12 @@ message InputAudioConfig {
|
|||
// Note: When specified, InputAudioConfig.single_utterance takes precedence
|
||||
// over StreamingDetectIntentRequest.single_utterance.
|
||||
bool single_utterance = 8;
|
||||
|
||||
// Only used in [Participants.AnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent] and
|
||||
// [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent].
|
||||
// If `false` and recognition doesn't return any result, trigger
|
||||
// `NO_SPEECH_RECOGNIZED` event to Dialogflow agent.
|
||||
bool disable_no_speech_recognized_event = 14;
|
||||
}
|
||||
|
||||
// Description of which voice to use for speech synthesis.
|
||||
|
|
@ -360,6 +366,15 @@ enum OutputAudioEncoding {
|
|||
OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3;
|
||||
}
|
||||
|
||||
// Configures speech transcription for [ConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfile].
|
||||
message SpeechToTextConfig {
|
||||
// Optional. The speech model used in speech to text.
|
||||
// `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as
|
||||
// `USE_ENHANCED`. It can be overridden in [AnalyzeContentRequest][google.cloud.dialogflow.v2beta1.AnalyzeContentRequest] and
|
||||
// [StreamingAnalyzeContentRequest][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest] request.
|
||||
SpeechModelVariant speech_model_variant = 1 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// [DTMF](https://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling)
|
||||
// digit in Telephony Gateway.
|
||||
enum TelephonyDtmf {
|
||||
|
|
|
|||
581
google/cloud/dialogflow/v2beta1/conversation.proto
Normal file
581
google/cloud/dialogflow/v2beta1/conversation.proto
Normal file
|
|
@ -0,0 +1,581 @@
|
|||
// Copyright 2021 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/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/gcs.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/participant.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/session.proto";
|
||||
import "google/longrunning/operations.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/rpc/status.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 = "ConversationProto";
|
||||
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
||||
option objc_class_prefix = "DF";
|
||||
|
||||
// Service for managing [Conversations][google.cloud.dialogflow.v2beta1.Conversation].
|
||||
service Conversations {
|
||||
option (google.api.default_host) = "dialogflow.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/dialogflow";
|
||||
|
||||
// Creates a new conversation. Conversations are auto-completed after 24
|
||||
// hours.
|
||||
//
|
||||
// Conversation Lifecycle:
|
||||
// There are two stages during a conversation: Automated Agent Stage and
|
||||
// Assist Stage.
|
||||
//
|
||||
// For Automated Agent Stage, there will be a dialogflow agent responding to
|
||||
// user queries.
|
||||
//
|
||||
// For Assist Stage, there's no dialogflow agent responding to user queries.
|
||||
// But we will provide suggestions which are generated from conversation.
|
||||
//
|
||||
// If [Conversation.conversation_profile][google.cloud.dialogflow.v2beta1.Conversation.conversation_profile] is configured for a dialogflow
|
||||
// agent, conversation will start from `Automated Agent Stage`, otherwise, it
|
||||
// will start from `Assist Stage`. And during `Automated Agent Stage`, once an
|
||||
// [Intent][google.cloud.dialogflow.v2beta1.Intent] with [Intent.live_agent_handoff][google.cloud.dialogflow.v2beta1.Intent.live_agent_handoff] is triggered, conversation
|
||||
// will transfer to Assist Stage.
|
||||
rpc CreateConversation(CreateConversationRequest) returns (Conversation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v2beta1/{parent=projects/*}/conversations"
|
||||
body: "conversation"
|
||||
additional_bindings {
|
||||
post: "/v2beta1/{parent=projects/*/locations/*}/conversations"
|
||||
body: "conversation"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent,conversation";
|
||||
}
|
||||
|
||||
// Returns the list of all conversations in the specified project.
|
||||
rpc ListConversations(ListConversationsRequest) returns (ListConversationsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{parent=projects/*}/conversations"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{parent=projects/*/locations/*}/conversations"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Retrieves the specific conversation.
|
||||
rpc GetConversation(GetConversationRequest) returns (Conversation) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{name=projects/*/conversations/*}"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{name=projects/*/locations/*/conversations/*}"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Completes the specified conversation. Finished conversations are purged
|
||||
// from the database after 30 days.
|
||||
rpc CompleteConversation(CompleteConversationRequest) returns (Conversation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v2beta1/{name=projects/*/conversations/*}:complete"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v2beta1/{name=projects/*/locations/*/conversations/*}:complete"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a call matcher that links incoming SIP calls to the specified
|
||||
// conversation if they fulfill specified criteria.
|
||||
rpc CreateCallMatcher(CreateCallMatcherRequest) returns (CallMatcher) {
|
||||
option (google.api.http) = {
|
||||
post: "/v2beta1/{parent=projects/*/conversations/*}/callMatchers"
|
||||
body: "call_matcher"
|
||||
additional_bindings {
|
||||
post: "/v2beta1/{parent=projects/*/locations/*/conversations/*}/callMatchers"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent,call_matcher";
|
||||
}
|
||||
|
||||
// Returns the list of all call matchers in the specified conversation.
|
||||
rpc ListCallMatchers(ListCallMatchersRequest) returns (ListCallMatchersResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{parent=projects/*/conversations/*}/callMatchers"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{parent=projects/*/locations/*/conversations/*}/callMatchers"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Requests deletion of a call matcher.
|
||||
rpc DeleteCallMatcher(DeleteCallMatcherRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v2beta1/{name=projects/*/conversations/*/callMatchers/*}"
|
||||
additional_bindings {
|
||||
delete: "/v2beta1/{name=projects/*/locations/*/conversations/*/callMatchers/*}"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Batch ingests messages to conversation. Customers can use this RPC to
|
||||
// ingest historical messages to conversation.
|
||||
rpc BatchCreateMessages(BatchCreateMessagesRequest) returns (BatchCreateMessagesResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v2beta1/{parent=projects/*/conversations/*}/messages:batchCreate"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages:batchCreate"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Lists messages that belong to a given conversation.
|
||||
// `messages` are ordered by `create_time` in descending order. To fetch
|
||||
// updates without duplication, send request with filter
|
||||
// `create_time_epoch_microseconds >
|
||||
// [first item's create_time of previous request]` and empty page_token.
|
||||
rpc ListMessages(ListMessagesRequest) returns (ListMessagesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{parent=projects/*/conversations/*}/messages"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
}
|
||||
|
||||
// Represents a conversation.
|
||||
// A conversation is an interaction between an agent, including live agents
|
||||
// and Dialogflow agents, and a support customer. Conversations can
|
||||
// include phone calls and text-based chat sessions.
|
||||
message Conversation {
|
||||
option (google.api.resource) = {
|
||||
type: "dialogflow.googleapis.com/Conversation"
|
||||
pattern: "projects/{project}/conversations/{conversation}"
|
||||
pattern: "projects/{project}/locations/{location}/conversations/{conversation}"
|
||||
};
|
||||
|
||||
// Enumeration of the completion status of the conversation.
|
||||
enum LifecycleState {
|
||||
// Unknown.
|
||||
LIFECYCLE_STATE_UNSPECIFIED = 0;
|
||||
|
||||
// Conversation is currently open for media analysis.
|
||||
IN_PROGRESS = 1;
|
||||
|
||||
// Conversation has been completed.
|
||||
COMPLETED = 2;
|
||||
}
|
||||
|
||||
// Enumeration of the different conversation stages a conversation can be in.
|
||||
// Reference:
|
||||
// https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages
|
||||
enum ConversationStage {
|
||||
// Unknown. Should never be used after a conversation is successfully
|
||||
// created.
|
||||
CONVERSATION_STAGE_UNSPECIFIED = 0;
|
||||
|
||||
// The conversation should return virtual agent responses into the
|
||||
// conversation.
|
||||
VIRTUAL_AGENT_STAGE = 1;
|
||||
|
||||
// The conversation should not provide responses, just listen and provide
|
||||
// suggestions.
|
||||
HUMAN_ASSIST_STAGE = 2;
|
||||
}
|
||||
|
||||
// Output only. The unique identifier of this conversation.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`.
|
||||
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. The current state of the Conversation.
|
||||
LifecycleState lifecycle_state = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Required. The Conversation Profile to be used to configure this
|
||||
// Conversation. This field cannot be updated.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversationProfiles/<Conversation Profile ID>`.
|
||||
string conversation_profile = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/ConversationProfile"
|
||||
}
|
||||
];
|
||||
|
||||
// Output only. Required if the conversation is to be connected over
|
||||
// telephony.
|
||||
ConversationPhoneNumber phone_number = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// The stage of a conversation. It indicates whether the virtual agent or a
|
||||
// human agent is handling the conversation.
|
||||
//
|
||||
// If the conversation is created with the conversation profile that has
|
||||
// Dialogflow config set, defaults to
|
||||
// [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE]; Otherwise, defaults to
|
||||
// [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE].
|
||||
//
|
||||
// If the conversation is created with the conversation profile that has
|
||||
// Dialogflow config set but explicitly sets conversation_stage to
|
||||
// [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE], it skips
|
||||
// [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] stage and directly goes to
|
||||
// [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE].
|
||||
ConversationStage conversation_stage = 7;
|
||||
|
||||
// Output only. The time the conversation was started.
|
||||
google.protobuf.Timestamp start_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. The time the conversation was finished.
|
||||
google.protobuf.Timestamp end_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
|
||||
// Represents a phone number for telephony integration. It allows for connecting
|
||||
// a particular conversation over telephony.
|
||||
message ConversationPhoneNumber {
|
||||
// Output only. The phone number to connect to this conversation.
|
||||
string phone_number = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
|
||||
// Represents a call matcher that describes criteria for matching incoming SIP
|
||||
// calls to a conversation. When Dialogflow get a SIP call from a third-party
|
||||
// carrier, Dialogflow matches the call to an existing conversation by either:
|
||||
//
|
||||
// * Extracting the conversation id from the
|
||||
// [Call-Info header](https://tools.ietf.org/html/rfc3261#section-20.9), e.g.
|
||||
// `Call-Info:
|
||||
// <http://dialogflow.googleapis.com/v2beta1/projects/111/conversations/222>
|
||||
// ;purpose=Goog-ContactCenter-Conversation`.
|
||||
// * Or, if that doesn't work, matching incoming [SIP
|
||||
// headers](https://tools.ietf.org/html/rfc3261#section-7.3)
|
||||
// against any [CallMatcher][google.cloud.dialogflow.v2beta1.CallMatcher] for the conversation.
|
||||
//
|
||||
// If an incoming SIP call without valid `Call-Info` header matches to zero or
|
||||
// multiple conversations with `CallMatcher`, we reject it.
|
||||
//
|
||||
// A call matcher contains equality conditions for SIP headers that all have
|
||||
// to be fulfilled in order for a SIP call to match.
|
||||
//
|
||||
// The matched SIP headers consist of well-known headers (`To`, `From`,
|
||||
// `Call-ID`) and custom headers. A [CallMatcher][google.cloud.dialogflow.v2beta1.CallMatcher] is only valid if it
|
||||
// specifies:
|
||||
//
|
||||
// * At least 1 custom header,
|
||||
// * or at least 2 well-known headers.
|
||||
message CallMatcher {
|
||||
option (google.api.resource) = {
|
||||
type: "dialogflow.googleapis.com/CallMatcher"
|
||||
pattern: "projects/{project}/conversations/{conversation}/callMatchers/{call_matcher}"
|
||||
pattern: "projects/{project}/locations/{location}/conversations/{conversation}/callMatchers/{call_matcher}"
|
||||
};
|
||||
|
||||
// Custom SIP headers. See the [description of headers in
|
||||
// the RFC](https://tools.ietf.org/html/rfc3261#section-7.3).
|
||||
message CustomHeaders {
|
||||
// Cisco's proprietary `Cisco-Guid` header.
|
||||
string cisco_guid = 1;
|
||||
}
|
||||
|
||||
// Output only. The unique identifier of this call matcher.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>/callMatchers/<Call Matcher ID>`.
|
||||
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Value of the [`To`
|
||||
// header](https://tools.ietf.org/html/rfc3261#section-8.1.1.2) to match. If
|
||||
// empty or unspecified, we don't match to the
|
||||
// [`To` header](https://tools.ietf.org/html/rfc3261#section-8.1.1.2).
|
||||
string to_header = 2;
|
||||
|
||||
// Value of the [`From`
|
||||
// header](https://tools.ietf.org/html/rfc3261#section-8.1.1.3) to match. If
|
||||
// empty or unspecified, we don't match to the
|
||||
// [`From` header](https://tools.ietf.org/html/rfc3261#section-8.1.1.3).
|
||||
string from_header = 3;
|
||||
|
||||
// Value of the [`Call-ID`
|
||||
// header](https://tools.ietf.org/html/rfc3261#section-8.1.1.4) to match. If
|
||||
// empty or unspecified, we don't match to the
|
||||
// [`Call-ID` header](https://tools.ietf.org/html/rfc3261#section-8.1.1.4).
|
||||
string call_id_header = 4;
|
||||
|
||||
// Custom SIP headers that must match.
|
||||
CustomHeaders custom_headers = 5;
|
||||
}
|
||||
|
||||
// The request message for [Conversations.CreateConversation][google.cloud.dialogflow.v2beta1.Conversations.CreateConversation].
|
||||
message CreateConversationRequest {
|
||||
// Required. Resource identifier of the project creating the conversation.
|
||||
// Format: `projects/<Project ID>/locations/<Location ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/Conversation"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The conversation to create.
|
||||
Conversation conversation = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. Identifier of the conversation. Generally it's auto generated by Google.
|
||||
// Only set it if you cannot wait for the response to return a
|
||||
// auto-generated one to you.
|
||||
//
|
||||
// The conversation ID must be compliant with the regression fomula
|
||||
// "[a-zA-Z][a-zA-Z0-9_-]*" with the characters length in range of [3,64].
|
||||
// If the field is provided, the caller is resposible for
|
||||
// 1. the uniqueness of the ID, otherwise the request will be rejected.
|
||||
// 2. the consistency for whether to use custom ID or not under a project to
|
||||
// better ensure uniqueness.
|
||||
string conversation_id = 3 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// The request message for [Conversations.ListConversations][google.cloud.dialogflow.v2beta1.Conversations.ListConversations].
|
||||
message ListConversationsRequest {
|
||||
// Required. The project from which to list all conversation.
|
||||
// Format: `projects/<Project ID>/locations/<Location ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/Conversation"
|
||||
}
|
||||
];
|
||||
|
||||
// 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;
|
||||
|
||||
// A filter expression that filters conversations listed in the response. In
|
||||
// general, the expression must specify the field name, a comparison operator,
|
||||
// and the value to use for filtering:
|
||||
// <ul>
|
||||
// <li>The value must be a string, a number, or a boolean.</li>
|
||||
// <li>The comparison operator must be either `=`,`!=`, `>`, or `<`.</li>
|
||||
// <li>To filter on multiple expressions, separate the
|
||||
// expressions with `AND` or `OR` (omitting both implies `AND`).</li>
|
||||
// <li>For clarity, expressions can be enclosed in parentheses.</li>
|
||||
// </ul>
|
||||
// Only `lifecycle_state` can be filtered on in this way. For example,
|
||||
// the following expression only returns `COMPLETED` conversations:
|
||||
//
|
||||
// `lifecycle_state = "COMPLETED"`
|
||||
//
|
||||
// For more information about filtering, see
|
||||
// [API Filtering](https://aip.dev/160).
|
||||
string filter = 4;
|
||||
}
|
||||
|
||||
// The response message for [Conversations.ListConversations][google.cloud.dialogflow.v2beta1.Conversations.ListConversations].
|
||||
message ListConversationsResponse {
|
||||
// The list of conversations. There will be a maximum number of items
|
||||
// returned based on the page_size field in the request.
|
||||
repeated Conversation conversations = 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 [Conversations.GetConversation][google.cloud.dialogflow.v2beta1.Conversations.GetConversation].
|
||||
message GetConversationRequest {
|
||||
// Required. The name of the conversation. Format:
|
||||
// `projects/<Project ID>/locations/<Location ID>/conversations/<Conversation
|
||||
// ID>`.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Conversation"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The request message for [Conversations.CompleteConversation][google.cloud.dialogflow.v2beta1.Conversations.CompleteConversation].
|
||||
message CompleteConversationRequest {
|
||||
// Required. Resource identifier of the conversation to close.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Conversation"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The request message for [Conversations.CreateCallMatcher][google.cloud.dialogflow.v2beta1.Conversations.CreateCallMatcher].
|
||||
message CreateCallMatcherRequest {
|
||||
// Required. Resource identifier of the conversation adding the call matcher.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/CallMatcher"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The call matcher to create.
|
||||
CallMatcher call_matcher = 2;
|
||||
}
|
||||
|
||||
// The request message for [Conversations.ListCallMatchers][google.cloud.dialogflow.v2beta1.Conversations.ListCallMatchers].
|
||||
message ListCallMatchersRequest {
|
||||
// Required. The conversation to list all call matchers from.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/CallMatcher"
|
||||
}
|
||||
];
|
||||
|
||||
// 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 [Conversations.ListCallMatchers][google.cloud.dialogflow.v2beta1.Conversations.ListCallMatchers].
|
||||
message ListCallMatchersResponse {
|
||||
// The list of call matchers. There is a maximum number of items
|
||||
// returned based on the page_size field in the request.
|
||||
repeated CallMatcher call_matchers = 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 [Conversations.DeleteCallMatcher][google.cloud.dialogflow.v2beta1.Conversations.DeleteCallMatcher].
|
||||
message DeleteCallMatcherRequest {
|
||||
// Required. The unique identifier of the [CallMatcher][google.cloud.dialogflow.v2beta1.CallMatcher] to delete.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>/callMatchers/<CallMatcher ID>`.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/CallMatcher"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The request message to create one Message. Currently it is only used in
|
||||
// BatchCreateMessagesRequest.
|
||||
message CreateMessageRequest {
|
||||
// Required. Resource identifier of the conversation to create message.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Conversation"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The message to create.
|
||||
// [Message.participant][google.cloud.dialogflow.v2beta1.Message.participant] is required.
|
||||
Message message = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The request message for [Conversations.BatchCreateMessagesRequest][].
|
||||
message BatchCreateMessagesRequest {
|
||||
// Required. Resource identifier of the conversation to create message.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Conversation"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. A maximum of 1000 Messages can be created in a batch.
|
||||
// [CreateMessageRequest.message.send_time][] is required. All created
|
||||
// messages will have identical [Message.create_time][google.cloud.dialogflow.v2beta1.Message.create_time].
|
||||
repeated CreateMessageRequest requests = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The request message for [Conversations.BatchCreateMessagesResponse][].
|
||||
message BatchCreateMessagesResponse {
|
||||
// Messages created.
|
||||
repeated Message messages = 1;
|
||||
}
|
||||
|
||||
// The request message for [Conversations.ListMessages][google.cloud.dialogflow.v2beta1.Conversations.ListMessages].
|
||||
message ListMessagesRequest {
|
||||
// Required. The name of the conversation to list messages for.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversations/<Conversation ID>`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/Message"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. Filter on message fields. Currently predicates on `create_time`
|
||||
// and `create_time_epoch_microseconds` are supported. `create_time` only
|
||||
// support milliseconds accuracy. E.g.,
|
||||
// `create_time_epoch_microseconds > 1551790877964485` or
|
||||
// `create_time > 2017-01-15T01:30:15.01Z`.
|
||||
//
|
||||
// For more information about filtering, see
|
||||
// [API Filtering](https://aip.dev/160).
|
||||
string filter = 4;
|
||||
|
||||
// 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 [Conversations.ListMessages][google.cloud.dialogflow.v2beta1.Conversations.ListMessages].
|
||||
message ListMessagesResponse {
|
||||
// Required. The list of messages. There will be a maximum number of items
|
||||
// returned based on the page_size field in the request.
|
||||
// `messages` is sorted by `create_time` in descending order.
|
||||
repeated Message messages = 1;
|
||||
|
||||
// Optional. Token to retrieve the next page of results, or empty if there are
|
||||
// no more results in the list.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
82
google/cloud/dialogflow/v2beta1/conversation_event.proto
Normal file
82
google/cloud/dialogflow/v2beta1/conversation_event.proto
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
// Copyright 2021 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/cloud/dialogflow/v2beta1/participant.proto";
|
||||
import "google/rpc/status.proto";
|
||||
import "google/api/annotations.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 = "ConversationEventProto";
|
||||
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
||||
option objc_class_prefix = "DF";
|
||||
|
||||
// Represents a notification sent to Pub/Sub subscribers for conversation
|
||||
// lifecycle events.
|
||||
message ConversationEvent {
|
||||
// Enumeration of the types of events available.
|
||||
enum Type {
|
||||
// Type not set.
|
||||
TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// A new conversation has been opened. This is fired when a telephone call
|
||||
// is answered, or a conversation is created via the API.
|
||||
CONVERSATION_STARTED = 1;
|
||||
|
||||
// An existing conversation has closed. This is fired when a telephone call
|
||||
// is terminated, or a conversation is closed via the API.
|
||||
CONVERSATION_FINISHED = 2;
|
||||
|
||||
// An existing conversation has received a new message, either from API or
|
||||
// telephony. It is configured in
|
||||
// [ConversationProfile.new_message_event_notification_config][google.cloud.dialogflow.v2beta1.ConversationProfile.new_message_event_notification_config]
|
||||
NEW_MESSAGE = 5;
|
||||
|
||||
// Unrecoverable error during a telephone call.
|
||||
//
|
||||
// In general non-recoverable errors only occur if something was
|
||||
// misconfigured in the ConversationProfile corresponding to the call. After
|
||||
// a non-recoverable error, Dialogflow may stop responding.
|
||||
//
|
||||
// We don't fire this event:
|
||||
//
|
||||
// * in an API call because we can directly return the error, or,
|
||||
// * when we can recover from an error.
|
||||
UNRECOVERABLE_ERROR = 4;
|
||||
}
|
||||
|
||||
// Required. The unique identifier of the conversation this notification
|
||||
// refers to.
|
||||
// Format: `projects/<Project ID>/conversations/<Conversation ID>`.
|
||||
string conversation = 1;
|
||||
|
||||
// Required. The type of the event that this notification refers to.
|
||||
Type type = 2;
|
||||
|
||||
// Optional. More detailed information about an error. Only set for type
|
||||
// UNRECOVERABLE_ERROR_IN_PHONE_CALL.
|
||||
google.rpc.Status error_status = 3;
|
||||
|
||||
// Payload of conversation event.
|
||||
oneof payload {
|
||||
// Payload of NEW_MESSAGE event.
|
||||
Message new_message_payload = 4;
|
||||
}
|
||||
}
|
||||
564
google/cloud/dialogflow/v2beta1/conversation_profile.proto
Normal file
564
google/cloud/dialogflow/v2beta1/conversation_profile.proto
Normal file
|
|
@ -0,0 +1,564 @@
|
|||
// Copyright 2021 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/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/audio_config.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/document.proto";
|
||||
import "google/cloud/dialogflow/v2beta1/participant.proto";
|
||||
import "google/longrunning/operations.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/timestamp.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 = "ConversationProfileProto";
|
||||
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
||||
option objc_class_prefix = "DF";
|
||||
|
||||
// Service for managing [ConversationProfiles][google.cloud.dialogflow.v2beta1.ConversationProfile].
|
||||
service ConversationProfiles {
|
||||
option (google.api.default_host) = "dialogflow.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/dialogflow";
|
||||
|
||||
// Returns the list of all conversation profiles in the specified project.
|
||||
rpc ListConversationProfiles(ListConversationProfilesRequest) returns (ListConversationProfilesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{parent=projects/*}/conversationProfiles"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Retrieves the specified conversation profile.
|
||||
rpc GetConversationProfile(GetConversationProfileRequest) returns (ConversationProfile) {
|
||||
option (google.api.http) = {
|
||||
get: "/v2beta1/{name=projects/*/conversationProfiles/*}"
|
||||
additional_bindings {
|
||||
get: "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a conversation profile in the specified project.
|
||||
//
|
||||
// [ConversationProfile.CreateTime][] and [ConversationProfile.UpdateTime][]
|
||||
// aren't populated in the response. You can retrieve them via
|
||||
// [GetConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile] API.
|
||||
rpc CreateConversationProfile(CreateConversationProfileRequest) returns (ConversationProfile) {
|
||||
option (google.api.http) = {
|
||||
post: "/v2beta1/{parent=projects/*}/conversationProfiles"
|
||||
body: "conversation_profile"
|
||||
additional_bindings {
|
||||
post: "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles"
|
||||
body: "conversation_profile"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "parent,conversation_profile";
|
||||
}
|
||||
|
||||
// Updates the specified conversation profile.
|
||||
//
|
||||
// [ConversationProfile.CreateTime][] and [ConversationProfile.UpdateTime][]
|
||||
// aren't populated in the response. You can retrieve them via
|
||||
// [GetConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile] API.
|
||||
rpc UpdateConversationProfile(UpdateConversationProfileRequest) returns (ConversationProfile) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v2beta1/{conversation_profile.name=projects/*/conversationProfiles/*}"
|
||||
body: "conversation_profile"
|
||||
additional_bindings {
|
||||
patch: "/v2beta1/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}"
|
||||
body: "conversation_profile"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "conversation_profile,update_mask";
|
||||
}
|
||||
|
||||
// Deletes the specified conversation profile.
|
||||
rpc DeleteConversationProfile(DeleteConversationProfileRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v2beta1/{name=projects/*/conversationProfiles/*}"
|
||||
additional_bindings {
|
||||
delete: "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}"
|
||||
}
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
}
|
||||
|
||||
// Defines the services to connect to incoming Dialogflow conversations.
|
||||
message ConversationProfile {
|
||||
option (google.api.resource) = {
|
||||
type: "dialogflow.googleapis.com/ConversationProfile"
|
||||
pattern: "projects/{project}/conversationProfiles/{conversation_profile}"
|
||||
pattern: "projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}"
|
||||
};
|
||||
|
||||
// The unique identifier of this conversation profile.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversationProfiles/<Conversation Profile ID>`.
|
||||
string name = 1;
|
||||
|
||||
// Required. Human readable name for this profile. Max length 1024 bytes.
|
||||
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Output only. Create time of the conversation profile.
|
||||
google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Update time of the conversation profile.
|
||||
google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Configuration for an automated agent to use with this profile.
|
||||
AutomatedAgentConfig automated_agent_config = 3;
|
||||
|
||||
// Configuration for agent assistance to use with this profile.
|
||||
HumanAgentAssistantConfig human_agent_assistant_config = 4;
|
||||
|
||||
// Configuration for connecting to a live agent.
|
||||
HumanAgentHandoffConfig human_agent_handoff_config = 5;
|
||||
|
||||
// Configuration for publishing conversation lifecycle events.
|
||||
NotificationConfig notification_config = 6;
|
||||
|
||||
// Configuration for logging conversation lifecycle events.
|
||||
LoggingConfig logging_config = 7;
|
||||
|
||||
// Configuration for publishing new message events. Event will be sent in
|
||||
// format of [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent]
|
||||
NotificationConfig new_message_event_notification_config = 8;
|
||||
|
||||
// Settings for speech transcription.
|
||||
SpeechToTextConfig stt_config = 9;
|
||||
|
||||
// Language code for the conversation profile. If not specified, the language
|
||||
// is en-US. Language at ConversationProfile should be set for all non en-us
|
||||
// languages.
|
||||
string language_code = 10;
|
||||
}
|
||||
|
||||
// Defines the Automated Agent to connect to a conversation.
|
||||
message AutomatedAgentConfig {
|
||||
// Required. ID of the Dialogflow agent environment to use.
|
||||
//
|
||||
// This project needs to either be the same project as the conversation or you
|
||||
// need to grant `service-<Conversation Project
|
||||
// Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API
|
||||
// Service Agent` role in this project.
|
||||
//
|
||||
// - For ES agents, use format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/agent/environments/<Environment ID or '-'>`. If environment is not
|
||||
// specified, the default `draft` environment is used. Refer to
|
||||
// [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2beta1#google.cloud.dialogflow.v2beta1.DetectIntentRequest)
|
||||
// for more details.
|
||||
//
|
||||
// - For CX agents, use format `projects/<Project ID>/locations/<Location
|
||||
// ID>/agents/<Agent ID>/environments/<Environment ID
|
||||
// or '-'>`. If environment is not specified, the default `draft` environment
|
||||
// is used.
|
||||
string agent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Agent"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Defines the Human Agent Assistant to connect to a conversation.
|
||||
message HumanAgentAssistantConfig {
|
||||
// Settings of suggestion trigger.
|
||||
message SuggestionTriggerSettings {
|
||||
// Do not trigger if last utterance is small talk.
|
||||
bool no_small_talk = 1;
|
||||
|
||||
// Only trigger suggestion if participant role of last utterance is
|
||||
// END_USER.
|
||||
bool only_end_user = 2;
|
||||
}
|
||||
|
||||
// Config for suggestion features.
|
||||
message SuggestionFeatureConfig {
|
||||
// The suggestion feature.
|
||||
SuggestionFeature suggestion_feature = 5;
|
||||
|
||||
// Automatically iterates all participants and tries to compile
|
||||
// suggestions.
|
||||
//
|
||||
// Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
|
||||
bool enable_event_based_suggestion = 3;
|
||||
|
||||
// Settings of suggestion trigger.
|
||||
//
|
||||
// Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use
|
||||
// this field.
|
||||
SuggestionTriggerSettings suggestion_trigger_settings = 10;
|
||||
|
||||
// Configs of query.
|
||||
SuggestionQueryConfig query_config = 6;
|
||||
|
||||
// Configs of custom conversation model.
|
||||
ConversationModelConfig conversation_model_config = 7;
|
||||
}
|
||||
|
||||
// Detail human agent assistant config.
|
||||
message SuggestionConfig {
|
||||
// Configuration of different suggestion features. One feature can have only
|
||||
// one config.
|
||||
repeated SuggestionFeatureConfig feature_configs = 2;
|
||||
|
||||
// If `group_suggestion_responses` is false, and there are multiple
|
||||
// `feature_configs` in `event based suggestion` or
|
||||
// StreamingAnalyzeContent, we will try to deliver suggestions to customers
|
||||
// as soon as we get new suggestion. Different type of suggestions based on
|
||||
// the same context will be in separate Pub/Sub event or
|
||||
// `StreamingAnalyzeContentResponse`.
|
||||
//
|
||||
// If `group_suggestion_responses` set to true. All the suggestions to the
|
||||
// same participant based on the same context will be grouped into a single
|
||||
// Pub/Sub event or StreamingAnalyzeContentResponse.
|
||||
bool group_suggestion_responses = 3;
|
||||
}
|
||||
|
||||
// Config for suggestion query.
|
||||
message SuggestionQueryConfig {
|
||||
// Knowledge base source settings.
|
||||
//
|
||||
// Supported features: ARTICLE_SUGGESTION, FAQ.
|
||||
message KnowledgeBaseQuerySource {
|
||||
// Required. Knowledge bases to query. Format:
|
||||
// `projects/<Project ID>/locations/<Location
|
||||
// ID>/knowledgeBases/<Knowledge Base ID>`. Currently, only one knowledge
|
||||
// base is supported.
|
||||
repeated string knowledge_bases = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/KnowledgeBase"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Document source settings.
|
||||
//
|
||||
// Supported features: SMART_REPLY, SMART_COMPOSE.
|
||||
message DocumentQuerySource {
|
||||
// Required. Knowledge documents to query from. Format:
|
||||
// `projects/<Project ID>/locations/<Location
|
||||
// ID>/knowledgeBases/<KnowledgeBase ID>/documents/<Document ID>`.
|
||||
// Currently, only one document is supported.
|
||||
repeated string documents = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Document"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Dialogflow source setting.
|
||||
//
|
||||
// Supported feature: DIALOGFLOW_ASSIST.
|
||||
message DialogflowQuerySource {
|
||||
// Required. The name of a dialogflow virtual agent used for end user side intent
|
||||
// detection and suggestion. Format: `projects/<Project Number /
|
||||
// ID>/locations/<Location ID>/agent`. When multiple agents are allowed in
|
||||
// the same Dialogflow project.
|
||||
string agent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/Agent"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Settings that determine how to filter recent conversation context when
|
||||
// generating suggestions.
|
||||
message ContextFilterSettings {
|
||||
// If set to true, the last message from virtual agent (hand off message)
|
||||
// and the message before it (trigger message of hand off) are dropped.
|
||||
bool drop_handoff_messages = 1;
|
||||
|
||||
// If set to true, all messages from virtual agent are dropped.
|
||||
bool drop_virtual_agent_messages = 2;
|
||||
|
||||
// If set to true, all messages from ivr stage are dropped.
|
||||
bool drop_ivr_messages = 3;
|
||||
}
|
||||
|
||||
// Source of query.
|
||||
oneof query_source {
|
||||
// Query from knowledgebase. It is used by:
|
||||
// ARTICLE_SUGGESTION, FAQ.
|
||||
KnowledgeBaseQuerySource knowledge_base_query_source = 1;
|
||||
|
||||
// Query from knowledge base document. It is used by:
|
||||
// SMART_REPLY, SMART_COMPOSE.
|
||||
DocumentQuerySource document_query_source = 2;
|
||||
|
||||
// Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
|
||||
DialogflowQuerySource dialogflow_query_source = 3;
|
||||
}
|
||||
|
||||
// Maximum number of results to return. Currently, if unset, defaults to 10.
|
||||
// And the max number is 20.
|
||||
int32 max_results = 4;
|
||||
|
||||
// Confidence threshold of query result.
|
||||
//
|
||||
// Agent Assist gives each suggestion a score in the range [0.0, 1.0], based
|
||||
// on the relevance between the suggestion and the current conversation
|
||||
// context. A score of 0.0 has no relevance, while a score of 1.0 has high
|
||||
// relevance. Only suggestions with a score greater than or equal to the
|
||||
// value of this field are included in the results.
|
||||
//
|
||||
// For a baseline model (the default), the recommended value is in the range
|
||||
// [0.05, 0.1].
|
||||
//
|
||||
// For a custom model, there is no recommended value. Tune this value by
|
||||
// starting from a very low value and slowly increasing until you have
|
||||
// desired results.
|
||||
//
|
||||
// If this field is not set, it is default to 0.0, which means that all
|
||||
// suggestions are returned.
|
||||
//
|
||||
// Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
|
||||
float confidence_threshold = 5;
|
||||
|
||||
// Determines how recent conversation context is filtered when generating
|
||||
// suggestions. If unspecified, no messages will be dropped.
|
||||
ContextFilterSettings context_filter_settings = 7;
|
||||
}
|
||||
|
||||
// Custom conversation models used in agent assist feature.
|
||||
//
|
||||
// Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY.
|
||||
message ConversationModelConfig {
|
||||
// Required. Conversation model resource name. Format: `projects/<Project
|
||||
// ID>/conversationModels/<Model ID>`.
|
||||
string model = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/ConversationModel"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Configuration for analyses to run on each conversation message.
|
||||
message MessageAnalysisConfig {
|
||||
// Enable entity extraction in conversation messages on [agent assist
|
||||
// stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages).
|
||||
// If unspecified, defaults to false.
|
||||
bool enable_entity_extraction = 2;
|
||||
|
||||
// Enable sentiment analysis in conversation messages on [agent assist
|
||||
// stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages).
|
||||
// If unspecified, defaults to false. Sentiment analysis inspects user input
|
||||
// and identifies the prevailing subjective opinion, especially to determine
|
||||
// a user's attitude as positive, negative, or neutral:
|
||||
// https://cloud.google.com/natural-language/docs/basics#sentiment_analysis
|
||||
// For [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent] method, result will be in
|
||||
// [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse.message].
|
||||
// For [Participants.AnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent] method, result will be in
|
||||
// [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.AnalyzeContentResponse.message]
|
||||
// For [Conversations.ListMessages][google.cloud.dialogflow.v2beta1.Conversations.ListMessages] method, result will be in
|
||||
// [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.ListMessagesResponse.messages]
|
||||
// If Pub/Sub notification is configured, result will be in
|
||||
// [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.ConversationEvent.new_message_payload].
|
||||
bool enable_sentiment_analysis = 3;
|
||||
}
|
||||
|
||||
// Pub/Sub topic on which to publish new agent assistant events.
|
||||
NotificationConfig notification_config = 2;
|
||||
|
||||
// Configuration for agent assistance of human agent participant.
|
||||
SuggestionConfig human_agent_suggestion_config = 3;
|
||||
|
||||
// Configuration for agent assistance of end user participant.
|
||||
SuggestionConfig end_user_suggestion_config = 4;
|
||||
|
||||
// Configuration for message analysis.
|
||||
MessageAnalysisConfig message_analysis_config = 5;
|
||||
}
|
||||
|
||||
// Defines the hand off to a live agent, typically on which external agent
|
||||
// service provider to connect to a conversation.
|
||||
message HumanAgentHandoffConfig {
|
||||
// Configuration specific to LivePerson (https://www.liveperson.com).
|
||||
message LivePersonConfig {
|
||||
// Required. Account number of the LivePerson account to connect. This is
|
||||
// the account number you input at the login page.
|
||||
string account_number = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Configuration specific to Salesforce Live Agent.
|
||||
message SalesforceLiveAgentConfig {
|
||||
// Required. The organization ID of the Salesforce account.
|
||||
string organization_id = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Live Agent deployment ID.
|
||||
string deployment_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Live Agent chat button ID.
|
||||
string button_id = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Domain of the Live Agent endpoint for this agent. You can find
|
||||
// the endpoint URL in the `Live Agent settings` page. For example if URL
|
||||
// has the form https://d.la4-c2-phx.salesforceliveagent.com/...,
|
||||
// you should fill in d.la4-c2-phx.salesforceliveagent.com.
|
||||
string endpoint_domain = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Required. Specifies which agent service to connect for human agent handoff.
|
||||
oneof agent_service {
|
||||
// Uses LivePerson (https://www.liveperson.com).
|
||||
LivePersonConfig live_person_config = 1;
|
||||
|
||||
// Uses Salesforce Live Agent.
|
||||
SalesforceLiveAgentConfig salesforce_live_agent_config = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Defines notification behavior.
|
||||
message NotificationConfig {
|
||||
// Format of cloud pub/sub message.
|
||||
enum MessageFormat {
|
||||
// If it is unspecified, PROTO will be used.
|
||||
MESSAGE_FORMAT_UNSPECIFIED = 0;
|
||||
|
||||
// Pubsub message will be serialized proto.
|
||||
PROTO = 1;
|
||||
|
||||
// Pubsub message will be json.
|
||||
JSON = 2;
|
||||
}
|
||||
|
||||
// Name of the Pub/Sub topic to publish conversation
|
||||
// events like
|
||||
// [CONVERSATION_STARTED][google.cloud.dialogflow.v2beta1.ConversationEvent.Type.CONVERSATION_STARTED] as
|
||||
// serialized [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent] protos.
|
||||
//
|
||||
// Notification works for phone calls, if this topic either is in the same
|
||||
// project as the conversation or you grant `service-<Conversation Project
|
||||
// Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service
|
||||
// Agent` role in the topic project.
|
||||
//
|
||||
// Format: `projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>`.
|
||||
string topic = 1;
|
||||
|
||||
// Format of message.
|
||||
MessageFormat message_format = 2;
|
||||
}
|
||||
|
||||
// Defines logging behavior for conversation lifecycle events.
|
||||
message LoggingConfig {
|
||||
// Whether to log conversation events like
|
||||
// [CONVERSATION_STARTED][google.cloud.dialogflow.v2beta1.ConversationEvent.Type.CONVERSATION_STARTED] to
|
||||
// Stackdriver in the conversation project as JSON format
|
||||
// [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent] protos.
|
||||
bool enable_stackdriver_logging = 3;
|
||||
}
|
||||
|
||||
// The request message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfiles].
|
||||
message ListConversationProfilesRequest {
|
||||
// Required. The project to list all conversation profiles from.
|
||||
// Format: `projects/<Project ID>/locations/<Location ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/ConversationProfile"
|
||||
}
|
||||
];
|
||||
|
||||
// The maximum number of items to return in a single page. By
|
||||
// default 100 and at most 1000.
|
||||
int32 page_size = 2;
|
||||
|
||||
// The next_page_token value returned from a previous list request.
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// The response message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfiles].
|
||||
message ListConversationProfilesResponse {
|
||||
// The list of project conversation profiles. There is a maximum number
|
||||
// of items returned based on the page_size field in the request.
|
||||
repeated ConversationProfile conversation_profiles = 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 [ConversationProfiles.GetConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile].
|
||||
message GetConversationProfileRequest {
|
||||
// Required. The resource name of the conversation profile.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversationProfiles/<Conversation Profile ID>`.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/ConversationProfile"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The request message for [ConversationProfiles.CreateConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.CreateConversationProfile].
|
||||
message CreateConversationProfileRequest {
|
||||
// Required. The project to create a conversation profile for.
|
||||
// Format: `projects/<Project ID>/locations/<Location ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/ConversationProfile"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The conversation profile to create.
|
||||
ConversationProfile conversation_profile = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The request message for [ConversationProfiles.UpdateConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.UpdateConversationProfile].
|
||||
message UpdateConversationProfileRequest {
|
||||
// Required. The conversation profile to update.
|
||||
ConversationProfile conversation_profile = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The mask to control which fields to update.
|
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The request message for [ConversationProfiles.DeleteConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.DeleteConversationProfile].
|
||||
//
|
||||
// This operation fails if the conversation profile is still referenced from
|
||||
// a phone number.
|
||||
message DeleteConversationProfileRequest {
|
||||
// Required. The name of the conversation profile to delete.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/conversationProfiles/<Conversation Profile ID>`.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "dialogflow.googleapis.com/ConversationProfile"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
@ -5,19 +5,26 @@ title: Dialogflow API
|
|||
|
||||
apis:
|
||||
- name: google.cloud.dialogflow.v2beta1.Agents
|
||||
- name: google.cloud.dialogflow.v2beta1.AnswerRecords
|
||||
- name: google.cloud.dialogflow.v2beta1.Contexts
|
||||
- name: google.cloud.dialogflow.v2beta1.ConversationProfiles
|
||||
- name: google.cloud.dialogflow.v2beta1.Conversations
|
||||
- name: google.cloud.dialogflow.v2beta1.Documents
|
||||
- name: google.cloud.dialogflow.v2beta1.EntityTypes
|
||||
- name: google.cloud.dialogflow.v2beta1.Environments
|
||||
- name: google.cloud.dialogflow.v2beta1.Intents
|
||||
- name: google.cloud.dialogflow.v2beta1.KnowledgeBases
|
||||
- name: google.cloud.dialogflow.v2beta1.Participants
|
||||
- name: google.cloud.dialogflow.v2beta1.SessionEntityTypes
|
||||
- name: google.cloud.dialogflow.v2beta1.Sessions
|
||||
|
||||
types:
|
||||
- name: google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse
|
||||
- name: google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse
|
||||
- name: google.cloud.dialogflow.v2beta1.ConversationEvent
|
||||
- name: google.cloud.dialogflow.v2beta1.ExportAgentResponse
|
||||
- name: google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent
|
||||
- name: google.cloud.dialogflow.v2beta1.ImportDocumentsResponse
|
||||
- name: google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata
|
||||
- name: google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest
|
||||
- name: google.cloud.dialogflow.v2beta1.WebhookRequest
|
||||
|
|
@ -47,8 +54,14 @@ backend:
|
|||
rules:
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Agents.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.AnswerRecords.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Contexts.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.ConversationProfiles.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Conversations.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Documents.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.EntityTypes.*'
|
||||
|
|
@ -59,6 +72,12 @@ backend:
|
|||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.KnowledgeBases.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Participants.*'
|
||||
deadline: 60.0
|
||||
- selector: google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent
|
||||
deadline: 220.0
|
||||
- selector: google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent
|
||||
deadline: 220.0
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.SessionEntityTypes.*'
|
||||
deadline: 60.0
|
||||
- selector: google.cloud.dialogflow.v2beta1.Sessions.DetectIntent
|
||||
|
|
@ -90,11 +109,26 @@ authentication:
|
|||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.AnswerRecords.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Contexts.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.ConversationProfiles.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Conversations.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Documents.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
|
|
@ -120,6 +154,11 @@ authentication:
|
|||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.Participants.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/dialogflow
|
||||
- selector: 'google.cloud.dialogflow.v2beta1.SessionEntityTypes.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
|
|
|
|||
|
|
@ -100,6 +100,22 @@ service Documents {
|
|||
};
|
||||
}
|
||||
|
||||
// Create documents by importing data from external sources.
|
||||
rpc ImportDocuments(ImportDocumentsRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents:import"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents:import"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "ImportDocumentsResponse"
|
||||
metadata_type: "KnowledgeOperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes the specified document.
|
||||
//
|
||||
// Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
|
||||
|
|
@ -219,6 +235,13 @@ message Document {
|
|||
// Documents for which unstructured text is extracted and used for
|
||||
// question answering.
|
||||
EXTRACTIVE_QA = 2;
|
||||
|
||||
// The entire document content as a whole can be used for query results.
|
||||
// Only for Contact Center Solutions on Dialogflow.
|
||||
ARTICLE_SUGGESTION = 3;
|
||||
|
||||
// The legacy enum for agent-facing smart reply feature.
|
||||
SMART_REPLY = 4;
|
||||
}
|
||||
|
||||
// Optional. The document resource name.
|
||||
|
|
@ -283,6 +306,12 @@ message Document {
|
|||
// This reload may have been triggered automatically or manually
|
||||
// and may not have succeeded.
|
||||
ReloadStatus latest_reload_status = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Optional. Metadata for the document. The metadata supports arbitrary
|
||||
// key-value pairs. Suggested use cases include storing a document's title,
|
||||
// an external URL distinct from the document's content_uri, etc.
|
||||
// The max size of a `key` or a `value` of the metadata is 1024 bytes.
|
||||
map<string, string> metadata = 7 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// Request message for [Documents.GetDocument][google.cloud.dialogflow.v2beta1.Documents.GetDocument].
|
||||
|
|
@ -371,6 +400,62 @@ message CreateDocumentRequest {
|
|||
bool import_gcs_custom_metadata = 3;
|
||||
}
|
||||
|
||||
// Request message for [Documents.ImportDocuments][google.cloud.dialogflow.v2beta1.Documents.ImportDocuments].
|
||||
message ImportDocumentsRequest {
|
||||
// Required. The knowledge base to import documents into.
|
||||
// Format: `projects/<Project ID>/locations/<Location
|
||||
// ID>/knowledgeBases/<Knowledge Base ID>`.
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "dialogflow.googleapis.com/Document"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The source to use for importing documents.
|
||||
//
|
||||
// If the source captures multiple objects, then multiple documents will be
|
||||
// created, one corresponding to each object, and all of these documents will
|
||||
// be created using the same document template.
|
||||
oneof source {
|
||||
// The Google Cloud Storage location for the documents.
|
||||
// The path can include a wildcard.
|
||||
//
|
||||
// These URIs may have the forms
|
||||
// `gs://<bucket-name>/<object-name>`.
|
||||
// `gs://<bucket-name>/<object-path>/*.<extension>`.
|
||||
GcsSources gcs_source = 2;
|
||||
}
|
||||
|
||||
// Required. Document template used for importing all the documents.
|
||||
ImportDocumentTemplate document_template = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Whether to import custom metadata from Google Cloud Storage.
|
||||
// Only valid when the document source is Google Cloud Storage URI.
|
||||
bool import_gcs_custom_metadata = 4;
|
||||
}
|
||||
|
||||
// The template used for importing documents.
|
||||
message ImportDocumentTemplate {
|
||||
// Required. The MIME type of the document.
|
||||
string mime_type = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The knowledge type of document content.
|
||||
repeated Document.KnowledgeType knowledge_types = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Metadata for the document. The metadata supports arbitrary
|
||||
// key-value pairs. Suggested use cases include storing a document's title,
|
||||
// an external URL distinct from the document's content_uri, etc.
|
||||
// The max size of a `key` or a `value` of the metadata is 1024 bytes.
|
||||
map<string, string> metadata = 3;
|
||||
}
|
||||
|
||||
// Response message for [Documents.ImportDocuments][google.cloud.dialogflow.v2beta1.Documents.ImportDocuments].
|
||||
message ImportDocumentsResponse {
|
||||
// Includes details about skipped documents or any other warnings.
|
||||
repeated google.rpc.Status warnings = 1;
|
||||
}
|
||||
|
||||
// Request message for [Documents.DeleteDocument][google.cloud.dialogflow.v2beta1.Documents.DeleteDocument].
|
||||
message DeleteDocumentRequest {
|
||||
// Required. The name of the document to delete.
|
||||
|
|
|
|||
|
|
@ -27,6 +27,15 @@ option java_outer_classname = "GcsProto";
|
|||
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
||||
option objc_class_prefix = "DF";
|
||||
|
||||
// Google Cloud Storage locations for the inputs.
|
||||
message GcsSources {
|
||||
// Required. Google Cloud Storage URIs for the inputs. A URI is of the
|
||||
// form:
|
||||
// gs://bucket/object-prefix-or-name
|
||||
// Whether a prefix or name is used depends on the use case.
|
||||
repeated string uris = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Google Cloud Storage location for single input.
|
||||
message GcsSource {
|
||||
// Required. The Google Cloud Storage URIs for the inputs. A URI is of the
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
// Copyright 2021 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/cloud/dialogflow/v2beta1/participant.proto";
|
||||
import "google/api/annotations.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 = "HumanAgentAssistantEventProto";
|
||||
option java_package = "com.google.cloud.dialogflow.v2beta1";
|
||||
option objc_class_prefix = "DF";
|
||||
|
||||
// Output only. Represents a notification sent to Pub/Sub subscribers for
|
||||
// agent assistant events in a specific conversation.
|
||||
message HumanAgentAssistantEvent {
|
||||
// The conversation this notification refers to.
|
||||
// Format: `projects/<Project ID>/conversations/<Conversation ID>`.
|
||||
string conversation = 1;
|
||||
|
||||
// The participant that the suggestion is compiled for. And This field is used
|
||||
// to call [Participants.ListSuggestions][google.cloud.dialogflow.v2beta1.Participants.ListSuggestions] API. Format:
|
||||
// `projects/<Project ID>/conversations/<Conversation
|
||||
// ID>/participants/<Participant ID>`.
|
||||
// It will not be set in legacy workflow.
|
||||
// [HumanAgentAssistantConfig.name][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.name] for more
|
||||
// information.
|
||||
string participant = 3;
|
||||
|
||||
// The suggestion results payload that this notification refers to. It will
|
||||
// only be set when
|
||||
// [HumanAgentAssistantConfig.SuggestionConfig.group_suggestion_responses][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.group_suggestion_responses]
|
||||
// sets to true.
|
||||
repeated SuggestionResult suggestion_results = 5;
|
||||
}
|
||||
|
|
@ -1117,6 +1117,12 @@ message Intent {
|
|||
// auto-markup in the UI is turned off.
|
||||
bool ml_disabled = 19 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Indicates that a live agent should be brought in to handle the
|
||||
// interaction with the user. In most cases, when you set this flag to true,
|
||||
// you would also want to set end_interaction to true as well. Default is
|
||||
// false.
|
||||
bool live_agent_handoff = 20 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Indicates that this intent ends an interaction. Some integrations
|
||||
// (e.g., Actions on Google or Dialogflow phone gateway) use this information
|
||||
// to close interaction with an end user. Default is false.
|
||||
|
|
|
|||
1286
google/cloud/dialogflow/v2beta1/participant.proto
Normal file
1286
google/cloud/dialogflow/v2beta1/participant.proto
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -117,6 +117,12 @@ message WebhookResponse {
|
|||
// `fulfillment_messages`, and `payload` fields.
|
||||
EventInput followup_event_input = 6;
|
||||
|
||||
// Indicates that a live agent should be brought in to handle the
|
||||
// interaction with the user. In most cases, when you set this flag to true,
|
||||
// you would also want to set end_interaction to true as well. Default is
|
||||
// false.
|
||||
bool live_agent_handoff = 7;
|
||||
|
||||
// Optional. Indicates that this intent ends an interaction. Some integrations
|
||||
// (e.g., Actions on Google or Dialogflow phone gateway) use this information
|
||||
// to close interaction with an end user. Default is false.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue