mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-04-25 00:36:55 +02:00
Modifying SPO's file path
This commit is contained in:
parent
1b933271e2
commit
3457026c55
12 changed files with 26 additions and 27 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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():
|
||||
|
|
|
|||
0
metagpt/ext/spo/__init__.py
Normal file
0
metagpt/ext/spo/__init__.py
Normal 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:
|
||||
|
|
@ -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}")
|
||||
|
|
@ -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__":
|
||||
|
|
|
|||
0
metagpt/ext/spo/utils/__init__.py
Normal file
0
metagpt/ext/spo/utils/__init__.py
Normal 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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue