Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building your own chatbots with API.AI and Goog...

Building your own chatbots with API.AI and Google Cloud Functions

In this session, we’ll learn more about the concepts behind chatbots, the progress that technology has made on machine-learning, and more concretely, how you’ll be able to create & design your own chatbots using Google’s API.AI agent platform and Cloud Functions for implementing the business logic required by your bot.

Guillaume Laforge

June 03, 2017
Tweet

More Decks by Guillaume Laforge

Other Decks in Technology

Transcript

  1. The concept Ok Google, let me talk to Cloud Next!

    Hi, I’ll be your guide to Cloud Next, I can help you explore topics or pick a session to attend. What would you like to know? When is the next Machine Learning talk? Sure! Here’s Cloud Next. Enter Earcon The next session about Machine Learning is “A bot to schedule the agenda of your conference” in room 220 on Thursday at 1:55pm. Is there another topic you’re interested in? Exit Earcon . . .
  2. Modern chatbot concepts I want to eat some bananas How

    many of them? INTENT → “eat-something” ENTITY → “banana”
  3. Modern chatbot concepts How many calories are there? There are

    89 calories in a banana A natural conversation that learns from past exchanges CONTEXT → remember the details of the conversation
  4. @glaforge Your chatbot workflow What to build How to build

    it How to deliver it Design Develop Deploy
  5. @glaforge Create your persona 1. List out your core brand

    attributes What words define the experience you’re shooting for? 2. Correlate to attributes that will define your functional design principles How will those manifest in the design? 3. Define some attributes that you’d want to infuse into the voice, style of writing, and personality of the dialog What personality traits match your strategy? 4. Style guide & “bio sketch” Practical application and maintain consistency for longevity of your experience knowledgeable helpful encouraging data rich recommending proactive geeky eager motivating
  6. @glaforge Example style guide INSTEAD OF... IS MORE LIKELY TO

    SAY... I found Up for that? Does that sound good? Maybe later While you’re at it... what’s going on I did not receive a response if you feel you have reached this message in error please select from one of the following X options to help us serve you better for questions related to... you have entered that was an invalid… we require that you... please try again for faster answers we’re sorry, we are unable to… I did not understand MIGHT SAY THINGS LIKE... so you can keep up to date on, I’ll look it up right now Sure, that’s coming up Right around the corner from… That session’s full, but… You might like lets need can’t because more about help right now one sec stay allows require unable to due to additional regarding assist currently please hold remain WOULD NEVER SAY... @glaforge
  7. @glaforge Resources — sample dialogs & checklist 1. Canonical “Happy

    path” 2. First time experience 3. Tapered experience (return user) 4. Repair 5. Personality questions g.co/dev/ActionsChecklist
  8. @glaforge Life of a conversation “Ok Google, talk to Cloud

    Next” Invoke “Cloud Next” action “Hi! Welcome to Cloud Next...” Speech to Text “The next Machine Learning Session is…” “I want to hear more about Machine Learning” Text to Speech “Sure, here’s Cloux Next” Speech to Text, NLP, Knowledge Graph, ML Ranking, User Profile Text to Speech
  9. @glaforge A “serverless platform for building event-based microservices”. Function-as-a-service approach

    Great fit for event-oriented architectures, supporting 3 kind of triggers: • Cloud Storage updates • Cloud Pub/Sub messages • Direct HTTP calls Cloud Functions
  10. @glaforge Cloud Functions Completely serverless & fully managed service ⇒

    don’t worry about the ops! Automatic scaling and super-fast ⇒ grows with the success of your project ⇒ cost-effective Open and familiar ⇒ JavaScript / Node.js
  11. @glaforge server.js NPM dependencies • actions-on-google • node-fetch Export a

    function with the ApiAiAssistant handling the requests const Assistant = require('actions-on-google').ApiAiAssistant; const fetch = require('node-fetch'); function listTopicsIntent(assistant) { fetch('https://cloudnext.withgoogle.com/api/v1/categories') .then(response => response.text()) .then(text => { let data = JSON.parse(text.split('\n')[1]); let topics = data.categories .filter(cat => cat.name === "Topics"); .children.map(topic => topic.name).join(', ')); assistant.ask(`The topics covered are: ${topics}. What do you want to learn?'`); }); } exports.agent = function(request, response) { var assistant = new Assistant({ request, response }); assistant.handleRequest(listTopicsIntent); };
  12. @glaforge Fast feedback loop: Ngrok + Functions emulator Google Cloud

    Functions emulator Ngrok secure internet tunnels to localhost LIVE RELOADING DEBUG IN CHROME
  13. @glaforge Deploying Cloud Functions In production gcloud beta functions deploy

    agent \ --trigger-http \ --stage-bucket gs://gcp-next-2017-agent/ Locally functions deploy agent --trigger-http
  14. @glaforge Review & approval Web-based portal • Triggering Information •

    Merchandising and information Approvals • Automatic and manual policy checks • Turn around in about 1 week
  15. @glaforge Discovery Discovery patterns • Guaranteed invocation ◦ “Talk to

    Cloud Next” • Discovery Patterns ◦ “What’s happening at Next?” Google Home app
  16. @glaforge Integrations Actions on Google • Google Home, Pixel… •

    and more to come External integrations • Slack, Facebook Messenger, • Twitter, Twilio, Skype, Tropo, • Telegram, Kik, LINE, Cisco Spark, • Alexa, Cortana
  17. @glaforge Key takeaways 1. You can extend the Google Assistant

    with your custom action 2. Talking with humans is challenging, but API.AI makes it approachable 3. GCP offers a powerful platform for hosting business logic