我尝试使用Google的NLP Api过滤一行文本。
但是一旦我尝试返回一个值,就会出现一条错误消息。
我已经尝试调试代码,但是它不会比创建变量“ google”更持久。此后,程序将返回错误消息,指出“ MESSAGE_CREATED中发生了System.AggregateException”。这基本上意味着发生了多个错误。
有人能理解为什么会这样吗,或者我该如何解决?
public dynamic DataFilter(string data)
{
var client = LanguageServiceClient.Create();
var response = client.AnalyzeSentiment(new Document()
{
Content = data,
Type = Document.Types.Type.PlainText
});
var sentiment = response.DocumentSentiment;
return sentiment;
}
private async Task AnalyzeMessage(MessageCreateEventArgs e)
{
string retrievedData = e.Message.Content;
string userMessage = retrievedData.ToLower();
if(!e.Author.IsBot)
{
if(userMessage.Contains("nlp"))
{
string line = "What is the capital of the Netherlands";
var google = DataFilter(line);
await e.Channel.SendMessageAsync($"The value given back is {google.Magnitude}");
}
}
}
答案 0 :(得分:0)
我发现了问题!
问题不在代码中,而是在Google API中。 api返回“ System.AggregateException”,因为没有将环境变量添加到应用程序中(我将其添加到计算机中,但这还不够)。
转到“解决方案资源管理器”>“右键单击您的项目”>“属性”>“调试”,然后添加名称“ GOOGLE_APPLICATION_CREDENTIALS”,并将其位置值添加到身份验证JSON文件中(您可以在{ {3}})
我希望这对其他人有帮助!