【问题标题】:Access Lex Chat bot from .net WebService从 .net WebService 访问 Lex 聊天机器人
【发布时间】:2020-06-09 04:15:29
【问题描述】:

我在 AWS 服务下创建了一个 Lex 聊天机器人。也使用测试聊天机器人会话对其进行测试。

我想在 .net 上创建一个 Web 服务,它可以将请求作为 Intent/Messages 发送并从同一个 amazon lex 聊天机器人获取响应。

【问题讨论】:

  • 我为 AWS cognito 创建了一个联合服务,并将策略分配给了 RunLexBots。我很难找到使用 AppClientID 和 PoolID 访问 AWS Lex 服务和发送消息的方法。
  • 以下是我使用代码 System.Runtime.CompilerServices.AsyncTaskMethodBuilder1+AsyncStateMachineBox1[Amazon.Lex.Model.PostTextResponse,Amazon.Runtime.Internal.MetricsHandler+d__1 得到的响应1[Amazon.Lex.Model.PostTextResponse]]
  • var amazonPostRequest = new Amazon.Lex.Model.PostTextRequest(); amazonPostRequest.BotAlias = "XX"; amazonPostRequest.BotName = "XX"; amazonPostRequest.UserId = "XX"; amazonPostRequest.InputText = "订车"; var amazonLexClient = new AmazonLexClient("AccessKey", "SecretKey", Amazon.RegionEndpoint.USEast1);任务 amazonPostResponse = amazonLexClient.PostTextAsync(amazonPostRequest); Console.WriteLine(amazonPostResponse.ToString());

标签: .net amazon-lex


【解决方案1】:

最后,我使用 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();

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 2017-12-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 2019-04-29
    • 2019-09-30
    相关资源
    最近更新 更多