From ee695e75119dd0ecafdd9938f5c9c9c15419ec57 Mon Sep 17 00:00:00 2001 From: zhh Date: Thu, 27 Nov 2025 11:09:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8Ditem?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=9B=9E=E8=B0=83=E5=8F=82=E6=95=B0=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChatbotAgent/core/stylist_agent_server.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/server/ChatbotAgent/core/stylist_agent_server.py b/app/server/ChatbotAgent/core/stylist_agent_server.py index 41bea62..88901ca 100644 --- a/app/server/ChatbotAgent/core/stylist_agent_server.py +++ b/app/server/ChatbotAgent/core/stylist_agent_server.py @@ -424,11 +424,14 @@ class AsyncStylistAgent: # 3. 检查终止条件 if gemini_data.get('action') == 'stop': - response_data['path'] = minio_path - response_data['items'].append({"item_id": item_id, "category": item_category}) - response_data['status'] = "ok" - response = post_request(url=url, data=json.dumps(response_data), headers=headers) - logger.info(f"request data :{response_data} | JAVA callback info -> status:{response.status_code} | message:{response.text}") + if is_duplicate_by_key(response_data['items'], {"item_id": item_id, "category": item_category}): + print("重复(按item_id判断),不插入") + else: + response_data['path'] = minio_path + response_data['items'].append({"item_id": item_id, "category": item_category}) + response_data['status'] = "ok" + response = post_request(url=url, data=json.dumps(response_data), headers=headers) + logger.info(f"request data :{response_data} | JAVA callback info -> status:{response.status_code} | message:{response.text}") # 根据stylist要求随机增加配饰 3-4个配饰 new_item = await self._get_random_accessories(self.style_accessories_guide, len(self.outfit_items)) @@ -540,3 +543,11 @@ class AsyncStylistAgent: gcs_uri = f"gs://{bucket_name}/{blob_name}" return gcs_uri + + +def is_duplicate_by_key(data, target_item): + """基于item_id快速判断重复""" + # 提取所有item_id到集合 + existing_ids = {item['item_id'] for item in data} + # 判断目标item_id是否在集合中 + return target_item['item_id'] in existing_ids