Oracle Intelligent Bots Platform: First Steps
by Rolando Carrasco

Chatbots have become an important platform for interacting with our users using a well-known tool: chat.

We are not only talking about making this type of platform available in channels like Facebook; what we really want is the automatization of tasks so users can use it with confidence. We want chatbots to become a transactional tool, not just an informative tool.

This article provides a quick view of the Intelligent Bots platform included with Oracle Mobile Cloud Enterprise. The article will review some details about chatbots, and will serve as an introduction to more extensive articles to come.

First of all, we need to understand that chatbots are a cloud-based platform. Oracle—and the rest of the industry—has become cloud-based. Chatbots work perfectly in the Cloud, having interactions with APIs, Facebook, Web Portals, etc.

Having said that, let's start with an overall review. The case we are going to review is based on a lab that I had access to and training Oracle provided to me and the rest of my team.

Figure 1 illustrates the first screen you see after logging into Oracle Mobile Cloud Enterprise.

Figure 1

The screen displays all of the bots that have been created so far on this platform. To create a new bot, click the New Bot button (Figure 2).

Figure 2

Next, we need to introduce some basic information, such as the name of the chat and a brief description. In this particular case, we will create a very simple bot for a financial institution, The bot will provide customers the ability to check bank account statements. Click Create (Figure 3).

Figure 3

The following screen appears (Figure 4):

Figure 4
  • 1. The first option is called Intent. Here, we will record some questions about a certain topic so the chatbot can acquire the information it needs to fulfil the requirement. We will configure more of these later.
  • 2. The second part is to configure Entities that will be used by the Intents. Let’s configure the scenario in which the customer wants to check his/her bank account balance. The Intent could be: I want to know the balance of my checking account. The Entity will be Account. We will configure the Entities in the following section (Figure 5):
Figure 5
  • 3.The third option is Flows. This one will help us establish the interaction in our conversation. We will do this using YAML, a language that allows us to describe our conversation. By default, the following will be created (Figure 6):
Figure 6
  • 4. The fourth option is called Components. This section will allow you to configure the components that will be used in the Flow for specific actions.
  • 5. The fifth option is Settings, which allows us to:
       a. Connect our newly-created bot to Facebook or another channel.
       b. Connect our bot to personalized components like APIs.

The following steps are required to create a bot:

  • 1. Create an Intent. We will call it Balances.
  • 2. Create an Entity named Account Type.
  • 3. Create a Flow.
  • 4. Train the bot.
  • 5. Test the bot.
Creating an Intent

For the purpose of this article we will create the Intents one by one, but the platform also allows you to import from plain text. This helps when you have to load a large number of Intents. Click on the Intent button to create our first Intent. Let’s name it Balances, as shown in Figure 7:

Figure 7

Now we can create different questions or statements that will help the bot understand what the customer needs. We will create the following (Figure 8):

Figure 8

In order to create one, we will write in the text box called “Enter your example utterances”.

Creating an Entity

Let’s create our first Entity, called AccountType.

Figure 9


Below this screen you will be able to configure your Entity. We will configure three types of accounts:

  • 1. Savings
  • 2. Checking
  • 3. Credit

In order to do this we will create the following Configuration by clicking the green + Value button (Figure 10):

Figure 10

The Create Value dialog box appears

Figure 11

It is extremely important to use synonyms. Synonyms allow the bot to create relationships with Entities and Intents without having to create extra Entities. Enter Checking and Check as synonyms, and do the same for Savings and Save (Figure 12).

Figure 12

Finally, create Credit Card with AMEX and VISA as synonyms. The configuration should resemble Figure 13:

Figure 13

Now we have to associate our Intent with the newly created Entity. We will have to go back to the Intents section (blue flag icon) and click the green +Entity button, upper right (Figure 14).

Figure 14

The following screen will appear (Figure 15):

Figure 15

Select AccountType , as indicated in Figure 15. The following appears (Figure 16):

Figure 16

Now we have created our first Entity and associated it with the previously created Intent.

Creating a Conversation Flow

In the version of Oracle Intelligent Bots used for this article, the conversation Flows are created using YAML. In subsequent versions a much more friendly and graphic editor will be available.

Click on the Flows button. You can see that there is already a default YAML-created Flow (Figure 17):

Figure 17

For the purposes of this article, we will use a pre-existing Flow that was provided as part of an Oracle lab class. You can copy and paste it from here. (Be sure to first copy it to a text file so you don’t carry any formatting.)

  platformVersion: "1.0"
main: true
name: "MyFirstBotFlow"
     accountType: "AccountType"
     iResult: "nlpresult"
    component: "System.Intent"
      variable: "iResult"
      confidence_threshold: 0.4
        Balances: "startBalances"
        Intent.None: "unresolved"
    component: "System.SetVariable"
      variable: "accountType"
      value: "${iResult.value.entityMatches['AccounType'][0]}"
    transitions: {}
    component: "System.List"
      options: "${accountType.type.enumValues}"
      prompt: "For which account do you want your balance?"
      variable: "accountType"
    transitions: {}
    component: "System.Output"
       text: "Balance for ${accountType.value} is $300"
       return: "printBalance"
    component: "System.Output"
      text: "Unable to resolve intent!"
      return: "unresolved"

(In subsequent articles we will create our own flow using YAML.)

Now let’s describe some of the variables included in the YAML.

The iResult variable will contain information and values generated by the natural language process engine. At the same time, it helps to determine the intents that trigger the execution of the Flow. This variable takes its value from System.Intent, which represents engine instance and the algorithm.

The confidenceThreshold variable is very important since it defines the precision value that the engine will use in order to determine what is going to be executed once the Intent has been evaluated. The engine and the algorithm will evaluate each user Intent and assign each a score; the score that is higher than the confidenceThreshold will executed. Increasing or decreasing this value will impact the accuracy with which the bot can resolve the input from the user.

To validate this, click on the Validate button in the upper right section of the Flow screen. You should see a confirmation message (Figure 18):

Figure 18

The YAML that was copied and pasted can be interpreted as follows:

Code contains the entity of AccountType that we previously created as an entity variable. If we include the AccountType in the startBalance state, conversation will continue in the askBalanceAccountType section and then in the printBalances section that displays the balance. If AccountType is not specified, then balancesAccountType will be executed and will ask which type of account you want to see the balance of, using the values configured on the Entity. Once the type of account is selected, it will show the balance.

We will review this once we test the bot.

Before we do that we need to click the Train button (upper right) so the bot can be trained with the Intents, Entities and Flow. Once we click Train we are ready to test the bot.

Testing My First Interaction with a Bot

Click the Play button, located in the upper right part of the screen (Figure 19)

Figure 19

The following screen will appear on the right (Figure 20):

Figure 20

Type “What’s my balance” into the text box, then click Send.

You will see the following (Figure 21):

Figure 21

Note that the reply includes the type of accounts configured in the entity. Click on Checking (Figure 22):

Figure 22

The bot will respond with the balance configured in the Flow (Figure 23):

Figure 23

Finally, click on the Intent tab in this same test interface (Figure 24).

Figure 24

Type in “What is the balance on my Amex?” then click Send (Figure 25):

Figure 25

You can see how the bot associated Amex with the AccountType (Figure 26). This is possible because of the synonyms we configured initially.

Figure 26

The Oracle Intelligent Bots platform has great capability to connect with other backend services and APIs. As mentioned, bots feed predominantly from APIs. This article presents only a quick view of the platform. Upcoming articles will demonstrate how to:

  • Create a new chatbot
  • Write your own YAML
  • Perform an API-chatbot integration through the components

Stay tuned!

About the Author
Oracle ACE Rolando Carrasco is a SOA Architect and co-founder of the S and P Solutions team in Mexico and Latin America. He's been working with Oracle SOA since 2003/2004, and his professional career has been focused on the integration space. Rolando is also co-director of the Oracle Users Group in Mexico (ORAMEX), and co-founder of the SOA MythBusters blog.
Join the Conversation
Experience Oracle Cloud—Get US$300 in free cloud credits.