ChatterBot Documentation

ChatterBot Documentation

Release 1.1.0a7 Gunther Cox

Jun 01, 2021

Contents

1 Language Independence

3

2 How ChatterBot Works

5

3 Process flow diagram

7

4 Contents:

9

4.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.1.1 Installing from PyPi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.1.2 Installing from GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.1.3 Installing from source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.1.3.1 Checking the version of ChatterBot that you have installed . . . . . . . . . . . . . 10

4.1.3.2 Upgrading ChatterBot to the latest version . . . . . . . . . . . . . . . . . . . . . . 10

4.2 Quick Start Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2.1 Create a new chat bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2.2 Training your ChatBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2.3 Get a response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3 ChatterBot Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3.1 Getting help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3.2 Installing ChatterBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3.3 Creating your first chat bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3.3.1 Setting the storage adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.3.2 Specifying logic adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.3.3 Getting a response from your chat bot . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.3.4 Training your chat bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.4.1 Simple Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.4.2 Terminal Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.4.3 Using MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4.4 Time and Mathematics Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4.5 Using SQL Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.4.6 Read only mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.4.7 More Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.5 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.5.1 Setting the training class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.5.2 Training classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.5.2.1 Training via list data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

i

4.5.2.2 Training with corpus data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.5.2.3 Training with the Ubuntu dialog corpus . . . . . . . . . . . . . . . . . . . . . . . . 19 4.5.3 Creating a new training class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.6 Preprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.6.1 Preprocessor functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.6.2 Creating new preprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.7 Logic Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.7.1 How logic adapters select a response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.7.1.1 Response selection methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.7.1.2 Setting the response selection method . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.7.1.3 Response selection in logic adapters . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.7.1.4 Selecting a response from multiple logic adapters . . . . . . . . . . . . . . . . . . 22 4.7.2 Creating a new logic adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.7.2.1 Example logic adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.7.2.2 Directory structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.7.2.3 Responding to specific input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.7.2.4 Interacting with services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.7.2.5 Providing extra arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.7.3 Common logic adapter attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.7.4 Best Match Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.7.4.1 How it works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.7.4.2 Setting parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.7.5 Time Logic Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.7.6 Mathematical Evaluation Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.7.7 Specific Response Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.7.7.1 Specific response example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.7.7.2 Low confidence response example . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.8 Storage Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.8.1 Text Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.8.1.1 Text Search Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.8.1.2 Bigram Text Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.8.2 Creating a new storage adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.8.3 Common storage adapter attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.8.4 SQL Storage Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.8.5 MongoDB Storage Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.8.6 Database Migrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.9 Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.9.1 Setting filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.10 ChatterBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.10.1 Example chat bot parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.10.2 Example expanded chat bot parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.10.3 Enable logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.10.4 Using a custom logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.10.5 Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.10.5.1 Adapters types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.10.5.2 Accessing the ChatBot instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.11 Conversations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.11.1 Conversation scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.11.2 Conversation example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.11.2.1 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.11.2.2 Statement-response relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.12 Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.12.1 Statement comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.12.1.1 Use your own comparison function . . . . . . . . . . . . . . . . . . . . . . . . . . 41

ii

4.13 Utility Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.13.1 Module imports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.13.2 Class initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.13.3 ChatBot response time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.13.4 Parsing datetime information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.14 ChatterBot Corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.14.1 Corpus language availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.14.2 Exporting your chat bot's database as a training corpus . . . . . . . . . . . . . . . . . . . . 43

4.15 Django Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.15.1 Chatterbot Django Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.15.1.1 Additional Django settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.15.2 ChatterBot Django Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.15.2.1 Example API Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.15.3 Webservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.15.3.1 WSGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.15.3.2 Hosting static files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.15.4 Install packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.15.4.1 Installed Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.15.4.2 Migrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.15.4.3 MongoDB and Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.16 Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.16.1 Python String Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.16.1.1 Does ChatterBot handle non-ascii characters? . . . . . . . . . . . . . . . . . . . . 46 4.16.1.2 How do I fix Python encoding errors? . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.16.2 How do I deploy my chat bot to the web? . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.16.3 What kinds of machine learning does ChatterBot use? . . . . . . . . . . . . . . . . . . . . . 48 4.16.3.1 1. Search algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.16.3.2 2. Classification algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.17 Command line tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.17.1 Get the installed ChatterBot version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.18 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.18.1 Contributing to ChatterBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.18.1.1 Setting Up a Development Environment . . . . . . . . . . . . . . . . . . . . . . . 49 4.18.1.2 Reporting a Bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.18.1.3 Requesting New Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.18.1.4 Contributing Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.18.1.5 Contributing Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.18.2 Releasing ChatterBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.18.2.1 Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.18.2.2 Release Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.18.3 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.18.3.1 ChatterBot tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.18.3.2 Django integration tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.18.3.3 Django example app tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.18.3.4 Benchmark tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.18.3.5 Running all the tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.18.4 Packaging your code for ChatterBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.18.4.1 Package directory structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.18.5 Suggested Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.18.5.1 Text Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.18.5.2 Database Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.19 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5 Report an Issue

57

iii

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download