Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
·
df3bf97
1
Parent(s):
f85309c
Add enhanced Gradio UI with tabs, table view and model details formatting
Browse files
main.py
CHANGED
@@ -103,17 +103,79 @@ async def init_models():
|
|
103 |
# For now, let's log and continue, Gradio will show an empty list
|
104 |
pass
|
105 |
|
106 |
-
# Définir
|
107 |
def get_loaded_models_list():
|
108 |
"""Retourne la liste des métadonnées des modèles actuellement chargés."""
|
109 |
# Extraire les métadonnées de chaque entrée dans model_pipelines
|
110 |
return [item['metadata'] for item in model_pipelines.values()]
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
# Créer l'interface Gradio
|
113 |
-
gradio_app = gr.Blocks(title="Tamis AI - Modèles Chargés")
|
114 |
with gradio_app:
|
|
|
115 |
gr.Markdown("## Modèles actuellement chargés dans l'API")
|
116 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
# Monter l'application Gradio à la racine dans FastAPI
|
119 |
app = mount_gradio_app(
|
|
|
103 |
# For now, let's log and continue, Gradio will show an empty list
|
104 |
pass
|
105 |
|
106 |
+
# Définir les fonctions pour Gradio qui récupèrent les modèles chargés
|
107 |
def get_loaded_models_list():
|
108 |
"""Retourne la liste des métadonnées des modèles actuellement chargés."""
|
109 |
# Extraire les métadonnées de chaque entrée dans model_pipelines
|
110 |
return [item['metadata'] for item in model_pipelines.values()]
|
111 |
|
112 |
+
def format_model_info(metadata_list):
|
113 |
+
"""Formate les informations des modèles pour un affichage plus convivial."""
|
114 |
+
if not metadata_list:
|
115 |
+
return "Aucun modèle chargé actuellement."
|
116 |
+
|
117 |
+
# Créer une version formatée des informations des modèles
|
118 |
+
formatted_info = ""
|
119 |
+
for i, model in enumerate(metadata_list):
|
120 |
+
formatted_info += f"### Modèle {i+1}\n"
|
121 |
+
formatted_info += f"**ID:** {model.get('model_id', 'N/A')}\n"
|
122 |
+
formatted_info += f"**Fichier:** {model.get('hf_filename', 'N/A')}\n"
|
123 |
+
formatted_info += f"**Dernière mise à jour:** {model.get('updated_at', 'N/A')}\n\n"
|
124 |
+
|
125 |
+
return formatted_info
|
126 |
+
|
127 |
# Créer l'interface Gradio
|
128 |
+
gradio_app = gr.Blocks(title="Tamis AI - Modèles Chargés", theme=gr.themes.Soft())
|
129 |
with gradio_app:
|
130 |
+
gr.Markdown("# 🤖 Tamis AI - Interface d'administration")
|
131 |
gr.Markdown("## Modèles actuellement chargés dans l'API")
|
132 |
+
|
133 |
+
with gr.Row():
|
134 |
+
with gr.Column(scale=2):
|
135 |
+
# Visualisation des modèles avec des cartes
|
136 |
+
with gr.Tab("Vue détaillée"):
|
137 |
+
markdown_output = gr.Markdown(value="Chargement des modèles...", elem_id="model_details")
|
138 |
+
|
139 |
+
# Affichage en tableau
|
140 |
+
with gr.Tab("Vue tableau"):
|
141 |
+
model_table = gr.Dataframe(
|
142 |
+
headers=["ID", "Fichier", "Dernière mise à jour"],
|
143 |
+
datatype=["str", "str", "str"],
|
144 |
+
elem_id="model_table"
|
145 |
+
)
|
146 |
+
|
147 |
+
# Vue JSON (pour référence)
|
148 |
+
with gr.Tab("Vue JSON (debug)"):
|
149 |
+
json_output = gr.JSON(label="Données brutes")
|
150 |
+
|
151 |
+
with gr.Column(scale=1):
|
152 |
+
refresh_btn = gr.Button("Rafraîchir", variant="primary")
|
153 |
+
status = gr.Textbox(label="Statut", value="Prêt", interactive=False)
|
154 |
+
|
155 |
+
# Fonction pour mettre à jour tous les composants d'affichage
|
156 |
+
def update_all_displays():
|
157 |
+
models = get_loaded_models_list()
|
158 |
+
formatted_text = format_model_info(models)
|
159 |
+
|
160 |
+
# Préparer les données pour le tableau
|
161 |
+
table_data = []
|
162 |
+
for model in models:
|
163 |
+
table_data.append([
|
164 |
+
model.get('model_id', 'N/A'),
|
165 |
+
model.get('hf_filename', 'N/A'),
|
166 |
+
model.get('updated_at', 'N/A')
|
167 |
+
])
|
168 |
+
|
169 |
+
return formatted_text, table_data, models, "Modèles mis à jour"
|
170 |
+
|
171 |
+
# Connecter les événements
|
172 |
+
refresh_btn.click(
|
173 |
+
fn=update_all_displays,
|
174 |
+
outputs=[markdown_output, model_table, json_output, status]
|
175 |
+
)
|
176 |
+
|
177 |
+
# Initialiser les affichages au chargement
|
178 |
+
gradio_app.load(fn=update_all_displays, outputs=[markdown_output, model_table, json_output, status])
|
179 |
|
180 |
# Monter l'application Gradio à la racine dans FastAPI
|
181 |
app = mount_gradio_app(
|