This documentation has live examples and it’s preferable to browse this site on a desktop browser.
GI uses NodeJS 8.x and the code has only been tested on Linux Mint. Install node.js from https://nodejs.org. It is also recommended to use nvm (node version manager) to manage your node.js versions.
Create a directory on your computer and clone the git repository.
cd ~ mkdir gi cd gi git clone firstname.lastname@example.org:GoodIntentionsAssistant/gi.git server cd server npm install cp app/Config/config.example.js app/Config/config.js node server.js
The server should now be running with default settings. It’s recommended to change the access keys in the configuration file.
Once the server is running open another terminal window go back to your gi directory created in step one.
Make sure you are not in the server directory!
cd ~/gi git clone email@example.com:GoodIntentionsAssistant/gi-client-cli.git cli cd cli npm install cp config.example.js config.js
Say something in the cli you just ran!
You should now be talking directly to the GI server.
Using nodemon with both the server and test cli client.
When any code is updated the server and / or client will be restarted.
A set of entities, intents and data sets
Data source for training the system and parsing parameters from user input
Business logic for the users input
The interface between GI and the end-point, e.g. Facebook Messenger
Parsed user input with entity data
Matching user input to an intent using trained data
Intents train classifier collections for Understand
Handles the user input, finding which intent to use and calling the intent
Additional meta information send to the client such as buttons and cards
An event that happens within GI core and can be listened to
We welcome contributions from developers to fix bugs, enhance existing features and creating new features for the chat bot. If you’re just getting started check out the project Github Issues for a list of improvements, bugs and wild ideas!
Areas of interest
- Example intents
- Entities and data
- NLP improvements
- Database layer / ORM improvements
- Reporting issues
How to Contribute
- Fork the code from master
- Create a branch (git checkout -b my-branch)
- Commit your changes (git commit -m “My fix or feature”)
- Push to the origin branch (git push origin my-branch)
- Create a new Pull Request
Github Issues is used for managing bugs, improvements and future ideas.
For all improvements and feature requests that the following format is adheared to as often as possible for the description.
WHO Optional Who the issue is affecting or the target audience for the issue WHY Not required if it's a bug Why the issue is required or why the target audience needs it WHAT Detailed information about the issue. User stories and example dialog.
An example for creating a “Ping” Skill.
WHO Onboarding new developers to the framework WHY There is a learning curve for GI so providing a simple example skill with an intent is useful WHAT As a new developer who downloads GI I want to learn how to build my first skill. As a reference I go into my app skills directory and can see the "Ping" skill. I then copy this directory, rename the skill, filenames and can make my own skill with an intent quickly