google-apis-contactcenterinsights_v1 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/google/apis/contactcenterinsights_v1/classes.rb +725 -0
- data/lib/google/apis/contactcenterinsights_v1/gem_version.rb +2 -2
- data/lib/google/apis/contactcenterinsights_v1/representations.rb +329 -0
- data/lib/google/apis/contactcenterinsights_v1/service.rb +96 -0
- metadata +3 -3
@@ -31,6 +31,11 @@ module Google
|
|
31
31
|
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1AnalysisResult]
|
32
32
|
attr_accessor :analysis_result
|
33
33
|
|
34
|
+
# Selector of all available annotators and phrase matchers to run.
|
35
|
+
# Corresponds to the JSON property `annotatorSelector`
|
36
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1AnnotatorSelector]
|
37
|
+
attr_accessor :annotator_selector
|
38
|
+
|
34
39
|
# Output only. The time at which the analysis was created, which occurs when the
|
35
40
|
# long-running operation completes.
|
36
41
|
# Corresponds to the JSON property `createTime`
|
@@ -55,6 +60,7 @@ module Google
|
|
55
60
|
# Update properties of this object
|
56
61
|
def update!(**args)
|
57
62
|
@analysis_result = args[:analysis_result] if args.key?(:analysis_result)
|
63
|
+
@annotator_selector = args[:annotator_selector] if args.key?(:annotator_selector)
|
58
64
|
@create_time = args[:create_time] if args.key?(:create_time)
|
59
65
|
@name = args[:name] if args.key?(:name)
|
60
66
|
@request_time = args[:request_time] if args.key?(:request_time)
|
@@ -162,6 +168,89 @@ module Google
|
|
162
168
|
end
|
163
169
|
end
|
164
170
|
|
171
|
+
# Selector of all available annotators and phrase matchers to run.
|
172
|
+
class GoogleCloudContactcenterinsightsV1AnnotatorSelector
|
173
|
+
include Google::Apis::Core::Hashable
|
174
|
+
|
175
|
+
# The issue model to run. If not provided, the most recently deployed topic
|
176
|
+
# model will be used. The provided issue model will only be used for inference
|
177
|
+
# if the issue model is deployed and if run_issue_model_annotator is set to true.
|
178
|
+
# If more than one issue model is provided, only the first provided issue model
|
179
|
+
# will be used for inference.
|
180
|
+
# Corresponds to the JSON property `issueModels`
|
181
|
+
# @return [Array<String>]
|
182
|
+
attr_accessor :issue_models
|
183
|
+
|
184
|
+
# The list of phrase matchers to run. If not provided, all active phrase
|
185
|
+
# matchers will be used. If inactive phrase matchers are provided, they will not
|
186
|
+
# be used. Phrase matchers will be run only if run_phrase_matcher_annotator is
|
187
|
+
# set to true. Format: projects/`project`/locations/`location`/phraseMatchers/`
|
188
|
+
# phrase_matcher`
|
189
|
+
# Corresponds to the JSON property `phraseMatchers`
|
190
|
+
# @return [Array<String>]
|
191
|
+
attr_accessor :phrase_matchers
|
192
|
+
|
193
|
+
# Whether to run the entity annotator.
|
194
|
+
# Corresponds to the JSON property `runEntityAnnotator`
|
195
|
+
# @return [Boolean]
|
196
|
+
attr_accessor :run_entity_annotator
|
197
|
+
alias_method :run_entity_annotator?, :run_entity_annotator
|
198
|
+
|
199
|
+
# Whether to run the intent annotator.
|
200
|
+
# Corresponds to the JSON property `runIntentAnnotator`
|
201
|
+
# @return [Boolean]
|
202
|
+
attr_accessor :run_intent_annotator
|
203
|
+
alias_method :run_intent_annotator?, :run_intent_annotator
|
204
|
+
|
205
|
+
# Whether to run the interruption annotator.
|
206
|
+
# Corresponds to the JSON property `runInterruptionAnnotator`
|
207
|
+
# @return [Boolean]
|
208
|
+
attr_accessor :run_interruption_annotator
|
209
|
+
alias_method :run_interruption_annotator?, :run_interruption_annotator
|
210
|
+
|
211
|
+
# Whether to run the issue model annotator. A model should have already been
|
212
|
+
# deployed for this to take effect.
|
213
|
+
# Corresponds to the JSON property `runIssueModelAnnotator`
|
214
|
+
# @return [Boolean]
|
215
|
+
attr_accessor :run_issue_model_annotator
|
216
|
+
alias_method :run_issue_model_annotator?, :run_issue_model_annotator
|
217
|
+
|
218
|
+
# Whether to run the active phrase matcher annotator(s).
|
219
|
+
# Corresponds to the JSON property `runPhraseMatcherAnnotator`
|
220
|
+
# @return [Boolean]
|
221
|
+
attr_accessor :run_phrase_matcher_annotator
|
222
|
+
alias_method :run_phrase_matcher_annotator?, :run_phrase_matcher_annotator
|
223
|
+
|
224
|
+
# Whether to run the sentiment annotator.
|
225
|
+
# Corresponds to the JSON property `runSentimentAnnotator`
|
226
|
+
# @return [Boolean]
|
227
|
+
attr_accessor :run_sentiment_annotator
|
228
|
+
alias_method :run_sentiment_annotator?, :run_sentiment_annotator
|
229
|
+
|
230
|
+
# Whether to run the silence annotator.
|
231
|
+
# Corresponds to the JSON property `runSilenceAnnotator`
|
232
|
+
# @return [Boolean]
|
233
|
+
attr_accessor :run_silence_annotator
|
234
|
+
alias_method :run_silence_annotator?, :run_silence_annotator
|
235
|
+
|
236
|
+
def initialize(**args)
|
237
|
+
update!(**args)
|
238
|
+
end
|
239
|
+
|
240
|
+
# Update properties of this object
|
241
|
+
def update!(**args)
|
242
|
+
@issue_models = args[:issue_models] if args.key?(:issue_models)
|
243
|
+
@phrase_matchers = args[:phrase_matchers] if args.key?(:phrase_matchers)
|
244
|
+
@run_entity_annotator = args[:run_entity_annotator] if args.key?(:run_entity_annotator)
|
245
|
+
@run_intent_annotator = args[:run_intent_annotator] if args.key?(:run_intent_annotator)
|
246
|
+
@run_interruption_annotator = args[:run_interruption_annotator] if args.key?(:run_interruption_annotator)
|
247
|
+
@run_issue_model_annotator = args[:run_issue_model_annotator] if args.key?(:run_issue_model_annotator)
|
248
|
+
@run_phrase_matcher_annotator = args[:run_phrase_matcher_annotator] if args.key?(:run_phrase_matcher_annotator)
|
249
|
+
@run_sentiment_annotator = args[:run_sentiment_annotator] if args.key?(:run_sentiment_annotator)
|
250
|
+
@run_silence_annotator = args[:run_silence_annotator] if args.key?(:run_silence_annotator)
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
165
254
|
# The feedback that the customer has about a certain answer in the conversation.
|
166
255
|
class GoogleCloudContactcenterinsightsV1AnswerFeedback
|
167
256
|
include Google::Apis::Core::Hashable
|
@@ -250,6 +339,118 @@ module Google
|
|
250
339
|
end
|
251
340
|
end
|
252
341
|
|
342
|
+
# The metadata for a bulk analyze conversations operation.
|
343
|
+
class GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsMetadata
|
344
|
+
include Google::Apis::Core::Hashable
|
345
|
+
|
346
|
+
# The number of requested analyses that have completed successfully so far.
|
347
|
+
# Corresponds to the JSON property `completedAnalysesCount`
|
348
|
+
# @return [Fixnum]
|
349
|
+
attr_accessor :completed_analyses_count
|
350
|
+
|
351
|
+
# The time the operation was created.
|
352
|
+
# Corresponds to the JSON property `createTime`
|
353
|
+
# @return [String]
|
354
|
+
attr_accessor :create_time
|
355
|
+
|
356
|
+
# The time the operation finished running.
|
357
|
+
# Corresponds to the JSON property `endTime`
|
358
|
+
# @return [String]
|
359
|
+
attr_accessor :end_time
|
360
|
+
|
361
|
+
# The number of requested analyses that have failed so far.
|
362
|
+
# Corresponds to the JSON property `failedAnalysesCount`
|
363
|
+
# @return [Fixnum]
|
364
|
+
attr_accessor :failed_analyses_count
|
365
|
+
|
366
|
+
# The request to analyze conversations in bulk.
|
367
|
+
# Corresponds to the JSON property `request`
|
368
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest]
|
369
|
+
attr_accessor :request
|
370
|
+
|
371
|
+
# Total number of analyses requested. Computed by the number of conversations
|
372
|
+
# returned by `filter` multiplied by `analysis_percentage` in the request.
|
373
|
+
# Corresponds to the JSON property `totalRequestedAnalysesCount`
|
374
|
+
# @return [Fixnum]
|
375
|
+
attr_accessor :total_requested_analyses_count
|
376
|
+
|
377
|
+
def initialize(**args)
|
378
|
+
update!(**args)
|
379
|
+
end
|
380
|
+
|
381
|
+
# Update properties of this object
|
382
|
+
def update!(**args)
|
383
|
+
@completed_analyses_count = args[:completed_analyses_count] if args.key?(:completed_analyses_count)
|
384
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
385
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
386
|
+
@failed_analyses_count = args[:failed_analyses_count] if args.key?(:failed_analyses_count)
|
387
|
+
@request = args[:request] if args.key?(:request)
|
388
|
+
@total_requested_analyses_count = args[:total_requested_analyses_count] if args.key?(:total_requested_analyses_count)
|
389
|
+
end
|
390
|
+
end
|
391
|
+
|
392
|
+
# The request to analyze conversations in bulk.
|
393
|
+
class GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest
|
394
|
+
include Google::Apis::Core::Hashable
|
395
|
+
|
396
|
+
# Required. Percentage of selected conversation to analyze, between [0, 100].
|
397
|
+
# Corresponds to the JSON property `analysisPercentage`
|
398
|
+
# @return [Float]
|
399
|
+
attr_accessor :analysis_percentage
|
400
|
+
|
401
|
+
# Selector of all available annotators and phrase matchers to run.
|
402
|
+
# Corresponds to the JSON property `annotatorSelector`
|
403
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1AnnotatorSelector]
|
404
|
+
attr_accessor :annotator_selector
|
405
|
+
|
406
|
+
# Required. Filter used to select the subset of conversations to analyze.
|
407
|
+
# Corresponds to the JSON property `filter`
|
408
|
+
# @return [String]
|
409
|
+
attr_accessor :filter
|
410
|
+
|
411
|
+
# Required. The parent resource to create analyses in.
|
412
|
+
# Corresponds to the JSON property `parent`
|
413
|
+
# @return [String]
|
414
|
+
attr_accessor :parent
|
415
|
+
|
416
|
+
def initialize(**args)
|
417
|
+
update!(**args)
|
418
|
+
end
|
419
|
+
|
420
|
+
# Update properties of this object
|
421
|
+
def update!(**args)
|
422
|
+
@analysis_percentage = args[:analysis_percentage] if args.key?(:analysis_percentage)
|
423
|
+
@annotator_selector = args[:annotator_selector] if args.key?(:annotator_selector)
|
424
|
+
@filter = args[:filter] if args.key?(:filter)
|
425
|
+
@parent = args[:parent] if args.key?(:parent)
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
# The response for a bulk analyze conversations operation.
|
430
|
+
class GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsResponse
|
431
|
+
include Google::Apis::Core::Hashable
|
432
|
+
|
433
|
+
# Count of failed analyses.
|
434
|
+
# Corresponds to the JSON property `failedAnalysisCount`
|
435
|
+
# @return [Fixnum]
|
436
|
+
attr_accessor :failed_analysis_count
|
437
|
+
|
438
|
+
# Count of successful analyses.
|
439
|
+
# Corresponds to the JSON property `successfulAnalysisCount`
|
440
|
+
# @return [Fixnum]
|
441
|
+
attr_accessor :successful_analysis_count
|
442
|
+
|
443
|
+
def initialize(**args)
|
444
|
+
update!(**args)
|
445
|
+
end
|
446
|
+
|
447
|
+
# Update properties of this object
|
448
|
+
def update!(**args)
|
449
|
+
@failed_analysis_count = args[:failed_analysis_count] if args.key?(:failed_analysis_count)
|
450
|
+
@successful_analysis_count = args[:successful_analysis_count] if args.key?(:successful_analysis_count)
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
253
454
|
# Response of querying an issue model's statistics.
|
254
455
|
class GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse
|
255
456
|
include Google::Apis::Core::Hashable
|
@@ -884,6 +1085,11 @@ module Google
|
|
884
1085
|
class GoogleCloudContactcenterinsightsV1CreateAnalysisOperationMetadata
|
885
1086
|
include Google::Apis::Core::Hashable
|
886
1087
|
|
1088
|
+
# Selector of all available annotators and phrase matchers to run.
|
1089
|
+
# Corresponds to the JSON property `annotatorSelector`
|
1090
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1AnnotatorSelector]
|
1091
|
+
attr_accessor :annotator_selector
|
1092
|
+
|
887
1093
|
# Output only. The Conversation that this Analysis Operation belongs to.
|
888
1094
|
# Corresponds to the JSON property `conversation`
|
889
1095
|
# @return [String]
|
@@ -905,6 +1111,7 @@ module Google
|
|
905
1111
|
|
906
1112
|
# Update properties of this object
|
907
1113
|
def update!(**args)
|
1114
|
+
@annotator_selector = args[:annotator_selector] if args.key?(:annotator_selector)
|
908
1115
|
@conversation = args[:conversation] if args.key?(:conversation)
|
909
1116
|
@create_time = args[:create_time] if args.key?(:create_time)
|
910
1117
|
@end_time = args[:end_time] if args.key?(:end_time)
|
@@ -1483,6 +1690,152 @@ module Google
|
|
1483
1690
|
end
|
1484
1691
|
end
|
1485
1692
|
|
1693
|
+
# The metadata for an IngestConversations operation.
|
1694
|
+
class GoogleCloudContactcenterinsightsV1IngestConversationsMetadata
|
1695
|
+
include Google::Apis::Core::Hashable
|
1696
|
+
|
1697
|
+
# Output only. The time the operation was created.
|
1698
|
+
# Corresponds to the JSON property `createTime`
|
1699
|
+
# @return [String]
|
1700
|
+
attr_accessor :create_time
|
1701
|
+
|
1702
|
+
# Output only. The time the operation finished running.
|
1703
|
+
# Corresponds to the JSON property `endTime`
|
1704
|
+
# @return [String]
|
1705
|
+
attr_accessor :end_time
|
1706
|
+
|
1707
|
+
# Output only. Partial errors during ingest operation that might cause the
|
1708
|
+
# operation output to be incomplete.
|
1709
|
+
# Corresponds to the JSON property `partialErrors`
|
1710
|
+
# @return [Array<Google::Apis::ContactcenterinsightsV1::GoogleRpcStatus>]
|
1711
|
+
attr_accessor :partial_errors
|
1712
|
+
|
1713
|
+
# The request to ingest conversations.
|
1714
|
+
# Corresponds to the JSON property `request`
|
1715
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1IngestConversationsRequest]
|
1716
|
+
attr_accessor :request
|
1717
|
+
|
1718
|
+
def initialize(**args)
|
1719
|
+
update!(**args)
|
1720
|
+
end
|
1721
|
+
|
1722
|
+
# Update properties of this object
|
1723
|
+
def update!(**args)
|
1724
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
1725
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
1726
|
+
@partial_errors = args[:partial_errors] if args.key?(:partial_errors)
|
1727
|
+
@request = args[:request] if args.key?(:request)
|
1728
|
+
end
|
1729
|
+
end
|
1730
|
+
|
1731
|
+
# The request to ingest conversations.
|
1732
|
+
class GoogleCloudContactcenterinsightsV1IngestConversationsRequest
|
1733
|
+
include Google::Apis::Core::Hashable
|
1734
|
+
|
1735
|
+
# Configuration that applies to all conversations.
|
1736
|
+
# Corresponds to the JSON property `conversationConfig`
|
1737
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig]
|
1738
|
+
attr_accessor :conversation_config
|
1739
|
+
|
1740
|
+
# Configuration for Cloud Storage bucket sources.
|
1741
|
+
# Corresponds to the JSON property `gcsSource`
|
1742
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource]
|
1743
|
+
attr_accessor :gcs_source
|
1744
|
+
|
1745
|
+
# Required. The parent resource for new conversations.
|
1746
|
+
# Corresponds to the JSON property `parent`
|
1747
|
+
# @return [String]
|
1748
|
+
attr_accessor :parent
|
1749
|
+
|
1750
|
+
# Configuration for processing transcript objects.
|
1751
|
+
# Corresponds to the JSON property `transcriptObjectConfig`
|
1752
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig]
|
1753
|
+
attr_accessor :transcript_object_config
|
1754
|
+
|
1755
|
+
def initialize(**args)
|
1756
|
+
update!(**args)
|
1757
|
+
end
|
1758
|
+
|
1759
|
+
# Update properties of this object
|
1760
|
+
def update!(**args)
|
1761
|
+
@conversation_config = args[:conversation_config] if args.key?(:conversation_config)
|
1762
|
+
@gcs_source = args[:gcs_source] if args.key?(:gcs_source)
|
1763
|
+
@parent = args[:parent] if args.key?(:parent)
|
1764
|
+
@transcript_object_config = args[:transcript_object_config] if args.key?(:transcript_object_config)
|
1765
|
+
end
|
1766
|
+
end
|
1767
|
+
|
1768
|
+
# Configuration that applies to all conversations.
|
1769
|
+
class GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig
|
1770
|
+
include Google::Apis::Core::Hashable
|
1771
|
+
|
1772
|
+
# An opaque, user-specified string representing the human agent who handled the
|
1773
|
+
# conversations.
|
1774
|
+
# Corresponds to the JSON property `agentId`
|
1775
|
+
# @return [String]
|
1776
|
+
attr_accessor :agent_id
|
1777
|
+
|
1778
|
+
def initialize(**args)
|
1779
|
+
update!(**args)
|
1780
|
+
end
|
1781
|
+
|
1782
|
+
# Update properties of this object
|
1783
|
+
def update!(**args)
|
1784
|
+
@agent_id = args[:agent_id] if args.key?(:agent_id)
|
1785
|
+
end
|
1786
|
+
end
|
1787
|
+
|
1788
|
+
# Configuration for Cloud Storage bucket sources.
|
1789
|
+
class GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource
|
1790
|
+
include Google::Apis::Core::Hashable
|
1791
|
+
|
1792
|
+
# Required. The Cloud Storage bucket containing source objects.
|
1793
|
+
# Corresponds to the JSON property `bucketUri`
|
1794
|
+
# @return [String]
|
1795
|
+
attr_accessor :bucket_uri
|
1796
|
+
|
1797
|
+
def initialize(**args)
|
1798
|
+
update!(**args)
|
1799
|
+
end
|
1800
|
+
|
1801
|
+
# Update properties of this object
|
1802
|
+
def update!(**args)
|
1803
|
+
@bucket_uri = args[:bucket_uri] if args.key?(:bucket_uri)
|
1804
|
+
end
|
1805
|
+
end
|
1806
|
+
|
1807
|
+
# Configuration for processing transcript objects.
|
1808
|
+
class GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig
|
1809
|
+
include Google::Apis::Core::Hashable
|
1810
|
+
|
1811
|
+
# Required. The medium transcript objects represent.
|
1812
|
+
# Corresponds to the JSON property `medium`
|
1813
|
+
# @return [String]
|
1814
|
+
attr_accessor :medium
|
1815
|
+
|
1816
|
+
def initialize(**args)
|
1817
|
+
update!(**args)
|
1818
|
+
end
|
1819
|
+
|
1820
|
+
# Update properties of this object
|
1821
|
+
def update!(**args)
|
1822
|
+
@medium = args[:medium] if args.key?(:medium)
|
1823
|
+
end
|
1824
|
+
end
|
1825
|
+
|
1826
|
+
# The response to an IngestConversations operation.
|
1827
|
+
class GoogleCloudContactcenterinsightsV1IngestConversationsResponse
|
1828
|
+
include Google::Apis::Core::Hashable
|
1829
|
+
|
1830
|
+
def initialize(**args)
|
1831
|
+
update!(**args)
|
1832
|
+
end
|
1833
|
+
|
1834
|
+
# Update properties of this object
|
1835
|
+
def update!(**args)
|
1836
|
+
end
|
1837
|
+
end
|
1838
|
+
|
1486
1839
|
# The data for an intent. Represents a detected intent in the conversation, for
|
1487
1840
|
# example MAKES_PROMISE.
|
1488
1841
|
class GoogleCloudContactcenterinsightsV1Intent
|
@@ -1564,6 +1917,12 @@ module Google
|
|
1564
1917
|
# @return [String]
|
1565
1918
|
attr_accessor :name
|
1566
1919
|
|
1920
|
+
# Output only. Resource names of the sample representative utterances that match
|
1921
|
+
# to this issue.
|
1922
|
+
# Corresponds to the JSON property `sampleUtterances`
|
1923
|
+
# @return [Array<String>]
|
1924
|
+
attr_accessor :sample_utterances
|
1925
|
+
|
1567
1926
|
# Output only. The most recent time that this issue was updated.
|
1568
1927
|
# Corresponds to the JSON property `updateTime`
|
1569
1928
|
# @return [String]
|
@@ -1578,6 +1937,7 @@ module Google
|
|
1578
1937
|
@create_time = args[:create_time] if args.key?(:create_time)
|
1579
1938
|
@display_name = args[:display_name] if args.key?(:display_name)
|
1580
1939
|
@name = args[:name] if args.key?(:name)
|
1940
|
+
@sample_utterances = args[:sample_utterances] if args.key?(:sample_utterances)
|
1581
1941
|
@update_time = args[:update_time] if args.key?(:update_time)
|
1582
1942
|
end
|
1583
1943
|
end
|
@@ -1653,6 +2013,11 @@ module Google
|
|
1653
2013
|
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig]
|
1654
2014
|
attr_accessor :input_data_config
|
1655
2015
|
|
2016
|
+
# Output only. Number of issues in this issue model.
|
2017
|
+
# Corresponds to the JSON property `issueCount`
|
2018
|
+
# @return [Fixnum]
|
2019
|
+
attr_accessor :issue_count
|
2020
|
+
|
1656
2021
|
# Immutable. The resource name of the issue model. Format: projects/`project`/
|
1657
2022
|
# locations/`location`/issueModels/`issue_model`
|
1658
2023
|
# Corresponds to the JSON property `name`
|
@@ -1683,6 +2048,7 @@ module Google
|
|
1683
2048
|
@create_time = args[:create_time] if args.key?(:create_time)
|
1684
2049
|
@display_name = args[:display_name] if args.key?(:display_name)
|
1685
2050
|
@input_data_config = args[:input_data_config] if args.key?(:input_data_config)
|
2051
|
+
@issue_count = args[:issue_count] if args.key?(:issue_count)
|
1686
2052
|
@name = args[:name] if args.key?(:name)
|
1687
2053
|
@state = args[:state] if args.key?(:state)
|
1688
2054
|
@training_stats = args[:training_stats] if args.key?(:training_stats)
|
@@ -2322,6 +2688,11 @@ module Google
|
|
2322
2688
|
class GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig
|
2323
2689
|
include Google::Apis::Core::Hashable
|
2324
2690
|
|
2691
|
+
# Selector of all available annotators and phrase matchers to run.
|
2692
|
+
# Corresponds to the JSON property `annotatorSelector`
|
2693
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1AnnotatorSelector]
|
2694
|
+
attr_accessor :annotator_selector
|
2695
|
+
|
2325
2696
|
# Percentage of conversations created using Dialogflow runtime integration to
|
2326
2697
|
# analyze automatically, between [0, 100].
|
2327
2698
|
# Corresponds to the JSON property `runtimeIntegrationAnalysisPercentage`
|
@@ -2334,6 +2705,7 @@ module Google
|
|
2334
2705
|
|
2335
2706
|
# Update properties of this object
|
2336
2707
|
def update!(**args)
|
2708
|
+
@annotator_selector = args[:annotator_selector] if args.key?(:annotator_selector)
|
2337
2709
|
@runtime_integration_analysis_percentage = args[:runtime_integration_analysis_percentage] if args.key?(:runtime_integration_analysis_percentage)
|
2338
2710
|
end
|
2339
2711
|
end
|
@@ -2540,10 +2912,210 @@ module Google
|
|
2540
2912
|
end
|
2541
2913
|
end
|
2542
2914
|
|
2915
|
+
# Selector of all available annotators and phrase matchers to run.
|
2916
|
+
class GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector
|
2917
|
+
include Google::Apis::Core::Hashable
|
2918
|
+
|
2919
|
+
# The issue model to run. If not provided, the most recently deployed topic
|
2920
|
+
# model will be used. The provided issue model will only be used for inference
|
2921
|
+
# if the issue model is deployed and if run_issue_model_annotator is set to true.
|
2922
|
+
# If more than one issue model is provided, only the first provided issue model
|
2923
|
+
# will be used for inference.
|
2924
|
+
# Corresponds to the JSON property `issueModels`
|
2925
|
+
# @return [Array<String>]
|
2926
|
+
attr_accessor :issue_models
|
2927
|
+
|
2928
|
+
# The list of phrase matchers to run. If not provided, all active phrase
|
2929
|
+
# matchers will be used. If inactive phrase matchers are provided, they will not
|
2930
|
+
# be used. Phrase matchers will be run only if run_phrase_matcher_annotator is
|
2931
|
+
# set to true. Format: projects/`project`/locations/`location`/phraseMatchers/`
|
2932
|
+
# phrase_matcher`
|
2933
|
+
# Corresponds to the JSON property `phraseMatchers`
|
2934
|
+
# @return [Array<String>]
|
2935
|
+
attr_accessor :phrase_matchers
|
2936
|
+
|
2937
|
+
# Whether to run the entity annotator.
|
2938
|
+
# Corresponds to the JSON property `runEntityAnnotator`
|
2939
|
+
# @return [Boolean]
|
2940
|
+
attr_accessor :run_entity_annotator
|
2941
|
+
alias_method :run_entity_annotator?, :run_entity_annotator
|
2942
|
+
|
2943
|
+
# Whether to run the intent annotator.
|
2944
|
+
# Corresponds to the JSON property `runIntentAnnotator`
|
2945
|
+
# @return [Boolean]
|
2946
|
+
attr_accessor :run_intent_annotator
|
2947
|
+
alias_method :run_intent_annotator?, :run_intent_annotator
|
2948
|
+
|
2949
|
+
# Whether to run the interruption annotator.
|
2950
|
+
# Corresponds to the JSON property `runInterruptionAnnotator`
|
2951
|
+
# @return [Boolean]
|
2952
|
+
attr_accessor :run_interruption_annotator
|
2953
|
+
alias_method :run_interruption_annotator?, :run_interruption_annotator
|
2954
|
+
|
2955
|
+
# Whether to run the issue model annotator. A model should have already been
|
2956
|
+
# deployed for this to take effect.
|
2957
|
+
# Corresponds to the JSON property `runIssueModelAnnotator`
|
2958
|
+
# @return [Boolean]
|
2959
|
+
attr_accessor :run_issue_model_annotator
|
2960
|
+
alias_method :run_issue_model_annotator?, :run_issue_model_annotator
|
2961
|
+
|
2962
|
+
# Whether to run the active phrase matcher annotator(s).
|
2963
|
+
# Corresponds to the JSON property `runPhraseMatcherAnnotator`
|
2964
|
+
# @return [Boolean]
|
2965
|
+
attr_accessor :run_phrase_matcher_annotator
|
2966
|
+
alias_method :run_phrase_matcher_annotator?, :run_phrase_matcher_annotator
|
2967
|
+
|
2968
|
+
# Whether to run the sentiment annotator.
|
2969
|
+
# Corresponds to the JSON property `runSentimentAnnotator`
|
2970
|
+
# @return [Boolean]
|
2971
|
+
attr_accessor :run_sentiment_annotator
|
2972
|
+
alias_method :run_sentiment_annotator?, :run_sentiment_annotator
|
2973
|
+
|
2974
|
+
# Whether to run the silence annotator.
|
2975
|
+
# Corresponds to the JSON property `runSilenceAnnotator`
|
2976
|
+
# @return [Boolean]
|
2977
|
+
attr_accessor :run_silence_annotator
|
2978
|
+
alias_method :run_silence_annotator?, :run_silence_annotator
|
2979
|
+
|
2980
|
+
def initialize(**args)
|
2981
|
+
update!(**args)
|
2982
|
+
end
|
2983
|
+
|
2984
|
+
# Update properties of this object
|
2985
|
+
def update!(**args)
|
2986
|
+
@issue_models = args[:issue_models] if args.key?(:issue_models)
|
2987
|
+
@phrase_matchers = args[:phrase_matchers] if args.key?(:phrase_matchers)
|
2988
|
+
@run_entity_annotator = args[:run_entity_annotator] if args.key?(:run_entity_annotator)
|
2989
|
+
@run_intent_annotator = args[:run_intent_annotator] if args.key?(:run_intent_annotator)
|
2990
|
+
@run_interruption_annotator = args[:run_interruption_annotator] if args.key?(:run_interruption_annotator)
|
2991
|
+
@run_issue_model_annotator = args[:run_issue_model_annotator] if args.key?(:run_issue_model_annotator)
|
2992
|
+
@run_phrase_matcher_annotator = args[:run_phrase_matcher_annotator] if args.key?(:run_phrase_matcher_annotator)
|
2993
|
+
@run_sentiment_annotator = args[:run_sentiment_annotator] if args.key?(:run_sentiment_annotator)
|
2994
|
+
@run_silence_annotator = args[:run_silence_annotator] if args.key?(:run_silence_annotator)
|
2995
|
+
end
|
2996
|
+
end
|
2997
|
+
|
2998
|
+
# The metadata for a bulk analyze conversations operation.
|
2999
|
+
class GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsMetadata
|
3000
|
+
include Google::Apis::Core::Hashable
|
3001
|
+
|
3002
|
+
# The number of requested analyses that have completed successfully so far.
|
3003
|
+
# Corresponds to the JSON property `completedAnalysesCount`
|
3004
|
+
# @return [Fixnum]
|
3005
|
+
attr_accessor :completed_analyses_count
|
3006
|
+
|
3007
|
+
# The time the operation was created.
|
3008
|
+
# Corresponds to the JSON property `createTime`
|
3009
|
+
# @return [String]
|
3010
|
+
attr_accessor :create_time
|
3011
|
+
|
3012
|
+
# The time the operation finished running.
|
3013
|
+
# Corresponds to the JSON property `endTime`
|
3014
|
+
# @return [String]
|
3015
|
+
attr_accessor :end_time
|
3016
|
+
|
3017
|
+
# The number of requested analyses that have failed so far.
|
3018
|
+
# Corresponds to the JSON property `failedAnalysesCount`
|
3019
|
+
# @return [Fixnum]
|
3020
|
+
attr_accessor :failed_analyses_count
|
3021
|
+
|
3022
|
+
# The request to analyze conversations in bulk.
|
3023
|
+
# Corresponds to the JSON property `request`
|
3024
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRequest]
|
3025
|
+
attr_accessor :request
|
3026
|
+
|
3027
|
+
# Total number of analyses requested. Computed by the number of conversations
|
3028
|
+
# returned by `filter` multiplied by `analysis_percentage` in the request.
|
3029
|
+
# Corresponds to the JSON property `totalRequestedAnalysesCount`
|
3030
|
+
# @return [Fixnum]
|
3031
|
+
attr_accessor :total_requested_analyses_count
|
3032
|
+
|
3033
|
+
def initialize(**args)
|
3034
|
+
update!(**args)
|
3035
|
+
end
|
3036
|
+
|
3037
|
+
# Update properties of this object
|
3038
|
+
def update!(**args)
|
3039
|
+
@completed_analyses_count = args[:completed_analyses_count] if args.key?(:completed_analyses_count)
|
3040
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
3041
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
3042
|
+
@failed_analyses_count = args[:failed_analyses_count] if args.key?(:failed_analyses_count)
|
3043
|
+
@request = args[:request] if args.key?(:request)
|
3044
|
+
@total_requested_analyses_count = args[:total_requested_analyses_count] if args.key?(:total_requested_analyses_count)
|
3045
|
+
end
|
3046
|
+
end
|
3047
|
+
|
3048
|
+
# The request to analyze conversations in bulk.
|
3049
|
+
class GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRequest
|
3050
|
+
include Google::Apis::Core::Hashable
|
3051
|
+
|
3052
|
+
# Required. Percentage of selected conversation to analyze, between [0, 100].
|
3053
|
+
# Corresponds to the JSON property `analysisPercentage`
|
3054
|
+
# @return [Float]
|
3055
|
+
attr_accessor :analysis_percentage
|
3056
|
+
|
3057
|
+
# Selector of all available annotators and phrase matchers to run.
|
3058
|
+
# Corresponds to the JSON property `annotatorSelector`
|
3059
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector]
|
3060
|
+
attr_accessor :annotator_selector
|
3061
|
+
|
3062
|
+
# Required. Filter used to select the subset of conversations to analyze.
|
3063
|
+
# Corresponds to the JSON property `filter`
|
3064
|
+
# @return [String]
|
3065
|
+
attr_accessor :filter
|
3066
|
+
|
3067
|
+
# Required. The parent resource to create analyses in.
|
3068
|
+
# Corresponds to the JSON property `parent`
|
3069
|
+
# @return [String]
|
3070
|
+
attr_accessor :parent
|
3071
|
+
|
3072
|
+
def initialize(**args)
|
3073
|
+
update!(**args)
|
3074
|
+
end
|
3075
|
+
|
3076
|
+
# Update properties of this object
|
3077
|
+
def update!(**args)
|
3078
|
+
@analysis_percentage = args[:analysis_percentage] if args.key?(:analysis_percentage)
|
3079
|
+
@annotator_selector = args[:annotator_selector] if args.key?(:annotator_selector)
|
3080
|
+
@filter = args[:filter] if args.key?(:filter)
|
3081
|
+
@parent = args[:parent] if args.key?(:parent)
|
3082
|
+
end
|
3083
|
+
end
|
3084
|
+
|
3085
|
+
# The response for a bulk analyze conversations operation.
|
3086
|
+
class GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsResponse
|
3087
|
+
include Google::Apis::Core::Hashable
|
3088
|
+
|
3089
|
+
# Count of failed analyses.
|
3090
|
+
# Corresponds to the JSON property `failedAnalysisCount`
|
3091
|
+
# @return [Fixnum]
|
3092
|
+
attr_accessor :failed_analysis_count
|
3093
|
+
|
3094
|
+
# Count of successful analyses.
|
3095
|
+
# Corresponds to the JSON property `successfulAnalysisCount`
|
3096
|
+
# @return [Fixnum]
|
3097
|
+
attr_accessor :successful_analysis_count
|
3098
|
+
|
3099
|
+
def initialize(**args)
|
3100
|
+
update!(**args)
|
3101
|
+
end
|
3102
|
+
|
3103
|
+
# Update properties of this object
|
3104
|
+
def update!(**args)
|
3105
|
+
@failed_analysis_count = args[:failed_analysis_count] if args.key?(:failed_analysis_count)
|
3106
|
+
@successful_analysis_count = args[:successful_analysis_count] if args.key?(:successful_analysis_count)
|
3107
|
+
end
|
3108
|
+
end
|
3109
|
+
|
2543
3110
|
# Metadata for a create analysis operation.
|
2544
3111
|
class GoogleCloudContactcenterinsightsV1alpha1CreateAnalysisOperationMetadata
|
2545
3112
|
include Google::Apis::Core::Hashable
|
2546
3113
|
|
3114
|
+
# Selector of all available annotators and phrase matchers to run.
|
3115
|
+
# Corresponds to the JSON property `annotatorSelector`
|
3116
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector]
|
3117
|
+
attr_accessor :annotator_selector
|
3118
|
+
|
2547
3119
|
# Output only. The Conversation that this Analysis Operation belongs to.
|
2548
3120
|
# Corresponds to the JSON property `conversation`
|
2549
3121
|
# @return [String]
|
@@ -2565,6 +3137,7 @@ module Google
|
|
2565
3137
|
|
2566
3138
|
# Update properties of this object
|
2567
3139
|
def update!(**args)
|
3140
|
+
@annotator_selector = args[:annotator_selector] if args.key?(:annotator_selector)
|
2568
3141
|
@conversation = args[:conversation] if args.key?(:conversation)
|
2569
3142
|
@create_time = args[:create_time] if args.key?(:create_time)
|
2570
3143
|
@end_time = args[:end_time] if args.key?(:end_time)
|
@@ -2873,6 +3446,152 @@ module Google
|
|
2873
3446
|
end
|
2874
3447
|
end
|
2875
3448
|
|
3449
|
+
# The metadata for an IngestConversations operation.
|
3450
|
+
class GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadata
|
3451
|
+
include Google::Apis::Core::Hashable
|
3452
|
+
|
3453
|
+
# Output only. The time the operation was created.
|
3454
|
+
# Corresponds to the JSON property `createTime`
|
3455
|
+
# @return [String]
|
3456
|
+
attr_accessor :create_time
|
3457
|
+
|
3458
|
+
# Output only. The time the operation finished running.
|
3459
|
+
# Corresponds to the JSON property `endTime`
|
3460
|
+
# @return [String]
|
3461
|
+
attr_accessor :end_time
|
3462
|
+
|
3463
|
+
# Output only. Partial errors during ingest operation that might cause the
|
3464
|
+
# operation output to be incomplete.
|
3465
|
+
# Corresponds to the JSON property `partialErrors`
|
3466
|
+
# @return [Array<Google::Apis::ContactcenterinsightsV1::GoogleRpcStatus>]
|
3467
|
+
attr_accessor :partial_errors
|
3468
|
+
|
3469
|
+
# The request to ingest conversations.
|
3470
|
+
# Corresponds to the JSON property `request`
|
3471
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest]
|
3472
|
+
attr_accessor :request
|
3473
|
+
|
3474
|
+
def initialize(**args)
|
3475
|
+
update!(**args)
|
3476
|
+
end
|
3477
|
+
|
3478
|
+
# Update properties of this object
|
3479
|
+
def update!(**args)
|
3480
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
3481
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
3482
|
+
@partial_errors = args[:partial_errors] if args.key?(:partial_errors)
|
3483
|
+
@request = args[:request] if args.key?(:request)
|
3484
|
+
end
|
3485
|
+
end
|
3486
|
+
|
3487
|
+
# The request to ingest conversations.
|
3488
|
+
class GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest
|
3489
|
+
include Google::Apis::Core::Hashable
|
3490
|
+
|
3491
|
+
# Configuration that applies to all conversations.
|
3492
|
+
# Corresponds to the JSON property `conversationConfig`
|
3493
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig]
|
3494
|
+
attr_accessor :conversation_config
|
3495
|
+
|
3496
|
+
# Configuration for Cloud Storage bucket sources.
|
3497
|
+
# Corresponds to the JSON property `gcsSource`
|
3498
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource]
|
3499
|
+
attr_accessor :gcs_source
|
3500
|
+
|
3501
|
+
# Required. The parent resource for new conversations.
|
3502
|
+
# Corresponds to the JSON property `parent`
|
3503
|
+
# @return [String]
|
3504
|
+
attr_accessor :parent
|
3505
|
+
|
3506
|
+
# Configuration for processing transcript objects.
|
3507
|
+
# Corresponds to the JSON property `transcriptObjectConfig`
|
3508
|
+
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig]
|
3509
|
+
attr_accessor :transcript_object_config
|
3510
|
+
|
3511
|
+
def initialize(**args)
|
3512
|
+
update!(**args)
|
3513
|
+
end
|
3514
|
+
|
3515
|
+
# Update properties of this object
|
3516
|
+
def update!(**args)
|
3517
|
+
@conversation_config = args[:conversation_config] if args.key?(:conversation_config)
|
3518
|
+
@gcs_source = args[:gcs_source] if args.key?(:gcs_source)
|
3519
|
+
@parent = args[:parent] if args.key?(:parent)
|
3520
|
+
@transcript_object_config = args[:transcript_object_config] if args.key?(:transcript_object_config)
|
3521
|
+
end
|
3522
|
+
end
|
3523
|
+
|
3524
|
+
# Configuration that applies to all conversations.
|
3525
|
+
class GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig
|
3526
|
+
include Google::Apis::Core::Hashable
|
3527
|
+
|
3528
|
+
# An opaque, user-specified string representing the human agent who handled the
|
3529
|
+
# conversations.
|
3530
|
+
# Corresponds to the JSON property `agentId`
|
3531
|
+
# @return [String]
|
3532
|
+
attr_accessor :agent_id
|
3533
|
+
|
3534
|
+
def initialize(**args)
|
3535
|
+
update!(**args)
|
3536
|
+
end
|
3537
|
+
|
3538
|
+
# Update properties of this object
|
3539
|
+
def update!(**args)
|
3540
|
+
@agent_id = args[:agent_id] if args.key?(:agent_id)
|
3541
|
+
end
|
3542
|
+
end
|
3543
|
+
|
3544
|
+
# Configuration for Cloud Storage bucket sources.
|
3545
|
+
class GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource
|
3546
|
+
include Google::Apis::Core::Hashable
|
3547
|
+
|
3548
|
+
# Required. The Cloud Storage bucket containing source objects.
|
3549
|
+
# Corresponds to the JSON property `bucketUri`
|
3550
|
+
# @return [String]
|
3551
|
+
attr_accessor :bucket_uri
|
3552
|
+
|
3553
|
+
def initialize(**args)
|
3554
|
+
update!(**args)
|
3555
|
+
end
|
3556
|
+
|
3557
|
+
# Update properties of this object
|
3558
|
+
def update!(**args)
|
3559
|
+
@bucket_uri = args[:bucket_uri] if args.key?(:bucket_uri)
|
3560
|
+
end
|
3561
|
+
end
|
3562
|
+
|
3563
|
+
# Configuration for processing transcript objects.
|
3564
|
+
class GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig
|
3565
|
+
include Google::Apis::Core::Hashable
|
3566
|
+
|
3567
|
+
# Required. The medium transcript objects represent.
|
3568
|
+
# Corresponds to the JSON property `medium`
|
3569
|
+
# @return [String]
|
3570
|
+
attr_accessor :medium
|
3571
|
+
|
3572
|
+
def initialize(**args)
|
3573
|
+
update!(**args)
|
3574
|
+
end
|
3575
|
+
|
3576
|
+
# Update properties of this object
|
3577
|
+
def update!(**args)
|
3578
|
+
@medium = args[:medium] if args.key?(:medium)
|
3579
|
+
end
|
3580
|
+
end
|
3581
|
+
|
3582
|
+
# The response to an IngestConversations operation.
|
3583
|
+
class GoogleCloudContactcenterinsightsV1alpha1IngestConversationsResponse
|
3584
|
+
include Google::Apis::Core::Hashable
|
3585
|
+
|
3586
|
+
def initialize(**args)
|
3587
|
+
update!(**args)
|
3588
|
+
end
|
3589
|
+
|
3590
|
+
# Update properties of this object
|
3591
|
+
def update!(**args)
|
3592
|
+
end
|
3593
|
+
end
|
3594
|
+
|
2876
3595
|
# The issue model resource.
|
2877
3596
|
class GoogleCloudContactcenterinsightsV1alpha1IssueModel
|
2878
3597
|
include Google::Apis::Core::Hashable
|
@@ -2892,6 +3611,11 @@ module Google
|
|
2892
3611
|
# @return [Google::Apis::ContactcenterinsightsV1::GoogleCloudContactcenterinsightsV1alpha1IssueModelInputDataConfig]
|
2893
3612
|
attr_accessor :input_data_config
|
2894
3613
|
|
3614
|
+
# Output only. Number of issues in this issue model.
|
3615
|
+
# Corresponds to the JSON property `issueCount`
|
3616
|
+
# @return [Fixnum]
|
3617
|
+
attr_accessor :issue_count
|
3618
|
+
|
2895
3619
|
# Immutable. The resource name of the issue model. Format: projects/`project`/
|
2896
3620
|
# locations/`location`/issueModels/`issue_model`
|
2897
3621
|
# Corresponds to the JSON property `name`
|
@@ -2922,6 +3646,7 @@ module Google
|
|
2922
3646
|
@create_time = args[:create_time] if args.key?(:create_time)
|
2923
3647
|
@display_name = args[:display_name] if args.key?(:display_name)
|
2924
3648
|
@input_data_config = args[:input_data_config] if args.key?(:input_data_config)
|
3649
|
+
@issue_count = args[:issue_count] if args.key?(:issue_count)
|
2925
3650
|
@name = args[:name] if args.key?(:name)
|
2926
3651
|
@state = args[:state] if args.key?(:state)
|
2927
3652
|
@training_stats = args[:training_stats] if args.key?(:training_stats)
|