2017-01-09 85 views
0

根據此鏈接,Cognitive Services Topic Detection API not returning any results認知服務運營狀態API不返回任何結果

我已經成功提交了DetectTopics API的請求後,嘗試調用OperationStatus API。我創建了一個AzureMachineLearningTextAnalytics對象,我將其稱爲OperationStatus(OperationId,Key)。

我回來的回覆是:狀態:RanToCompletion

結果卻來了爲空,而我,當我調試到生成的REST API調用是

「內部錯誤而執行BES操作」得到了錯誤的信息。*

有沒有人能夠從OperationStatus API獲得結果?任何人都可以提供關於這個問題的任何建議?

+0

請澄清您的具體問題或添加其他詳細信息以突出顯示您需要的內容。正如目前所寫,很難確切地說出你在問什麼。請參閱「如何問問」頁面以獲取有關澄清此問題的幫助。 –

+0

請參閱鏈接瞭解更多詳情。 35 35 012 012 012 012 012 012 012 – Athira

回答

0

將Azure Cognitive Services Text Analytics REST APIS與生成的Swagger定義一起使用時,請使用WithOperationalResponseAsync方法來獲取與請求相關的操作響應。從那你可以查詢原始請求的狀態。簡化的C#示例如下:

AzureMachineLearningTextAnalytics textAnalyzer = new AzureMachineLearningTextAnalytics(); 
var topicResult = textAnalyzer.DetectTopicsWithOperationResponseAsync(textAnalyticsAccountKey, null, null, null, topicDetection); 
string operationId = topicResult.Result.Response.Headers.Location.Segments[topicResult.Result.Response.Headers.Location.Segments.Length - 1]; 
var status = textAnalyzer.OperationStatus(operationId, textAnalyticsAccountKey); 

while ((((MySample.TextAnalytics.Models.OperationResult)status).Status == "NotStarted") || 
     (((MySample.TextAnalytics.Models.OperationResult)status).Status == "Running")) 
{ 
    System.Threading.Thread.Sleep(20000); 
    status = textAnalyzer.OperationStatus(operationId, textAnalyticsAccountKey); 
} 

if (((Terawe.Retail.TextAnalytics.Models.OperationResult)status).Status == "Failed") 
{ 
    // Log an error to the console 
    Console.WriteLine($"Topic detection failed with status: {((MySample.TextAnalytics.Models.OperationResult)status).Message}"); 
} 
else 
{ 
    // Process the phrases 
}