conversation_profile.proto 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. // Copyright 2021 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.dialogflow.v2;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/cloud/dialogflow/v2/audio_config.proto";
  21. import "google/cloud/dialogflow/v2/participant.proto";
  22. import "google/longrunning/operations.proto";
  23. import "google/protobuf/empty.proto";
  24. import "google/protobuf/field_mask.proto";
  25. import "google/protobuf/timestamp.proto";
  26. option cc_enable_arenas = true;
  27. option csharp_namespace = "Google.Cloud.Dialogflow.V2";
  28. option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
  29. option java_multiple_files = true;
  30. option java_outer_classname = "ConversationProfileProto";
  31. option java_package = "com.google.cloud.dialogflow.v2";
  32. option objc_class_prefix = "DF";
  33. option (google.api.resource_definition) = {
  34. type: "dialogflow.googleapis.com/CXSecuritySettings"
  35. pattern: "projects/{project}/locations/{location}/securitySettings/{security_settings}"
  36. };
  37. option (google.api.resource_definition) = {
  38. type: "dialogflow.googleapis.com/ConversationModel"
  39. pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}"
  40. };
  41. // Service for managing [ConversationProfiles][google.cloud.dialogflow.v2.ConversationProfile].
  42. service ConversationProfiles {
  43. option (google.api.default_host) = "dialogflow.googleapis.com";
  44. option (google.api.oauth_scopes) =
  45. "https://www.googleapis.com/auth/cloud-platform,"
  46. "https://www.googleapis.com/auth/dialogflow";
  47. // Returns the list of all conversation profiles in the specified project.
  48. rpc ListConversationProfiles(ListConversationProfilesRequest) returns (ListConversationProfilesResponse) {
  49. option (google.api.http) = {
  50. get: "/v2/{parent=projects/*}/conversationProfiles"
  51. additional_bindings {
  52. get: "/v2/{parent=projects/*/locations/*}/conversationProfiles"
  53. }
  54. };
  55. option (google.api.method_signature) = "parent";
  56. }
  57. // Retrieves the specified conversation profile.
  58. rpc GetConversationProfile(GetConversationProfileRequest) returns (ConversationProfile) {
  59. option (google.api.http) = {
  60. get: "/v2/{name=projects/*/conversationProfiles/*}"
  61. additional_bindings {
  62. get: "/v2/{name=projects/*/locations/*/conversationProfiles/*}"
  63. }
  64. };
  65. option (google.api.method_signature) = "name";
  66. }
  67. // Creates a conversation profile in the specified project.
  68. //
  69. // [ConversationProfile.CreateTime][] and [ConversationProfile.UpdateTime][]
  70. // aren't populated in the response. You can retrieve them via
  71. // [GetConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile] API.
  72. rpc CreateConversationProfile(CreateConversationProfileRequest) returns (ConversationProfile) {
  73. option (google.api.http) = {
  74. post: "/v2/{parent=projects/*}/conversationProfiles"
  75. body: "conversation_profile"
  76. additional_bindings {
  77. post: "/v2/{parent=projects/*/locations/*}/conversationProfiles"
  78. body: "conversation_profile"
  79. }
  80. };
  81. option (google.api.method_signature) = "parent,conversation_profile";
  82. }
  83. // Updates the specified conversation profile.
  84. //
  85. // [ConversationProfile.CreateTime][] and [ConversationProfile.UpdateTime][]
  86. // aren't populated in the response. You can retrieve them via
  87. // [GetConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile] API.
  88. rpc UpdateConversationProfile(UpdateConversationProfileRequest) returns (ConversationProfile) {
  89. option (google.api.http) = {
  90. patch: "/v2/{conversation_profile.name=projects/*/conversationProfiles/*}"
  91. body: "conversation_profile"
  92. additional_bindings {
  93. patch: "/v2/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}"
  94. body: "conversation_profile"
  95. }
  96. };
  97. option (google.api.method_signature) = "conversation_profile,update_mask";
  98. }
  99. // Deletes the specified conversation profile.
  100. rpc DeleteConversationProfile(DeleteConversationProfileRequest) returns (google.protobuf.Empty) {
  101. option (google.api.http) = {
  102. delete: "/v2/{name=projects/*/conversationProfiles/*}"
  103. additional_bindings {
  104. delete: "/v2/{name=projects/*/locations/*/conversationProfiles/*}"
  105. }
  106. };
  107. option (google.api.method_signature) = "name";
  108. }
  109. }
  110. // Defines the services to connect to incoming Dialogflow conversations.
  111. message ConversationProfile {
  112. option (google.api.resource) = {
  113. type: "dialogflow.googleapis.com/ConversationProfile"
  114. pattern: "projects/{project}/conversationProfiles/{conversation_profile}"
  115. pattern: "projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}"
  116. };
  117. // The unique identifier of this conversation profile.
  118. // Format: `projects/<Project ID>/locations/<Location
  119. // ID>/conversationProfiles/<Conversation Profile ID>`.
  120. string name = 1;
  121. // Required. Human readable name for this profile. Max length 1024 bytes.
  122. string display_name = 2 [(google.api.field_behavior) = REQUIRED];
  123. // Output only. Create time of the conversation profile.
  124. google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  125. // Output only. Update time of the conversation profile.
  126. google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  127. // Configuration for an automated agent to use with this profile.
  128. AutomatedAgentConfig automated_agent_config = 3;
  129. // Configuration for agent assistance to use with this profile.
  130. HumanAgentAssistantConfig human_agent_assistant_config = 4;
  131. // Configuration for connecting to a live agent.
  132. //
  133. // Currently, this feature is not general available, please contact Google
  134. // to get access.
  135. HumanAgentHandoffConfig human_agent_handoff_config = 5;
  136. // Configuration for publishing conversation lifecycle events.
  137. NotificationConfig notification_config = 6;
  138. // Configuration for logging conversation lifecycle events.
  139. LoggingConfig logging_config = 7;
  140. // Configuration for publishing new message events. Event will be sent in
  141. // format of [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent]
  142. NotificationConfig new_message_event_notification_config = 8;
  143. // Settings for speech transcription.
  144. SpeechToTextConfig stt_config = 9;
  145. // Language which represents the conversationProfile.
  146. // If unspecified, the default language code en-us applies. Users need to
  147. // create a ConversationProfile for each language they want to support.
  148. string language_code = 10;
  149. }
  150. // The request message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2.ConversationProfiles.ListConversationProfiles].
  151. message ListConversationProfilesRequest {
  152. // Required. The project to list all conversation profiles from.
  153. // Format: `projects/<Project ID>/locations/<Location ID>`.
  154. string parent = 1 [
  155. (google.api.field_behavior) = REQUIRED,
  156. (google.api.resource_reference) = {
  157. child_type: "dialogflow.googleapis.com/ConversationProfile"
  158. }
  159. ];
  160. // The maximum number of items to return in a single page. By
  161. // default 100 and at most 1000.
  162. int32 page_size = 2;
  163. // The next_page_token value returned from a previous list request.
  164. string page_token = 3;
  165. }
  166. // The response message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2.ConversationProfiles.ListConversationProfiles].
  167. message ListConversationProfilesResponse {
  168. // The list of project conversation profiles. There is a maximum number
  169. // of items returned based on the page_size field in the request.
  170. repeated ConversationProfile conversation_profiles = 1;
  171. // Token to retrieve the next page of results, or empty if there are no
  172. // more results in the list.
  173. string next_page_token = 2;
  174. }
  175. // The request message for [ConversationProfiles.GetConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile].
  176. message GetConversationProfileRequest {
  177. // Required. The resource name of the conversation profile.
  178. // Format: `projects/<Project ID>/locations/<Location
  179. // ID>/conversationProfiles/<Conversation Profile ID>`.
  180. string name = 1 [
  181. (google.api.field_behavior) = REQUIRED,
  182. (google.api.resource_reference) = {
  183. type: "dialogflow.googleapis.com/ConversationProfile"
  184. }
  185. ];
  186. }
  187. // The request message for [ConversationProfiles.CreateConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.CreateConversationProfile].
  188. message CreateConversationProfileRequest {
  189. // Required. The project to create a conversation profile for.
  190. // Format: `projects/<Project ID>/locations/<Location ID>`.
  191. string parent = 1 [
  192. (google.api.field_behavior) = REQUIRED,
  193. (google.api.resource_reference) = {
  194. child_type: "dialogflow.googleapis.com/ConversationProfile"
  195. }
  196. ];
  197. // Required. The conversation profile to create.
  198. ConversationProfile conversation_profile = 2 [(google.api.field_behavior) = REQUIRED];
  199. }
  200. // The request message for [ConversationProfiles.UpdateConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.UpdateConversationProfile].
  201. message UpdateConversationProfileRequest {
  202. // Required. The conversation profile to update.
  203. ConversationProfile conversation_profile = 1 [(google.api.field_behavior) = REQUIRED];
  204. // Required. The mask to control which fields to update.
  205. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  206. }
  207. // The request message for [ConversationProfiles.DeleteConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.DeleteConversationProfile].
  208. //
  209. // This operation fails if the conversation profile is still referenced from
  210. // a phone number.
  211. message DeleteConversationProfileRequest {
  212. // Required. The name of the conversation profile to delete.
  213. // Format: `projects/<Project ID>/locations/<Location
  214. // ID>/conversationProfiles/<Conversation Profile ID>`.
  215. string name = 1 [
  216. (google.api.field_behavior) = REQUIRED,
  217. (google.api.resource_reference) = {
  218. type: "dialogflow.googleapis.com/ConversationProfile"
  219. }
  220. ];
  221. }
  222. // Defines the Automated Agent to connect to a conversation.
  223. message AutomatedAgentConfig {
  224. // Required. ID of the Dialogflow agent environment to use.
  225. //
  226. // This project needs to either be the same project as the conversation or you
  227. // need to grant `service-<Conversation Project
  228. // Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API
  229. // Service Agent` role in this project.
  230. //
  231. // Format: `projects/<Project ID>/locations/<Location
  232. // ID>/agent/environments/<Environment ID or '-'>`. If environment is not
  233. // specified, the default `draft` environment is used. Refer to
  234. // [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest)
  235. // for more details.
  236. string agent = 1 [
  237. (google.api.field_behavior) = REQUIRED,
  238. (google.api.resource_reference) = {
  239. type: "dialogflow.googleapis.com/Agent"
  240. }
  241. ];
  242. }
  243. // Defines the Human Agent Assist to connect to a conversation.
  244. message HumanAgentAssistantConfig {
  245. // Settings of suggestion trigger.
  246. message SuggestionTriggerSettings {
  247. // Do not trigger if last utterance is small talk.
  248. bool no_smalltalk = 1;
  249. // Only trigger suggestion if participant role of last utterance is
  250. // END_USER.
  251. bool only_end_user = 2;
  252. }
  253. // Config for suggestion features.
  254. message SuggestionFeatureConfig {
  255. // The suggestion feature.
  256. SuggestionFeature suggestion_feature = 5;
  257. // Automatically iterates all participants and tries to compile
  258. // suggestions.
  259. //
  260. // Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
  261. bool enable_event_based_suggestion = 3;
  262. // Settings of suggestion trigger.
  263. //
  264. // Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
  265. SuggestionTriggerSettings suggestion_trigger_settings = 10;
  266. // Configs of query.
  267. SuggestionQueryConfig query_config = 6;
  268. // Configs of custom conversation model.
  269. ConversationModelConfig conversation_model_config = 7;
  270. }
  271. // Detail human agent assistant config.
  272. message SuggestionConfig {
  273. // Configuration of different suggestion features. One feature can have only
  274. // one config.
  275. repeated SuggestionFeatureConfig feature_configs = 2;
  276. // If `group_suggestion_responses` is false, and there are multiple
  277. // `feature_configs` in `event based suggestion` or
  278. // StreamingAnalyzeContent, we will try to deliver suggestions to customers
  279. // as soon as we get new suggestion. Different type of suggestions based on
  280. // the same context will be in separate Pub/Sub event or
  281. // `StreamingAnalyzeContentResponse`.
  282. //
  283. // If `group_suggestion_responses` set to true. All the suggestions to the
  284. // same participant based on the same context will be grouped into a single
  285. // Pub/Sub event or StreamingAnalyzeContentResponse.
  286. bool group_suggestion_responses = 3;
  287. }
  288. // Config for suggestion query.
  289. message SuggestionQueryConfig {
  290. // Knowledge base source settings.
  291. //
  292. // Supported features: ARTICLE_SUGGESTION, FAQ.
  293. message KnowledgeBaseQuerySource {
  294. // Required. Knowledge bases to query. Format:
  295. // `projects/<Project ID>/locations/<Location
  296. // ID>/knowledgeBases/<Knowledge Base ID>`. Currently, at most 5 knowledge
  297. // bases are supported.
  298. repeated string knowledge_bases = 1 [
  299. (google.api.field_behavior) = REQUIRED,
  300. (google.api.resource_reference) = {
  301. type: "dialogflow.googleapis.com/KnowledgeBase"
  302. }
  303. ];
  304. }
  305. // Document source settings.
  306. //
  307. // Supported features: SMART_REPLY, SMART_COMPOSE.
  308. message DocumentQuerySource {
  309. // Required. Knowledge documents to query from. Format:
  310. // `projects/<Project ID>/locations/<Location
  311. // ID>/knowledgeBases/<KnowledgeBase ID>/documents/<Document ID>`.
  312. // Currently, at most 5 documents are supported.
  313. repeated string documents = 1 [
  314. (google.api.field_behavior) = REQUIRED,
  315. (google.api.resource_reference) = {
  316. type: "dialogflow.googleapis.com/Document"
  317. }
  318. ];
  319. }
  320. // Dialogflow source setting.
  321. //
  322. // Supported feature: DIALOGFLOW_ASSIST.
  323. message DialogflowQuerySource {
  324. // Required. The name of a Dialogflow virtual agent used for end user side intent
  325. // detection and suggestion. Format: `projects/<Project Number/
  326. // ID>/locations/<Location ID>/agent`. When multiple agents are allowed in
  327. // the same Dialogflow project.
  328. string agent = 1 [
  329. (google.api.field_behavior) = REQUIRED,
  330. (google.api.resource_reference) = {
  331. type: "dialogflow.googleapis.com/Agent"
  332. }
  333. ];
  334. }
  335. // Settings that determine how to filter recent conversation context when
  336. // generating suggestions.
  337. message ContextFilterSettings {
  338. // If set to true, the last message from virtual agent (hand off message)
  339. // and the message before it (trigger message of hand off) are dropped.
  340. bool drop_handoff_messages = 1;
  341. // If set to true, all messages from virtual agent are dropped.
  342. bool drop_virtual_agent_messages = 2;
  343. // If set to true, all messages from ivr stage are dropped.
  344. bool drop_ivr_messages = 3;
  345. }
  346. // Source of query.
  347. oneof query_source {
  348. // Query from knowledgebase. It is used by:
  349. // ARTICLE_SUGGESTION, FAQ.
  350. KnowledgeBaseQuerySource knowledge_base_query_source = 1;
  351. // Query from knowledge base document. It is used by:
  352. // SMART_REPLY, SMART_COMPOSE.
  353. DocumentQuerySource document_query_source = 2;
  354. // Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
  355. DialogflowQuerySource dialogflow_query_source = 3;
  356. }
  357. // Maximum number of results to return. Currently, if unset, defaults to 10.
  358. // And the max number is 20.
  359. int32 max_results = 4;
  360. // Confidence threshold of query result.
  361. //
  362. // Agent Assist gives each suggestion a score in the range [0.0, 1.0], based
  363. // on the relevance between the suggestion and the current conversation
  364. // context. A score of 0.0 has no relevance, while a score of 1.0 has high
  365. // relevance. Only suggestions with a score greater than or equal to the
  366. // value of this field are included in the results.
  367. //
  368. // For a baseline model (the default), the recommended value is in the range
  369. // [0.05, 0.1].
  370. //
  371. // For a custom model, there is no recommended value. Tune this value by
  372. // starting from a very low value and slowly increasing until you have
  373. // desired results.
  374. //
  375. // If this field is not set, it defaults to 0.0, which means that all
  376. // suggestions are returned.
  377. //
  378. // Supported features: ARTICLE_SUGGESTION.
  379. float confidence_threshold = 5;
  380. // Determines how recent conversation context is filtered when generating
  381. // suggestions. If unspecified, no messages will be dropped.
  382. ContextFilterSettings context_filter_settings = 7;
  383. }
  384. // Custom conversation models used in agent assist feature.
  385. //
  386. // Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY.
  387. message ConversationModelConfig {
  388. // Conversation model resource name. Format: `projects/<Project
  389. // ID>/conversationModels/<Model ID>`.
  390. string model = 1 [(google.api.resource_reference) = {
  391. type: "dialogflow.googleapis.com/ConversationModel"
  392. }];
  393. }
  394. // Configuration for analyses to run on each conversation message.
  395. message MessageAnalysisConfig {
  396. // Enable entity extraction in conversation messages on [agent assist
  397. // stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages).
  398. // If unspecified, defaults to false.
  399. //
  400. // Currently, this feature is not general available, please contact Google
  401. // to get access.
  402. bool enable_entity_extraction = 2;
  403. // Enable sentiment analysis in conversation messages on [agent assist
  404. // stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages).
  405. // If unspecified, defaults to false. Sentiment analysis inspects user input
  406. // and identifies the prevailing subjective opinion, especially to determine
  407. // a user's attitude as positive, negative, or neutral:
  408. // https://cloud.google.com/natural-language/docs/basics#sentiment_analysis
  409. // For [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] method, result will be in
  410. // [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.message].
  411. // For [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] method, result will be in
  412. // [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.AnalyzeContentResponse.message]
  413. // For [Conversations.ListMessages][google.cloud.dialogflow.v2.Conversations.ListMessages] method, result will be in
  414. // [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2.ListMessagesResponse.messages]
  415. // If Pub/Sub notification is configured, result will be in
  416. // [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2.ConversationEvent.new_message_payload].
  417. bool enable_sentiment_analysis = 3;
  418. }
  419. // Pub/Sub topic on which to publish new agent assistant events.
  420. NotificationConfig notification_config = 2;
  421. // Configuration for agent assistance of human agent participant.
  422. SuggestionConfig human_agent_suggestion_config = 3;
  423. // Configuration for agent assistance of end user participant.
  424. //
  425. // Currently, this feature is not general available, please contact Google
  426. // to get access.
  427. SuggestionConfig end_user_suggestion_config = 4;
  428. // Configuration for message analysis.
  429. MessageAnalysisConfig message_analysis_config = 5;
  430. }
  431. // Defines the hand off to a live agent, typically on which external agent
  432. // service provider to connect to a conversation.
  433. //
  434. // Currently, this feature is not general available, please contact Google
  435. // to get access.
  436. message HumanAgentHandoffConfig {
  437. // Configuration specific to LivePerson (https://www.liveperson.com).
  438. message LivePersonConfig {
  439. // Required. Account number of the LivePerson account to connect. This is
  440. // the account number you input at the login page.
  441. string account_number = 1 [(google.api.field_behavior) = REQUIRED];
  442. }
  443. // Configuration specific to Salesforce Live Agent.
  444. message SalesforceLiveAgentConfig {
  445. // Required. The organization ID of the Salesforce account.
  446. string organization_id = 1 [(google.api.field_behavior) = REQUIRED];
  447. // Required. Live Agent deployment ID.
  448. string deployment_id = 2 [(google.api.field_behavior) = REQUIRED];
  449. // Required. Live Agent chat button ID.
  450. string button_id = 3 [(google.api.field_behavior) = REQUIRED];
  451. // Required. Domain of the Live Agent endpoint for this agent. You can find
  452. // the endpoint URL in the `Live Agent settings` page. For example if URL
  453. // has the form https://d.la4-c2-phx.salesforceliveagent.com/...,
  454. // you should fill in d.la4-c2-phx.salesforceliveagent.com.
  455. string endpoint_domain = 4 [(google.api.field_behavior) = REQUIRED];
  456. }
  457. // Required. Specifies which agent service to connect for human agent handoff.
  458. oneof agent_service {
  459. // Uses LivePerson (https://www.liveperson.com).
  460. LivePersonConfig live_person_config = 1;
  461. // Uses Salesforce Live Agent.
  462. SalesforceLiveAgentConfig salesforce_live_agent_config = 2;
  463. }
  464. }
  465. // Defines notification behavior.
  466. message NotificationConfig {
  467. // Format of cloud pub/sub message.
  468. enum MessageFormat {
  469. // If it is unspeified, PROTO will be used.
  470. MESSAGE_FORMAT_UNSPECIFIED = 0;
  471. // Pubsub message will be serialized proto.
  472. PROTO = 1;
  473. // Pubsub message will be json.
  474. JSON = 2;
  475. }
  476. // Name of the Pub/Sub topic to publish conversation
  477. // events like
  478. // [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] as
  479. // serialized [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos.
  480. //
  481. // Notification works for phone calls, if this topic either is in the same
  482. // project as the conversation or you grant `service-<Conversation Project
  483. // Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service
  484. // Agent` role in the topic project.
  485. //
  486. // Format: `projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>`.
  487. string topic = 1;
  488. // Format of message.
  489. MessageFormat message_format = 2;
  490. }
  491. // Defines logging behavior for conversation lifecycle events.
  492. message LoggingConfig {
  493. // Whether to log conversation events like
  494. // [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] to
  495. // Stackdriver in the conversation project as JSON format
  496. // [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos.
  497. bool enable_stackdriver_logging = 3;
  498. }
  499. // The type of Human Agent Assistant API suggestion to perform, and the maximum
  500. // number of results to return for that type. Multiple `Feature` objects can
  501. // be specified in the `features` list.
  502. message SuggestionFeature {
  503. // Defines the type of Human Agent Assistant feature.
  504. enum Type {
  505. // Unspecified feature type.
  506. TYPE_UNSPECIFIED = 0;
  507. // Run article suggestion model.
  508. ARTICLE_SUGGESTION = 1;
  509. // Run FAQ model.
  510. FAQ = 2;
  511. }
  512. // Type of Human Agent Assistant API feature to request.
  513. Type type = 1;
  514. }