Я разработчик и новичок в области системной инженерии, поэтому до сих пор проясняю свою концепцию.
Мне нужно развернуть моего чат-бота в Lambda и разместить его с помощью API Gateway, но возникает следующая концептуальная проблема.
У меня есть чат-бот, созданный с использованием простого AIML . Я создал его на Python и он работает правильно.
Для тех, кто не знает AIML, здесь я создаю образ ядра AIML: k = aiml.Kernel()
, а затем, когда происходит диалог, этот образ ядра важен для диалога.
В моей системе, например, у меня только один образ ядра, и все хорошо. Но когда я размещу эту программу на Python в Lambda и разверну ее с помощью API Gateway, для каждого запроса у меня будет new image of the kernel
, и моя программа не будет работать должным образом.
В чат-боте разговор происходит во время выполнения, и важны данные прошлого разговора, но если я использую API-шлюз для запуска функции Lambda каждый раз, когда пользователь пишет новую строку, то каждый раз, когда будет новое изображение создано из ядра.
Одним из вариантов, который я нашел, было сохранение сеанса и разговора пользователя в базе данных. Но во время выполнения, если я разговариваю в чате, то поиск прошлого разговора и разговора прошлого в новом образе ядра звучит не очень хорошо.
Или, даже если мы сохраним прошлый диалог и отправим его в функцию Lambda с использованием некоторой полезной нагрузки JSON, то также, поскольку API-шлюз создаст новый образ ядра, мне нужно сначала запустить весь прошлый разговор, а затем только получить ответ на новый диалог в чате.
IN SHORT: Как получить один образ ядра в функции Lambda и получить вывод с помощью API Gateway, где API вызывается несколько раз для одного и того же изображения функции Lambda.
Или даже если вам известна общая идея, как большинство онлайн-чатов обрабатывают и дают ответы, тогда это также будет очень полезно.