SlideShare a Scribd company logo
Chatbot
The developer’s waterboy
We experiment, we move fast,
we make it happen
At Supercharge we build high-impact mobile products making life easier for millions of users. Creating
stunning experiences can only happen if you stretch yourself. To supercharge means to go that extra
mile.
3
4
5
Chatbot?
Supercharge 6
Predefined ruleset
Limited functionallity
Low resource requirements
Rule based
Understands, analyzes conversation
Able to learn
High resource requirements
AI based
Chatbot?
Supercharge 7
Predefined ruleset
Limited functionallity
Low resource requirements
Rule based
Megérti, elemzi a beszélgetést
Képes a tanulásra
Hatalmas erőforrás igény
AI alapú
8
ReportQuick Status Task automation
Hello!
Could you give me...
10
11
12
13
14
15
16
Build your own chatbot!
17
Limbo
https://github.com/llimllib/limbo
18
19
"""!gradle <parameter> returns search results from mavencentral in gradle format"""
import re
import requests
import json
def gradleplease(q):
url = "http://gradleplease.appspot.com/search?q={0}".format(q)
rawResponse = requests.get(url).text
data = str(rawResponse[15:-1])
resp= json.loads(data)
docs = resp.get("response").get("docs")
result = '```'
for x in docs:
result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n'
result += '```'
return result
def on_message(msg, server):
text = msg.get("text", "")
match = re.findall(r"!gradle (.*)", text)
if not match:
return
return gradleplease(match[0])
20
"""!gradle <parameter> returns search results from mavencentral in gradle format"""
import re
import requests
import json
def gradleplease(q):
url = "http://gradleplease.appspot.com/search?q={0}".format(q)
rawResponse = requests.get(url).text
data = str(rawResponse[15:-1])
resp= json.loads(data)
docs = resp.get("response").get("docs")
result = '```'
for x in docs:
result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n'
result += '```'
return result
def on_message(msg, server):
text = msg.get("text", "")
match = re.findall(r"!gradle (.*)", text)
if not match:
return
return gradleplease(match[0])
21
"""!gradle <parameter> returns search results from mavencentral in gradle format"""
import re
import requests
import json
def gradleplease(q):
url = "http://gradleplease.appspot.com/search?q={0}".format(q)
rawResponse = requests.get(url).text
data = str(rawResponse[15:-1])
resp= json.loads(data)
docs = resp.get("response").get("docs")
result = '```'
for x in docs:
result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n'
result += '```'
return result
def on_message(msg, server):
text = msg.get("text", "")
match = re.findall(r"!gradle (.*)", text)
if not match:
return
return gradleplease(match[0])
22
"""!gradle <parameter> returns search results from mavencentral in gradle format"""
import re
import requests
import json
def gradleplease(q):
url = "http://gradleplease.appspot.com/search?q={0}".format(q)
rawResponse = requests.get(url).text
data = str(rawResponse[15:-1])
resp= json.loads(data)
docs = resp.get("response").get("docs")
result = '```'
for x in docs:
result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n'
result += '```'
return result
def on_message(msg, server):
text = msg.get("text", "")
match = re.findall(r"!gradle (.*)", text)
if not match:
return
return gradleplease(match[0])
23
"""!gradle <parameter> returns search results from mavencentral in gradle format"""
import re
import requests
import json
def gradleplease(q):
url = "http://gradleplease.appspot.com/search?q={0}".format(q)
rawResponse = requests.get(url).text
data = str(rawResponse[15:-1])
resp= json.loads(data)
docs = resp.get("response").get("docs")
result = '```'
for x in docs:
result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n'
result += '```'
return result
def on_message(msg, server):
text = msg.get("text", "")
match = re.findall(r"!gradle (.*)", text)
if not match:
return
return gradleplease(match[0])
24
Reaching Jenkins
‣ Parameterized Build
‣ Pass data by url parameters
Supercharge 25
Reaching Jenkins
‣ Parameterized Build
‣ Pass data by url parameters
‣ Build Token Root Plugin
Supercharge 26
Why chatbots?
‣ Teamwork accelerates
‣ Cost reduction with automation
‣ Easy maintenance
+1 suggestion:
It’s recommended to organize the bots in separate channels, otherwise the
channel’s communication will be verbose
Supercharge 27
Thank you!
We are hiring!
Richard Radics
Supercharge
Lead Android Developer
richard.radics@supercharge.io // www.supercharge.io
Chatbot - The developer's waterboy

More Related Content

What's hot

Learning django step 1
Learning django step 1Learning django step 1
Learning django step 1
永昇 陳
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12
Stephan Hochdörfer
 
SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3
SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3
SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3
Vasilij Nevlev
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
WSO2
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
Ganga Ram
 
* DJANGO - The Python Framework - Low Kian Seong, Developer
    * DJANGO - The Python Framework - Low Kian Seong, Developer    * DJANGO - The Python Framework - Low Kian Seong, Developer
* DJANGO - The Python Framework - Low Kian Seong, Developer
Linuxmalaysia Malaysia
 

What's hot (20)

Web development with django - Basics Presentation
Web development with django - Basics PresentationWeb development with django - Basics Presentation
Web development with django - Basics Presentation
 
Goa tutorial
Goa tutorialGoa tutorial
Goa tutorial
 
Django tech-talk
Django tech-talkDjango tech-talk
Django tech-talk
 
Gohan
GohanGohan
Gohan
 
Learning django step 1
Learning django step 1Learning django step 1
Learning django step 1
 
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12
 
SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3
SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3
SAS_Forum_2015_Data_Visualisation_With_HighCharts_D3
 
Webinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaWebinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and Java
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
What do you mean, Backwards Compatibility?
What do you mean, Backwards Compatibility?What do you mean, Backwards Compatibility?
What do you mean, Backwards Compatibility?
 
Django
DjangoDjango
Django
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
 
Introduction to Grails Framework
Introduction to Grails FrameworkIntroduction to Grails Framework
Introduction to Grails Framework
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
 
React mit TypeScript – eine glückliche Ehe
React mit TypeScript – eine glückliche EheReact mit TypeScript – eine glückliche Ehe
React mit TypeScript – eine glückliche Ehe
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
 
* DJANGO - The Python Framework - Low Kian Seong, Developer
    * DJANGO - The Python Framework - Low Kian Seong, Developer    * DJANGO - The Python Framework - Low Kian Seong, Developer
* DJANGO - The Python Framework - Low Kian Seong, Developer
 
Implement Mapreduce with suitable example using MongoDB.
 Implement Mapreduce with suitable example using MongoDB. Implement Mapreduce with suitable example using MongoDB.
Implement Mapreduce with suitable example using MongoDB.
 

Similar to Chatbot - The developer's waterboy

OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
mfrancis
 

Similar to Chatbot - The developer's waterboy (20)

How to Leverage APIs for SEO #TTTLive2019
How to Leverage APIs for SEO #TTTLive2019How to Leverage APIs for SEO #TTTLive2019
How to Leverage APIs for SEO #TTTLive2019
 
NoSQL meets Microservices - Michael Hackstein
NoSQL meets Microservices - Michael HacksteinNoSQL meets Microservices - Michael Hackstein
NoSQL meets Microservices - Michael Hackstein
 
NoSQL meets Microservices
NoSQL meets MicroservicesNoSQL meets Microservices
NoSQL meets Microservices
 
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
 
NoSQL meets Microservices - Michael Hackstein
NoSQL meets Microservices -  Michael HacksteinNoSQL meets Microservices -  Michael Hackstein
NoSQL meets Microservices - Michael Hackstein
 
GraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized ageGraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized age
 
20170624 GraphQL Presentation
20170624 GraphQL Presentation20170624 GraphQL Presentation
20170624 GraphQL Presentation
 
huhu
huhuhuhu
huhu
 
Svelte JS introduction
Svelte JS introductionSvelte JS introduction
Svelte JS introduction
 
Engitec - Minicurso de Django
Engitec - Minicurso de DjangoEngitec - Minicurso de Django
Engitec - Minicurso de Django
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
 
Function as a Service in private cloud
Function as a Service in private cloud Function as a Service in private cloud
Function as a Service in private cloud
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
E.D.D.I - Open Source Chatbot Platform
E.D.D.I - Open Source Chatbot PlatformE.D.D.I - Open Source Chatbot Platform
E.D.D.I - Open Source Chatbot Platform
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
Connecting the Dots: Kong for GraphQL Endpoints
Connecting the Dots: Kong for GraphQL EndpointsConnecting the Dots: Kong for GraphQL Endpoints
Connecting the Dots: Kong for GraphQL Endpoints
 
SF Elixir Meetup - RethinkDB
SF Elixir Meetup - RethinkDBSF Elixir Meetup - RethinkDB
SF Elixir Meetup - RethinkDB
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
Controller Testing: You're Doing It Wrong
Controller Testing: You're Doing It WrongController Testing: You're Doing It Wrong
Controller Testing: You're Doing It Wrong
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

Chatbot - The developer's waterboy

  • 2. We experiment, we move fast, we make it happen At Supercharge we build high-impact mobile products making life easier for millions of users. Creating stunning experiences can only happen if you stretch yourself. To supercharge means to go that extra mile.
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. Chatbot? Supercharge 6 Predefined ruleset Limited functionallity Low resource requirements Rule based Understands, analyzes conversation Able to learn High resource requirements AI based
  • 7. Chatbot? Supercharge 7 Predefined ruleset Limited functionallity Low resource requirements Rule based Megérti, elemzi a beszélgetést Képes a tanulásra Hatalmas erőforrás igény AI alapú
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. 15
  • 16. 16 Build your own chatbot!
  • 18. 18
  • 19. 19 """!gradle <parameter> returns search results from mavencentral in gradle format""" import re import requests import json def gradleplease(q): url = "http://gradleplease.appspot.com/search?q={0}".format(q) rawResponse = requests.get(url).text data = str(rawResponse[15:-1]) resp= json.loads(data) docs = resp.get("response").get("docs") result = '```' for x in docs: result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n' result += '```' return result def on_message(msg, server): text = msg.get("text", "") match = re.findall(r"!gradle (.*)", text) if not match: return return gradleplease(match[0])
  • 20. 20 """!gradle <parameter> returns search results from mavencentral in gradle format""" import re import requests import json def gradleplease(q): url = "http://gradleplease.appspot.com/search?q={0}".format(q) rawResponse = requests.get(url).text data = str(rawResponse[15:-1]) resp= json.loads(data) docs = resp.get("response").get("docs") result = '```' for x in docs: result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n' result += '```' return result def on_message(msg, server): text = msg.get("text", "") match = re.findall(r"!gradle (.*)", text) if not match: return return gradleplease(match[0])
  • 21. 21 """!gradle <parameter> returns search results from mavencentral in gradle format""" import re import requests import json def gradleplease(q): url = "http://gradleplease.appspot.com/search?q={0}".format(q) rawResponse = requests.get(url).text data = str(rawResponse[15:-1]) resp= json.loads(data) docs = resp.get("response").get("docs") result = '```' for x in docs: result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n' result += '```' return result def on_message(msg, server): text = msg.get("text", "") match = re.findall(r"!gradle (.*)", text) if not match: return return gradleplease(match[0])
  • 22. 22 """!gradle <parameter> returns search results from mavencentral in gradle format""" import re import requests import json def gradleplease(q): url = "http://gradleplease.appspot.com/search?q={0}".format(q) rawResponse = requests.get(url).text data = str(rawResponse[15:-1]) resp= json.loads(data) docs = resp.get("response").get("docs") result = '```' for x in docs: result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n' result += '```' return result def on_message(msg, server): text = msg.get("text", "") match = re.findall(r"!gradle (.*)", text) if not match: return return gradleplease(match[0])
  • 23. 23 """!gradle <parameter> returns search results from mavencentral in gradle format""" import re import requests import json def gradleplease(q): url = "http://gradleplease.appspot.com/search?q={0}".format(q) rawResponse = requests.get(url).text data = str(rawResponse[15:-1]) resp= json.loads(data) docs = resp.get("response").get("docs") result = '```' for x in docs: result +='compile '' + x.get("id") + ':' + x.get("latestVersion") + ''n' result += '```' return result def on_message(msg, server): text = msg.get("text", "") match = re.findall(r"!gradle (.*)", text) if not match: return return gradleplease(match[0])
  • 24. 24
  • 25. Reaching Jenkins ‣ Parameterized Build ‣ Pass data by url parameters Supercharge 25
  • 26. Reaching Jenkins ‣ Parameterized Build ‣ Pass data by url parameters ‣ Build Token Root Plugin Supercharge 26
  • 27. Why chatbots? ‣ Teamwork accelerates ‣ Cost reduction with automation ‣ Easy maintenance +1 suggestion: It’s recommended to organize the bots in separate channels, otherwise the channel’s communication will be verbose Supercharge 27
  • 28. Thank you! We are hiring! Richard Radics Supercharge Lead Android Developer richard.radics@supercharge.io // www.supercharge.io