diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/CHANGELOG.md b/sdk/textanalytics/Azure.AI.TextAnalytics/CHANGELOG.md index 78bbb20f3df7..ec8e0ce031f0 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/CHANGELOG.md +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/CHANGELOG.md @@ -4,6 +4,8 @@ ### New features - Added support for service version `3.0`. This can be specified in the `TextAnalyticsClientOptions` object under the `ServiceVersion` enum. By default the SDK targets latest supported service version. - Added value `None` to enum `PiiEntityDomainType` to allow user to specify no domain. +- Added property `ActionName` to all `xxActions` input types so user can specify a name per action. If not provided, service will generate a name. +- Added property `ActionName` to all `xxActionResult` output types that displays the name of each action. ### Breaking changes - Renamed `StartAnalyzeBatchActions` to `StartAnalyzeActions`. diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/README.md b/sdk/textanalytics/Azure.AI.TextAnalytics/README.md index 88893da289dc..3649aeb54db0 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/README.md +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/README.md @@ -612,6 +612,7 @@ This functionality allows running multiple actions in one or more documents. Act int docNumber = 1; foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesResults) { + Console.WriteLine($" Action name: {entitiesActionResults.ActionName}"); foreach (RecognizeEntitiesResult documentResults in entitiesActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -634,6 +635,7 @@ This functionality allows running multiple actions in one or more documents. Act docNumber = 1; foreach (RecognizePiiEntitiesActionResult piiActionResults in piiResults) { + Console.WriteLine($" Action name: {piiActionResults.ActionName}"); foreach (RecognizePiiEntitiesResult documentResults in piiActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -656,6 +658,7 @@ This functionality allows running multiple actions in one or more documents. Act docNumber = 1; foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesResults) { + Console.WriteLine($" Action name: {keyPhrasesActionResult.ActionName}"); foreach (ExtractKeyPhrasesResult documentResults in keyPhrasesActionResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -704,6 +707,7 @@ This functionality allows running multiple actions in one or more documents. Act docNumber = 1; foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentResults) { + Console.WriteLine($" Action name: {analyzeSentimentActionsResult.ActionName}"); foreach (AnalyzeSentimentResult documentResults in analyzeSentimentActionsResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/api/Azure.AI.TextAnalytics.netstandard2.0.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/api/Azure.AI.TextAnalytics.netstandard2.0.cs index 6044ba45deb8..d185b1716140 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/api/Azure.AI.TextAnalytics.netstandard2.0.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/api/Azure.AI.TextAnalytics.netstandard2.0.cs @@ -83,6 +83,7 @@ internal AnalyzeHealthcareEntitiesResultCollection() : base (default(System.Coll public partial class AnalyzeSentimentAction { public AnalyzeSentimentAction() { } + public string ActionName { get { throw null; } set { } } public bool? DisableServiceLogs { get { throw null; } set { } } public bool? IncludeOpinionMining { get { throw null; } set { } } public string ModelVersion { get { throw null; } set { } } @@ -90,6 +91,7 @@ public AnalyzeSentimentAction() { } public partial class AnalyzeSentimentActionResult : Azure.AI.TextAnalytics.TextAnalyticsActionResult { internal AnalyzeSentimentActionResult() { } + public string ActionName { get { throw null; } } public Azure.AI.TextAnalytics.AnalyzeSentimentResultCollection DocumentsResults { get { throw null; } } } public partial class AnalyzeSentimentOptions : Azure.AI.TextAnalytics.TextAnalyticsRequestOptions @@ -229,12 +231,14 @@ internal EntityDataSource() { } public partial class ExtractKeyPhrasesAction { public ExtractKeyPhrasesAction() { } + public string ActionName { get { throw null; } set { } } public bool? DisableServiceLogs { get { throw null; } set { } } public string ModelVersion { get { throw null; } set { } } } public partial class ExtractKeyPhrasesActionResult : Azure.AI.TextAnalytics.TextAnalyticsActionResult { internal ExtractKeyPhrasesActionResult() { } + public string ActionName { get { throw null; } } public Azure.AI.TextAnalytics.ExtractKeyPhrasesResultCollection DocumentsResults { get { throw null; } } } public partial class ExtractKeyPhrasesResult : Azure.AI.TextAnalytics.TextAnalyticsResult @@ -608,12 +612,14 @@ public enum PiiEntityDomain public partial class RecognizeEntitiesAction { public RecognizeEntitiesAction() { } + public string ActionName { get { throw null; } set { } } public bool? DisableServiceLogs { get { throw null; } set { } } public string ModelVersion { get { throw null; } set { } } } public partial class RecognizeEntitiesActionResult : Azure.AI.TextAnalytics.TextAnalyticsActionResult { internal RecognizeEntitiesActionResult() { } + public string ActionName { get { throw null; } } public Azure.AI.TextAnalytics.RecognizeEntitiesResultCollection DocumentsResults { get { throw null; } } } public partial class RecognizeEntitiesResult : Azure.AI.TextAnalytics.TextAnalyticsResult @@ -630,12 +636,14 @@ internal RecognizeEntitiesResultCollection() : base (default(System.Collections. public partial class RecognizeLinkedEntitiesAction { public RecognizeLinkedEntitiesAction() { } + public string ActionName { get { throw null; } set { } } public bool? DisableServiceLogs { get { throw null; } set { } } public string ModelVersion { get { throw null; } set { } } } public partial class RecognizeLinkedEntitiesActionResult : Azure.AI.TextAnalytics.TextAnalyticsActionResult { internal RecognizeLinkedEntitiesActionResult() { } + public string ActionName { get { throw null; } } public Azure.AI.TextAnalytics.RecognizeLinkedEntitiesResultCollection DocumentsResults { get { throw null; } } } public partial class RecognizeLinkedEntitiesResult : Azure.AI.TextAnalytics.TextAnalyticsResult @@ -652,6 +660,7 @@ internal RecognizeLinkedEntitiesResultCollection() : base (default(System.Collec public partial class RecognizePiiEntitiesAction { public RecognizePiiEntitiesAction() { } + public string ActionName { get { throw null; } set { } } public System.Collections.Generic.IList CategoriesFilter { get { throw null; } } public bool? DisableServiceLogs { get { throw null; } set { } } public Azure.AI.TextAnalytics.PiiEntityDomain DomainFilter { get { throw null; } set { } } @@ -660,6 +669,7 @@ public RecognizePiiEntitiesAction() { } public partial class RecognizePiiEntitiesActionResult : Azure.AI.TextAnalytics.TextAnalyticsActionResult { internal RecognizePiiEntitiesActionResult() { } + public string ActionName { get { throw null; } } public Azure.AI.TextAnalytics.RecognizePiiEntitiesResultCollection DocumentsResults { get { throw null; } } } public partial class RecognizePiiEntitiesOptions : Azure.AI.TextAnalytics.TextAnalyticsRequestOptions @@ -866,8 +876,8 @@ public static partial class TextAnalyticsModelFactory public static Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResult AnalyzeHealthcareEntitiesResult(string id, Azure.AI.TextAnalytics.TextDocumentStatistics statistics, System.Collections.Generic.IEnumerable healthcareEntities, System.Collections.Generic.IEnumerable entityRelations, System.Collections.Generic.IEnumerable warnings) { throw null; } public static Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResult AnalyzeHealthcareEntitiesResult(string id, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection AnalyzeHealthcareEntitiesResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } - public static Azure.AI.TextAnalytics.AnalyzeSentimentActionResult AnalyzeSentimentActionResult(Azure.AI.TextAnalytics.AnalyzeSentimentResultCollection result, System.DateTimeOffset completedOn) { throw null; } - public static Azure.AI.TextAnalytics.AnalyzeSentimentActionResult AnalyzeSentimentActionResult(string code, string message) { throw null; } + public static Azure.AI.TextAnalytics.AnalyzeSentimentActionResult AnalyzeSentimentActionResult(Azure.AI.TextAnalytics.AnalyzeSentimentResultCollection result, string actionName, System.DateTimeOffset completedOn) { throw null; } + public static Azure.AI.TextAnalytics.AnalyzeSentimentActionResult AnalyzeSentimentActionResult(string actionName, System.DateTimeOffset completedOn, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.AnalyzeSentimentResult AnalyzeSentimentResult(string id, Azure.AI.TextAnalytics.TextAnalyticsError error) { throw null; } public static Azure.AI.TextAnalytics.AnalyzeSentimentResult AnalyzeSentimentResult(string id, Azure.AI.TextAnalytics.TextDocumentStatistics statistics, Azure.AI.TextAnalytics.DocumentSentiment documentSentiment) { throw null; } public static Azure.AI.TextAnalytics.AnalyzeSentimentResultCollection AnalyzeSentimentResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } @@ -882,8 +892,8 @@ public static partial class TextAnalyticsModelFactory public static Azure.AI.TextAnalytics.DetectLanguageResultCollection DetectLanguageResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } public static Azure.AI.TextAnalytics.DocumentSentiment DocumentSentiment(Azure.AI.TextAnalytics.TextSentiment sentiment, double positiveScore, double neutralScore, double negativeScore, System.Collections.Generic.List sentenceSentiments, System.Collections.Generic.IList warnings = null) { throw null; } public static Azure.AI.TextAnalytics.EntityDataSource EntityDataSource(string name = null, string entityId = null) { throw null; } - public static Azure.AI.TextAnalytics.ExtractKeyPhrasesActionResult ExtractKeyPhrasesActionResult(Azure.AI.TextAnalytics.ExtractKeyPhrasesResultCollection result, System.DateTimeOffset completedOn) { throw null; } - public static Azure.AI.TextAnalytics.ExtractKeyPhrasesActionResult ExtractKeyPhrasesActionResult(string code, string message) { throw null; } + public static Azure.AI.TextAnalytics.ExtractKeyPhrasesActionResult ExtractKeyPhrasesActionResult(Azure.AI.TextAnalytics.ExtractKeyPhrasesResultCollection result, string actionName, System.DateTimeOffset completedOn) { throw null; } + public static Azure.AI.TextAnalytics.ExtractKeyPhrasesActionResult ExtractKeyPhrasesActionResult(string actionName, System.DateTimeOffset completedOn, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.ExtractKeyPhrasesResult ExtractKeyPhrasesResult(string id, Azure.AI.TextAnalytics.TextAnalyticsError error) { throw null; } public static Azure.AI.TextAnalytics.ExtractKeyPhrasesResult ExtractKeyPhrasesResult(string id, Azure.AI.TextAnalytics.TextDocumentStatistics statistics, Azure.AI.TextAnalytics.KeyPhraseCollection keyPhrases) { throw null; } public static Azure.AI.TextAnalytics.ExtractKeyPhrasesResultCollection ExtractKeyPhrasesResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } @@ -903,16 +913,18 @@ public static partial class TextAnalyticsModelFactory public static Azure.AI.TextAnalytics.LinkedEntityMatch LinkedEntityMatch(string text, double score, int offset, int length) { throw null; } public static Azure.AI.TextAnalytics.PiiEntity PiiEntity(string text, string category, string subCategory, double score, int offset, int length) { throw null; } public static Azure.AI.TextAnalytics.PiiEntityCollection PiiEntityCollection(System.Collections.Generic.IEnumerable entities, string redactedText, System.Collections.Generic.IEnumerable warnings = null) { throw null; } - public static Azure.AI.TextAnalytics.RecognizeEntitiesActionResult RecognizeEntitiesActionResult(Azure.AI.TextAnalytics.RecognizeEntitiesResultCollection result, System.DateTimeOffset completedOn) { throw null; } - public static Azure.AI.TextAnalytics.RecognizeEntitiesActionResult RecognizeEntitiesActionResult(string code, string message) { throw null; } + public static Azure.AI.TextAnalytics.RecognizeEntitiesActionResult RecognizeEntitiesActionResult(Azure.AI.TextAnalytics.RecognizeEntitiesResultCollection result, string actionName, System.DateTimeOffset completedOn) { throw null; } + public static Azure.AI.TextAnalytics.RecognizeEntitiesActionResult RecognizeEntitiesActionResult(string actionName, System.DateTimeOffset completedOn, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.RecognizeEntitiesResult RecognizeEntitiesResult(string id, Azure.AI.TextAnalytics.TextAnalyticsError error) { throw null; } public static Azure.AI.TextAnalytics.RecognizeEntitiesResult RecognizeEntitiesResult(string id, Azure.AI.TextAnalytics.TextDocumentStatistics statistics, Azure.AI.TextAnalytics.CategorizedEntityCollection entities) { throw null; } public static Azure.AI.TextAnalytics.RecognizeEntitiesResultCollection RecognizeEntitiesResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } - public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesActionResult RecognizeLinkedEntitiesActionResult(Azure.AI.TextAnalytics.RecognizeLinkedEntitiesResultCollection result, System.DateTimeOffset completedOn) { throw null; } - public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesActionResult RecognizeLinkedEntitiesActionResult(string code, string message) { throw null; } + public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesActionResult RecognizeLinkedEntitiesActionResult(Azure.AI.TextAnalytics.RecognizeLinkedEntitiesResultCollection result, string actionName, System.DateTimeOffset completedOn) { throw null; } + public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesActionResult RecognizeLinkedEntitiesActionResult(string actionName, System.DateTimeOffset completedOn, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesResult RecognizeLinkedEntitiesResult(string id, Azure.AI.TextAnalytics.TextAnalyticsError error) { throw null; } public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesResult RecognizeLinkedEntitiesResult(string id, Azure.AI.TextAnalytics.TextDocumentStatistics statistics, Azure.AI.TextAnalytics.LinkedEntityCollection linkedEntities) { throw null; } public static Azure.AI.TextAnalytics.RecognizeLinkedEntitiesResultCollection RecognizeLinkedEntitiesResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } + public static Azure.AI.TextAnalytics.RecognizePiiEntitiesActionResult RecognizePiiEntitiesActionResult(Azure.AI.TextAnalytics.RecognizePiiEntitiesResultCollection result, string actionName, System.DateTimeOffset completedOn) { throw null; } + public static Azure.AI.TextAnalytics.RecognizePiiEntitiesActionResult RecognizePiiEntitiesActionResult(string actionName, System.DateTimeOffset completedOn, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.RecognizePiiEntitiesResult RecognizePiiEntitiesResult(string id, Azure.AI.TextAnalytics.TextAnalyticsError error) { throw null; } public static Azure.AI.TextAnalytics.RecognizePiiEntitiesResult RecognizePiiEntitiesResult(string id, Azure.AI.TextAnalytics.TextDocumentStatistics statistics, Azure.AI.TextAnalytics.PiiEntityCollection entities) { throw null; } public static Azure.AI.TextAnalytics.RecognizePiiEntitiesResultCollection RecognizePiiEntitiesResultCollection(System.Collections.Generic.IEnumerable list, Azure.AI.TextAnalytics.TextDocumentBatchStatistics statistics, string modelVersion) { throw null; } @@ -923,7 +935,7 @@ public static partial class TextAnalyticsModelFactory public static Azure.AI.TextAnalytics.SentimentConfidenceScores SentimentConfidenceScores(double positiveScore, double neutralScore, double negativeScore) { throw null; } public static Azure.AI.TextAnalytics.TargetSentiment TargetSentiment(Azure.AI.TextAnalytics.TextSentiment sentiment, string text, double positiveScore, double negativeScore, int offset, int length) { throw null; } public static Azure.AI.TextAnalytics.TextAnalyticsActionResult TextAnalyticsActionResult(System.DateTimeOffset completedOn) { throw null; } - public static Azure.AI.TextAnalytics.TextAnalyticsActionResult TextAnalyticsActionResult(string code, string message) { throw null; } + public static Azure.AI.TextAnalytics.TextAnalyticsActionResult TextAnalyticsActionResult(System.DateTimeOffset completedOn, string code, string message) { throw null; } public static Azure.AI.TextAnalytics.TextAnalyticsError TextAnalyticsError(string code, string message, string target = null) { throw null; } public static Azure.AI.TextAnalytics.TextAnalyticsWarning TextAnalyticsWarning(string code, string message) { throw null; } public static Azure.AI.TextAnalytics.TextDocumentBatchStatistics TextDocumentBatchStatistics(int documentCount, int validDocumentCount, int invalidDocumentCount, long transactionCount) { throw null; } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/samples/Sample_AnalyzeActions.md b/sdk/textanalytics/Azure.AI.TextAnalytics/samples/Sample_AnalyzeActions.md index 39f005081c84..e33bb52f0c8d 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/samples/Sample_AnalyzeActions.md +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/samples/Sample_AnalyzeActions.md @@ -70,6 +70,7 @@ To run multiple actions in multiple documents, call `StartAnalyzeActionsAsync` o int docNumber = 1; foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesResults) { + Console.WriteLine($" Action name: {entitiesActionResults.ActionName}"); foreach (RecognizeEntitiesResult documentResults in entitiesActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -92,6 +93,7 @@ To run multiple actions in multiple documents, call `StartAnalyzeActionsAsync` o docNumber = 1; foreach (RecognizePiiEntitiesActionResult piiActionResults in piiResults) { + Console.WriteLine($" Action name: {piiActionResults.ActionName}"); foreach (RecognizePiiEntitiesResult documentResults in piiActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -114,6 +116,7 @@ To run multiple actions in multiple documents, call `StartAnalyzeActionsAsync` o docNumber = 1; foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesResults) { + Console.WriteLine($" Action name: {keyPhrasesActionResult.ActionName}"); foreach (ExtractKeyPhrasesResult documentResults in keyPhrasesActionResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -162,6 +165,7 @@ To run multiple actions in multiple documents, call `StartAnalyzeActionsAsync` o docNumber = 1; foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentResults) { + Console.WriteLine($" Action name: {analyzeSentimentActionsResult.ActionName}"); foreach (AnalyzeSentimentResult documentResults in analyzeSentimentActionsResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentAction.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentAction.cs index 5ebb90f7a56f..a34fb88bb47c 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentAction.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentAction.cs @@ -49,5 +49,10 @@ public AnalyzeSentimentAction() /// This property only has value for and up. /// public bool? IncludeOpinionMining { get; set; } + + /// + /// Gets or sets a name for this action. If not provided, the service will generate one. + /// + public string ActionName { get; set; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentActionResult.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentActionResult.cs index 1c8625c99e5e..8cb1368336a6 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentActionResult.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/AnalyzeSentimentActionResult.cs @@ -13,27 +13,23 @@ public class AnalyzeSentimentActionResult : TextAnalyticsActionResult { private readonly AnalyzeSentimentResultCollection _documentsResults; - internal AnalyzeSentimentActionResult(AnalyzeSentimentResultCollection result, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) - : base(completedOn, error) - { - _documentsResults = result; - } - /// - /// Intended for mocking purposes only. + /// Successful action. /// - internal AnalyzeSentimentActionResult( - AnalyzeSentimentResultCollection result, - DateTimeOffset completedOn) : base(completedOn) + internal AnalyzeSentimentActionResult(AnalyzeSentimentResultCollection result, string actionName, DateTimeOffset completedOn) + : base(completedOn) { _documentsResults = result; + ActionName = actionName; } /// - /// Intended for mocking purposes only. + /// Action with an error. /// - internal AnalyzeSentimentActionResult(TextAnalyticsErrorInternal error) : base(error) + internal AnalyzeSentimentActionResult(string actionName, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) + : base(completedOn, error) { + ActionName = actionName; } /// @@ -50,5 +46,10 @@ public AnalyzeSentimentResultCollection DocumentsResults return _documentsResults; } } + + /// + /// Gets the name for this action. + /// + public string ActionName { get; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesAction.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesAction.cs index 8f43592dea27..338afdf31647 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesAction.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesAction.cs @@ -37,5 +37,10 @@ public ExtractKeyPhrasesAction() /// This property only applies for and up. /// public bool? DisableServiceLogs { get; set; } + + /// + /// Gets or sets a name for this action. If not provided, the service will generate one. + /// + public string ActionName { get; set; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesActionResult.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesActionResult.cs index ce161ac4ddbf..47bf9f7b89ee 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesActionResult.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/ExtractKeyPhrasesActionResult.cs @@ -13,27 +13,23 @@ public class ExtractKeyPhrasesActionResult : TextAnalyticsActionResult { private readonly ExtractKeyPhrasesResultCollection _documentsResults; - internal ExtractKeyPhrasesActionResult(ExtractKeyPhrasesResultCollection result, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) - : base(completedOn, error) - { - _documentsResults = result; - } - /// - /// Intended for mocking purposes only. + /// Successful action. /// - internal ExtractKeyPhrasesActionResult( - ExtractKeyPhrasesResultCollection result, - DateTimeOffset completedOn) : base(completedOn) + internal ExtractKeyPhrasesActionResult(ExtractKeyPhrasesResultCollection result, string actionName, DateTimeOffset completedOn) + : base(completedOn) { _documentsResults = result; + ActionName = actionName; } /// - /// Intended for mocking purposes only. + /// Action with an error. /// - internal ExtractKeyPhrasesActionResult(TextAnalyticsErrorInternal error) : base(error) + internal ExtractKeyPhrasesActionResult(string actionName, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) + : base(completedOn, error) { + ActionName = actionName; } /// @@ -52,5 +48,10 @@ public ExtractKeyPhrasesResultCollection DocumentsResults return _documentsResults; } } + + /// + /// Gets the name for this action. + /// + public string ActionName { get; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesAction.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesAction.cs index 7e815f4063be..f4f35ecb5ff6 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesAction.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesAction.cs @@ -37,5 +37,10 @@ public RecognizeEntitiesAction() /// This property only applies for and up. /// public bool? DisableServiceLogs { get; set; } + + /// + /// Gets or sets a name for this action. If not provided, the service will generate one. + /// + public string ActionName { get; set; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesActionResult.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesActionResult.cs index 7debcd9f4a4f..9b49b67e6eb5 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesActionResult.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeEntitiesActionResult.cs @@ -13,28 +13,23 @@ public class RecognizeEntitiesActionResult : TextAnalyticsActionResult { private readonly RecognizeEntitiesResultCollection _documentsResults; - internal RecognizeEntitiesActionResult(RecognizeEntitiesResultCollection result, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) - : base(completedOn, error) - { - _documentsResults = result; - } - /// - /// Intended for mocking purposes only. + /// Successful action. /// - internal RecognizeEntitiesActionResult( - RecognizeEntitiesResultCollection result, - DateTimeOffset completedOn) : base(completedOn) + internal RecognizeEntitiesActionResult(RecognizeEntitiesResultCollection result, string actionName, DateTimeOffset completedOn) + : base(completedOn) { _documentsResults = result; + ActionName = actionName; } /// - /// Intended for mocking purposes only. + /// Action with an error. /// - internal RecognizeEntitiesActionResult( - TextAnalyticsErrorInternal error) : base(error) + internal RecognizeEntitiesActionResult(string actionName, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) + : base(completedOn, error) { + ActionName = actionName; } /// @@ -53,5 +48,10 @@ public RecognizeEntitiesResultCollection DocumentsResults return _documentsResults; } } + + /// + /// Gets the name for this action. + /// + public string ActionName { get; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesAction.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesAction.cs index 5bc86cf993fa..d57a731ba511 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesAction.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesAction.cs @@ -37,5 +37,10 @@ public RecognizeLinkedEntitiesAction() /// This property only applies for and up. /// public bool? DisableServiceLogs { get; set; } + + /// + /// Gets or sets a name for this action. If not provided, the service will generate one. + /// + public string ActionName { get; set; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesActionResult.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesActionResult.cs index e8fbd4616bf9..53e8a8b1d98f 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesActionResult.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizeLinkedEntitiesActionResult.cs @@ -13,28 +13,23 @@ public class RecognizeLinkedEntitiesActionResult : TextAnalyticsActionResult { private readonly RecognizeLinkedEntitiesResultCollection _documentsResults; - internal RecognizeLinkedEntitiesActionResult(RecognizeLinkedEntitiesResultCollection result, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) - : base(completedOn, error) - { - _documentsResults = result; - } - /// - /// Intended for mocking purposes only. + /// Successful action. /// - internal RecognizeLinkedEntitiesActionResult( - RecognizeLinkedEntitiesResultCollection result, - DateTimeOffset completedOn) : base(completedOn) + internal RecognizeLinkedEntitiesActionResult(RecognizeLinkedEntitiesResultCollection result, string actionName, DateTimeOffset completedOn) + : base(completedOn) { _documentsResults = result; + ActionName = actionName; } /// - /// Intended for mocking purposes only. + /// Action with an error. /// - internal RecognizeLinkedEntitiesActionResult( - TextAnalyticsErrorInternal error) : base(error) + internal RecognizeLinkedEntitiesActionResult(string actionName, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) + : base(completedOn, error) { + ActionName = actionName; } /// @@ -53,5 +48,10 @@ public RecognizeLinkedEntitiesResultCollection DocumentsResults return _documentsResults; } } + + /// + /// Gets the name for this action. + /// + public string ActionName { get; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesAction.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesAction.cs index ef34166e67cd..1bf636a7a5e3 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesAction.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesAction.cs @@ -51,5 +51,10 @@ public RecognizePiiEntitiesAction() /// Filters the response entities to entities that match the specified. /// public IList CategoriesFilter { get; internal set; } = new List(); + + /// + /// Gets or sets a name for this action. If not provided, the service will generate one. + /// + public string ActionName { get; set; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesActionResult.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesActionResult.cs index 168c8b9368d0..84e4c894d0a9 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesActionResult.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/RecognizePiiEntitiesActionResult.cs @@ -13,10 +13,23 @@ public class RecognizePiiEntitiesActionResult : TextAnalyticsActionResult { private readonly RecognizePiiEntitiesResultCollection _documentsResults; - internal RecognizePiiEntitiesActionResult(RecognizePiiEntitiesResultCollection result, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) - : base(completedOn, error) + /// + /// Successful action. + /// + internal RecognizePiiEntitiesActionResult(RecognizePiiEntitiesResultCollection result, string actionName, DateTimeOffset completedOn) + : base(completedOn) { _documentsResults = result; + ActionName = actionName; + } + + /// + /// Action with an error. + /// + internal RecognizePiiEntitiesActionResult(string actionName, DateTimeOffset completedOn, TextAnalyticsErrorInternal error) + : base(completedOn, error) + { + ActionName = actionName; } /// @@ -35,5 +48,10 @@ public RecognizePiiEntitiesResultCollection DocumentsResults return _documentsResults; } } + + /// + /// Gets the name for this action. + /// + public string ActionName { get; } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActionResult.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActionResult.cs index e60f548725c4..416d3105d491 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActionResult.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActionResult.cs @@ -17,22 +17,11 @@ internal TextAnalyticsActionResult (DateTimeOffset completedOn, TextAnalyticsErr Error = error != null ? Transforms.ConvertToError(error) : default; } - /// - /// Intended for mocking purposes only. - /// internal TextAnalyticsActionResult(DateTimeOffset completedOn) { CompletedOn = completedOn; } - /// - /// Intended for mocking purposes only. - /// - internal TextAnalyticsActionResult(TextAnalyticsErrorInternal error) - { - Error = Transforms.ConvertToError(error); - } - /// /// Indicates the time at which the action was last updated on. /// diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActions.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActions.cs index c0e95a17296f..aecf5f23621e 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActions.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsActions.cs @@ -8,6 +8,15 @@ namespace Azure.AI.TextAnalytics /// Determines the set of actions that will get executed on the input documents. public class TextAnalyticsActions { + /// + /// Initializes a new instance of the + /// class which determines the set of actions that will get executed on the input documents. + /// For example, execute extract key phrases, recognize entities, and more. + /// + public TextAnalyticsActions() + { + } + /// /// Optional display name for the operation. /// diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsModelFactory.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsModelFactory.cs index bff035dd9ced..7e937cf8cf91 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsModelFactory.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsModelFactory.cs @@ -566,7 +566,7 @@ public static RecognizeLinkedEntitiesResultCollection RecognizeLinkedEntitiesRes /// /// Sets the collection of . /// Sets the collection of . - /// Sets the collection of . + /// Sets the collection of . /// Sets the collection of . /// Sets the collection of . /// A new instance of for mocking purposes. @@ -589,52 +589,64 @@ public static AnalyzeActionsResult AnalyzeActionsResult( /// Initializes a new instance of for mocking purposes. /// /// Sets the property. + /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static ExtractKeyPhrasesActionResult ExtractKeyPhrasesActionResult( ExtractKeyPhrasesResultCollection result, + string actionName, DateTimeOffset completedOn) { - return new ExtractKeyPhrasesActionResult(result, completedOn); + return new ExtractKeyPhrasesActionResult(result, actionName, completedOn); } /// /// Initializes a new instance of for mocking purposes. /// + /// Sets the property. + /// Sets the property. /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static ExtractKeyPhrasesActionResult ExtractKeyPhrasesActionResult( + string actionName, + DateTimeOffset completedOn, string code, string message) { - return new ExtractKeyPhrasesActionResult(new TextAnalyticsErrorInternal(code, message)); + return new ExtractKeyPhrasesActionResult(actionName, completedOn, new TextAnalyticsErrorInternal(code, message)); } /// /// Initializes a new instance of for mocking purposes. /// /// Sets the property. + /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static AnalyzeSentimentActionResult AnalyzeSentimentActionResult( AnalyzeSentimentResultCollection result, + string actionName, DateTimeOffset completedOn) { - return new AnalyzeSentimentActionResult(result, completedOn); + return new AnalyzeSentimentActionResult(result, actionName, completedOn); } /// /// Initializes a new instance of for mocking purposes. /// + /// Sets the property. + /// Sets the property. /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static AnalyzeSentimentActionResult AnalyzeSentimentActionResult( + string actionName, + DateTimeOffset completedOn, string code, string message) { - return new AnalyzeSentimentActionResult(new TextAnalyticsErrorInternal(code, message)); + return new AnalyzeSentimentActionResult(actionName, completedOn, new TextAnalyticsErrorInternal(code, message)); } /// @@ -651,66 +663,112 @@ public static TextAnalyticsActionResult TextAnalyticsActionResult( /// /// Initializes a new instance of for mocking purposes. /// + /// Sets the property. /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static TextAnalyticsActionResult TextAnalyticsActionResult( + DateTimeOffset completedOn, string code, string message) { - return new TextAnalyticsActionResult(new TextAnalyticsErrorInternal(code, message)); + return new TextAnalyticsActionResult(completedOn, new TextAnalyticsErrorInternal(code, message)); } /// /// Initializes a new instance of for mocking purposes. /// /// Sets the property. + /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static RecognizeLinkedEntitiesActionResult RecognizeLinkedEntitiesActionResult( RecognizeLinkedEntitiesResultCollection result, + string actionName, DateTimeOffset completedOn) { - return new RecognizeLinkedEntitiesActionResult(result, completedOn); + return new RecognizeLinkedEntitiesActionResult(result, actionName, completedOn); } /// /// Initializes a new instance of for mocking purposes. /// + /// Sets the property. + /// Sets the property. /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static RecognizeLinkedEntitiesActionResult RecognizeLinkedEntitiesActionResult( + string actionName, + DateTimeOffset completedOn, string code, string message) { - return new RecognizeLinkedEntitiesActionResult(new TextAnalyticsErrorInternal(code, message)); + return new RecognizeLinkedEntitiesActionResult(actionName, completedOn, new TextAnalyticsErrorInternal(code, message)); } /// /// Initializes a new instance of for mocking purposes. /// /// Sets the property. + /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static RecognizeEntitiesActionResult RecognizeEntitiesActionResult( RecognizeEntitiesResultCollection result, + string actionName, DateTimeOffset completedOn) { - return new RecognizeEntitiesActionResult(result, completedOn); + return new RecognizeEntitiesActionResult(result, actionName, completedOn); } /// /// Initializes a new instance of for mocking purposes. /// + /// Sets the property. + /// Sets the property. /// Sets the property. /// Sets the property. /// A new instance of for mocking purposes. public static RecognizeEntitiesActionResult RecognizeEntitiesActionResult( + string actionName, + DateTimeOffset completedOn, + string code, + string message) + { + return new RecognizeEntitiesActionResult(actionName, completedOn, new TextAnalyticsErrorInternal(code, message)); + } + + /// + /// Initializes a new instance of for mocking purposes. + /// + /// Sets the property. + /// Sets the property. + /// Sets the property. + /// A new instance of for mocking purposes. + public static RecognizePiiEntitiesActionResult RecognizePiiEntitiesActionResult( + RecognizePiiEntitiesResultCollection result, + string actionName, + DateTimeOffset completedOn) + { + return new RecognizePiiEntitiesActionResult(result, actionName, completedOn); + } + + /// + /// Initializes a new instance of for mocking purposes. + /// + /// Sets the property. + /// Sets the property. + /// Sets the property. + /// Sets the property. + /// A new instance of for mocking purposes. + public static RecognizePiiEntitiesActionResult RecognizePiiEntitiesActionResult( + string actionName, + DateTimeOffset completedOn, string code, string message) { - return new RecognizeEntitiesActionResult(new TextAnalyticsErrorInternal(code, message)); + return new RecognizePiiEntitiesActionResult(actionName, completedOn, new TextAnalyticsErrorInternal(code, message)); } #endregion Action Result Models diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/src/Transforms.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/src/Transforms.cs index 405f456c29f5..e00de4937fab 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/src/Transforms.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/src/Transforms.cs @@ -331,7 +331,8 @@ internal static PiiTask ConvertToPiiTask(RecognizePiiEntitiesAction action) StringIndexType = Constants.DefaultStringIndexType, LoggingOptOut = action.DisableServiceLogs // Categories are not enabled because of https://github.com/Azure/azure-sdk-for-net/issues/19237 - } + }, + TaskName = action.ActionName }; } @@ -345,6 +346,8 @@ internal static EntityLinkingTask ConvertToLinkedEntitiesTask(RecognizeLinkedEnt StringIndexType = Constants.DefaultStringIndexType, LoggingOptOut = action.DisableServiceLogs } + , + TaskName = action.ActionName }; } @@ -357,7 +360,8 @@ internal static EntitiesTask ConvertToEntitiesTask(RecognizeEntitiesAction actio ModelVersion = action.ModelVersion, StringIndexType = Constants.DefaultStringIndexType, LoggingOptOut = action.DisableServiceLogs - } + }, + TaskName = action.ActionName }; } @@ -369,7 +373,8 @@ internal static KeyPhrasesTask ConvertToKeyPhrasesTask(ExtractKeyPhrasesAction a { ModelVersion = action.ModelVersion, LoggingOptOut = action.DisableServiceLogs - } + }, + TaskName = action.ActionName }; } @@ -383,7 +388,8 @@ internal static SentimentAnalysisTask ConvertToSentimentAnalysisTask(AnalyzeSent StringIndexType = Constants.DefaultStringIndexType, LoggingOptOut = action.DisableServiceLogs, OpinionMining = action.IncludeOpinionMining - } + }, + TaskName = action.ActionName }; } @@ -532,11 +538,11 @@ private static IReadOnlyCollection ConvertToAnalyz if (taskError != null) { - collection.Add(new AnalyzeSentimentActionResult(null, task.LastUpdateDateTime, taskError)); + collection.Add(new AnalyzeSentimentActionResult(task.TaskName, task.LastUpdateDateTime, taskError)); } else { - collection.Add(new AnalyzeSentimentActionResult(ConvertToAnalyzeSentimentResultCollection(task.Results, idToIndexMap), task.LastUpdateDateTime, null)); + collection.Add(new AnalyzeSentimentActionResult(ConvertToAnalyzeSentimentResultCollection(task.Results, idToIndexMap), task.TaskName, task.LastUpdateDateTime)); } index++; } @@ -554,11 +560,11 @@ private static IReadOnlyCollection ConvertT if (taskError != null) { - collection.Add(new RecognizeLinkedEntitiesActionResult(null, task.LastUpdateDateTime, taskError)); + collection.Add(new RecognizeLinkedEntitiesActionResult(task.TaskName, task.LastUpdateDateTime, taskError)); } else { - collection.Add(new RecognizeLinkedEntitiesActionResult(ConvertToRecognizeLinkedEntitiesResultCollection(task.Results, idToIndexMap), task.LastUpdateDateTime, null)); + collection.Add(new RecognizeLinkedEntitiesActionResult(ConvertToRecognizeLinkedEntitiesResultCollection(task.Results, idToIndexMap), task.TaskName, task.LastUpdateDateTime)); } index++; } @@ -576,11 +582,11 @@ private static IReadOnlyCollection ConvertToExtra if (taskError != null) { - collection.Add(new ExtractKeyPhrasesActionResult(null, task.LastUpdateDateTime, taskError)); + collection.Add(new ExtractKeyPhrasesActionResult(task.TaskName, task.LastUpdateDateTime, taskError)); } else { - collection.Add(new ExtractKeyPhrasesActionResult(ConvertToExtractKeyPhrasesResultCollection(task.Results, idToIndexMap), task.LastUpdateDateTime, null)); + collection.Add(new ExtractKeyPhrasesActionResult(ConvertToExtractKeyPhrasesResultCollection(task.Results, idToIndexMap), task.TaskName, task.LastUpdateDateTime)); } index++; } @@ -598,11 +604,11 @@ private static IReadOnlyCollection ConvertToRe if (taskError != null) { - collection.Add(new RecognizePiiEntitiesActionResult(null, task.LastUpdateDateTime, taskError)); + collection.Add(new RecognizePiiEntitiesActionResult(task.TaskName, task.LastUpdateDateTime, taskError)); } else { - collection.Add(new RecognizePiiEntitiesActionResult(ConvertToRecognizePiiEntitiesResultCollection(task.Results, idToIndexMap), task.LastUpdateDateTime, taskError)); + collection.Add(new RecognizePiiEntitiesActionResult(ConvertToRecognizePiiEntitiesResultCollection(task.Results, idToIndexMap), task.TaskName, task.LastUpdateDateTime)); } index++; } @@ -622,11 +628,11 @@ private static IReadOnlyCollection ConvertToRecog if (taskError != null) { - collection.Add(new RecognizeEntitiesActionResult(null, task.LastUpdateDateTime, taskError)); + collection.Add(new RecognizeEntitiesActionResult(task.TaskName, task.LastUpdateDateTime, taskError)); } else { - collection.Add(new RecognizeEntitiesActionResult(ConvertToRecognizeEntitiesResultCollection(task.Results, idToIndexMap), task.LastUpdateDateTime, taskError)); + collection.Add(new RecognizeEntitiesActionResult(ConvertToRecognizeEntitiesResultCollection(task.Results, idToIndexMap), task.TaskName, task.LastUpdateDateTime)); } index++; } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/AnalyzeOperationTests.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/AnalyzeOperationTests.cs index 14807354a578..03ddd5368cbf 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/AnalyzeOperationTests.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/AnalyzeOperationTests.cs @@ -217,6 +217,7 @@ public async Task AnalyzeOperationWithMultipleActions() Assert.IsNotNull(entitiesActionsResults); Assert.IsNotNull(piiActionsResults); Assert.IsNotNull(entityLinkingActionsResults); + Assert.IsNotNull(analyzeSentimentActionsResults); Assert.AreEqual("AnalyzeOperationWithMultipleTasks", operation.DisplayName); // Keyphrases @@ -576,5 +577,73 @@ public async Task AnalyzeOperationAnalyzeSentimentWithOpinionMining() Assert.AreEqual(TextSentiment.Mixed, analyzeSentimentDocumentsResults[0].DocumentSentiment.Sentiment); } + + [RecordedTest] + [TestCase(true)] + [TestCase(false)] + [Ignore("https://github.com/Azure/azure-sdk-for-net/issues/21798")] + public async Task AnalyzeOperationWithActionName(bool useActionName) + { + TextAnalyticsClient client = GetClient(); + + TextAnalyticsActions batchActions; + + if (useActionName) + { + batchActions = new TextAnalyticsActions() + { + ExtractKeyPhrasesActions = new List() { new ExtractKeyPhrasesAction() { ActionName = "MyExtractKPAction"} }, + RecognizeEntitiesActions = new List() { new RecognizeEntitiesAction() { ActionName = "MyRecognizeEntitiesAction" } }, + RecognizePiiEntitiesActions = new List() { new RecognizePiiEntitiesAction() { ActionName = "MyRecognizePiiEntitiesAction" } }, + RecognizeLinkedEntitiesActions = new List() { new RecognizeLinkedEntitiesAction() { ActionName = "MyRecognizeLinkedEntitiesAction" } }, + AnalyzeSentimentActions = new List() { new AnalyzeSentimentAction() { ActionName = "MyAnalyzeSentimentAction" } }, + DisplayName = "AnalyzeOperationWithMultipleTasks" + }; + } + else + { + batchActions = new TextAnalyticsActions() + { + ExtractKeyPhrasesActions = new List() { new ExtractKeyPhrasesAction() }, + RecognizeEntitiesActions = new List() { new RecognizeEntitiesAction() }, + RecognizePiiEntitiesActions = new List() { new RecognizePiiEntitiesAction() }, + RecognizeLinkedEntitiesActions = new List() { new RecognizeLinkedEntitiesAction() }, + AnalyzeSentimentActions = new List() { new AnalyzeSentimentAction() }, + DisplayName = "AnalyzeOperationWithMultipleTasks" + }; + } + + AnalyzeActionsOperation operation = await client.StartAnalyzeActionsAsync(batchConvenienceDocuments, batchActions); + await operation.WaitForCompletionAsync(); + + //Take the first page + AnalyzeActionsResult resultCollection = operation.Value.ToEnumerableAsync().Result.FirstOrDefault(); + + IReadOnlyCollection entitiesActionsResults = resultCollection.RecognizeEntitiesResults; + IReadOnlyCollection keyPhrasesActionsResults = resultCollection.ExtractKeyPhrasesResults; + IReadOnlyCollection piiActionsResults = resultCollection.RecognizePiiEntitiesResults; + IReadOnlyCollection entityLinkingActionsResults = resultCollection.RecognizeLinkedEntitiesResults; + IReadOnlyCollection analyzeSentimentActionsResults = resultCollection.AnalyzeSentimentResults; + + Assert.IsNotNull(keyPhrasesActionsResults); + Assert.IsNotNull(entitiesActionsResults); + Assert.IsNotNull(piiActionsResults); + Assert.IsNotNull(entityLinkingActionsResults); + Assert.IsNotNull(analyzeSentimentActionsResults); + Assert.AreEqual("AnalyzeOperationWithMultipleTasks", operation.DisplayName); + + if (useActionName) + { + Assert.AreEqual("MyExtractKPAction", keyPhrasesActionsResults.FirstOrDefault().ActionName); + Assert.AreEqual("MyRecognizeEntitiesAction", entitiesActionsResults.FirstOrDefault().ActionName); + Assert.AreEqual("MyRecognizePiiEntitiesAction", piiActionsResults.FirstOrDefault().ActionName); + Assert.AreEqual("MyRecognizeLinkedEntitiesAction", entityLinkingActionsResults.FirstOrDefault().ActionName); + Assert.AreEqual("MyAnalyzeSentimentAction", analyzeSentimentActionsResults.FirstOrDefault().ActionName); + } + else + { + Assert.IsNotEmpty(keyPhrasesActionsResults.FirstOrDefault().ActionName); + } + } } } diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperation.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperation.cs index d9364659bffe..97699b2d4c6f 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperation.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperation.cs @@ -91,6 +91,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a int docNumber = 1; foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesResults) { + Console.WriteLine($" Action name: {entitiesActionResults.ActionName}"); foreach (RecognizeEntitiesResult documentResults in entitiesActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -113,6 +114,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (RecognizePiiEntitiesActionResult piiActionResults in piiResults) { + Console.WriteLine($" Action name: {piiActionResults.ActionName}"); foreach (RecognizePiiEntitiesResult documentResults in piiActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -135,6 +137,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesResults) { + Console.WriteLine($" Action name: {keyPhrasesActionResult.ActionName}"); foreach (ExtractKeyPhrasesResult documentResults in keyPhrasesActionResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -183,6 +186,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentResults) { + Console.WriteLine($" Action name: {analyzeSentimentActionsResult.ActionName}"); foreach (AnalyzeSentimentResult documentResults in analyzeSentimentActionsResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationAsync.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationAsync.cs index 17c2d3a24477..b17e5c4f9cc0 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationAsync.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationAsync.cs @@ -82,6 +82,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a int docNumber = 1; foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesResults) { + Console.WriteLine($" Action name: {entitiesActionResults.ActionName}"); foreach (RecognizeEntitiesResult documentResults in entitiesActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -104,6 +105,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (RecognizePiiEntitiesActionResult piiActionResults in piiResults) { + Console.WriteLine($" Action name: {piiActionResults.ActionName}"); foreach (RecognizePiiEntitiesResult documentResults in piiActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -126,6 +128,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesResults) { + Console.WriteLine($" Action name: {keyPhrasesActionResult.ActionName}"); foreach (ExtractKeyPhrasesResult documentResults in keyPhrasesActionResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -174,6 +177,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentResults) { + Console.WriteLine($" Action name: {analyzeSentimentActionsResult.ActionName}"); foreach (AnalyzeSentimentResult documentResults in analyzeSentimentActionsResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenience.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenience.cs index 2b150532c43f..b32386b746c9 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenience.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenience.cs @@ -84,6 +84,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a int docNumber = 1; foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesResults) { + Console.WriteLine($" Action name: {entitiesActionResults.ActionName}"); foreach (RecognizeEntitiesResult documentResults in entitiesActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -106,6 +107,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (RecognizePiiEntitiesActionResult piiActionResults in piiResults) { + Console.WriteLine($" Action name: {piiActionResults.ActionName}"); foreach (RecognizePiiEntitiesResult documentResults in piiActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -128,6 +130,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesResults) { + Console.WriteLine($" Action name: {keyPhrasesActionResult.ActionName}"); foreach (ExtractKeyPhrasesResult documentResults in keyPhrasesActionResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -176,6 +179,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentResults) { + Console.WriteLine($" Action name: {analyzeSentimentActionsResult.ActionName}"); foreach (AnalyzeSentimentResult documentResults in analyzeSentimentActionsResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); diff --git a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenienceAsync.cs b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenienceAsync.cs index 6c75fbdf8d1a..894435dae56e 100644 --- a/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenienceAsync.cs +++ b/sdk/textanalytics/Azure.AI.TextAnalytics/tests/samples/Sample_AnalyzeOperationConvenienceAsync.cs @@ -76,6 +76,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a int docNumber = 1; foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesResults) { + Console.WriteLine($" Action name: {entitiesActionResults.ActionName}"); foreach (RecognizeEntitiesResult documentResults in entitiesActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -98,6 +99,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (RecognizePiiEntitiesActionResult piiActionResults in piiResults) { + Console.WriteLine($" Action name: {piiActionResults.ActionName}"); foreach (RecognizePiiEntitiesResult documentResults in piiActionResults.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -120,6 +122,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesResults) { + Console.WriteLine($" Action name: {keyPhrasesActionResult.ActionName}"); foreach (ExtractKeyPhrasesResult documentResults in keyPhrasesActionResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}"); @@ -168,6 +171,7 @@ We tried again today and it was amazing. Everyone in my family liked the trail a docNumber = 1; foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentResults) { + Console.WriteLine($" Action name: {analyzeSentimentActionsResult.ActionName}"); foreach (AnalyzeSentimentResult documentResults in analyzeSentimentActionsResult.DocumentsResults) { Console.WriteLine($" Document #{docNumber++}");