From 3ca2c1756dd5824ea8e3ed107a55f2ac0c4684e1 Mon Sep 17 00:00:00 2001 From: xiangjinyu Date: Tue, 11 Feb 2025 18:50:59 +0800 Subject: [PATCH] modify spo logger show final result --- metagpt/ext/spo/app.py | 4 ++-- metagpt/ext/spo/components/optimizer.py | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/metagpt/ext/spo/app.py b/metagpt/ext/spo/app.py index 75d5361d1..13f7e8411 100644 --- a/metagpt/ext/spo/app.py +++ b/metagpt/ext/spo/app.py @@ -81,14 +81,14 @@ def main(): eval_model = st.selectbox( "Evaluation Model", - ["claude-3-5-sonnet-20240620", "gpt-4o", "gpt-4o-mini", "deepseek-chat"], + ["gpt-4o-mini", "claude-3-5-sonnet-20240620", "gpt-4o", "deepseek-chat"], index=0 ) eval_temp = st.slider("Evaluation Temperature", 0.0, 1.0, 0.3) exec_model = st.selectbox( "Execution Model", - ["claude-3-5-sonnet-20240620", "gpt-4o", "gpt-4o-mini", "deepseek-chat"], + ["gpt-4o-mini", "claude-3-5-sonnet-20240620", "gpt-4o", "deepseek-chat"], index=0 ) exec_temp = st.slider("Execution Temperature", 0.0, 1.0, 0.0) diff --git a/metagpt/ext/spo/components/optimizer.py b/metagpt/ext/spo/components/optimizer.py index 9887026c0..0f677f976 100644 --- a/metagpt/ext/spo/components/optimizer.py +++ b/metagpt/ext/spo/components/optimizer.py @@ -45,6 +45,7 @@ class PromptOptimizer: prompt = loop.run_until_complete(self._optimize_prompt()) self.round += 1 # logger.info(f"Prompt generated in round {self.round}: {prompt}") + self.show_final_result() else: loop = asyncio.new_event_loop() @@ -52,6 +53,16 @@ class PromptOptimizer: prompt = loop.run_until_complete(self._test_prompt()) # logger.info(f"Prompt generated in round {self.round}: {prompt}") + def show_final_result(self): + + best_round = self.data_utils.get_best_round() + + logger.info("\n" + "=" * 50) + logger.info("\nšŸ† OPTIMIZATION COMPLETED - FINAL RESULTS šŸ†\n") + logger.info(f"\nšŸ“Œ Best Performing Round: {best_round['round']}") + logger.info(f"\nšŸŽÆ Final Optimized Prompt:\n{best_round['prompt']}") + logger.info("\n" + "=" * 50 + "\n") + async def _optimize_prompt(self): prompt_path = f"{self.root_path}/prompts" load.set_file_name(self.template) @@ -130,9 +141,6 @@ class PromptOptimizer: logger.info("\nšŸŽÆ OPTIMIZATION RESULT šŸŽÆ\n") logger.info(f"\nRound {self.round + 1} Optimization: {'āœ… SUCCESS' if success else 'āŒ FAILED'}\n") - - # logger.info(f"now is {self.round + 1}") - return prompt async def _test_prompt(self):