From a801a5cc3295cd963a93a5f185d7535f149619cc Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Tue, 13 Aug 2024 22:46:03 +0800 Subject: [PATCH] replace exp_manager by get_exp_manager --- examples/exp_pool/decorator.py | 4 ++-- metagpt/exp_pool/__init__.py | 4 ++-- metagpt/exp_pool/decorator.py | 4 ++-- metagpt/exp_pool/manager.py | 9 ++++++++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/examples/exp_pool/decorator.py b/examples/exp_pool/decorator.py index d25949e8d..8ee00905d 100644 --- a/examples/exp_pool/decorator.py +++ b/examples/exp_pool/decorator.py @@ -5,7 +5,7 @@ This script demonstrates how to automatically store experiences using @exp_cache import asyncio import uuid -from metagpt.exp_pool import exp_cache, exp_manager +from metagpt.exp_pool import exp_cache, get_exp_manager from metagpt.logs import logger @@ -20,7 +20,7 @@ async def main(): resp = await produce(req=req) logger.info(f"The response of `produce({req})` is: {resp}") - exps = await exp_manager.query_exps(req) + exps = await get_exp_manager().query_exps(req) logger.info(f"Find experiences: {exps}") diff --git a/metagpt/exp_pool/__init__.py b/metagpt/exp_pool/__init__.py index aeeb94b38..97d45a278 100644 --- a/metagpt/exp_pool/__init__.py +++ b/metagpt/exp_pool/__init__.py @@ -1,6 +1,6 @@ """Experience pool init.""" -from metagpt.exp_pool.manager import exp_manager +from metagpt.exp_pool.manager import get_exp_manager from metagpt.exp_pool.decorator import exp_cache -__all__ = ["exp_manager", "exp_cache"] +__all__ = ["get_exp_manager", "exp_cache"] diff --git a/metagpt/exp_pool/decorator.py b/metagpt/exp_pool/decorator.py index 888e61743..ed5f5e068 100644 --- a/metagpt/exp_pool/decorator.py +++ b/metagpt/exp_pool/decorator.py @@ -8,7 +8,7 @@ from pydantic import BaseModel, ConfigDict, model_validator from metagpt.config2 import Config from metagpt.exp_pool.context_builders import BaseContextBuilder, SimpleContextBuilder -from metagpt.exp_pool.manager import ExperienceManager, exp_manager +from metagpt.exp_pool.manager import ExperienceManager, get_exp_manager from metagpt.exp_pool.perfect_judges import BasePerfectJudge, SimplePerfectJudge from metagpt.exp_pool.schema import Experience, Metric, QueryType, Score from metagpt.exp_pool.scorers import BaseScorer, SimpleScorer @@ -117,7 +117,7 @@ class ExpCacheHandler(BaseModel): self._validate_params() - self.exp_manager = self.exp_manager or exp_manager + self.exp_manager = self.exp_manager or get_exp_manager() self.exp_scorer = self.exp_scorer or SimpleScorer() self.exp_perfect_judge = self.exp_perfect_judge or SimplePerfectJudge() self.context_builder = self.context_builder or SimpleContextBuilder() diff --git a/metagpt/exp_pool/manager.py b/metagpt/exp_pool/manager.py index 253d45508..5f4d71edc 100644 --- a/metagpt/exp_pool/manager.py +++ b/metagpt/exp_pool/manager.py @@ -113,4 +113,11 @@ class ExperienceManager(BaseModel): return self.vector_store._collection.count() -exp_manager = ExperienceManager() +_exp_manager = None + + +def get_exp_manager(): + global _exp_manager + if _exp_manager is None: + _exp_manager = ExperienceManager() + return _exp_manager