Проблема с подключением Azure Chat Bot к серверу без функции - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать Serverless Python Chatbot API в Microsoft Azure, следуя этому руководству: https://towardsdatascience.com/creating-a-serverless-python-chatbot-api-in-microsoft-azure-from-scratch-in-9-easy-steps-2f1913fc9581 Однако на этапе 7 (Подключение BOT к функции без сервера) , Я заменяю оригинальный код EchoBot.cs приведенным ниже кодом (как указано в руководстве), чатбот перестает работать. Я не уверен, что не хватает кода ниже, кто-нибудь может просветить меня об этом? спасибо

 using System.Collections.Generic;
 using System.Threading;
 using System.Threading.Tasks;
 using Microsoft.Bot.Builder;
 using Microsoft.Bot.Schema;
 using System.Net;
 using System;
 using System.Net.Http;
 using System.Text;  // for class Encoding
 using System.IO;  
 using Newtonsoft.Json;
 using Newtonsoft.Json.Serialization;

namespace Microsoft.BotBuilderSamples.Bots
{
public class EchoBot : ActivityHandler
{
    public class FlaskRequestModel
    {
        [JsonProperty("text")]
        public string Text {get; set;}            

    }

    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {           
        var replyText = $"{turnContext.Activity.Text}";
        //if (!replyText.ToLower().Contains("Hey Bot")){  # Optional bit of code that only sends the sends the message to the back end if it contains a particular keyword
        //    return;
        //}
        var replyTextModel = new FlaskRequestModel()
        {
            Text = replyText 
        };

        var jsonObject = JsonConvert.SerializeObject(replyTextModel);

        var request = new HttpRequestMessage()
        {

            Content = new StringContent(jsonObject, Encoding.UTF8, "application/json"),
            Method = HttpMethod.Post,
            RequestUri = new Uri("https://linkedinexample.azurewebsites.net/api/Serveless_Function"),   //  <- Replace the URL with the the URL for your function app
        };            

        var httpClient = new HttpClient();
        // httpClient.DefaultRequestHeaders.Add("API-Key","your API-key");  <- required if your HTTP trigger authorization was set to something other than Anonymous
        var response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead);      

        if (response.IsSuccessStatusCode)
        {
            var responseString = await response.Content.ReadAsStringAsync();
            await turnContext.SendActivityAsync(MessageFactory.Text(responseString, responseString), cancellationToken);
        }
        else
        {
            await turnContext.SendActivityAsync(MessageFactory.Text("failure", "failure"), cancellationToken);
            var responseString = await response.Content.ReadAsStringAsync();
            await turnContext.SendActivityAsync(MessageFactory.Text(responseString, responseString), cancellationToken);   
        }
    }
    }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...