fix actions/roles ser&deser

This commit is contained in:
better629 2023-11-30 19:31:26 +08:00
parent a01766ae72
commit a6510c44fc
3 changed files with 12 additions and 11 deletions

View file

@ -117,19 +117,18 @@ class SearchAndSummarize(Action):
@root_validator
def validate_engine_and_run_func(cls, values):
engine = values.get('engine')
search_func = values.get('search_func')
engine = values.get("engine")
search_func = values.get("search_func")
config = Config()
if engine is None:
engine = config.search_engine
config_data = {
'engine': engine,
'run_func': search_func
}
search_engine = SearchEngine(**config_data)
try:
search_engine = SearchEngine(engine=engine, run_func=search_func)
except pydantic.ValidationError:
search_engine = None
values['search_engine'] = search_engine
values["search_engine"] = search_engine
return values
async def run(self, context: list[Message], system_text=SEARCH_AND_SUMMARIZE_SYSTEM) -> str:

View file

@ -113,8 +113,7 @@ class RoleSetting(BaseModel):
class RoleContext(BaseModel):
"""Role Runtime Context"""
env: "Environment" = Field(default=None)
env: "Environment" = Field(default=None, exclude=True)
msg_buffer: MessageQueue = Field(default_factory=MessageQueue) # Message Buffer with Asynchronous Updates
memory: Memory = Field(default_factory=Memory)
# long_term_memory: LongTermMemory = Field(default_factory=LongTermMemory)
@ -235,6 +234,7 @@ class Role(BaseModel):
def _reset(self):
object.__setattr__(self, "_states", [])
object.__setattr__(self, "_actions", [])
# object.__setattr__(self, "_rc", RoleContext())
@property
def _setting(self):

View file

@ -65,7 +65,9 @@ def format_trackback_info(limit: int = 2):
def serialize_decorator(func):
async def wrapper(self, *args, **kwargs):
try:
return await func(self, *args, **kwargs)
result = await func(self, *args, **kwargs)
self.serialize() # Team.serialize
return result
except KeyboardInterrupt as kbi:
logger.error(f"KeyboardInterrupt occurs, start to serialize the project, exp:\n{format_trackback_info()}")
self.serialize() # Team.serialize