从 .net WebService 访问 Lex Chat bot
Access Lex Chat bot from .net WebService
我在 AWS 服务下创建了一个 Lex Chatbot。使用测试聊天机器人会话也对其进行了测试。
我想在 .net 上创建一个 Web 服务,它可以作为 Intent/Messages 发送请求并从同一个 amazon lex 聊天机器人获得响应。
最后,我使用 nuget 包 Amazon.lex 模型完成了这项工作。下面是用于从我的 AWS 聊天机器人
获取响应的控制台应用程序
Amazon.Lex.Model.PostTextRequest amazonPostRequest = new
Amazon.Lex.Model.PostTextRequest();
amazonPostRequest.BotAlias = "BookATrip_VFirst";
amazonPostRequest.BotName = "BookATrip_VFirst";
amazonPostRequest.UserId = "BotAccessRestAPI";
amazonPostRequest.InputText = "book a car";
AmazonLexClient amazonLexClient = new AmazonLexClient("AKIA25U6KRJ7AO7MODNQ", "khAIm2l1zK94zUCeG+Gg/oACIIgCAKLBkEJUAEl2", Amazon.RegionEndpoint.USEast1);
Task<PostTextResponse> amazonPostResponse = amazonLexClient.PostTextAsync(amazonPostRequest);
//Task<IAmazonLex> AmazonLexResponse = amazonLexClient.PostTextAsync(amazonPostRequest);
while (amazonPostResponse.Status!=TaskStatus.RanToCompletion)
{
//just to wait for response
Console.WriteLine(amazonPostResponse);
Console.ReadLine();
}
//Console.WriteLine(amazonPostResponse.Result.ContentLength);
//Console.WriteLine(amazonPostResponse.Result.DialogState);
Console.WriteLine(amazonPostResponse.Result.HttpStatusCode);
Console.WriteLine(amazonPostResponse.Result.IntentName);
Console.WriteLine(amazonPostResponse.Result.Message);
Console.WriteLine(amazonPostResponse.Result.MessageFormat);
Console.WriteLine(amazonPostResponse.Result.SessionAttributes);
Console.WriteLine(amazonPostResponse.Result.SessionId);
Console.ReadLine();
我在 AWS 服务下创建了一个 Lex Chatbot。使用测试聊天机器人会话也对其进行了测试。
我想在 .net 上创建一个 Web 服务,它可以作为 Intent/Messages 发送请求并从同一个 amazon lex 聊天机器人获得响应。
最后,我使用 nuget 包 Amazon.lex 模型完成了这项工作。下面是用于从我的 AWS 聊天机器人
获取响应的控制台应用程序 Amazon.Lex.Model.PostTextRequest amazonPostRequest = new
Amazon.Lex.Model.PostTextRequest();
amazonPostRequest.BotAlias = "BookATrip_VFirst";
amazonPostRequest.BotName = "BookATrip_VFirst";
amazonPostRequest.UserId = "BotAccessRestAPI";
amazonPostRequest.InputText = "book a car";
AmazonLexClient amazonLexClient = new AmazonLexClient("AKIA25U6KRJ7AO7MODNQ", "khAIm2l1zK94zUCeG+Gg/oACIIgCAKLBkEJUAEl2", Amazon.RegionEndpoint.USEast1);
Task<PostTextResponse> amazonPostResponse = amazonLexClient.PostTextAsync(amazonPostRequest);
//Task<IAmazonLex> AmazonLexResponse = amazonLexClient.PostTextAsync(amazonPostRequest);
while (amazonPostResponse.Status!=TaskStatus.RanToCompletion)
{
//just to wait for response
Console.WriteLine(amazonPostResponse);
Console.ReadLine();
}
//Console.WriteLine(amazonPostResponse.Result.ContentLength);
//Console.WriteLine(amazonPostResponse.Result.DialogState);
Console.WriteLine(amazonPostResponse.Result.HttpStatusCode);
Console.WriteLine(amazonPostResponse.Result.IntentName);
Console.WriteLine(amazonPostResponse.Result.Message);
Console.WriteLine(amazonPostResponse.Result.MessageFormat);
Console.WriteLine(amazonPostResponse.Result.SessionAttributes);
Console.WriteLine(amazonPostResponse.Result.SessionId);
Console.ReadLine();