Spaces:
Runtime error
Runtime error
| from Component import * | |
| class State: | |
| """ | |
| Sub-scenes of role activities, responsible for storing the tasks that each role needs to do | |
| """ | |
| def __init__(self, **kwargs): | |
| self.next_states = {} | |
| self.name = kwargs["name"] | |
| self.environment_prompt = ( | |
| kwargs["environment_prompt"] if "environment_prompt" in kwargs else "" | |
| ) | |
| self.roles = kwargs["roles"] if "roles" in kwargs else (list(kwargs["agent_states"].keys()) if "agent_states" in kwargs else [0]) | |
| if len(self.roles) == 0: | |
| self.roles = [0] | |
| self.begin_role = ( | |
| kwargs["begin_role"] if "begin_role" in kwargs else self.roles[0] | |
| ) | |
| self.begin_query = kwargs["begin_query"] if "begin_query" in kwargs else None | |
| self.is_begin = True | |
| self.summary_prompt = ( | |
| kwargs["summary_prompt"] if "summary_prompt" in kwargs else None | |
| ) | |
| self.current_role = self.begin_role | |
| self.components = ( | |
| self.init_components(kwargs["agent_states"]) | |
| if "agent_states" in kwargs | |
| else {} | |
| ) | |
| self.index = ( | |
| self.roles.index(self.begin_role) if self.begin_role in self.roles else 0 | |
| ) | |
| self.chat_nums = 0 | |
| def init_components(self, agent_states_dict: dict): | |
| agent_states = {} | |
| for role, components in agent_states_dict.items(): | |
| component_dict = {} | |
| for component, component_args in components.items(): | |
| if component: | |
| # "role" "style" | |
| if component == "style": | |
| component_dict["style"] = StyleComponent(component_args["role"]) | |
| # "task" | |
| elif component == "task": | |
| component_dict["task"] = TaskComponent(component_args["task"]) | |
| # "rule" | |
| elif component == "rule": | |
| component_dict["rule"] = RuleComponent(component_args["rule"]) | |
| # "demonstration" | |
| elif component == "demonstrations": | |
| component_dict["demonstrations"] = DemonstrationComponent( | |
| component_args["demonstrations"] | |
| ) | |
| # "output" | |
| elif component == "output": | |
| component_dict["output"] = OutputComponent( | |
| component_args["output"] | |
| ) | |
| elif component == "last": | |
| component_dict["last"] = LastComponent( | |
| component_args["last_prompt"] | |
| ) | |
| # "demonstrations" | |
| elif component == "cot": | |
| component_dict["cot"] = CoTComponent( | |
| component_args["demonstrations"] | |
| ) | |
| elif component == "CustomizeComponent": | |
| component_dict["CustomizeComponent"] = CustomizeComponent( | |
| component_args["template"], component_args["keywords"] | |
| ) | |
| elif component == "system" : | |
| component_dict["system"] = SystemComponent( | |
| component_args["system_prompt"] | |
| ) | |
| # =================================================================================# | |
| # "output" | |
| elif component == "StaticComponent": | |
| component_dict["StaticComponent"] = StaticComponent( | |
| component_args["output"] | |
| ) | |
| # "top_k" "type" "knowledge_base" "system_prompt" "last_prompt" | |
| elif component == "KnowledgeBaseComponent": | |
| component_dict["tool"] = KnowledgeBaseComponent( | |
| component_args["top_k"], | |
| component_args["type"], | |
| component_args["knowledge_path"], | |
| ) | |
| elif component == "CategoryRequirementsComponent": | |
| component_dict[ | |
| "CategoryRequirementsComponent" | |
| ] = CategoryRequirementsComponent( | |
| component_args["information_path"] | |
| ) | |
| elif component == "FunctionComponent": | |
| component_dict["FunctionComponent"] = FunctionComponent(component_args[""]) | |
| # "short_memory_extract_words" "long_memory_extract_words" "system_prompt" "last_prompt" | |
| elif component == "ExtractComponent": | |
| component_dict["ExtractComponent"] = ExtractComponent( | |
| component_args["extract_words"], | |
| component_args["system_prompt"], | |
| component_args["last_prompt"], | |
| ) | |
| elif component == "WebSearchComponent": | |
| component_dict["WebSearchComponent"] = WebSearchComponent( | |
| component_args["engine_name"], component_args["api"] | |
| ) | |
| elif component == "WebCrawlComponent": | |
| component_dict["WebCrawlComponent"] = WebCrawlComponent( | |
| component_args["name"] | |
| ) | |
| elif component == "CodeComponent": | |
| component_dict["CodeComponent"] = CodeComponent( | |
| component_args["file_name"], component_args["keyword"] | |
| ) | |
| # ==================================================== | |
| else: | |
| continue | |
| agent_states[role] = component_dict | |
| return agent_states | |