Я рассматриваю разработку решения с Dialogflow, в котором события пользовательского интерфейса (например, введенный пользователем ввод) будут поступать как события http REST.
Проблема заключается в том, что клиентский API Dialogflow (Примечание: это НЕ ТО ЖЕ ТО ЖЕ ВРЕМЯ, что и API выполнения) выглядит так, как будто он имеет состояние: https://github.com/googleapis/nodejs-dialogflow
(... Но я могу ошибаться в этом...)
И сохранение состояния сложно в большинстве (всех?) современных бессерверных парадигмах, которые, вероятно, использует любой здравомыслящий человек. В основном — нет гарантии, что последующие события поступят в один и тот же экземпляр времени выполнения.
Немного бесит, что, хотя в репозитории выше представлено много примеров, ни один из них не выглядит реалистичным (но небольшим) приложением, обрабатывающим многосессионный, многооборотный (даже 2-3 оборота) пользовательский ввод.
Идея заключается в том, что любой экземпляр среды выполнения может/будет вызывать new dialogflow.SessionsClient();
только один раз ВО ВРЕМЯ ВЫПОЛНЕНИЯ (НЕ за сеанс) для инициализации API, а затем все остальное делается с помощью await sessionClient.detectIntent(request);
???
Теперь, когда я напечатал это, я вполне уверен, что это правильно. Но если бы кто-нибудь подтвердил, было бы здорово!