600 likes | 848 Views
Making First Contact: Building Chatbots with Oracle Digital Assistant Technical Primer. Grant Ronald Director of Product Management Oracle Digital Assistant Development April, 2019 @gwronald. Why Digital Assistant?. Digital Assistant. Until now, chatbots solved simple business problems
E N D
Making First Contact: Building Chatbots with Oracle Digital Assistant Technical Primer Grant Ronald Director of Product Management Oracle Digital Assistant Development April, 2019 @gwronald Confidential – Oracle Internal/Restricted/Highly Restricted
Why Digital Assistant? Confidential – Oracle Internal/Restricted/Highly Restricted
Digital Assistant • Until now, chatbots solved simple business problems • Customer service automation • Automation of structured processes • Self-service • Digital assistants are user oriented • Assist users with various related or unrelated tasks • Conversations are context aware • Assistants learn about the user • Digital assistant is the future of chatbots
A digital assistant is a computer program that uses artificial intelligence and machine learning to combine independent chatbots into a single conversational interface that assists real users throughout their day Image courtesy of pixabay.com
Oracle Digital Assistant Popular Conversational Channels Digital Assistant Any Application ERP Approvals Manager HCM Talent Management Global HR HCM Skills Absence Manager Submit Expenses Expense Approval ERP Skills Pipeline Opps CX Selected Skills Accounts Sales Brief CX Skills Location Services 3rd Party 3rd Party Skills
Oracle Digital Assistant is Oracle's 2nd generation intelligent bot platform for customers to build composite chatbot solutions from independent skills Image courtesy of pixabay.com
Oracle Digital Assistant core modules • Individual chatbots • Reusable • Conversational AI and ML • Work with any messenger • "Master bot" • Invokes skills • Performs smart routing • Disambiguates bot request if needed • Messenger connectivity • Webhook • Native Channels • iOS, Android • Web • SMS • Facebook • WeChat • etc. • Bot store • Like App Store • Contains bots from • Oracle SaaS
Oracle Digital Assistant Oracle Digital Assistant ERP Web Channels Digital Assistant Intelligent Routing HCM Skill Mobile Intent CX Q&A Messengers Intent Q&A Voice (e.g. Alexa) 3rd Party
How do you build skills? Confidential – Oracle Internal/Restricted/Highly Restricted
Skills Intent resolution and entity extraction • Each skill usually relates to a business domain • Pizza, Finance, HR, room booking • Intents implement uses cases within skill • Order pizza, cancel pizza, track order, show menu • User input interpreted by a trained model • Intents are resolved and mapped to a dialog • Entities are variable elements of an intent • Pizza size, topping, delivery address
DEMO: How do you build skills? Confidential – Oracle Internal/Restricted/Highly Restricted
In the real world, people don’t stick to the happy path Image courtesy of pixabay.com
The challenge of “real world” entities • Many values required for an intent • Out of order information • Validation • Allow multiple values or not? • Error handling for each entity value • Different prompts should the user error • Slot entity if specifically said, otherwise, default it
How do you deal with real world entity slotting? Confidential – Oracle Internal/Restricted/Highly Restricted
Ordering a pizza with composite bag entity Composite Bag: PizzaOrder variables: order: "PizzaOrder" iResult: "nlpresult" states: intent: component: "System.Intent" properties: variable: "iResult" orderState: component: "System.ResolveEntities" properties: variable: "order" nlpResultVariable: "iResult" […] Configure Entity: PizzaType "A cheesepizza please." Entity: PizzaSize Entity: PizzaCrust Check for Resolved Entities PizzaType PizzaSize What size of pizza do You want? PizzaCrust And what kind of crust?
DEMO: How do you deal with real world entity slotting? Confidential – Oracle Internal/Restricted/Highly Restricted
Successful chatbots need to do more than just having a conversation Image courtesy of pixabay.com
Skills Q&A module • Sometimes a question is what it is; a question • FAQ is a top use case for digital assistant • Natural conversation is a mix of statements and questions • Oracle skills allow you to integrate Q&A in a bot conversation • More engaging than a pure Q&A bot • Q&A imported from CSV file
Skills Structured data input • Conversation design is a challenge • Heavy data entry • Users change their mind • Users get stuck • Structured data input forms • Execute in a web view • Shorten conversations • Provide sophisticated UI controls • Instant Apps or Webview component
Skills Human agent integration Wants to speak to An agent • Understanding natural language is difficult for a machine • Humans are unpredictable • Change their mind in mid of a conversation • Don't follow instructions • Chatbots often used in first level support • Answer frequently asked questions • Assist with low-tech engagements • Users may get stuck 1 User and agent interact on the bot channel 3 Bot connects user to agent 2
Skills Multi language support • One bot that supports multiple languages • Detect user language • Understand user language • Display messages in user language • Support in skills • Build bot in English • Uses Translation service for other languages • Resource bundles allow you to control language and the bot's voice
Skills Backend integration • Remote services integration through custom components • Component based approach • Integrates with data and business services • "Write Once Use Anywhere" • Custom components • Write direct response messages • Save data in variables • Influences conversation flow
Insights: keeping our chatbot journey on the right path Completed v/s abandoned conversations Top channels Top intents completed abandoned Bot performance
So how do we brings skills to a digital assistant? Confidential – Oracle Internal/Restricted/Highly Restricted
Digital Assistant Adding skills • Published skills are displayed in skill catalog • Configured skills indicate when a new version is available • Update to new version keeps digital assistant level configurations
Skill routing example Digital Assistant • Digital Assistant routes requests to the correct skill bots • Disambiguates if need be • Implicit invocation • Uses intents and utterances of skills • Explicit invocation • Named reference for skills is used • 'Ask AMCE bank, what is my balance?' • Configurable “I want A Pizza” “What’s My Balance?” What’s your return policy What’s your return policy What’s your return policy What’s your return policy Clothing Pizza Banking 30-days to return. Click here to learn more. 30-days to return. Click here to learn more. 30-days to return. Click here to learn more. 30-days to return. Click here to learn more. Nearest location? Nearest location? Nearest location? Nearest location? “Do I have enough money”
Digital Assistant Smart dialog • System dialogs • Helps to disambiguate user requests • Displays the name of skill candidates • User selects skill to go with • Handles non-sequitur requests • If a user message does not match an intent in the current skill • If user provided value is invalid for a state • Suspends and resumes current flow
DEMO: So how do we brings skills to a digital assistant? Confidential – Oracle Internal/Restricted/Highly Restricted
Hooking up channels? Confidential – Oracle Internal/Restricted/Highly Restricted
About channels • Declaratively created in Oracle Digital Assistant • "Native" channel support provides configuration for specific messengers • Ensures message payloads are defined as needed by channel • Provides and handles message server interactions • Webhook channel • Allows messengers with no native channel support to interact with ODA or skill • Message payload is MessageModel format • Custom message server needed to dispatch between messenger and bot
DEMO: Hooking up channels? Confidential – Oracle Internal/Restricted/Highly Restricted
Where to find out more • cloud.oracle.com/digital-assistant • blogs.oracle.com/mobile * Tech Exchange
Hands-on Lab:From Zero to Chatbot to Digital Assistant in Under Two Hours - BYOL A Hands-on Lab to help you get started with Oracle Digital Assistant Tuesday, April 9th, 4:30 PM - 6:30 PMFunkhaus Berlin Hands-on Lab Room