Creating Chatbots With Oracle Digital Assistant
Comparing The Oracle Conversational Platform To Other Environments
Introduction
All chatbot development environments are the same, some just more so than others…
I have built prototypes with most of the commercial and opensource chatbot /NLU products currently available.
And have found that the environments are generally very similar in their approach of tools available to craft a conversational interface.
Looking at what’s available, I am beginning to see chatbot development environments can be segmented into 4 distinct groups.
These groups being:
- Leading Commercial Cloud Offerings
- NLU / NLP Tools
- The Avant-Garde
- Use-the-Cloud-You’re-In
Leading Commercial Cloud Offerings
The leading commercial cloud environments attract customers and users to them purely for their natural processing prowess and presence. Among these I would count IBM Watson Assistant, Microsoft Bot Framework / Composer / LUIS / Virtual Agents, Google Dialog Flow etc.
Established companies gravitate to these environments, at significant cost of course, to meet their NLU / NLP requirements.
They are seen as chatbot tools providers in and of their-self.
Scaling of any enterprise solution will not be an issue and continuous development and augmentation of the tools are a given. Resources abound with technical material, tutorials and more.
NLU /NLP Tools
There are also opensource tools like spaCy, Apache OpenNLP, RASA NLU and others which can be used to to process natural language in your environment. Some organisations are creating their own chatbot framework making use of these tools.
This is the harder route and is more time consuming, but if you have an existing environment, augmenting it with language processing capability, making use of these tools is a viable option.
It is truly astonishing the power of most of these opensource tools. And with the documentation available, it can serve as a no software cost point of departure for a first foray into natural language processing.
The Avant-Garde
Here RASA really finds themselves alone. They follow a very unique path in terms of wanting to deprecate the state machine and hard-coded dialog flows/trees.
Their entities are contextually aware and they follow an approach where entities and intents really merging.
It is said their market-share is currently at 6% (I could not confirm this). However based on their expansion, funding, developer advocacy and events this is a company to watch. And hopefully the bigger players will emulate them. One of their strong points is developer advocacy. RASA has succeeded in creating a loyal developer following.
Use-the-Cloud-You’re-In
I cannot help but feel Amazon Lex with Oracle Digital Assistant (ODA) find themselves in this group. My sense is that someone will not easily opt for ODA if they do not have an existing attachment with Oracle. Especially if the existing attachment is Oracle Cloud or Oracle Mobile Cloud Enterprise.
Another impediment is cost. Free access plays a huge role in developer adoption and the platform gaining that critical mass. We have seen this with IBM being very accessible in terms of their free tier with an abundance of functionality.
Microsoft has gone a long way in more accessible tools, especially with developer environments. RASA, even though a relatively late starter, has invested much in developer advocacy. Google Dialogflow is also popular and often a starting point in companies exploring NLU and NLP.
ODA is not accessible enough and the existing impediments to experimenting and prototyping are not helping.
You will need to create an Oracle Cloud Account. There are two tiers which are suitable for experimentation.
- The one is the always free cloud stack.
- The other is a free cloud trial.
ODA resides on the second, hence you will need to enter your credit card details to access the functionality. Oracle does undertake not to take money off your card, once the trial has ended, you will be prompted.
Having said that, it’s evident that ease of integration has received much attention and the mere fact that entities can be updated via an API call is testament to the fact.
Within ODA, in principle, you are able to build a chatbot which is on par with anything you can build on IBM Cloud, or Microsoft Azure and others. The difference is the absence of trends emerging with other providers.
These trends include:
- The merging of intents and entities
- Contextual entities. Hence entities sans a finite list and which is detected by their context within a user utterance.
- Deprecation of the State Machine. Or at least, towards a more conversational like interface. Oracle uses a framework called OBotML, their propriety implementation of a YAML state management language.
However, if a company’s CRM, financial, customer service system etc. reside on Oracle, it would make perfect sense to go with ODA. Especially if a organisation is already using other AI services.
Getting Started With Oracle Digital Assistant
You will need to create an Oracle Cloud account. There are two tiers which are suitable for experimentation. The one is the always free cloud stack. The other is a free cloud trial.
ODA resides on the second, hence you will need to enter your credit card details to access the functionality. Oracle does undertake not to take money off your card, once the trial has ended, you will be prompted.
Once you have your Oracle Cloud account, you will need to create an Oracle cloud Infrastructure account. The creation of this account is not instantaneous and you will have to wait up to a day for an email confirming your access.
Once you have received your credentials, log in and click on the side menu. Under “Data and AI”, you will see the Digital Assistant option.
Once you see the screen below, you have arrived. And the only thing standing between you and creating a chatbot on Oracle’s platform is the expiration of your trial subscription.
Intents
The approach followed for intents is standard in comparison to the other market leaders. Intents can be defined with a few example utterance. From the very start you can test your intents and get the confidence in detection for each intent.
Something I miss here is being able to select portions of the example utterances and define those as contextual entities. The is the ultimate way of defining entities. Where entities does not have an intrinsic type, or a finite list of values, but are defined by the context they are used in.
Entities
When creating entities there is a list of 6 entity types to choose from. The two types I found interesting are Composite Bag and Dynamic Entities.
Dynamic Entities can be updated programmatically.
This allows for entities to be updated without accessing the graphic console. The model can be changed on the fly.
This is something novel and unique to ODA, as far as I know at least, and very convenient in endeavors of creating a more dynamic model.
A Composite Bag reminds much of Amazon Lex in their slot filling procedure. There are two variants of entity lists. An option to derive an entity from parent entity based on a Following Phrase or Preceding Phrase.
This reminds of composite entities but not as dynamic and fairly rudimentary.
State Management
Oracle uses a framework called OBotML, their propriety implementation of a YAML state management language. This is a very powerful environment to manage the conversation, variables more.
The closest comparison is Amazon Lex, where Lex only supplies the NLU API and Lambda needs to be used to develop serverless functions on to manage variables, context and the general conversation flow.
The is much documentation available on OBotML and integration and scaling will not be a problem.
Part of ODA is a Conversation Designer tool which lets you create a conversation graphically. From here the conversational components are created on the fly. Intents, Entities and the OBotML.
This is a nice tool to become familiar with the environment, but I would not use it for anything more. It would be best to build your conversational experience from the ground up; element by element.
Conclusion
If you already have products and services living in the Oracle cloud. If you are already making use of Oracle Mobile Cloud Enterprise, and their AI products…Then Oracle Digital Assistant would be your technology of choice.
ODA is strong on seamless integration and technical support and resources are good.
Conversational components are also featured and one of the first mediums (channels) Oracle focused on Facebook Messenger.
In a comparison matrix ODA will definitely struggle against most of the other chatbot technologies. It is encouraging to see the steady stream of updates and enhancements which are made every month to ODA.