/program-y

Python 3.x based AIML 2.0 Chatbot interpreter, framework, related programs and knowledge files

Primary LanguagePythonOtherNOASSERTION

Readme info:

Version: 1.0.1
Authors: Keith Sterling
Date: 13th October 2017
NEWS: Version 1.1.0 Released

WHATS NEW IN 1.1

  1. CSV Output.

By specifying the following config options, Program-Y can now output errors, duplicates and conversation in csv format

files:
    aiml:
       errors:
          file: /tmp/y-bot_errors.csv
          format: csv
          encoding: utf-8
          delete_on_start: true
       duplicates:
          file: /tmp/y-bot_duplicates.csv
          format: csv
          encoding: utf-8
          delete_on_start: true
       conversation:
          file: /tmp/y-bot-conversation.csv
          format: csv
          delete_on_start: true
  1. Default Variables

New config option properties which will load a set of default property values into each new conversation as it is initiated. New conversations are defined by a unique clientid

files:
    aiml:
        properties: $BOT_ROOT/config/properties.txt

Introduction

Program Y is an AIML interpretor written in Python. It includes an entire Python 3 framework for building you own chat bots using Artificial Intelligence Markup Language, or AIML for short.

Programy-Y is fully cross plaform, running on

  • Mac OSX
  • Linux
  • Windows

100% Support for all AIML 2.0 Tags plus all Pandora bot ones they never documented

  • Full support for al AIML 2.0 Tags
  • RDF Support through addtriple, deletetriple, select, uniq and uniq
  • List processing with First and Rest
  • Advanced learn support including resetlearn and resetlearnf
  • Full Out Of Band Support
  • Full embedded XML/HTML Support
  • Dynamic Sets, Maps and Variables

Program Y is extremely extensible, you can

  • Add you own AIML tags
  • Add you own Spelling Checker
  • Support User Authorisation
  • Support User Authentication
  • Add your own Out Out Band (OOB) tags
  • Add Dynamic Sets in Python
  • Add Dynamic Maps in Python
  • Add Dynamic Variables in Python
  • Run a variety of clients, including
    • Console
    • REST
    • Web Chat
    • Twitter
    • Google Hangouts (XMPP)
    • SMS ( coming soon )
    • Facebook ( coming )
    • Slack ( coming soon )

Program-Y comes with a base set of grammars for various industry sectors, including

  • Energy Industry
  • Banking
  • Telecoms
  • Weather
  • Surveys
  • News Feeds
  • Maps

System Requirements

Program Y is built using Python 3.6 and has dependencies upon the following Python libraries

  • requests
  • flask
  • python-dateutil
  • beautifulsoup4
  • lxml
  • wikipedia
  • pylint
  • nose
  • coverage
  • pyyaml
  • tweepy
  • sleekxmpp

In addition, there are a number of additional libraries for use with Sanic version of the REST server, specifically

  • sanic

Using Program-Y

Full documentation is available on Program Y Wiki

After installation from the Github repository you can chat with your Program Y by running one of the many bots found in the \bot folder. These include

  • Y-Bot - My own bot under development
  • Professor - A huge knowledge base of questions and answers
  • Alice2 - AIML 2 version of the famous Alice chat bot
  • Roise - An AIML base set of grammars for creating your own bot

See the individual folders for unix and windows scripts required to run a bot.

Tutorial

Once you have got the system installed and have run one or more of the bots, head over to the Tutorial on the Wiki for a full run down of everything possible in AIML