Asp.net core 如何使用.net core和dialogflow构建聊天机器人?[已解决]
见鬼,各位。 我是.NETCore的新手,我正在使用.NETCore构建自己的MVCWeb应用程序。 我想在我的网站上添加一个聊天机器人应用程序。 在我看来,在dialogflow中构建一个代理之后,我应该可以使用webhook让我的C#应用程序连接到已经存在的代理,并将请求推送到它并从代理获得响应。 任何人都能告诉我如何将.net核心客户端连接到已经存在或可能是参考的dialogflow代理吗? 谢谢大家! 我已通过以下步骤解决了此问题: 1.安装Google.Cloud.Dialogflow.V2 2.按照链接创建GCP凭据访问密钥。然后将JSON保存到我的本地计算机。 3.使用以下代码连接dialogflow:Asp.net core 如何使用.net core和dialogflow构建聊天机器人?[已解决],asp.net-core,dialogflow-es,Asp.net Core,Dialogflow Es,见鬼,各位。 我是.NETCore的新手,我正在使用.NETCore构建自己的MVCWeb应用程序。 我想在我的网站上添加一个聊天机器人应用程序。 在我看来,在dialogflow中构建一个代理之后,我应该可以使用webhook让我的C#应用程序连接到已经存在的代理,并将请求推送到它并从代理获得响应。 任何人都能告诉我如何将.net核心客户端连接到已经存在或可能是参考的dialogflow代理吗? 谢谢大家! 我已通过以下步骤解决了此问题: 1.安装Google.Cloud.Dialogflow
public void DialogflowAction()
{
var query = new QueryInput {
Text = new TextInput
{
Text = "嗨",
LanguageCode = "zh-TW"
}
};
var sessionId = "{SESSIONID HERE CAN BE RANDOM}";
var agent = "{MUST AS SAME AS Project ID IN DIALOGFLOW CONSOLE}";
GoogleCredential creds = GoogleCredential.FromFile("{JSON FILE PATH}");
var channel = new Grpc.Core.Channel(SessionsClient.DefaultEndpoint.Host,
creds.ToChannelCredentials());
var client = SessionsClient.Create(channel);
var dialogflow = client.DetectIntent(
new SessionName(agent, sessionId),
query);
Console.WriteLine("dialogflow:"+dialogflow.QueryResult.FulfillmentText);
channel.ShutdownAsync();
}
多亏Sukhi给了我解决这个问题的建议。这相当容易。请按照以下说明操作:
System.Environment.SetEnvironmentVariable(“谷歌应用程序凭据”,“凭据路径”)
: Dim textInput As New TextInput, queryInput As New QueryInput
textInput.Text = whatUserSays
textInput.LanguageCode = "en"
queryInput.Text = textInput
_Response = _Client.DetectIntent(New SessionName("newagent-12345", _SessionId), queryInput).QueryResult.FulfillmentText
Debug.Print(_Response)
Return _Response
End Function
where-queryInput包含用户键入的文本。感谢您回答我的问题。