diff --git a/examples/exp_pool/simple.py b/examples/exp_pool/manager.py similarity index 100% rename from examples/exp_pool/simple.py rename to examples/exp_pool/manager.py diff --git a/examples/exp_pool/scorer.py b/examples/exp_pool/scorer.py new file mode 100644 index 000000000..1efe07bdf --- /dev/null +++ b/examples/exp_pool/scorer.py @@ -0,0 +1,25 @@ +import asyncio + +from metagpt.exp_pool.scorers import SimpleScorer +from metagpt.logs import logger + + +def echo(req: str): + """Echo from req.""" + + return req + + +async def simple(): + scorer = SimpleScorer() + + score = await scorer.evaluate(echo, "data", ("data",)) + logger.info(f"The score is: {score}") + + +async def main(): + await simple() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/metagpt/exp_pool/scorers/simple.py b/metagpt/exp_pool/scorers/simple.py index 5779f7fb1..84995b60f 100644 --- a/metagpt/exp_pool/scorers/simple.py +++ b/metagpt/exp_pool/scorers/simple.py @@ -10,7 +10,7 @@ from metagpt.exp_pool.schema import Score from metagpt.exp_pool.scorers.base import ExperienceScorer from metagpt.llm import LLM from metagpt.provider.base_llm import BaseLLM -from metagpt.utils.common import parse_json_code_block +from metagpt.utils.common import CodeParser SIMPLE_SCORER_TEMPLATE = """ Role: You're an expert score evaluator. You specialize in assessing the output of the given function, based on its intended requirement and produced result. @@ -78,6 +78,6 @@ class SimpleScorer(ExperienceScorer): func_result=result, ) resp = await self.llm.aask(prompt) - resp_json = json.loads(parse_json_code_block(resp)[0]) + resp_json = json.loads(CodeParser.parse_code(resp, lang="json")) return Score(**resp_json)