omanaaja commited on
Commit
5f4199c
·
1 Parent(s): 70c0421

menghilangkan fast api hugging face tidak support di app.py

Browse files
Files changed (2) hide show
  1. README.md +3 -2
  2. app.py +14 -78
README.md CHANGED
@@ -3,9 +3,10 @@ title: HistoryLens
3
  emoji: 🐢
4
  colorFrom: purple
5
  colorTo: red
6
- sdk: fastapi
 
7
  app_file: app.py
8
  pinned: false
9
  license: apache-2.0
10
  short_description: Classification Image
11
- ---
 
3
  emoji: 🐢
4
  colorFrom: purple
5
  colorTo: red
6
+ sdk: gradio
7
+ sdk_version: 5.33.0
8
  app_file: app.py
9
  pinned: false
10
  license: apache-2.0
11
  short_description: Classification Image
12
+ ---
app.py CHANGED
@@ -1,6 +1,6 @@
1
  import os
2
- os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # Disable all GPUs
3
- os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0' # Optional: disable oneDNN
4
  os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
5
  os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "python"
6
 
@@ -10,36 +10,12 @@ tf.config.set_visible_devices([], 'GPU')
10
  import gradio as gr
11
  import numpy as np
12
  from tensorflow.keras.preprocessing import image
13
- from fastapi import FastAPI, File, UploadFile
14
- from fastapi.responses import JSONResponse
15
- from fastapi.middleware.cors import CORSMiddleware
16
- from io import BytesIO
17
  from PIL import Image
18
- import logging
19
- from tensorflow.keras.models import load_model, model_from_json
20
- from tensorflow.keras import mixed_precision
21
- from tensorflow.keras.saving import get_custom_objects, register_keras_serializable
22
- from tensorflow.keras.mixed_precision import Policy
23
 
24
- # Import deskripsi dan lokasi
25
  from description import description
26
  from location import location
27
 
28
- # @register_keras_serializable(package="keras")
29
- # class DTypePolicy(Policy):
30
- # pass
31
-
32
- # from tensorflow.keras.saving import get_custom_objects
33
- # get_custom_objects()["DTypePolicy"] = DTypePolicy
34
-
35
- # Nonaktifkan GPU (jika tidak digunakan)
36
- tf.config.set_visible_devices([], 'GPU')
37
-
38
- # Inisialisasi logger
39
- # logging.basicConfig(level=logging.INFO)
40
- # logger = logging.getLogger(__name__)
41
-
42
- # ========== Fungsi Load Model dari File JSON + H5 ==========
43
  def load_model_from_file(json_path, h5_path):
44
  with open(json_path, "r") as f:
45
  json_config = f.read()
@@ -47,18 +23,14 @@ def load_model_from_file(json_path, h5_path):
47
  model.load_weights(h5_path)
48
  return model
49
 
50
- # ========== Load Model ==========
51
  model = load_model_from_file("model.json", "my_model.h5")
52
 
53
-
54
- # Daftar label
55
  labels = [
56
  "Benteng Vredeburg", "Candi Borobudur", "Candi Prambanan", "Gedung Agung Istana Kepresidenan",
57
  "Masjid Gedhe Kauman", "Monumen Serangan 1 Maret", "Museum Gunungapi Merapi",
58
  "Situs Ratu Boko", "Taman Sari", "Tugu Yogyakarta"
59
  ]
60
 
61
- # Fungsi klasifikasi
62
  def classify_image(img):
63
  try:
64
  img = img.resize((224, 224))
@@ -96,52 +68,16 @@ def classify_image(img):
96
  except Exception as e:
97
  return "Error", str(e), "-"
98
 
99
- # Fungsi untuk membuat FastAPI app
100
- def create_app():
101
- app = FastAPI()
102
- app.add_middleware(
103
- CORSMiddleware,
104
- allow_origins=["*"], # atau daftar domain yang sah
105
- allow_credentials=True,
106
- allow_methods=["*"],
107
- allow_headers=["*"],
 
108
  )
109
 
110
-
111
-
112
- # @app.post("/api/predict")
113
- # async def predict(file: UploadFile = File(...)):
114
- # contents = await file.read()
115
- # img = Image.open(BytesIO(contents)).convert("RGB")
116
- # label_output, deskripsi, lokasi, akurasi = classify_image(img)
117
- # return JSONResponse(content={
118
- # "label_output": label_output,
119
- # "deskripsi": deskripsi,
120
- # "lokasi": lokasi,
121
- # "confidence": akurasi
122
- # })
123
-
124
- gradio_app = gr.Interface(
125
- fn=classify_image,
126
- inputs=gr.Image(type="pil", label="Upload Gambar"),
127
- # outputs=["text", "text", "html"],
128
- outputs=[
129
- gr.Textbox(label="Output Klasifikasi"),
130
- gr.Textbox(label="Deskripsi Lengkap", lines=20, max_lines=50),
131
- gr.HTML(label="Link Lokasi"),
132
- ],
133
- # flagging_mode="never",
134
- title="Klasifikasi Gambar",
135
- description="Upload gambar, sistem akan mengklasifikasikan dan memberikan deskripsi mengenai gambar tersebut."
136
- )
137
-
138
- app = gr.mount_gradio_app(app, gradio_app, path="/gradio")
139
- return app
140
-
141
- app = create_app()
142
-
143
- # Run server jika dijalankan langsung
144
- # if __name__ == "__main__":
145
- # import uvicorn
146
- # # app = create_app()
147
- # uvicorn.run(app, host="127.0.0.1", port=8000)
 
1
  import os
2
+ os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
3
+ os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'
4
  os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
5
  os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "python"
6
 
 
10
  import gradio as gr
11
  import numpy as np
12
  from tensorflow.keras.preprocessing import image
13
+ from tensorflow.keras.models import model_from_json
 
 
 
14
  from PIL import Image
 
 
 
 
 
15
 
 
16
  from description import description
17
  from location import location
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  def load_model_from_file(json_path, h5_path):
20
  with open(json_path, "r") as f:
21
  json_config = f.read()
 
23
  model.load_weights(h5_path)
24
  return model
25
 
 
26
  model = load_model_from_file("model.json", "my_model.h5")
27
 
 
 
28
  labels = [
29
  "Benteng Vredeburg", "Candi Borobudur", "Candi Prambanan", "Gedung Agung Istana Kepresidenan",
30
  "Masjid Gedhe Kauman", "Monumen Serangan 1 Maret", "Museum Gunungapi Merapi",
31
  "Situs Ratu Boko", "Taman Sari", "Tugu Yogyakarta"
32
  ]
33
 
 
34
  def classify_image(img):
35
  try:
36
  img = img.resize((224, 224))
 
68
  except Exception as e:
69
  return "Error", str(e), "-"
70
 
71
+ interface = gr.Interface(
72
+ fn=classify_image,
73
+ inputs=gr.Image(type="pil", label="Upload Gambar"),
74
+ outputs=[
75
+ gr.Textbox(label="Output Klasifikasi"),
76
+ gr.Textbox(label="Deskripsi Lengkap", lines=20, max_lines=50),
77
+ gr.HTML(label="Link Lokasi"),
78
+ ],
79
+ title="Klasifikasi Gambar",
80
+ description="Upload gambar, sistem akan mengklasifikasikan dan memberikan deskripsi mengenai gambar tersebut."
81
  )
82
 
83
+ interface.launch()