Ivan Shelonik commited on
Commit
696f1ca
·
1 Parent(s): be16e3e

upd: refactored

Browse files
Files changed (2) hide show
  1. api_server.py +3 -9
  2. templates/index.html +1 -46
api_server.py CHANGED
@@ -2,18 +2,13 @@
2
  official fastapi HF example https://huggingface.co/docs/hub/spaces-sdks-docker-examples#docker-spaces-examples
3
  """
4
 
5
-
6
  import os
7
  import time
8
  import numpy as np
9
  from PIL import Image
10
 
11
-
12
  from pathlib import Path
13
 
14
- os.environ['TRANSFORMERS_CACHE'] = str(Path('./artifacts/').absolute())
15
-
16
-
17
  # Disable tensorflow warnings
18
  os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
19
 
@@ -29,7 +24,6 @@ remote_hub_pipeline; - needs config.json and this is not easy to grasp how to do
29
  https://discuss.huggingface.co/t/how-to-create-a-config-json-after-saving-a-model/10459/4
30
  """
31
 
32
-
33
  REPO_ID = "1vash/mnist_demo_model"
34
 
35
  # Load the saved model into memory
@@ -37,20 +31,22 @@ if load_type == 'local':
37
  model = keras.models.load_model('artifacts/models/mnist_model.h5')
38
  elif load_type == 'remote_hub_download':
39
  from huggingface_hub import hf_hub_download
 
40
  model = keras.models.load_model(hf_hub_download(repo_id=REPO_ID, filename="saved_model.pb"))
41
  elif load_type == 'remote_hub_from_pretrained':
42
  # https://huggingface.co/docs/hub/keras
 
43
  from huggingface_hub import from_pretrained_keras
44
  model = from_pretrained_keras(REPO_ID, cache_dir='./artifacts/')
45
  elif load_type == 'remote_hub_pipeline':
46
  from transformers import pipeline
 
47
  model = pipeline("image-classification", model=REPO_ID)
48
  else:
49
  raise AssertionError('No load type is specified!')
50
 
51
  # Initialize the Flask application
52
  app = Flask(__name__)
53
- # app = FastAPI()
54
 
55
 
56
  # API route for prediction
@@ -75,7 +71,6 @@ def predict():
75
  # Handle if no file is selected
76
  return 'No file selected'
77
 
78
- print('PRINT ME HERE', request)
79
  start_time = time.time()
80
 
81
  file = request.files['image']
@@ -155,7 +150,6 @@ def hello_world():
155
  if __name__ == '__main__':
156
  app.run(debug=True)
157
 
158
-
159
  ##################
160
  # Flask API usages:
161
  # 1. Just a wrapper over OpenAI API
 
2
  official fastapi HF example https://huggingface.co/docs/hub/spaces-sdks-docker-examples#docker-spaces-examples
3
  """
4
 
 
5
  import os
6
  import time
7
  import numpy as np
8
  from PIL import Image
9
 
 
10
  from pathlib import Path
11
 
 
 
 
12
  # Disable tensorflow warnings
13
  os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
14
 
 
24
  https://discuss.huggingface.co/t/how-to-create-a-config-json-after-saving-a-model/10459/4
25
  """
26
 
 
27
  REPO_ID = "1vash/mnist_demo_model"
28
 
29
  # Load the saved model into memory
 
31
  model = keras.models.load_model('artifacts/models/mnist_model.h5')
32
  elif load_type == 'remote_hub_download':
33
  from huggingface_hub import hf_hub_download
34
+
35
  model = keras.models.load_model(hf_hub_download(repo_id=REPO_ID, filename="saved_model.pb"))
36
  elif load_type == 'remote_hub_from_pretrained':
37
  # https://huggingface.co/docs/hub/keras
38
+ os.environ['TRANSFORMERS_CACHE'] = str(Path('./artifacts/').absolute())
39
  from huggingface_hub import from_pretrained_keras
40
  model = from_pretrained_keras(REPO_ID, cache_dir='./artifacts/')
41
  elif load_type == 'remote_hub_pipeline':
42
  from transformers import pipeline
43
+
44
  model = pipeline("image-classification", model=REPO_ID)
45
  else:
46
  raise AssertionError('No load type is specified!')
47
 
48
  # Initialize the Flask application
49
  app = Flask(__name__)
 
50
 
51
 
52
  # API route for prediction
 
71
  # Handle if no file is selected
72
  return 'No file selected'
73
 
 
74
  start_time = time.time()
75
 
76
  file = request.files['image']
 
150
  if __name__ == '__main__':
151
  app.run(debug=True)
152
 
 
153
  ##################
154
  # Flask API usages:
155
  # 1. Just a wrapper over OpenAI API
templates/index.html CHANGED
@@ -1,45 +1,3 @@
1
- <!--<link rel="stylesheet" href="{{ url_for('static', filename='style.css', _external=True) }}" />-->
2
- <!--<script type="module" src="{{ url_for('static', filename='script.js', _external=True) }}"></script>-->
3
-
4
-
5
-
6
- <!--<!DOCTYPE html>-->
7
- <!--<html lang="en">-->
8
- <!-- <head>-->
9
- <!-- <meta charset="UTF-8" />-->
10
- <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0" />-->
11
- <!-- <title>Flask API</title>-->
12
- <!-- <link rel="stylesheet" href="style.css" />-->
13
- <!-- <script type="module" src="script.js"></script>-->
14
- <!-- </head>-->
15
- <!-- <body>-->
16
- <!-- <main>-->
17
- <!-- <section id="text-gen">-->
18
- <!-- <h1>Text generation using Flan T5</h1>-->
19
- <!-- <p>-->
20
- <!-- Model:-->
21
- <!-- <a-->
22
- <!-- href="https://huggingface.co/1vash/mnist_demo_model"-->
23
- <!-- rel="noreferrer"-->
24
- <!-- target="_blank"-->
25
- <!-- >1vash/mnist_demo_model</a-->
26
- <!-- >-->
27
- <!-- </p>-->
28
- <!-- <form class="text-gen-form">-->
29
- <!-- <label for="text-gen-input">Text prompt</label>-->
30
- <!-- <input-->
31
- <!-- id="text-gen-input"-->
32
- <!-- type="text"-->
33
- <!-- value="English: Translate There are many ducks. German:"-->
34
- <!-- />-->
35
- <!-- <button id="text-gen-submit">Submit</button>-->
36
- <!-- <p class="text-gen-output"></p>-->
37
- <!-- </form>-->
38
- <!-- </section>-->
39
- <!-- </main>-->
40
- <!-- </body>-->
41
- <!--</html>-->
42
-
43
  <!DOCTYPE html>
44
  <html lang="en">
45
  <head>
@@ -49,14 +7,11 @@
49
  <!-- 304 status codes indicate that the files are being cached by the browser. There is no error or issue to be concerned about in this case.-->
50
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" />
51
  <script type="module" src="{{ url_for('static', filename='script.js') }}"></script>
52
-
53
- <!-- <link rel="stylesheet" href="style.css" />-->
54
- <!-- <script type="module" src="script.js"></script>-->
55
  </head>
56
  <body>
57
  <main>
58
  <section id="text-gen">
59
- <h1>Text generation using Flan T5</h1>
60
  <p>
61
  Model:
62
  <a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <!DOCTYPE html>
2
  <html lang="en">
3
  <head>
 
7
  <!-- 304 status codes indicate that the files are being cached by the browser. There is no error or issue to be concerned about in this case.-->
8
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" />
9
  <script type="module" src="{{ url_for('static', filename='script.js') }}"></script>
 
 
 
10
  </head>
11
  <body>
12
  <main>
13
  <section id="text-gen">
14
+ <h1>🤗 Image Classification of MNIST digits 🤗</h1>
15
  <p>
16
  Model:
17
  <a