Eliza chat is a dart implementation of the ELIZA chatbot designed by Joseph Weizenbaum, in the sixties. ELIZA was one of the first chatbots that ever existed. This is a tribute to that wonderfull work that was well ahead of its time. The code for this package is based on the python version created by Wade Brainerd (https://github.com/wadetb/eliza)
Features
Eliza can be used to implement in a fun Dart or Flutter project.
Getting started
Install the package, import the library and you're good to go.
Usage
import 'dart:io';
import 'package:eliza_chat/eliza_chat.dart';
void main() {
var eliza = Eliza();
print(eliza.getHeader());
print(eliza.getInitial());
while (true) {
stdout.write("You: ");
var input = stdin.readLineSync();
if (input == null) {
break;
}
var output = eliza.processInput(input);
if (output == null) {
break;
}
print("Eliza: $output");
}
print(eliza.getFinal());
}
Additional information
- To start using the package, create an instance of the Eliza class
var eliza = Eliza();
- To get the old school header from the original ELIZA, use the getHeader() method. This method returns a String value:
eliza.getHeader();
- To get the introduction text from ELIZA, use the getInitial() method. This method returns a String value:
eliza.getInitial();
- To process the user its question, use the processInput() method. This method returns a String? value:
eliza.processInput(input);
- processInput() CAN return a null value. If the user types "bye", "goodbye" or "quit", Eliza knows you want to terminate the conversation and will return a null value instead. By checking for a null value you can get confirmation that Eliza received the stop command and you get ask for a final sentence. The getFinal method returns a String value:
eliza.getFinal();
Libraries
- eliza_chat
- Support for doing something awesome.