Skip to content

Commit

Permalink
chore(name): update change role name (#564)
Browse files Browse the repository at this point in the history
* update change role name

* update change role name
  • Loading branch information
lwaekfjlk authored Sep 10, 2024
1 parent b6d47ed commit cf4c995
Show file tree
Hide file tree
Showing 22 changed files with 129 additions and 152 deletions.
2 changes: 1 addition & 1 deletion configs/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ param:
base_llm: gpt-4o
domain: computer_vision
max_token_num: 512
proj_participant_num: 3
member_num: 3
related_paper_num: 10
result_path: Mixtral-8x7B
return_num: 1
Expand Down
2 changes: 1 addition & 1 deletion examples/research_town_demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from research_town.dbs import LogDB, PaperDB, ProgressDB, ResearcherDB
from research_town.engines import Engine

Role = Literal['reviewer', 'proj_leader', 'proj_participant', 'chair'] | None
Role = Literal['reviewer', 'leader', 'member', 'chair'] | None


def run_sync_experiment(
Expand Down
32 changes: 16 additions & 16 deletions examples/research_town_demo_log/ResearcherDB.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": true,
"is_leader_candidate": false,
"is_member_candidate": true,
"is_reviewer_candidate": false,
"is_chair_candidate": false
},
Expand All @@ -36,8 +36,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": false,
"is_leader_candidate": false,
"is_member_candidate": false,
"is_reviewer_candidate": true,
"is_chair_candidate": false
},
Expand All @@ -57,8 +57,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": false,
"is_leader_candidate": false,
"is_member_candidate": false,
"is_reviewer_candidate": true,
"is_chair_candidate": false
},
Expand All @@ -81,8 +81,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": false,
"is_leader_candidate": false,
"is_member_candidate": false,
"is_reviewer_candidate": false,
"is_chair_candidate": true
},
Expand All @@ -105,8 +105,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": true,
"is_leader_candidate": false,
"is_member_candidate": true,
"is_reviewer_candidate": false,
"is_chair_candidate": false
},
Expand All @@ -129,8 +129,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": true,
"is_proj_participant_candidate": true,
"is_leader_candidate": true,
"is_member_candidate": true,
"is_reviewer_candidate": true,
"is_chair_candidate": true
},
Expand All @@ -153,8 +153,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": true,
"is_leader_candidate": false,
"is_member_candidate": true,
"is_reviewer_candidate": false,
"is_chair_candidate": false
},
Expand All @@ -172,8 +172,8 @@
],
"institute": null,
"embed": null,
"is_proj_leader_candidate": false,
"is_proj_participant_candidate": false,
"is_leader_candidate": false,
"is_member_candidate": false,
"is_reviewer_candidate": true,
"is_chair_candidate": false
}
Expand Down
16 changes: 8 additions & 8 deletions research_town/agents/agent_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
)
from ..utils.role_verifier import (
chair_required,
proj_leader_required,
proj_participant_required,
leader_required,
member_required,
reviewer_required,
)
from ..utils.serializer import Serializer

Role = Literal['reviewer', 'proj_leader', 'proj_participant', 'chair']
Role = Literal['reviewer', 'leader', 'member', 'chair']


class BaseResearchAgent(object):
Expand All @@ -52,7 +52,7 @@ def assign_role(self, role: Role) -> None:
self.role = role

@beartype
@proj_participant_required
@member_required
def review_literature(
self, papers: List[Paper], domains: List[str], config: Config
) -> List[Insight]:
Expand All @@ -76,7 +76,7 @@ def review_literature(
return insights

@beartype
@proj_participant_required
@member_required
def brainstorm_idea(self, insights: List[Insight], config: Config) -> Idea:
serialized_insights = self.serializer.serialize(insights)
idea_content = brainstorm_idea_prompting(
Expand All @@ -92,7 +92,7 @@ def brainstorm_idea(self, insights: List[Insight], config: Config) -> Idea:
return Idea(content=idea_content)

@beartype
@proj_participant_required
@member_required
def discuss_idea(self, ideas: List[Idea], config: Config) -> Idea:
serialized_ideas = self.serializer.serialize(ideas)
idea_summarized = discuss_idea_prompting(
Expand All @@ -108,7 +108,7 @@ def discuss_idea(self, ideas: List[Idea], config: Config) -> Idea:
return Idea(content=idea_summarized)

@beartype
@proj_participant_required
@member_required
def write_proposal(
self, idea: Idea, papers: List[Paper], config: Config
) -> Proposal:
Expand Down Expand Up @@ -210,7 +210,7 @@ def write_meta_review(
)

@beartype
@proj_leader_required
@leader_required
def write_rebuttal(
self,
paper: Proposal,
Expand Down
2 changes: 1 addition & 1 deletion research_town/configs/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def merge_a_into_b(a: Dict[str, Any], b: Dict[str, Any]) -> None:
class ParamConfig(BaseModel):
related_paper_num: int = 10
base_llm: str = 'mistralai/Mixtral-8x7B-Instruct-v0.1'
proj_participant_num: int = 3
member_num: int = 3
reviewer_num: int = 3
domain: str = 'computer_vision'
result_path: str = 'Mixtral-8x7B'
Expand Down
4 changes: 2 additions & 2 deletions research_town/dbs/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ class Researcher(BaseDBData):
collaborators: Optional[List[str]] = Field(default=[])
institute: Optional[str] = Field(default=None)
embed: Optional[Any] = Field(default=None)
is_proj_leader_candidate: Optional[bool] = Field(default=True)
is_proj_participant_candidate: Optional[bool] = Field(default=True)
is_leader_candidate: Optional[bool] = Field(default=True)
is_member_candidate: Optional[bool] = Field(default=True)
is_reviewer_candidate: Optional[bool] = Field(default=True)
is_chair_candidate: Optional[bool] = Field(default=True)

Expand Down
4 changes: 2 additions & 2 deletions research_town/dbs/db_researcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ def transform_to_embed(self) -> None:

def reset_role_avaialbility(self) -> None:
for profile in self.data.values():
profile.is_proj_leader_candidate = True
profile.is_proj_participant_candidate = True
profile.is_leader_candidate = True
profile.is_member_candidate = True
profile.is_reviewer_candidate = True
profile.is_chair_candidate = True
self.update(pk=profile.pk, updates=profile.model_dump())
21 changes: 9 additions & 12 deletions research_town/engines/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,29 +51,26 @@ def from_start_to_proposal_writing(
self,
env: StartEnv,
) -> Dict[str, Any]:
proj_participant_num = self.config.param.proj_participant_num
proj_leader = env.proj_leader.profile
proj_participants = self.find_proj_participants(
proj_leader, proj_participant_num
)
member_num = self.config.param.member_num
leader = env.leader.profile
members = self.find_members(leader, member_num)
return {
'agent_profiles': [proj_leader] + proj_participants,
'agent_roles': ['proj_leader']
+ ['proj_participant'] * proj_participant_num,
'agent_models': [self.model_name] * (proj_participant_num + 1),
'agent_profiles': [leader] + members,
'agent_roles': ['leader'] + ['member'] * member_num,
'agent_models': [self.model_name] * (member_num + 1),
}

def from_proposal_writing_to_review_writing(
self,
env: ProposalWritingEnv,
) -> Dict[str, Any]:
reviewer_num = self.config.param.reviewer_num
proj_leader = env.proj_leader.profile
leader = env.leader.profile
reviewers = self.find_reviewers(env.proposal, reviewer_num)
chair = self.find_chair(env.proposal)
return {
'agent_profiles': [proj_leader] + reviewers + [chair],
'agent_roles': ['proj_leader'] + ['reviewer'] * reviewer_num + ['chair'],
'agent_profiles': [leader] + reviewers + [chair],
'agent_roles': ['leader'] + ['reviewer'] * reviewer_num + ['chair'],
'agent_models': [self.model_name] * (reviewer_num + 2),
'paper': env.proposal,
}
Expand Down
40 changes: 18 additions & 22 deletions research_town/engines/engine_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,12 @@ def start(self, task: str, env_name: str = 'start') -> None:

self.curr_env_name = env_name
self.curr_env = self.envs[env_name]
proj_leader = self.find_agents(
condition={}, query=task, num=1, update_fields={}
)[0]
leader = self.find_agents(condition={}, query=task, num=1, update_fields={})[0]
self.curr_env.on_enter(
time_step=self.time_step,
stop_flag=self.stop_flag,
agent_profiles=[proj_leader],
agent_roles=['proj_leader'],
agent_profiles=[leader],
agent_roles=['leader'],
agent_models=[self.model_name],
)

Expand Down Expand Up @@ -117,29 +115,27 @@ def find_agents(

return selected_agents

def set_proj_leader(self, proj_leader: Researcher) -> Researcher:
def set_leader(self, leader: Researcher) -> Researcher:
return self.find_agents(
condition={'pk': proj_leader.pk},
query=proj_leader.bio,
condition={'pk': leader.pk},
query=leader.bio,
num=1,
update_fields={
'is_proj_leader_candidate': True,
'is_proj_participant_candidate': False,
'is_leader_candidate': True,
'is_member_candidate': False,
'is_reviewer_candidate': False,
'is_chair_candidate': False,
},
)[0]

def find_proj_participants(
self, proj_leader: Researcher, proj_participant_num: int
) -> List[Researcher]:
def find_members(self, leader: Researcher, member_num: int) -> List[Researcher]:
return self.find_agents(
condition={'is_proj_participant_candidate': True},
query=proj_leader.bio,
num=proj_participant_num,
condition={'is_member_candidate': True},
query=leader.bio,
num=member_num,
update_fields={
'is_proj_leader_candidate': False,
'is_proj_participant_candidate': True,
'is_leader_candidate': False,
'is_member_candidate': True,
'is_reviewer_candidate': False,
'is_chair_candidate': False,
},
Expand All @@ -153,8 +149,8 @@ def find_reviewers(
query=paper_submission.abstract,
num=reviewer_num,
update_fields={
'is_proj_leader_candidate': False,
'is_proj_participant_candidate': False,
'is_leader_candidate': False,
'is_member_candidate': False,
'is_reviewer_candidate': True,
'is_chair_candidate': False,
},
Expand All @@ -166,8 +162,8 @@ def find_chair(self, paper_submission: Proposal) -> Researcher:
query=paper_submission.abstract,
num=1,
update_fields={
'is_proj_leader_candidate': False,
'is_proj_participant_candidate': False,
'is_leader_candidate': False,
'is_member_candidate': False,
'is_reviewer_candidate': False,
'is_chair_candidate': True,
},
Expand Down
2 changes: 1 addition & 1 deletion research_town/envs/env_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from ..dbs import LogDB, PaperDB, ProgressDB, Researcher

LogType = Union[List[Dict[str, str]], None]
Role = Literal['reviewer', 'proj_leader', 'proj_participant', 'chair'] | None
Role = Literal['reviewer', 'leader', 'member', 'chair'] | None


class BaseEnv(ABC):
Expand Down
2 changes: 1 addition & 1 deletion research_town/envs/env_end.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from .env_base import BaseEnv

LogType = Union[List[Dict[str, str]], None]
Role = Literal['reviewer', 'proj_leader', 'proj_participant', 'chair'] | None
Role = Literal['reviewer', 'leader', 'member', 'chair'] | None


class EndEnv(BaseEnv):
Expand Down
2 changes: 1 addition & 1 deletion research_town/envs/env_experiments.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from ..dbs import Experiment, ExperimentLog, LogDB, PaperDB, ProgressDB, Proposal

LogType = Union[List[Dict[str, str]], None]
Role = Literal['reviewer', 'proj_leader', 'proj_participant', 'chair'] | None
Role = Literal['reviewer', 'leader', 'member', 'chair'] | None


class ExperimentEnv:
Expand Down
Loading

0 comments on commit cf4c995

Please sign in to comment.