diff --git a/crazy_functions/agent_fns/general.py b/crazy_functions/agent_fns/general.py index 49bc4dc..327a613 100644 --- a/crazy_functions/agent_fns/general.py +++ b/crazy_functions/agent_fns/general.py @@ -35,7 +35,11 @@ def gpt_academic_generate_oai_reply( class AutoGenGeneral(PluginMultiprocessManager): def gpt_academic_print_override(self, user_proxy, message, sender): # ⭐⭐ run in subprocess - self.child_conn.send(PipeCom("show", sender.name + "\n\n---\n\n" + message["content"])) + try: + print_msg = sender.name + "\n\n---\n\n" + message["content"] + except: + print_msg = sender.name + "\n\n---\n\n" + message + self.child_conn.send(PipeCom("show", print_msg)) def gpt_academic_get_human_input(self, user_proxy, message): # ⭐⭐ run in subprocess @@ -62,33 +66,33 @@ class AutoGenGeneral(PluginMultiprocessManager): def exe_autogen(self, input): # ⭐⭐ run in subprocess input = input.content - with ProxyNetworkActivate("AutoGen"): - code_execution_config = {"work_dir": self.autogen_work_dir, "use_docker": self.use_docker} - agents = self.define_agents() - user_proxy = None - assistant = None - for agent_kwargs in agents: - agent_cls = agent_kwargs.pop('cls') - kwargs = { - 'llm_config':self.llm_kwargs, - 'code_execution_config':code_execution_config - } - kwargs.update(agent_kwargs) - agent_handle = agent_cls(**kwargs) - agent_handle._print_received_message = lambda a,b: self.gpt_academic_print_override(agent_kwargs, a, b) - for d in agent_handle._reply_func_list: - if hasattr(d['reply_func'],'__name__') and d['reply_func'].__name__ == 'generate_oai_reply': - d['reply_func'] = gpt_academic_generate_oai_reply - if agent_kwargs['name'] == 'user_proxy': - agent_handle.get_human_input = lambda a: self.gpt_academic_get_human_input(user_proxy, a) - user_proxy = agent_handle - if agent_kwargs['name'] == 'assistant': assistant = agent_handle - try: - if user_proxy is None or assistant is None: raise Exception("用户代理或助理代理未定义") + code_execution_config = {"work_dir": self.autogen_work_dir, "use_docker": self.use_docker} + agents = self.define_agents() + user_proxy = None + assistant = None + for agent_kwargs in agents: + agent_cls = agent_kwargs.pop('cls') + kwargs = { + 'llm_config':self.llm_kwargs, + 'code_execution_config':code_execution_config + } + kwargs.update(agent_kwargs) + agent_handle = agent_cls(**kwargs) + agent_handle._print_received_message = lambda a,b: self.gpt_academic_print_override(agent_kwargs, a, b) + for d in agent_handle._reply_func_list: + if hasattr(d['reply_func'],'__name__') and d['reply_func'].__name__ == 'generate_oai_reply': + d['reply_func'] = gpt_academic_generate_oai_reply + if agent_kwargs['name'] == 'user_proxy': + agent_handle.get_human_input = lambda a: self.gpt_academic_get_human_input(user_proxy, a) + user_proxy = agent_handle + if agent_kwargs['name'] == 'assistant': assistant = agent_handle + try: + if user_proxy is None or assistant is None: raise Exception("用户代理或助理代理未定义") + with ProxyNetworkActivate("AutoGen"): user_proxy.initiate_chat(assistant, message=input) - except Exception as e: - tb_str = '```\n' + trimmed_format_exc() + '```' - self.child_conn.send(PipeCom("done", "AutoGen 执行失败: \n\n" + tb_str)) + except Exception as e: + tb_str = '```\n' + trimmed_format_exc() + '```' + self.child_conn.send(PipeCom("done", "AutoGen 执行失败: \n\n" + tb_str)) def subprocess_worker(self, child_conn): # ⭐⭐ run in subprocess diff --git a/crazy_functions/多智能体.py b/crazy_functions/多智能体.py index d2adee0..0e76f5c 100644 --- a/crazy_functions/多智能体.py +++ b/crazy_functions/多智能体.py @@ -50,14 +50,7 @@ def 多智能体终端(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_ return if model_info[llm_kwargs['llm_model']]["endpoint"] is not None: # 如果不是本地模型,加载API_KEY llm_kwargs['api_key'] = select_api_key(llm_kwargs['api_key'], llm_kwargs['llm_model']) - - # 检查当前的模型是否符合要求 - API_URL_REDIRECT = get_conf('API_URL_REDIRECT') - if len(API_URL_REDIRECT) > 0: - chatbot.append([f"处理任务: {txt}", f"暂不支持中转."]) - yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 - return - + # 尝试导入依赖,如果缺少依赖,则给出安装建议 try: import autogen