mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-05 14:55:18 +02:00
change research assistant to experimenter
This commit is contained in:
parent
e0cbbf82f4
commit
25299e1f12
5 changed files with 13 additions and 17 deletions
|
|
@ -1,3 +1,3 @@
|
|||
datasets_dir: "path/to/datasets" # path to the datasets directory
|
||||
work_dir: ../../workspace # path to the workspace directory
|
||||
work_dir: ../../../workspace # path to the workspace directory
|
||||
role_dir: storage/SELA # path to the role directory
|
||||
|
|
@ -60,7 +60,7 @@ def async_timeout():
|
|||
return decorator
|
||||
|
||||
|
||||
class ResearchAssistant(DataInterpreter):
|
||||
class Experimenter(DataInterpreter):
|
||||
node_id: str = "0"
|
||||
start_task_id: int = 1
|
||||
state_saved: bool = False
|
||||
|
|
@ -78,7 +78,7 @@ class ResearchAssistant(DataInterpreter):
|
|||
self.planner.plan.task_map[str(self.start_task_id)].instruction = new_instruction
|
||||
self.remap_tasks()
|
||||
|
||||
def update_til_start_task(self, role: ResearchAssistant, backward: bool = True):
|
||||
def update_til_start_task(self, role: Experimenter, backward: bool = True):
|
||||
if backward:
|
||||
# make sure the previous task instructions are matched
|
||||
assert (
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from metagpt.ext.sela.experimenter import ResearchAssistant
|
||||
from metagpt.ext.sela.experimenter import Experimenter
|
||||
from metagpt.ext.sela.insights.instruction_generator import InstructionGenerator
|
||||
from metagpt.ext.sela.runner.runner import Runner
|
||||
from metagpt.ext.sela.utils import get_exp_pool_path
|
||||
|
|
@ -34,9 +34,7 @@ class RandomSearchRunner(Runner):
|
|||
|
||||
results = []
|
||||
for i in range(self.args.num_experiments):
|
||||
di = ResearchAssistant(
|
||||
node_id=str(i), use_reflection=self.args.reflection, role_timeout=self.args.role_timeout
|
||||
)
|
||||
di = Experimenter(node_id=str(i), use_reflection=self.args.reflection, role_timeout=self.args.role_timeout)
|
||||
di.role_dir = f"{di.role_dir}_{self.args.task}"
|
||||
requirement = user_requirement + EXPS_PROMPT.format(experience=exps[i])
|
||||
print(requirement)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import numpy as np
|
|||
import pandas as pd
|
||||
|
||||
from metagpt.ext.sela.evaluation.evaluation import evaluate_score
|
||||
from metagpt.ext.sela.experimenter import ResearchAssistant
|
||||
from metagpt.ext.sela.experimenter import Experimenter
|
||||
from metagpt.ext.sela.search.tree_search import create_initial_state
|
||||
from metagpt.ext.sela.utils import DATA_CONFIG, save_notebook
|
||||
|
||||
|
|
@ -83,9 +83,7 @@ class Runner:
|
|||
results = []
|
||||
|
||||
for i in range(self.args.num_experiments):
|
||||
di = ResearchAssistant(
|
||||
node_id="0", use_reflection=self.args.reflection, role_timeout=self.args.role_timeout
|
||||
)
|
||||
di = Experimenter(node_id="0", use_reflection=self.args.reflection, role_timeout=self.args.role_timeout)
|
||||
score_dict = await self.run_di(di, user_requirement, run_idx=i)
|
||||
results.append(
|
||||
{"idx": i, "score_dict": score_dict, "user_requirement": user_requirement, "args": vars(self.args)}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ from metagpt.ext.sela.data.dataset import (
|
|||
get_split_dataset_path,
|
||||
)
|
||||
from metagpt.ext.sela.evaluation.evaluation import evaluate_score
|
||||
from metagpt.ext.sela.experimenter import ResearchAssistant, TimeoutException
|
||||
from metagpt.ext.sela.experimenter import Experimenter, TimeoutException
|
||||
from metagpt.ext.sela.insights.instruction_generator import InstructionGenerator
|
||||
from metagpt.ext.sela.utils import get_exp_pool_path, load_execute_notebook, mcts_logger
|
||||
from metagpt.tools.tool_recommend import ToolRecommender
|
||||
|
|
@ -44,9 +44,9 @@ def initialize_di_root_node(state: dict, reflection: bool = True):
|
|||
reflection (bool, optional): Whether to use reflection. Defaults to True.
|
||||
|
||||
Returns:
|
||||
tuple: A tuple containing the ResearchAssistant role and the root Node.
|
||||
tuple: A tuple containing the Experimenter role and the root Node.
|
||||
"""
|
||||
role = ResearchAssistant(
|
||||
role = Experimenter(
|
||||
node_id="0",
|
||||
start_task_id=state["start_task_id"],
|
||||
use_reflection=reflection,
|
||||
|
|
@ -204,14 +204,14 @@ class Node:
|
|||
role_dict["tool_recommender"] = ToolRecommender()
|
||||
elif isinstance(role_dict.get("tool_recommender", {}).get("tools"), dict):
|
||||
role_dict["tool_recommender"]["tools"] = list(role_dict["tool_recommender"]["tools"].keys())
|
||||
role = ResearchAssistant(**role_dict)
|
||||
role = Experimenter(**role_dict)
|
||||
if self.parent is not None: # TODO: Check this
|
||||
parent_role = self.parent.load_role()
|
||||
role.update_til_start_task(parent_role, backward=False)
|
||||
role.remap_tasks()
|
||||
return role
|
||||
|
||||
def save_new_role(self, role: ResearchAssistant):
|
||||
def save_new_role(self, role: Experimenter):
|
||||
role.node_id = self.id
|
||||
role.start_task_id = self.state["start_task_id"]
|
||||
role.state_saved = False
|
||||
|
|
@ -268,7 +268,7 @@ class Node:
|
|||
self.get_and_move_predictions("test")
|
||||
return score_dict
|
||||
|
||||
async def run_node(self, role: ResearchAssistant = None):
|
||||
async def run_node(self, role: Experimenter = None):
|
||||
if self.is_terminal() and role is not None:
|
||||
if role.state_saved:
|
||||
return self.raw_reward
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue