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

Chatbot - The developer's waterboy

  • 1.
  • 2.
    We experiment, wemove 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.
  • 6.
    Chatbot? Supercharge 6 Predefined ruleset Limitedfunctionallity Low resource requirements Rule based Understands, analyzes conversation Able to learn High resource requirements AI based
  • 7.
    Chatbot? Supercharge 7 Predefined ruleset Limitedfunctionallity 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.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
    19 """!gradle <parameter> returnssearch 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> returnssearch 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> returnssearch 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> returnssearch 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> returnssearch 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.
  • 25.
    Reaching Jenkins ‣ ParameterizedBuild ‣ Pass data by url parameters Supercharge 25
  • 26.
    Reaching Jenkins ‣ ParameterizedBuild ‣ Pass data by url parameters ‣ Build Token Root Plugin Supercharge 26
  • 27.
    Why chatbots? ‣ Teamworkaccelerates ‣ 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 arehiring! Richard Radics Supercharge Lead Android Developer richard.radics@supercharge.io // www.supercharge.io