Loosely based on Charles Hayden's version in Java, at http://chayden.net/eliza/Eliza.html.
I feel that it is fairly complete. However there are some holes, as the library was written immediately prior to my discovery of Joseph Weizenbaum's own description of the original program, which is quite detailed, along with the original "doctor" script. Oh well. A copy of that article is provided in the repo as a reference to the correct behavior.
Can be run interactively:
$ python eliza.py
How do you do. Please tell me your problem.
> I would like to have a chat bot.
You say you would like to have a chat bot ?
> bye
Goodbye. Thank you for talking to me.
...or imported and used as a library:
from eliza import Eliza
eliza = Eliza()
eliza.load('doctor.txt')
print(eliza.initial())
while True:
said = input('> ')
response = eliza.respond(said)
if response is None:
break
print(response)
print(eliza.final())
...or setted up as a dependency:
pip install git+https://github.com/NeonGeckoCom/eliza