From 01a8a0fff6f93d46903c6c25946e636fd715fb81 Mon Sep 17 00:00:00 2001 From: Evan Chen Date: Mon, 8 Apr 2024 19:57:51 +0800 Subject: [PATCH] Solve the problem of resource duplication and solve the problem of slow recall of table structure (#1381) Co-authored-by: ChenXinye --- dbgpt/serve/agent/team/plan/planner_agent.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dbgpt/serve/agent/team/plan/planner_agent.py b/dbgpt/serve/agent/team/plan/planner_agent.py index 02bedff57..925e6f071 100644 --- a/dbgpt/serve/agent/team/plan/planner_agent.py +++ b/dbgpt/serve/agent/team/plan/planner_agent.py @@ -4,7 +4,7 @@ from pydantic import Field from dbgpt._private.config import Config from dbgpt.agent.agents.base_agent_new import ConversableAgent - +from dbgpt.agent.resource.resource_api import AgentResource from .plan_action import PlanAction CFG = Config() @@ -70,11 +70,19 @@ class PlannerAgent(ConversableAgent): } return reply_message + @staticmethod + def get_unique_resources_codes(resource: AgentResource) -> str: + return resource.name + "_" + resource.type.value + "_" + resource.value + def bind_agents(self, agents: List[ConversableAgent]) -> ConversableAgent: self.agents = agents + unique_resources = set() for agent in self.agents: if agent.resources and len(agent.resources) > 0: - self.resources.extend(agent.resources) + for resource in agent.resources: + if self.get_unique_resources_codes(resource) not in unique_resources: + unique_resources.add(self.get_unique_resources_codes(resource)) + self.resources.append(resource) return self def prepare_act_param(self) -> Optional[Dict]: