allbibek commited on
Commit
e6ba84f
·
verified ·
1 Parent(s): 286d24d

fix button order elem

Browse files
Files changed (1) hide show
  1. app.py +29 -22
app.py CHANGED
@@ -6,8 +6,6 @@ from dotenv import load_dotenv
6
 
7
  load_dotenv()
8
 
9
- # Load the model globally to ensure it's only loaded once
10
- # This is crucial for performance and resource management
11
  model = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
12
 
13
  # === Supabase ===
@@ -19,11 +17,9 @@ def get_embedding(text: str):
19
  """
20
  Menghasilkan embedding vector dari teks menggunakan model SentenceTransformer.
21
  """
22
- # Menghindari encoding teks kosong
23
  if not text:
24
  return []
25
 
26
- # Mengonversi array numpy ke list Python agar bisa di-JSON-kan
27
  embedding = model.encode(text).tolist()
28
  return embedding
29
 
@@ -95,11 +91,6 @@ def search_kbli(text: str):
95
  html += "</div>"
96
  return html
97
 
98
- # Gradio Interface
99
- # `fn` adalah fungsi yang akan dieksekusi
100
- # `inputs` adalah jenis input (dalam hal ini, sebuah teks)
101
- # `outputs` adalah jenis output (dalam hal ini, sebuah JSON)
102
- # `api_name` adalah nama endpoint API
103
  with gr.Blocks(css="""
104
  .title {font-size: 22px; font-weight: 700; color: #111827; margin-bottom: 4px;}
105
  .desc {font-size: 14px; color: #6b7280; margin-bottom: 16px;}
@@ -107,33 +98,49 @@ with gr.Blocks(css="""
107
  .btn-primary:hover {background-color: #11a12f;}
108
  .btn-clear {background-color: #f3f4f6; color: #374151; border-radius: 6px;}
109
  .btn-clear:hover {background-color: #e5e7eb;}
 
 
 
 
 
 
 
 
 
 
 
110
  """) as demo:
111
  gr.Markdown("<div class='title'>Semantic KBLI Search</div>")
112
  gr.Markdown("<div class='desc'>Cari kode KBLI dengan semantic search (Embedding + Matching)</div>")
113
 
114
  with gr.Tab("Embedding Only"):
115
- inp1 = gr.Textbox(label="Masukkan teks")
116
- out1 = gr.JSON(label="Embedding Vector")
117
- inp1.submit(get_embedding, inp1, out1, api_name="get_embedding")
118
-
119
  with gr.Row():
120
- btn_submit1 = gr.Button("Submit", elem_classes="btn-primary")
121
- btn_clear1 = gr.Button("Clear", elem_classes="btn-clear")
122
 
123
- btn_submit1.click(get_embedding, inp1, out1, api_name="get_embedding")
 
 
 
 
 
 
 
124
  btn_clear1.click(lambda: ("", None), None, [inp1, out1])
 
125
 
126
  with gr.Tab("Search KBLI"):
127
  inp2 = gr.Textbox(label="Masukkan teks")
128
- out2 = gr.HTML(label="Hasil Pencarian KBLI")
129
- inp2.submit(search_kbli, inp2, out2, api_name="search_kbli")
130
 
131
- with gr.Row():
132
- btn_submit2 = gr.Button("Submit", elem_classes="btn-primary")
133
  btn_clear2 = gr.Button("Clear", elem_classes="btn-clear")
134
-
135
- btn_submit2.click(search_kbli, inp2, out2, api_name="search_kbli")
 
 
 
136
  btn_clear2.click(lambda: ("", None), None, [inp2, out2])
 
137
 
138
  if __name__ == "__main__":
139
  demo.queue().launch()
 
6
 
7
  load_dotenv()
8
 
 
 
9
  model = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
10
 
11
  # === Supabase ===
 
17
  """
18
  Menghasilkan embedding vector dari teks menggunakan model SentenceTransformer.
19
  """
 
20
  if not text:
21
  return []
22
 
 
23
  embedding = model.encode(text).tolist()
24
  return embedding
25
 
 
91
  html += "</div>"
92
  return html
93
 
 
 
 
 
 
94
  with gr.Blocks(css="""
95
  .title {font-size: 22px; font-weight: 700; color: #111827; margin-bottom: 4px;}
96
  .desc {font-size: 14px; color: #6b7280; margin-bottom: 16px;}
 
98
  .btn-primary:hover {background-color: #11a12f;}
99
  .btn-clear {background-color: #f3f4f6; color: #374151; border-radius: 6px;}
100
  .btn-clear:hover {background-color: #e5e7eb;}
101
+
102
+ .btn-row {display: flex; gap: 8px;}
103
+ .btn-row > * {flex: 1;}
104
+
105
+ @media (max-width: 640px) {
106
+ .btn-row {flex-direction: column-reverse;}
107
+ .btn-row > button {
108
+ width: 100% !important;
109
+ flex: none;
110
+ }
111
+ }
112
  """) as demo:
113
  gr.Markdown("<div class='title'>Semantic KBLI Search</div>")
114
  gr.Markdown("<div class='desc'>Cari kode KBLI dengan semantic search (Embedding + Matching)</div>")
115
 
116
  with gr.Tab("Embedding Only"):
 
 
 
 
117
  with gr.Row():
118
+ with gr.Column(scale=1):
119
+ inp1 = gr.Textbox(label="Masukkan teks")
120
 
121
+ with gr.Row(elem_classes="btn-row"):
122
+ btn_clear1 = gr.Button("Clear", elem_classes="btn-clear")
123
+ btn_submit1 = gr.Button("Submit", elem_classes="btn-primary")
124
+
125
+ with gr.Column(scale=1):
126
+ out1 = gr.JSON(label="Embedding Vector")
127
+
128
+ inp1.submit(get_embedding, inp1, out1, api_name="get_embedding")
129
  btn_clear1.click(lambda: ("", None), None, [inp1, out1])
130
+ btn_submit1.click(get_embedding, inp1, out1, api_name="get_embedding")
131
 
132
  with gr.Tab("Search KBLI"):
133
  inp2 = gr.Textbox(label="Masukkan teks")
 
 
134
 
135
+ with gr.Row(elem_classes="btn-row"):
 
136
  btn_clear2 = gr.Button("Clear", elem_classes="btn-clear")
137
+ btn_submit2 = gr.Button("Submit", elem_classes="btn-primary")
138
+
139
+ out2 = gr.HTML(label="Hasil Pencarian Semantic")
140
+
141
+ inp2.submit(search_kbli, inp2, out2, api_name="search_kbli")
142
  btn_clear2.click(lambda: ("", None), None, [inp2, out2])
143
+ btn_submit2.click(search_kbli, inp2, out2, api_name="search_kbli")
144
 
145
  if __name__ == "__main__":
146
  demo.queue().launch()