myślę, że jeśli chcieć to zrobić dobrze to trzeba by zapiac jakis machine leearning, spróbuj poczytac coś w docs google, oni teraz dość mocno dewelopuja asystenta i tam jest wiele tego typu algorytmow, ale głównie właśnie na ML, nie wiem tylko czy cos wystawiaja w jakims public API.