Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

リマインくんを支える技術

1,215 views

Published on

LINE DEVELOPER DAY 2017 C-10

Published in: Technology
  • Be the first to comment

  • Be the first to like this

リマインくんを支える技術

  1. 1. リマインくんを支える技術 Akira Iwaya, Dev-3 Center
  2. 2. - About Remind-kun - To build beloved bot - Normalize date time - Sinatra → Spring Agenda
  3. 3. 273,027 Friends 3,136,056 Reminders 440k [req/day] at top Stats Bot with greatest # of friends by individual developer
  4. 4. Chat bot is more than just CUI To build beloved bot Never "Read through" Convenient + α
  5. 5. Chat bot is more than just CUI To build beloved bot Never "Read through" Convenient + α
  6. 6. https://twitter.com/mitsuecchaaan/status/889677272256438272 https://twitter.com/shouta_k0428/status/ 891948946435620864 https://twitter.com/nontroppo_life/status/888386065240793089 https://twitter.com/incom156/status/912309763999858688 https://twitter.com/atbsxmimi/status/893079917625094144
  7. 7. LINE interface makes user think a friend is over the screen Chat bot is more than just CUI All inputs are very friendly Users wanna talk, even bot responds random strings
  8. 8. "Hand made" AI
  9. 9. Chat bot is more than just CUI To build beloved bot Never "Read through" Convenient + α
  10. 10. Just return 200 OK ASAP Never "Read through" Ignored user has no idea what to send next Always supply "recover spell"
  11. 11. Chat bot is more than just CUI To build beloved bot Never "Read through" Convenient + α
  12. 12. Reminder apps have 10x features Convenient + α But friendly so can reach more people Make bots that takes advantages of bots
  13. 13. Normalize Date Time How to get YYYY-MM-DDThh:mm:ss from Japanese? 2017/9/28 5分後 あさっての15時 来週の金曜日の14時 2017-9-28T09:00:00 2017-9-30T15:00:00 2017-9-28T15:25:00 2017-10-06T14:00:00
  14. 14. Architecture Overview Normalize Date Time Koyomi - DateTime Parser with ANTLR4 Miscellaneous
  15. 15. Architecture Overview Normalize Date Time Koyomi - DateTime Parser with ANTLR4 Miscellaneous
  16. 16. Architecture Overview LINE Server App Server Sinatra DB MySQL Redis JobQueue Sidekiq Koyomi date time parser Spring
  17. 17. Architecture Overview Normalize Date Time Koyomi - DateTime Parser with ANTLR4 Miscellaneous
  18. 18. Architecture Overview Normalize Date Time Koyomi - DateTime Parser with ANTLR4 Miscellaneous
  19. 19. Local API Server (Spring) Koyomi(暦) - DateTime Parser with ANTLR4 Define lexer and parser to generate codes by ANTLR4 Calculate DateTime by Walking Tree
  20. 20. Motivation Sinatra → Spring New Architecture Monitoring with Prometheus + Grafana
  21. 21. Motivation Sinatra → Spring New Architecture Monitoring with Prometheus + Grafana
  22. 22. Unable to add features to gigantic .rb 😱 Motivation Wanna write SQL Wanna use scheduler for repeated reminders
  23. 23. Motivation Sinatra → Spring New Architecture Monitoring with Prometheus + Grafana
  24. 24. New Architecture Overview LINE Server App Server Spring DB MySQL RabbitMQ Koyomi MyBatis Quartz
  25. 25. Motivation Sinatra → Spring New Architecture Monitoring with Prometheus + Grafana
  26. 26. Node Exporter Monitoring with Prometheus + Grafana MySQL Exporter Rabbit MQ Exporter Custom Exporter
  27. 27. - "Friendly" is key to popular bot - ANTLR is good for creating bots - No AI required - New architecture for sustainable bot Summary
  28. 28. Thank you

×