From 56d15fd0034f066267458ee9d8d07b70727df3df Mon Sep 17 00:00:00 2001 From: Liu Zhicong Date: Tue, 19 Sep 2023 00:23:19 -0700 Subject: [PATCH] fix workflow bug, disable local LLM temporary. --- src/aios_kernel/open_ai_node.py | 2 +- src/aios_kernel/tg_tunnel.py | 26 +++++-------------- src/aios_kernel/workflow.py | 2 +- src/aios_kernel/workflow_env.py | 2 +- .../workflow_manager/workflow_manager.py | 4 +-- src/service/aios_shell/aios_shell.py | 2 +- 6 files changed, 12 insertions(+), 26 deletions(-) diff --git a/src/aios_kernel/open_ai_node.py b/src/aios_kernel/open_ai_node.py index b7c9110..6911886 100644 --- a/src/aios_kernel/open_ai_node.py +++ b/src/aios_kernel/open_ai_node.py @@ -95,7 +95,7 @@ class OpenAI_ComputeNode(ComputeNode): mode_name = task.params["model_name"] prompts = task.params["prompts"] max_token_size = task.params.get("max_token_size") - llm_inner_functions = task.params["inner_functions"] + llm_inner_functions = task.params.get("inner_functions") if max_token_size is None: max_token_size = 4000 diff --git a/src/aios_kernel/tg_tunnel.py b/src/aios_kernel/tg_tunnel.py index 55337a6..53478d2 100644 --- a/src/aios_kernel/tg_tunnel.py +++ b/src/aios_kernel/tg_tunnel.py @@ -47,23 +47,18 @@ class TelegramTunnel(AgentTunnel): super().__init__() self.is_start = False self.tg_token = tg_token - #self.bot:Bot = None - #self.update_queue = None - #self.tunnel_id = "tg_tunnel#" + self.app.bot.id + self.bot:Bot = None + self.update_queue = None async def _do_process_raw_message(self,bot: Bot, update_id: int) -> int: - """Echo the message the user sent.""" # Request updates after the last update_id updates = await bot.get_updates(offset=update_id, timeout=10, allowed_updates=Update.ALL_TYPES) for update in updates: next_update_id = update.update_id + 1 - # your bot can receive updates without messages - # and not all messages contain text if update.message and update.message.text: - # Reply to the message - #logger.info("Found message %s!", update.message.text) - await self.on_message(update) + + await self.on_message(bot,update) return next_update_id return update_id @@ -79,15 +74,8 @@ class TelegramTunnel(AgentTunnel): self.update_queue = asyncio.Queue() self.bot_updater = Updater(self.bot,update_queue=self.update_queue) - #self.app:Application = Application.builder().token(self.tg_token).build() - - #self.app.add_handler(MessageHandler(filters.TEXT, self.on_message)) async def _run_app(): - #loop = asyncio.new_event_loop() - #asyncio.set_event_loop(loop) - #self.app.run_polling(allowed_updates=Update.ALL_TYPES) - try: update_id = (await self.bot.get_updates())[0].update_id except IndexError: @@ -103,8 +91,6 @@ class TelegramTunnel(AgentTunnel): # The user has removed or blocked the bot. update_id += 1 - #self.poll_thread = threading.Thread(target=_run_app) - #self.poll_thread.start() asyncio.create_task(_run_app()) logger.warning(f"tunnel {self.tunnel_id} started.") return True @@ -129,7 +115,7 @@ class TelegramTunnel(AgentTunnel): - async def on_message(self, update: Update) -> None: + async def on_message(self, bot:Bot, update: Update) -> None: cm = ContactManager.get_instance() reomte_user_name = f"{update.effective_user.id}@telegram" #contact = cm.get_by_name(update.effective_user.username) @@ -143,7 +129,7 @@ class TelegramTunnel(AgentTunnel): agent_msg = await self.conver_tg_msg_to_agent_msg(update) agent_msg.sender = reomte_user_name self.ai_bus.register_message_handler(reomte_user_name, self._process_message) - #await context.bot.send_chat_action(chat_id=update.effective_chat.id, action="thinking") + #await bot.send_chat_action(chat_id=update.effective_chat.id, action="typing") resp_msg = await self.ai_bus.send_message(agent_msg) logger.info(f"process message {agent_msg.msg_id} from {agent_msg.sender} to {agent_msg.target}") if resp_msg is None: diff --git a/src/aios_kernel/workflow.py b/src/aios_kernel/workflow.py index 46b7507..f5f440b 100644 --- a/src/aios_kernel/workflow.py +++ b/src/aios_kernel/workflow.py @@ -126,7 +126,7 @@ class Workflow: if env_id is None: continue - remote_env = Environment.get_env_by_id(_node.get(env_id)) + remote_env = Environment.get_env_by_id(env_id) if remote_env is None: logger.error(f"Workflow load connected_env failed, env {env_id} not found!") return False diff --git a/src/aios_kernel/workflow_env.py b/src/aios_kernel/workflow_env.py index 87d2fea..4ef033b 100644 --- a/src/aios_kernel/workflow_env.py +++ b/src/aios_kernel/workflow_env.py @@ -58,7 +58,7 @@ class CalenderEnvironment(Environment): def stop(self): self.is_run = False - def get_now(self,key:str)->str: + def get_now(self)->str: now = datetime.now() formatted_time = now.strftime('%Y-%m-%d %H:%M:%S') return formatted_time diff --git a/src/component/workflow_manager/workflow_manager.py b/src/component/workflow_manager/workflow_manager.py index d3d49fe..3604327 100644 --- a/src/component/workflow_manager/workflow_manager.py +++ b/src/component/workflow_manager/workflow_manager.py @@ -22,7 +22,7 @@ class WorkflowManager: system_app_dir = AIStorage.get_instance().get_system_app_dir() user_data_dir = AIStorage.get_instance().get_myai_dir() - self.workflow_env = PackageEnvManager().get_env(f"{system_app_dir}/workflows.cfg") + self.workflow_env = PackageEnvManager().get_env(f"{system_app_dir}/workflows/workflows.cfg") self.db_file = os.path.abspath(f"{user_data_dir}/messages.db") if self.workflow_env is None: raise Exception("WorkflowManager initial failed") @@ -33,7 +33,7 @@ class WorkflowManager: async def _load_workflow_agents(self,workflow:Workflow) -> bool: for v in workflow.role_group.roles.values(): - agent = await AgentManager().get(v.agent_name) + agent = await AgentManager.get_instance().get(v.agent_name) if agent is None: logger.error(f"load agent {v.agent_name} failed!") return False diff --git a/src/service/aios_shell/aios_shell.py b/src/service/aios_shell/aios_shell.py index e5f2642..10abbd4 100644 --- a/src/service/aios_shell/aios_shell.py +++ b/src/service/aios_shell/aios_shell.py @@ -92,7 +92,7 @@ class AIOS_Shell: llama_ai_node = LocalLlama_ComputeNode() await llama_ai_node.start() - ComputeKernel.get_instance().add_compute_node(llama_ai_node) + #ComputeKernel.get_instance().add_compute_node(llama_ai_node) await ComputeKernel.get_instance().start()