add residue code

This commit is contained in:
better629 2024-01-30 10:54:37 +08:00
parent 1e3ed29c34
commit 99da01fecd
7 changed files with 64 additions and 3 deletions

View file

@ -5,7 +5,7 @@
from typing import Optional
import requests
from pydantic import Field, model_validator, ConfigDict
from pydantic import ConfigDict, Field, model_validator
from metagpt.const import (
MC_CKPT_DIR,

View file

@ -2,8 +2,20 @@
# -*- coding: utf-8 -*-
# @Desc : MG Software Env
from metagpt.env.base_env import Env
from pydantic import ConfigDict, Field, SerializeAsAny
from metagpt.environment.base_env import Env
class SoftwareEnv(Env):
pass
"""环境,承载一批角色,角色可以向环境发布消息,可以被其他角色观察到
Environment, hosting a batch of roles, roles can publish messages to the environment, and can be observed by other roles
"""
model_config = ConfigDict(arbitrary_types_allowed=True)
desc: str = Field(default="") # 环境描述
roles: dict[str, SerializeAsAny[Role]] = Field(default_factory=dict, validate_default=True)
member_addrs: dict[Role, Set] = Field(default_factory=dict, exclude=True)
history: str = "" # For debug
context: Context = Field(default_factory=Context, exclude=True)

View file

@ -0,0 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Desc :

View file

@ -0,0 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Desc :

View file

@ -0,0 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Desc :

View file

@ -0,0 +1,37 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Desc : the unittest of ExtEnv&Env
import pytest
from metagpt.environment.base_env import Env, mark_as_writeable, mark_as_readable
from metagpt.environment.api.env_api import EnvAPIAbstract
class ForTestEnv(Env):
value: int = 0
@mark_as_readable
def read_api_no_parms(self):
return self.value
@mark_as_readable
def read_api(self, a: int, b: int):
return a + b
@mark_as_writeable
def write_api(self, a: int, b: int):
self.value = a + b
def test_ext_env():
env = ForTestEnv()
assert len(env.read_api_registry) == 2
assert len(env.write_api_registry) == 1
assert env.step(EnvAPIAbstract(api_name="write_api", kwargs={"a": 5, "b": 10})) == 15
with pytest.raises(ValueError):
env.observe("not_exist_api")
assert env.observe("read_api_no_parms") == 15
assert env.observe(EnvAPIAbstract(api_name="read_api", kwargs={"a": 5, "b": 5})) == 10

View file

@ -0,0 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Desc :