$30 off During Our Annual Pro Sale. View Details »

We Make Bots. For Real

We Make Bots. For Real

More Decks by Андрей Листочкин (Andrey Listochkin)

Other Decks in Programming

Transcript

  1. View Slide

  2. @listochkin

    View Slide

  3. <3 Ruby

    View Slide

  4. No Ruby today

    View Slide

  5. View Slide

  6. Rust
    Favorite language
    Ruby Extensions
    WASM

    View Slide

  7. RustFest
    Workshops
    Intro
    Advanced
    Adoption

    View Slide

  8. Mozilla
    Travis CI
    Samsung
    Chef
    CloudFlare
    Evo

    View Slide

  9. Steve Klabnik
    lislis
    Ingvar Stepanyan
    Paul Colomiets

    View Slide

  10. Rust is for Rubyists

    View Slide

  11. http://bit.ly/rustfest2017ruby
    50% off

    View Slide

  12. I’ll talk about my work

    View Slide

  13. View Slide

  14. Bot building system

    View Slide

  15. View Slide

  16. View Slide

  17. Conceived about
    6 years ago

    View Slide

  18. We’ve been building bots
    before it was cool

    View Slide

  19. Bot

    View Slide

  20. IRC
    WoW bots
    Web Scrapers

    View Slide

  21. Chatbots

    View Slide

  22. Conversational
    Commerce

    View Slide

  23. A bot pretends to be
    a human

    View Slide

  24. Makes stuff happen

    View Slide

  25. Emphasis
    on “Human” aspect

    View Slide

  26. Wit.ai
    API.ai
    Motion.ai
    Microsoft Bot Framework
    Init.ai
    .ai

    View Slide

  27. Can you

    to
    instead?

    View Slide

  28. What to do when
    there’s no match?

    View Slide

  29. Guess
    Bail out

    View Slide

  30. AI + Human

    View Slide

  31. Facebook M
    70% required human

    View Slide

  32. Leaky abstraction

    View Slide

  33. Bots are Dead
    End of story

    View Slide

  34. “Human”-like
    is a red herring

    View Slide

  35. How vs What

    View Slide

  36. Goal
    Scenario
    Guidance

    View Slide

  37. Humanize later

    View Slide

  38. Scenario

    View Slide

  39. Workflow

    View Slide

  40. Do X
    Do Y
    Do Z

    View Slide

  41. Customer case:
    PeopleReady

    View Slide

  42. Workforce matching

    View Slide

  43. “Uber for Workers”

    View Slide

  44. I’m a construction worker
    I’m free next Friday

    View Slide

  45. I need 5 extra construction
    workers on site next Friday

    View Slide

  46. Phone Decision Tree

    View Slide

  47. “If you need X press 1”

    View Slide

  48. IVR
    “Interactive Voice
    Response”

    View Slide

  49. Step 1: Static Tree

    View Slide

  50. Step 2-∞:
    Refinements
    Shortcuts
    A/B tests

    View Slide

  51. Identify a person/role
    Reduce tree

    View Slide

  52. Known pending request:
    top-level notification

    View Slide

  53. Global shortcuts

    View Slide

  54. Keywords, numbers, etc.

    View Slide

  55. Bot-to-Bot
    IVR-to-IVR

    View Slide

  56. Pass context

    View Slide

  57. Session storage
    HTTP/SIP headers
    Forward DTMFs

    View Slide

  58. Dumb
    Boring

    View Slide

  59. Efficient
    Predictable
    Less frustrating

    View Slide

  60. View Slide

  61. Workflow Builder
    Execution Services
    Operator Apps
    Reporting

    View Slide

  62. Many competitors
    Not a winner-takes-all

    View Slide

  63. Lessons Learned

    View Slide

  64. 1. Providers

    View Slide

  65. Slack, Messenger,
    Telegram, Skype, Email,
    sms, HipChat, WeChat,
    LINE, etc

    View Slide

  66. The more the better?

    View Slide

  67. SMS
    Phone
    Email

    View Slide

  68. No middle man apps
    Brand <=> Phone

    View Slide

  69. 2. Execution model

    View Slide

  70. State Machine

    View Slide

  71. State Machine as Data

    View Slide

  72. Flow Tree => Data Structure
    Executor

    View Slide

  73. State Machine as Code

    View Slide

  74. Flow Tree => Data => Code

    View Slide

  75. Separate Infrastructure
    Separate Deploys
    Separate Load

    View Slide

  76. AWS Lambda

    View Slide

  77. 3. Steps are the key

    View Slide

  78. if … else
    Choice
    10-15

    View Slide

  79. Smart Steps
    100s

    View Slide

  80. Phone Transfer

    View Slide

  81. Transfer to X
    Backup number?
    Voicemail?
    Transcode?

    View Slide

  82. Feature discovery

    View Slide

  83. Higher quality Bots
    by default

    View Slide

  84. Programmable steps

    View Slide

  85. Flow => Step

    View Slide

  86. Step = Logic + UI
    both programmable

    View Slide

  87. Custom JS Step

    View Slide

  88. 4. Service Flows

    View Slide

  89. Pick up the phone
    Identify a User
    Voice Choice

    View Slide

  90. Number Provisioning
    API Adapter
    Reporting Events
    Hide Secrets

    View Slide

  91. Service flows
    Global Events with ACL

    View Slide

  92. 5. Dogfooding

    View Slide

  93. Everything is a bot

    View Slide

  94. Admin tools
    Monitoring
    Reporting
    Billing

    View Slide

  95. 6. UI and Reporting Sell
    Platform retains

    View Slide

  96. UI!
    So many capabilities!

    View Slide

  97. “Can you set it up for us?”

    View Slide

  98. Typical Customer:
    sets thing up once
    receives reports

    View Slide

  99. 7. Reporting!

    View Slide

  100. SQL Server
    OLAP
    Direct access

    View Slide

  101. Let customers
    play with the data

    View Slide

  102. 8. AWS Lambda

    View Slide

  103. async (req, context) => { ... }

    View Slide

  104. Node 4.3 (6!)
    Python
    Java

    View Slide

  105. Use Large

    View Slide

  106. 1 request = 1 new process

    View Slide

  107. Dynamo & Redis :)
    Mongo, SQL :(

    View Slide

  108. Dynamo is amazing!

    View Slide

  109. 9. Voice

    View Slide

  110. Voice is inherently hard!

    View Slide

  111. Twilio
    Best API and DevTools
    Still hard :(

    View Slide

  112. Larger customers
    need cheaper voice

    View Slide

  113. TwiML
    Twilio SIP + Custom Voice
    Direct SIP-to-SIP

    View Slide

  114. SIP + RTP

    View Slide

  115. SIP
    Commands & Events
    Bi-directional

    View Slide

  116. RTP - audio

    View Slide

  117. Often Arcane
    practices

    View Slide

  118. Huge Risk

    View Slide

  119. Opens doors

    View Slide

  120. 10. Small things
    Big Impact

    View Slide

  121. Haiti Earthquake
    SMS Fundraiser

    View Slide

  122. Suicide Prevention Hotline

    View Slide

  123. Washington DC
    city bot

    View Slide

  124. Roadside assistance
    Match-making
    Marketing
    Customer support
    Sales

    View Slide

  125. OneReach

    View Slide

  126. 29-30 RustFest
    http://bit.ly/rustfest2017ruby
    50% off

    View Slide

  127. 29-30 RustFest
    http://bit.ly/rustfest2017ruby
    50% off
    2 free tickets today

    View Slide