Как я могу сделать повторный вызов LUIS.ai, чтобы не возникало исключение NullReferenceException через исключение конфигурации - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь вызвать функцию, у которой внутри метода есть вызов LUIS.ai, который извлекает параметры конфигурации из файла application.json .

// Create the LUIS settings from configuration.
var luisApplication = new LuisApplication(
    configuration["LuisAppId"],
    configuration["LuisAPIKey"],
    "https://" + configuration["LuisAPIHostName"]
);

var recognizer = new LuisRecognizer(luisApplication, null, true);

Проблема заключается в том, что при повторном вызове функции значения конфигурации LuisAppId и LuisAPIKey равны null , что создает исключение.

Я прочитал здесь в этом уроке , что я могу создать синглтон необходимых значений.

И, изменив метод ConfigureServices, создайте точку QnAMakerEndpoint, которая соединяетв базу знаний, определенную в файле appsettings.json.

Startup.cs

// Create QnAMaker endpoint as a singleton
services.AddSingleton(new QnAMakerEndpoint
{
   KnowledgeBaseId = Configuration.GetValue<string>($"QnAKnowledgebaseId"),
   EndpointKey = Configuration.GetValue<string>($"QnAAuthKey"),
   Host = Configuration.GetValue<string>($"QnAEndpointHostName")
 });

Я хотел бы, чтобы следующие вопросы включали ответ:

Концерн 1: Длится ли этот синглтон всей областью применения от пользователя, использующего его для выхода из системы?Вы бы назвали это, синглтон, в течение срока службы процесса, используемого пользователем?

Концерн 2: Если это не продлится весь пользовательский процесс, то может продолжаться весь процесс.время жизни?

Забота 3: Будет ли служба работать с конфигурациями application.json для всего пользовательского процесса / сеанса?

Вот пример использования приведенного выше примера учебного пособия

public QnAMaker EchoBotQnA { get; private set; }
public EchoBot(QnAMakerEndpoint endpoint)
{
   // connects to QnA Maker endpoint for each turn
   EchoBotQnA = new QnAMaker(endpoint);
}

Смогу ли я выполнить точно такой же процесс для выполнения непрерывного вызова LUIS.ai?С начальной конфигурацией var luisAppication = new LuisApplication ();

...