Skip to content
Keith Sterling edited this page Oct 22, 2018 · 123 revisions

NEW RELEASE UPDATE

Version 3.0 has been released to master.

This version includes a number of major changes including

  • Alexa Client
  • Web Socket Client
  • New Storage Engine
    • BY unifying all I/O, we are able to provide support for a wide variety of storage options including
      • SQL (MySQL, Aurora, Postgres, SQL Server etc )
      • NoSQL (Redis, Mongo)
      • File System
      • Logger
  • Persistent conversations across clients

Upgrading to Version 3.0

The biggest change is the directory structure for all files. This has been designed to support the various storage mechanisms now in place. Typically this means moving all you files from what was called 'config' folder to a more appropriately named 'storage' folder and associated sub folders. For full details of how to convert your bot to v3, see Converting to V3

Program-Y

Program Y is a fully compliant AIML 2.0 chatbot framework written in Python 3. It includes an entire platform for building your own chat bots using Artificial Intelligence Markup Language, or AIML for short.

Program-Y runs most of the time on my personal server, click Program-Y to chat.

About Program-Y

Program Y is fully cross-platform, 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
  • Comprehensive Tutorial and User Guide covering setup, configuration, running, AIML Grammar development and extending the core capabilities

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
    • Facebook
    • Slack
    • Hangouts
    • Telegram
    • Viber
    • LINE
    • Kik

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

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

Artificial Intelligence Markup Language

AIML is an XML language for specifying the contents of a chat robot character. An AIML Interpreter is a program capable of loading and running the bot, and providing the bot’s responses in a chat session with a human user, called the client.

Background and History

In a previous life, I help build a chatbot for an energy company to answer basic customer questions and a carry out a limited number of interactions on their account. I was hugely proud of the work myself and the team did, the bot was incredibly successfully, saving the company £1000's in customer support costs and was also nominated for a number of awards, once only being beaten by the Intel Team who created Stephen Hawkings voice system at the 2015 V3 Awards where it was nominated for Technology Project of the Year

That bot was based on a Python 2.x version of an AIML 1.0 interpreter that I converted to Python 3 and then heavily modified to support a wide range of additional features and capabilities needed as a Virtual Customer Service Agent. Most of which have now been added to AIML 2.0 spec. However no one has yet built a fully functional Python 3.x interpreter, hence this project.

Enjoy and please leave any feedback for me and I'll get back to you.

For a full tutorial on running, using and developing your own AIML Grammars go to Getting Started with YBot

If you are interested in the internals and how Y-Bot is constructed then check out the following page Y-Bot

Getting Help

Clone this wiki locally