Modifying SPO's file path

This commit is contained in:
isaacJinyu 2025-02-07 15:24:26 +08:00
parent 1b933271e2
commit 3457026c55
12 changed files with 26 additions and 27 deletions

View file

@ -49,8 +49,8 @@ ### 3. Implement the Optimizer 🔧
Use `metagpt/ext/spo/optimize.py` to execute:
```python
from metagpt.ext.spo.scripts.optimizer import Optimizer
from metagpt.ext.spo.scripts.utils.llm_client import SPO_LLM
from metagpt.ext.spo.components.optimizer import Optimizer
from metagpt.ext.spo.utils.llm_client import SPO_LLM
if __name__ == "__main__":
# Initialize LLM settings
@ -62,12 +62,12 @@ ### 3. Implement the Optimizer 🔧
# Create and run optimizer
optimizer = Optimizer(
optimized_path="workspace", # Output directory
initial_round=1, # Starting round
max_rounds=10, # Maximum optimization rounds
template="Poem.yaml", # Template file
name="Poem", # Project name
iteration=True, # Enable iteration mode
optimized_path="workspace", # Output directory
initial_round=1, # Starting round
max_rounds=10, # Maximum optimization rounds
template="Poem.yaml", # Template file
name="Poem", # Project name
iteration=True, # Enable iteration mode
)
optimizer.optimize()

View file

@ -1,6 +1,6 @@
import argparse
from metagpt.ext.spo.scripts.optimizer import Optimizer
from metagpt.ext.spo.scripts.utils.llm_client import SPO_LLM
from metagpt.ext.spo.components.optimizer import Optimizer
from metagpt.ext.spo.utils.llm_client import SPO_LLM
def parse_args():

View file

View file

@ -3,12 +3,12 @@
# @Author : all
# @Desc : Evaluation for different datasets
import asyncio
from typing import Dict, Literal, Tuple, List, Any
from typing import Dict, Any
from metagpt.ext.spo.scripts.utils import load
from metagpt.ext.spo.utils import load
from metagpt.ext.spo.prompts.evaluate_prompt import EVALUATE_PROMPT
import random
from metagpt.ext.spo.scripts.utils.llm_client import SPO_LLM, extract_content
from metagpt.ext.spo.utils.llm_client import SPO_LLM, extract_content
class QuickExecute:

View file

@ -4,14 +4,13 @@
# @Desc : optimizer for prompt
import asyncio
import time
from metagpt.ext.spo.scripts.utils.data_utils import DataUtils
from metagpt.ext.spo.scripts.utils.evaluation_utils import EvaluationUtils
from metagpt.ext.spo.scripts.utils.prompt_utils import PromptUtils
from metagpt.ext.spo.utils.data_utils import DataUtils
from metagpt.ext.spo.utils.evaluation_utils import EvaluationUtils
from metagpt.ext.spo.utils.prompt_utils import PromptUtils
from metagpt.ext.spo.prompts.optimize_prompt import PROMPT_OPTIMIZE_PROMPT
from metagpt.ext.spo.scripts.utils import load
from metagpt.ext.spo.utils import load
from metagpt.logs import logger
from metagpt.ext.spo.scripts.utils.llm_client import extract_content, SPO_LLM
from metagpt.ext.spo.utils.llm_client import extract_content, SPO_LLM
@ -45,15 +44,15 @@ class Optimizer:
for opt_round in range(self.max_rounds):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
score = loop.run_until_complete(self._optimize_prompt())
prompt = loop.run_until_complete(self._optimize_prompt())
self.round += 1
logger.info(f"Score for round {self.round}: {score}")
logger.info(f"Prompt generated in round {self.round}: {prompt}")
else:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
score = loop.run_until_complete(self._test_prompt())
logger.info(f"Score for round {self.round}: {score}")
prompt = loop.run_until_complete(self._test_prompt())
logger.info(f"Prompt generated in round {self.round}: {prompt}")
async def _optimize_prompt(self):
@ -100,6 +99,7 @@ class Optimizer:
logger.info(f"Modification of this round: {modification}")
prompt = extract_content(response, "prompt")
if prompt:
self.prompt = prompt
else:
@ -117,7 +117,6 @@ class Optimizer:
self.prompt_utils.write_answers(directory, answers=answers)
logger.info(prompt)
logger.info(success)
logger.info(f"now is {self.round + 1}")

View file

@ -1,5 +1,5 @@
from metagpt.ext.spo.scripts.optimizer import Optimizer
from metagpt.ext.spo.scripts.utils.llm_client import SPO_LLM
from metagpt.ext.spo.components.optimizer import Optimizer
from metagpt.ext.spo.utils.llm_client import SPO_LLM
if __name__ == "__main__":

View file

View file

@ -1,4 +1,4 @@
from metagpt.ext.spo.scripts.evaluator import QuickEvaluate, QuickExecute
from metagpt.ext.spo.components.evaluator import QuickEvaluate, QuickExecute
from metagpt.logs import logger
import tiktoken