Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firefly - Deploying functions made easy
Search
Anand Chitipothu
July 10, 2017
Programming
0
770
Firefly - Deploying functions made easy
Lightning talk given at EuroPython 2017
Anand Chitipothu
July 10, 2017
Tweet
Share
More Decks by Anand Chitipothu
See All by Anand Chitipothu
Machine Learning as a Service
anandology
0
180
DevOps for Data Science
anandology
0
82
Managing Machine Learning Models in Production - Strata Singapore 2017
anandology
0
690
Real World Challenges in Deploying Machine Learning Applications
anandology
0
400
Deploying ML apps in minutes
anandology
1
440
Recreational Programming
anandology
4
520
Managing Machine Learning Models in Production
anandology
1
550
Distributed Machine Learning - Challenges & Opportunities
anandology
0
270
Writing Beautiful Code - EuroPython 2017
anandology
3
1.3k
Other Decks in Programming
See All in Programming
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
250
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
390
良いコードレビューとは
danimal141
7
1.6k
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
270
SwiftUI Viewの責務分離
elmetal
PRO
2
280
技術を改善し続ける
gumioji
0
150
Swift Testingのモチベを上げたい
stoticdev
2
140
CDKを使ったPagerDuty連携インフラのテンプレート化
shibuya_shogo
0
110
React 19アップデートのために必要なこと
uhyo
8
1.5k
LINE messaging APIを使ってGoogleカレンダーと連携した予約ツールを作ってみた
takumakoike
0
120
AIプログラミング雑キャッチアップ
yuheinakasaka
19
4.9k
JAWS Days 2025のインフラ
komakichi
1
120
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Typedesign – Prime Four
hannesfritz
41
2.5k
Thoughts on Productivity
jonyablonski
69
4.5k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Side Projects
sachag
452
42k
Agile that works and the tools we love
rasmusluckow
328
21k
How STYLIGHT went responsive
nonsquared
99
5.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Code Review Best Practice
trishagee
67
18k
Raft: Consensus for Rubyists
vanstee
137
6.8k
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