Как определить склеить несколько сообщений в одно в случаях, когда -- пользователи -- отправляют -- одно сообщение -- несколькими?
Условие: пользователь пишет боту сообщение, разделяя его на несколько. Пример:
Время - сообщение
12:01:01 - Меня зовут
12:01:06 - Андрей
12:01:08 - Иванович
или
12:01:01 - Мой день
12:01:02 - рождения
12:01:15 - был
12:01:30 - вчера
На эти сообщения бот генерирует ответ. На сообщения "мой день" и "мой день рождения был вчера" выдаются разные ответы. Нужно сделать так, чтобы бот ждал, пока пользователь передаст своё сообщение полностью, и только после этого начинал генерировать ответ. Какие есть варианты решения данной задачи или как лучше гуглить?
Простой вариант, который я вижу: обрабатывать сообщения только после того, как с последнего сообщения пройдет определенное время. Или отслеживать статус "набирает сообщение" у пользователя и отвечать только после того, как он будет false. Но в этих вариантах может чувствоваться "временной лаг".
В вашем простом варианте можно в процессе ожидания уже делать запросы на генерацию ответа по уже имеющейся фразе, что бы потом сразу его отправить. Я думаю это сильно уменьшит "временной лаг".
Для этой задачи есть только одно решение - чат-бот должен понимать смысл текста. Пока эта проблема не решена.
Пока эта проблема не решена - материться на юзера и просить его ввести текст полностью. В голосовых системах ввода окончание предложения определяется по интонации. В текстовых по завершению ввода.