ChatterBot comes with built in adapter classes that allow it to connect
to different types of databases. In this tutorial, we will be using the
SQLStorageAdapter which allows the chat bot to connect to SQL databases.
By default, this adapter will create a SQLite database.

The database parameter is used to specify the path to the database
that the chat bot will use. For this example we will call the database
database.sqlite3. this file will be created automatically if it doesn’t
already exist.

Next, we will add in parameters to specify the input and output terminal
adapter. The input terminal adapter simply reads the user’s input from
the terminal. The output terminal adapter prints the chat bot’s response.

The logic_adapters parameter is a list of logic adapters.
In ChatterBot, a logic adapter is a class that takes an input statement
and returns a response to that statement.

You can choose to use as many logic adapters as you would like.
In this example we will use two logic adapters. The TimeLogicAdapter returns
the current time when the input statement asks for it.
The MathematicalEvaluation adapter solves math problems that use basic
operations.

Next, you will want to create a while loop for your chat bot to run in.
By breaking out of the loop when specific exceptions are triggered,
we can exit the loop and stop the program when a user enters ctrl+c.

At this point your chat bot, Norman will learn to communicate as you talk to him.
You can speed up this process by training him with examples of existing conversations.

bot.train(['How are you?','I am good.','That is good to hear.','Thank you','You are welcome.',])

You can run the training process multiple times to reinforce preferred responses
to particular input statements. You can also run the train command on a number
of different example dialogs to increase the breadth of inputs that your chat
bot can respond to.

This concludes this ChatterBot tutorial. Please see other sections of the
documentation for more details and examples.