-
Notifications
You must be signed in to change notification settings - Fork 135
Home
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
- BY unifying all I/O, we are able to provide support for a wide variety of storage options including
- Persistent conversations across clients
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 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.
NOTE: Version 2.0 will be released in the next few days. The current master has the latest release candidate which is undergoing thorough testing
Version 2.0 brings some important changes to the overall Program-Y platform and ecosystem including
- Thread Safety across all processing
- Multiple Bots per Client, useful to mix AIML and ML processing
- Multiple Brains per Bot, useful to separate grammars, including langauge specific
- Wide variety of clients including
- Console
- Web
- SMS
- XMPP (Google Hangouts)
- Telegram
- Slack
- Viber
- Kik
- Line
- TCP Socket
- REST
- Improved Logging which now includes more info about the client, bot and brain
- Support for AIML 2.x Rich Media
- Support for Emojis
- Natively support Pypi installation
- Asynchronous Scheduling of events, used to carry out time-dependent callbacks, such as "remind me 7:00am to wake up" or "Set a timer for 20 minutes". The bot will then call back to your client asynchronously with the text or parsed grammar
Rich media is an exciting enhancement to AIML proposed by the AIML Foundation which adds a range of new capabilities to the AIML langauge to help in building engaging interfaces. Rich media introduces a number of new template tags including
- button
- card
- carousel
- delay
- image
- link
- list
- location
- reply
- split
- video
Rather than just returning plain text, using these tags allows you to build conversations that including buttons, clickable links, images, videos and more complex UI structures
Along with this work there are some break changes for anyone actively developing their own extensions or clients. The biggest change is that any Python method that used used to take the parameters 'bot, clientid' has been modified and these 2 variables replaced with the object client_context. Which stores conversational state, including the client making the call, the bot used to ask the question, the brain that processed the grammar and parse depth.
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
- Google Hangouts (XMPP)
- SMS
- 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
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.
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
- Email: [email protected]
- Twitter: @servusai
- Facbook: servusai
- Slack: servusai
Email: [email protected] | Twitter: @keiffster | Facebook: keith.sterling | LinkedIn: keithsterling | My Blog
- Home
- Background
- Guiding Principles
- Reporting an Issue
- Installation
- You And Your Bot
- Bots
- Clients
- Configuration
- AIML
- Sentence Splitting
- Natural Langauge Processing
- Normalization
- Spelling
- Sentiment Analysis
- Translation
- Security
- Hot Reload
- Logging
- Out of Band
- Multi Language
- RDF Support
- Rich Media
- Asynchronous Events
- Triggers
- External Services
- Dynamic Sets, Maps & Vars
- Extensions
- Pre & Post Processors
- Custom Nodes
- The Brain Tree
- Utilities
- Building It Yourself
- Creating Your Own Bot
- Contributing
- Performance Testing
- FAQ
- History
- Website