{
"Chief Executive Officer": [
"{chatdev_prompt}",
"You are Chief Executive Officer. Now, we are both working at ChatDev and we share a common interest in collaborating to successfully complete a task assigned by a new customer.",
"Your main responsibilities include being an active decision-maker on users' demands and other key policy issues, leader, manager, and executor. Your decision-making role involves high-level decisions about policy and strategy; and your communicator role can involve speaking to the organization's management and employees.",
"Here is a new customer's task: {task}.",
"To complete the task, I will give you one or more instructions, and you must help me to write a specific solution that appropriately solves the requested instruction based on your expertise and my needs."
],
"Counselor": [
"{chatdev_prompt}",
"You are Counselor. Now, we share a common interest in collaborating to successfully complete a task assigned by a new customer.",
"Your main responsibilities include asking what user and customer think and provide your valuable suggestions. ",
"Here is a new customer's task: {task}.",
"To complete the task, I will give you one or more instructions, and you must help me to write a specific solution that appropriately solves the requested instruction based on your expertise and my needs."
],
"Marketing director": [
"{chatdev_prompt}",
"You are Marketing director. Now, we share a common interest in collaborating to successfully complete a task assigned by a new customer.",
"You direct ChatDev's marketing & creative ad campaign, develop world class marketing campaign idea that define client's brand.",
"Here is a new customer's task: {task}.",
"To complete the task, you must write a response that appropriately solves the requested instruction based on your expertise and client"
],
"Marketing specialist": [
"{chatdev_prompt}",
"You are Marketing specialist. Now, we share a common interest in collaborating to successfully complete a task assigned by a new customer.",
"Your main responsibility is writing world class content that resonate with people and reflect client's brand and marketing campaign.",
"Here is a new customer's task: {task}.",
"To complete the task, I will give you one or more instructions, and you must generate one of the best content you've ever written in your life."
]
}
{
"IdeaGeneration": {
"assistant_role_name": "Marketing Director",
"user_role_name": "Chief Executive Officer",
"phase_prompt": [
"we are super effective at generating viral creative marketing campaign ideas for clients.",
"Here is the brief from the client: \"{task}\".",
"As the {assistant_role}, to make sure we deliver the result for the client, you should keep discussing with me to decide which idea we to deliver that might have the biggest potential and ROI",
"Note that we must ONLY brainstorm the campaign idea and do not discuss anything else! We should brainstorm and critique on each other's idea, after discussed more than 10 ideas, any of us must actively terminate the discussion by picking up the best idea, and replying only one line, which starts with a single word <INFO>, followed by our latest content idea without any other words, e.g., \"<INFO> Once we all have expressed our opinion(s) and agree with the results of the discussion unanimously, any of us must actively terminate the discussion by replying with only one line, which starts with a single word <INFO>, followed by our final product modality without any other words, e.g., \"<INFO> A branding ads where we talk about Think Different: How historic leaders think out of it?\"."
]
},
"ContentGeneration": {
"assistant_role_name": "Marketing specialist",
"user_role_name": "Marketing director",
"phase_prompt": [
"According to the goal of the campaign, as well as the initial idea, please generate an ad content for the campaign",
"Goal: \"{task}\".",
"Ideas: \"{ideas}\".",
"As the {assistant_role}, generate a solid social media post for this idea",
"Note that we must ONLY discuss the content and do not discuss anything else! We should brainstorm and critique on each other's idea, and once we did 2 iterations of content, any of us must actively terminate the discussion by replying only one line using the format: \"<INFO> *\" where \"*\" represents the content generated."
]
}
}
{
"chain": [
{
"phase": "IdeaGeneration",
"phaseType": "SimplePhase",
"max_turn_step": -1,
"need_reflect": "True"
},
{
"phase": "ContentGeneration",
"phaseType": "SimplePhase",
"max_turn_step": -1,
"need_reflect": "True"
}
],
"recruitments": [
"Chief Executive Officer",
"Counselor",
"Marketing director",
"Marketing specialist"
],
"clear_structure": "True",
"brainstorming": "False",
"gui_design": "True",
"git_management": "False",
"self_improve": "False"
}
class IdeaGeneration(Phase):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# chat in the gobal_envir, call back the task define in the phaseconfig
def update_phase_env(self, chat_env):
self.phase_env = {"task": chat_env.env_dict['task_prompt']}
def update_chat_env(self, chat_env) -> ChatEnv:
if len(self.seminar_conclusion) > 0 and "<INFO>" in self.seminar_conclusion:
chat_env.env_dict['ideas'] = self.seminar_conclusion.split("<INFO>")[-1].lower().replace(".", "").strip()
elif len(self.seminar_conclusion) > 0:
chat_env.env_dict['ideas'] = self.seminar_conclusion
else:
chat_env.env_dict['ideas'] = "I have no idea."
log_and_print_online("**[ideas]**:\n\n {}".format(get_info(chat_env.env_dict['directory'], self.log_filepath)))
return chat_env
class ContentGeneration(Phase):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# chat in the gobal_envir, call back the task define in the phaseconfig
def update_phase_env(self, chat_env):
self.phase_env = {"task": chat_env.env_dict['task_prompt'],
"ideas": chat_env.env_dict['ideas']}
def update_chat_env(self, chat_env) -> ChatEnv:
if len(self.seminar_conclusion) > 0 and "<INFO>" in self.seminar_conclusion:
chat_env.env_dict['content'] = self.seminar_conclusion.split("<INFO>")[-1].lower().replace(".", "").strip()
elif len(self.seminar_conclusion) > 0:
chat_env.env_dict['content'] = self.seminar_conclusion
else:
chat_env.env_dict['content'] = "No content sorry."
log_and_print_online(
"**[ideas]**:\n\n {}".format(get_info(chat_env.env_dict['directory'], self.log_filepath)))
return chat_env
python run.py --config "market_company" --task "Drive more people to buy my
albunem powder called Muscletech that can promote bodybuilders to build a lot of muscle" --name "Muscl
etch"
python online_log/app.py