From 88e346b6b5afa46a15401cdcf3fcaaa3bf0267b7 Mon Sep 17 00:00:00 2001 From: XianBW <36835909+XianBW@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:40:35 +0800 Subject: [PATCH] change something for ui compatiblity (#1149) --- rdagent/log/ui/ds_trace.py | 17 ++++++++++++++--- .../scenarios/data_science/dev/runner/eval.py | 3 +++ .../data_science/proposal/exp_gen/base.py | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/rdagent/log/ui/ds_trace.py b/rdagent/log/ui/ds_trace.py index 489ef117..5cbdac00 100644 --- a/rdagent/log/ui/ds_trace.py +++ b/rdagent/log/ui/ds_trace.py @@ -390,19 +390,30 @@ def evolving_win(data, key, llm_data=None, base_workspace=None): if evo_id in data: if state.show_llm_log and llm_data is not None: llm_log_win(llm_data[evo_id]) - if data[evo_id]["evolving code"][0] is not None: + + # get evolving workspace + if "evolving code" in data[evo_id] and data[evo_id]["evolving code"][0] is not None: + evolving_code_workspace = data[evo_id]["evolving code"][0] + else: + evolving_code_workspace = None + + if evolving_code_workspace is not None: st.subheader("codes") workspace_win( - data[evo_id]["evolving code"][0], + evolving_code_workspace, cmp_workspace=data[evo_id - 1]["evolving code"][0] if evo_id > 0 else base_workspace, cmp_name="last evolving code" if evo_id > 0 else "base workspace", ) fb = data[evo_id]["evolving feedback"][0] st.subheader("evolving feedback" + ("✅" if bool(fb) else "❌")) - f1, f2, f3 = st.tabs(["execution", "return_checking", "code"]) + f1, f2, f3, f4 = st.tabs(["execution", "return_checking", "code", "others"]) + other_attributes = { + k: v for k, v in fb.__dict__.items() if k not in ["execution", "return_checking", "code"] + } f1.code(fb.execution, wrap_lines=True) f2.code(fb.return_checking, wrap_lines=True) f3.code(fb.code, wrap_lines=True) + f4.json(other_attributes) else: st.write("data[evo_id]['evolving code'][0] is None.") st.write(data[evo_id]) diff --git a/rdagent/scenarios/data_science/dev/runner/eval.py b/rdagent/scenarios/data_science/dev/runner/eval.py index 12ac0faf..612fe403 100644 --- a/rdagent/scenarios/data_science/dev/runner/eval.py +++ b/rdagent/scenarios/data_science/dev/runner/eval.py @@ -44,6 +44,9 @@ class DSRunnerFeedback(CoSTEERSingleFeedback): return super().is_acceptable() +DSCoSTEEREvalFeedback = DSRunnerFeedback # FIXME: Alias for backward compatibility + + class DSRunnerEvaluator(CoSTEEREvaluator): def evaluate( diff --git a/rdagent/scenarios/data_science/proposal/exp_gen/base.py b/rdagent/scenarios/data_science/proposal/exp_gen/base.py index f7c0d295..0429aedf 100644 --- a/rdagent/scenarios/data_science/proposal/exp_gen/base.py +++ b/rdagent/scenarios/data_science/proposal/exp_gen/base.py @@ -46,7 +46,7 @@ class DSHypothesis(Hypothesis): lines.append(f"Hypothesis: {self.hypothesis}") if self.reason is not None: lines.append(f"Reason: {self.reason}") - if self.appendix is not None: + if hasattr(self, "appendix") and self.appendix is not None: # FIXME: compatibility with old traces lines.append(f"Appendix: {self.appendix}") return "\n".join(lines)