google.cloud.dialogflow.v2.conversation_profile.proto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of proto-google-cloud-dialogflow-v2 Show documentation
Show all versions of proto-google-cloud-dialogflow-v2 Show documentation
PROTO library for proto-google-cloud-dialogflow-v2
// 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.v2;
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/v2/audio_config.proto";
import "google/cloud/dialogflow/v2/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.V2";
option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
option java_multiple_files = true;
option java_outer_classname = "ConversationProfileProto";
option java_package = "com.google.cloud.dialogflow.v2";
option objc_class_prefix = "DF";
option (google.api.resource_definition) = {
type: "dialogflow.googleapis.com/CXSecuritySettings"
pattern: "projects/{project}/locations/{location}/securitySettings/{security_settings}"
};
option (google.api.resource_definition) = {
type: "dialogflow.googleapis.com/ConversationModel"
pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}"
};
// Service for managing [ConversationProfiles][google.cloud.dialogflow.v2.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: "/v2/{parent=projects/*}/conversationProfiles"
additional_bindings {
get: "/v2/{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: "/v2/{name=projects/*/conversationProfiles/*}"
additional_bindings {
get: "/v2/{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.v2.ConversationProfiles.GetConversationProfile] API.
rpc CreateConversationProfile(CreateConversationProfileRequest) returns (ConversationProfile) {
option (google.api.http) = {
post: "/v2/{parent=projects/*}/conversationProfiles"
body: "conversation_profile"
additional_bindings {
post: "/v2/{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.v2.ConversationProfiles.GetConversationProfile] API.
rpc UpdateConversationProfile(UpdateConversationProfileRequest) returns (ConversationProfile) {
option (google.api.http) = {
patch: "/v2/{conversation_profile.name=projects/*/conversationProfiles/*}"
body: "conversation_profile"
additional_bindings {
patch: "/v2/{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: "/v2/{name=projects/*/conversationProfiles/*}"
additional_bindings {
delete: "/v2/{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//locations//conversationProfiles/`.
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.
//
// Currently, this feature is not general available, please contact Google
// to get access.
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.v2.ConversationEvent]
NotificationConfig new_message_event_notification_config = 8;
// Settings for speech transcription.
SpeechToTextConfig stt_config = 9;
// Language which represents the conversationProfile.
// If unspecified, the default language code en-us applies. Users need to
// create a ConversationProfile for each language they want to support.
string language_code = 10;
}
// The request message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2.ConversationProfiles.ListConversationProfiles].
message ListConversationProfilesRequest {
// Required. The project to list all conversation profiles from.
// Format: `projects//locations/`.
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.v2.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.v2.ConversationProfiles.GetConversationProfile].
message GetConversationProfileRequest {
// Required. The resource name of the conversation profile.
// Format: `projects//locations//conversationProfiles/`.
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.v2.ConversationProfiles.CreateConversationProfile].
message CreateConversationProfileRequest {
// Required. The project to create a conversation profile for.
// Format: `projects//locations/`.
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.v2.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.v2.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//locations//conversationProfiles/`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dialogflow.googleapis.com/ConversationProfile"
}
];
}
// 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-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API
// Service Agent` role in this project.
//
// Format: `projects//locations//agent/environments/`. If environment is not
// specified, the default `draft` environment is used. Refer to
// [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest)
// for more details.
string agent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dialogflow.googleapis.com/Agent"
}
];
}
// Defines the Human Agent Assist to connect to a conversation.
message HumanAgentAssistantConfig {
// Settings of suggestion trigger.
message SuggestionTriggerSettings {
// Do not trigger if last utterance is small talk.
bool no_smalltalk = 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 and FAQ 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//locations//knowledgeBases/`. Currently, at most 5 knowledge
// bases are 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//locations//knowledgeBases//documents/`.
// Currently, at most 5 documents are 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//locations//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 defaults to 0.0, which means that all
// suggestions are returned.
//
// Supported features: ARTICLE_SUGGESTION.
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 {
// Conversation model resource name. Format: `projects//conversationModels/`.
string model = 1 [(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.
//
// Currently, this feature is not general available, please contact Google
// to get access.
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.v2.Participants.StreamingAnalyzeContent] method, result will be in
// [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.message].
// For [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] method, result will be in
// [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.AnalyzeContentResponse.message]
// For [Conversations.ListMessages][google.cloud.dialogflow.v2.Conversations.ListMessages] method, result will be in
// [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2.ListMessagesResponse.messages]
// If Pub/Sub notification is configured, result will be in
// [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2.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.
//
// Currently, this feature is not general available, please contact Google
// to get access.
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.
//
// Currently, this feature is not general available, please contact Google
// to get access.
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 unspeified, 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.v2.ConversationEvent.Type.CONVERSATION_STARTED] as
// serialized [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos.
//
// Notification works for phone calls, if this topic either is in the same
// project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service
// Agent` role in the topic project.
//
// Format: `projects//locations//topics/`.
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.v2.ConversationEvent.Type.CONVERSATION_STARTED] to
// Stackdriver in the conversation project as JSON format
// [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos.
bool enable_stackdriver_logging = 3;
}
// The type of Human Agent Assistant API suggestion to perform, and the maximum
// number of results to return for that type. Multiple `Feature` objects can
// be specified in the `features` list.
message SuggestionFeature {
// Defines the type of Human Agent Assistant feature.
enum Type {
// Unspecified feature type.
TYPE_UNSPECIFIED = 0;
// Run article suggestion model.
ARTICLE_SUGGESTION = 1;
// Run FAQ model.
FAQ = 2;
}
// Type of Human Agent Assistant API feature to request.
Type type = 1;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy