Хочу написать программу, которая бы симулировала общение с пользователем, но не знаю как?
В теории балабола (по ссылке - библиотека для работы с ним).
Пример:
from balaboba import Balaboba
bb = Balaboba()
intros = bb.intros(language="ru")
intro = next(intros)
response = bb.balaboba("Кто ты?", intro=intro.number)
print(response)
response = bb.balaboba("А я кто?", intro=intro.number)
print(response)
Ответ:

Кто ты? — Не знаю.
— Где твой дом, где твой город?
Есть ли у тебя семья, друзья, любимый человек?
Зачем ты пришел в этот мир?
Что ты здесь делаешь?
Почему ты не можешь найти ответ на эти вопросы?
Ты — никто.
Ты не знаешь, кто ты есть.
Откуда ты взялся?
Кем ты был до этого?
Кто ты, почему ты здесь, куда ты идешь?
Эти вопросы, наверное, волнуют многих людей.
Но что ты на них можешь ответить?
Вот так и мы — не знаем.
Мы рождаемся, растем, взрослеем, стареем.
И все это время спрашиваем себя: "Кто я?"
А я кто? Я - человек!
Не больше!
И не меньше!
Хотя, и не очень скромный...
Но это не значит, что надо всех в одну кучу валить!
Вот я - Человек!
А Вы?
Кто?
Что?
Почему?
Зачем?
А если бы Вы были Человеком...
Вы бы на всё это смотрели по-другому
В любом случае, каждый из нас — человек, а значит, он и есть тот самый бог, который не сделал ничего плохого по своей вине, но которого мы по-прежнему ненавидим.

Не совсем то, но вот альтернатива.
Из минусов - придется настраивать вручную, требует мощного железа и на английском.
В остальном-же надо понимать:
1.Генерация связного текста очень ресурсоемкий процесс и генерировать бесплатно большое количество текста никто не будет. Скорее всего - рано или поздно, в зависимости от того, насколько популярен будет бот, через балаболу будет достигнут лимит обращений.  
2.Нейросети еще довольно тупы и даже если реплики по отдельности кажутся осмысленными, то вот с диалогом могут быть проблемы. По примеру это видно.
В частности, на полноценную имитацию связного диалога натаскана только AIDungeoun и тот пример по ссылки, но они на английском, а у первой нет api.
Второй момент: у нейронок очень плохо с накоплением информации - последовательная генерация может выглядеть связно, но чем дальше генерить, тем выше шанс, что нейронка забудет о чем-то.
Вероятнее всего больше всего подходит гугловский Dialog Flow, его как и Алису надо обучать, но есть несколько собранных агентов с которыми можно сразу пообщаться и посмотреть как они работают. Только стоит понимать что сервис платный.
