Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Firefly - Deploying functions made easy
Search
Anand Chitipothu
July 10, 2017
Programming
830
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firefly - Deploying functions made easy
Lightning talk given at EuroPython 2017
Anand Chitipothu
July 10, 2017
More Decks by Anand Chitipothu
See All by Anand Chitipothu
Machine Learning as a Service
anandology
0
230
DevOps for Data Science
anandology
0
120
Managing Machine Learning Models in Production - Strata Singapore 2017
anandology
0
740
Real World Challenges in Deploying Machine Learning Applications
anandology
0
460
Deploying ML apps in minutes
anandology
1
530
Recreational Programming
anandology
4
560
Managing Machine Learning Models in Production
anandology
1
710
Distributed Machine Learning - Challenges & Opportunities
anandology
0
330
Writing Beautiful Code - EuroPython 2017
anandology
3
1.4k
Other Decks in Programming
See All in Programming
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
390
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.1k
AmebaブログはKMPから卒業します
kmars0605
0
310
dotNET_vulnclicker_intro.pdf
deka_morita
0
160
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
12
11k
LLM 101
dalinaum
0
360
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
230
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
340
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
190
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
310
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.3k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.8k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
New Earth Scene 8
popppiees
4
2.7k
The SEO identity crisis: Don't let AI make you average
varn
0
620
Making the Leap to Tech Lead
cromwellryan
135
10k
Deep Space Network (abreviated)
tonyrice
0
390
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Building AI with AI
inesmontani
PRO
1
1.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
A better future with KSS
kneath
240
18k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
360
Transcript
Firefly Deploying functions made easy!
Who is speaking? Anand Chitipothu @anandology • building a data
science platform at @rorodata • advanced programming courses at @pipalacademy
The problem How to expose a function as an API
for others to use?
Why? • To use it in a different environment •
Loose coupling
Use cases • Deploy a machine learning model • preprocess
an image • live price check
Challenges • Requires writing a web application • What about
authentication? • How to do data validation? • How I need write a client library too?
Welcome to Firefly Deploying functions made easy!
Code Write your function: # sq.py def square(n): return n*n
Run Start web service: $ firefly sq.square [INFO] Starting gunicorn
19.7.1 [INFO] Listening at: http://127.0.0.1:8000 ...
Use And use it with a client. >>> from firefly.client
import Client >>> client = Client("http://127.0.0.1:8000") >>> client.square(n=4) 16
Behind the scenes, it is a RESTful API. $ curl
-d '{"n": 4}' http://127.0.0.1:8000/square 16 And supports any JSON-friendly datatype.
More practical example Deploying a machine learning model. # model.py
import pickle model = pickle.load('model.pkl') def predict(features): result = model.predict(features]) return int(result[0])
Run the server using: $ firefly model.predict ... And use
it in the client: >>> remote_model = Client("http://localhost:8080/") >>> remote_model.predict(features=[5.9, 3, 5.1, 1.8])) 2
Authentication Firefly has built-in support for autentication. $ firefly --token
abcd1234 sq.square ... The client must pass the same token to autenticate it. >>> client = Client("http://127.0.0.1:8000", auth_token="abcd1234") >>> client.square(n=4) 16
Upcoming Features... • supporting other input and output content-types in
addition to json. (for example, a function to resize an image) • validation using type annotations • caching support
It's open source! https://github.com/rorodata/firefly To install: pip install firefly-python
Questions? • https://firefly-python.readthedocs.io/ • https://github.com/rorodata/firefly