diff --git a/webui/app.py b/webui/app.py index 907f052..6bd295f 100644 --- a/webui/app.py +++ b/webui/app.py @@ -10,7 +10,7 @@ from transformers import pipeline app = Flask(__name__) -TRAIN_OUTPUTS_DIR = "train_outputs" +TRAIN_OUTPUTS_DIR = "train_outputs/runs" chat_generator = None chat_model_name = None chat_history = None @@ -142,13 +142,41 @@ def visualize(run): if not os.path.isdir(logdir): abort(404, description=f"Run '{run}' not found.") - data = get_run_data(logdir) - if data is None: - abort(404, description=f"'all_results.json' not found in '{run}'.") + eval_folders = [ + d + for d in os.listdir(logdir) + if os.path.isdir(os.path.join(logdir, d)) and d.startswith("eval-results-") + ] + eval_folders.sort( + key=lambda d: os.path.getctime(os.path.join(logdir, d)), + reverse=True, + ) - generated_data = get_generated_text_data(logdir) + selected_eval_folder = request.args.get("eval_folder") - # Load config.yaml from the run directory + if eval_folders and selected_eval_folder: + # New structure with eval folders and a folder is selected + eval_path = os.path.join(logdir, selected_eval_folder) + data = get_run_data(eval_path) + if data is None: + abort( + 404, + description=f"'all_results.json' not found in '{selected_eval_folder}'.", + ) + generated_data = get_generated_text_data(eval_path) + elif not eval_folders: + # Old structure: eval results in the root folder + data = get_run_data(logdir) + if data is None: + abort(404, description=f"'all_results.json' not found in '{run}'.") + generated_data = get_generated_text_data(logdir) + selected_eval_folder = "root" # Indicate root folder for template + else: + # New structure, but no eval folder selected yet + data = None + generated_data = None + + # Load config.yaml from the run directory (root level) config_path = os.path.join(logdir, "config.yaml") try: with open(config_path) as f: @@ -160,6 +188,8 @@ def visualize(run): return render_template( "visualize.html", run=run, + eval_folders=eval_folders, + selected_eval_folder=selected_eval_folder, data=data, generated_data=generated_data, model_name=model_name, diff --git a/webui/templates/visualize.html b/webui/templates/visualize.html index 77dec63..bfac570 100644 --- a/webui/templates/visualize.html +++ b/webui/templates/visualize.html @@ -213,6 +213,23 @@ } /* Removed system-msg-container button styles */ + + #eval-folder-selection { + margin-bottom: 20px; + } + + #eval-folder-selection label { + display: block; + margin-bottom: 5px; + font-weight: bold; + } + + #eval-folder-selection select { + width: 300px; + padding: 8px; + border: 1px solid #ddd; + border-radius: 5px; + } {% endblock %} @@ -227,8 +244,23 @@
No generated text data found.
+ {% elif selected_eval_folder %} +No generated text data found in {% if selected_eval_folder and selected_eval_folder != "root" %}{{ + selected_eval_folder }}{% else %}root{% endif %}.
{% endif %}