pandora-s commited on
Commit
efb1933
·
verified ·
1 Parent(s): e036cb2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -8
app.py CHANGED
@@ -3,8 +3,9 @@ import gradio as gr
3
  import pandas as pd
4
  from huggingface_hub import InferenceClient
5
  from threading import Timer
 
6
 
7
- HUGGINGFACE_TOKEN = os.environ.get("HUGGINGFACE_TOKEN")
8
  def get_available_free(use_cache = False):
9
  if use_cache:
10
  if os.path.exists(str(os.getcwd())+"/data.csv"):
@@ -25,15 +26,13 @@ def get_available_free(use_cache = False):
25
  }
26
 
27
  all_models = list(set(models + models_vision + models_others))
28
- print(all_models)
29
- for m in all_models:
30
  text_available = False
31
  chat_available = False
32
  vision_available = False
33
  if m in models_vision:
34
  vision_available = True
35
  pro_sub = False
36
- print(m)
37
  try:
38
  InferenceClient(m, timeout=10, token=HUGGINGFACE_TOKEN).text_generation("Hi.", max_new_tokens=1)
39
  text_available = True
@@ -84,14 +83,23 @@ def update_data(use_cache = False):
84
 
85
  return df
86
 
87
- def display_table(search_query="", use_cache = False):
88
  df = update_data(use_cache)
89
  search_query = str(search_query)
 
90
  if search_query:
91
  filtered_df = df[df["Model"].str.contains(search_query, case=False)]
92
  else:
93
  filtered_df = df
94
-
 
 
 
 
 
 
 
 
95
  styled_df = filtered_df.style.apply(apply_row_styles, axis=1, subset=["Model", "API", "Text Completion", "Chat Completion", "Vision"])
96
  return styled_df
97
 
@@ -149,9 +157,14 @@ with gr.Blocks() as demo:
149
  gr.Markdown("## HF Serverless LLM Inference API Status")
150
  gr.Markdown(description)
151
  search_box = gr.Textbox(label="Search for a model", placeholder="Type model name here...")
 
152
  table = gr.Dataframe(value=display_table(use_cache=True), headers="keys")
153
-
154
- search_box.change(fn=search_models, inputs=search_box, outputs=table)
 
 
 
 
155
 
156
  def update_every_two_hours(first_run):
157
  search_models(search_box.value, first_run)
 
3
  import pandas as pd
4
  from huggingface_hub import InferenceClient
5
  from threading import Timer
6
+ from tqdm import tqdm
7
 
8
+ HUGGINGFACE_TOKEN =os.environ.get("HUGGINGFACE_TOKEN")
9
  def get_available_free(use_cache = False):
10
  if use_cache:
11
  if os.path.exists(str(os.getcwd())+"/data.csv"):
 
26
  }
27
 
28
  all_models = list(set(models + models_vision + models_others))
29
+ for m in tqdm(all_models):
 
30
  text_available = False
31
  chat_available = False
32
  vision_available = False
33
  if m in models_vision:
34
  vision_available = True
35
  pro_sub = False
 
36
  try:
37
  InferenceClient(m, timeout=10, token=HUGGINGFACE_TOKEN).text_generation("Hi.", max_new_tokens=1)
38
  text_available = True
 
83
 
84
  return df
85
 
86
+ def display_table(search_query="", filters=[], use_cache=False):
87
  df = update_data(use_cache)
88
  search_query = str(search_query)
89
+
90
  if search_query:
91
  filtered_df = df[df["Model"].str.contains(search_query, case=False)]
92
  else:
93
  filtered_df = df
94
+
95
+ if filters:
96
+ if "Free" in filters:
97
+ filtered_df = filtered_df[filtered_df["API"] == "Free"]
98
+ if "Text Completion" in filters:
99
+ filtered_df = filtered_df[filtered_df["Text Completion"] == "✓"]
100
+ if "Chat Completion" in filters:
101
+ filtered_df = filtered_df[filtered_df["Chat Completion"] == "✓"]
102
+
103
  styled_df = filtered_df.style.apply(apply_row_styles, axis=1, subset=["Model", "API", "Text Completion", "Chat Completion", "Vision"])
104
  return styled_df
105
 
 
157
  gr.Markdown("## HF Serverless LLM Inference API Status")
158
  gr.Markdown(description)
159
  search_box = gr.Textbox(label="Search for a model", placeholder="Type model name here...")
160
+ filter_box = gr.CheckboxGroup(choices=["Free", "Text Completion", "Chat Completion"], label="Filters")
161
  table = gr.Dataframe(value=display_table(use_cache=True), headers="keys")
162
+
163
+ def update_filters(query, filters):
164
+ return search_models(query, filters, use_cache=True)
165
+
166
+ search_box.change(fn=update_filters, inputs=[search_box, filter_box], outputs=table)
167
+ filter_box.change(fn=update_filters, inputs=[search_box, filter_box], outputs=table)
168
 
169
  def update_every_two_hours(first_run):
170
  search_models(search_box.value, first_run)