bug fix: add reset before code generation

bug fix: parse js code using original code
This commit is contained in:
stellahsr 2023-10-10 00:42:00 +08:00
parent a0a64e7f3b
commit e27d97ee3c
3 changed files with 11 additions and 6 deletions

View file

@ -187,6 +187,8 @@ class ActionDeveloper(Base):
return len(self._rc.news)
async def run_step(self, human_msg, system_msg, *args, **kwargs):
await self._obtain_events()
logger.info("reset before step()!")
while True:
logger.info(f"self.rollout_num_iter {self.rollout_num_iter}")
system_msg, human_msg, reward, done, info = await self.runcode_and_evaluate(human_msg, system_msg, *args,

View file

@ -132,7 +132,7 @@ class CriticReviewer(Base):
}
async def verify_task(self, human_msg, system_msg, *args, **kwargs):
success, critique = await VerifyTask().run(human_msg, system_msg, max_retries=5)
success, critique = await VerifyTask().run(human_msg, system_msg, max_retries=1)
self.perform_game_info_callback(
success, self.game_memory.update_exploration_progress
)
@ -144,8 +144,7 @@ class CriticReviewer(Base):
instruct_content="verify_task",
role=self.profile,
send_to=agent_registry.entries["skill_manager"]()._setting.name,
) # addnewskill
# TODO:if not success
)
async def _act(self) -> Message:
@ -158,7 +157,7 @@ class CriticReviewer(Base):
# 获取最新的游戏周边信息
events = await self._execute_events()
self.perform_game_info_callback(events, self.game_memory.update_chest_memory)
# logger.info(f"Execute return event is {self.game_memory.event}")
context = self.game_memory.context
task = self.game_memory.current_task
chest_observation = self.game_memory.chest_observation

View file

@ -38,10 +38,14 @@ def parse_action_response(msg: str):
retry = 3
error = None # 3 times failed return error
babel_generator = require("@babel/generator").default
while retry > 0:
try:
parsed = parse_js_code(msg)
babel = require("@babel/core")
babel_generator = require("@babel/generator").default
code_pattern = re.compile(r"```(?:javascript|js)(.*?)```", re.DOTALL)
code = "\n".join(code_pattern.findall(msg))
parsed = babel.parse(code)
# Collect func list: check if func & async
functions = []
assert len(list(parsed.program.body)) > 0, "No functions found"