How to use Artificial Intelligence Markup Language (AIML) In Chatbot Development with Python?

Posted by ongraph · September 10, 2017 · 6 Min read

Table of contents



Intelligent digital assistants or chatbot is beginning of a new tech era. Chatbots is new love of businesses and developers. Chatbots are new online digital assistants and offers numerous services via chatting.

There are several software vendors offering tools and end-to-end guidance to quickly get a conversational agent up and running for your business website.

If in case, you have loftier ambitions and more time, you can develop an intelligent assistance agent from the ground up. There is no dearth of chatbot scripting language frameworks to pick and code for a simple conversational chatbot development to a more complex virtual customer support assistant.

Why Do People Choose Python?

Older than two decades, python’s implementation started in 1989. Developers enjoy the variety and quality of python’s features. Python has several inbuilt libraries for web connections like UrlLib2 /Requests which makes many things pretty easy.

Python has a clean grammar and syntax and is natural and fluent. Additionally, the language brings plenty of readymade, official as well as unofficial APIs available over GitHub to turbo boost your development. Chatbot Developers can implement all modern approach and imagination in python as the language has matured over the time. Python is also well tested language and provides highly customizable modules.

Other Significant Features Of Python Are As Following:


  • The Holistic Language Design
  • Thought Out Syntax
  • Language Interoperability
  • Balance Of High-Level And Low-Level Programming
  • Documentation Generation System
  • Modular Programming
  • Correct Data Structures
  • Numerous Libraries
  • Testing Frameworks


Introduction to AIML

AIML (Artificial Intelligence Markup Language) is the creation of Dr. Richard Wallace and is offered as an open source chatbot scripting framework by ALICE AI Foundation. AIML is a just simple XML or similar to HTML, in that it consists standard and extensible tags that you use to mark up text so that it can be understood by an AIML interpreter.

Artificial Intelligence is essential to have a human like chat with a bot through a content interface. Being like XML, AIML characterizes rules for coordinating patterns and deciding responses.

Create Standard Startup File in Python and Load AIML b

For loading AIML files, the main entry point is creating a standard startup file called std-startup.xml. In order to do so, you need to develop a basic record that matches one pattern and takes one action.

What you have to do is to match the pattern load AIML b, and let your AIML brain load in response. It allows you to create the basic_chat.aiml file in a minute.

Write Your Own AIML File

You have developed AIML file that handles one pattern, load aiml b. At this stage, if you enter the command to the bot, it will attempt to load basic_chat.aiml. However, it wouldn’t work unless you actually create it. That’s where you can put inside basic_chat.aiml. This allows you to match two basic patterns and responses.

Use Existing AIML Files

You may like to write your own AIML files, but it takes you a whole lot of time. It might require around 10,000 patterns to begin to feel realistic. However, the ALICE foundation makes available a number of AIML files for free. At ALICE Bot website, you can browse AIML files.

There was one floating around before called std-65-percent.xml that contained the most common 65% of phrases. There is additionally one that gives you a chance to play BlackJack with the bot.

Implement Python

Up to this point, everything has been AIML XML documents. All of such things are vital and will make up the mind of the bot, yet it’s simply data at this moment. The bot needs to wake up. You could utilize any language to execute the AIML specifications; however, some developers have effectively done that with Python.

Install the aiml package first with pip.

Note:- the aiml package only works with Python 2. Py3kAiml on GitHub is a Python 3 alternative.





Simplest Python Program

This is the least complex program, we can begin with. It makes the aiml object, capable to learn the startup file, and after that loads the rest of the aiml files. From that point onward, it is prepared to chat, and you can enter a boundless texts that will keep on prompting the client for a message. You should enter an example the bot perceives.  The patterns perceived rely upon what AIML records you loaded.

You can make the startup document as a different element so you can include more aiml files to the bot later without modifying any of the project’s source code. You can simply add more records to learn in the startup xml document.

Reloading AIML While Running

While the bot is running, you can send the load message to it and it will reload the AIML files. Remember that in the event that you are using the brain method, reloading it on fly won’t save the new changes to the brain. You will either need to erase the brain file so it remakes on the following startup, or you should change the code with the goal so that it saves the brain eventually subsequent to reloading.

Bellow, look for creating Python commands for the bot to do that.

Adding Python Commands

In the event that you need to give your bot some extraordinary commands that run Python functions, at that point you should catch the info message to the bot and process it before sending it to kernel.respond().  You can get your contribution from anyplace however. Maybe a TCP attachment, or a voice-to-text source. Process the message before it experiences AIML. You may need to maintain a strategic distance from AIML processing on certain messages.

Sessions and Predicates

By indicating a session, the AIML can tailor distinctive discussions with various people. For instance, on the off chance that one individual tells the bot their name is Alice, and the other individual tells the bot their name is Bob, the bot can differentiate people. To determine which session you are utilizing you pass it as a second parameter to react().

This is useful for having personalized discussions with every customer. You should create your own session Id somehow and track them. Note that saving the brain files does not save all the session values.

We hope that we have been able to add value to your understanding of chatbot development with AIML and Python. Please share your thoughts, comments and tips.

Share this Article