From 78670b421007a5b52f2f82d8b7a07597fbecfc44 Mon Sep 17 00:00:00 2001 From: zhh Date: Fri, 21 Nov 2025 17:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E9=9A=8F=E6=9C=BA?= =?UTF-8?q?=E6=B1=A0=E7=A7=8D=E7=B1=BB=E9=80=92=E5=87=8F=EF=BC=88=E6=8A=8A?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=9A=84=E7=B1=BB=E5=9E=8B=E4=BB=8E=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E6=B1=A0=E4=B8=AD=E5=89=94=E9=99=A4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChatbotAgent/core/stylist_agent_server.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/server/ChatbotAgent/core/stylist_agent_server.py b/app/server/ChatbotAgent/core/stylist_agent_server.py index de298ac..d07cb6e 100644 --- a/app/server/ChatbotAgent/core/stylist_agent_server.py +++ b/app/server/ChatbotAgent/core/stylist_agent_server.py @@ -20,8 +20,9 @@ logger = logging.getLogger(__name__) class AsyncStylistAgent: CATEGORY_SET = { - 'Activewear', 'Dresses', 'Outerwear', 'Pants', 'Shirts & Tops', 'Skirts', 'Suits', 'Swimwear', 'Underwear', 'Shoes', + 'Activewear', 'Dresses', 'Outerwear', 'Pants', 'Shirts & Tops', 'Skirts', 'Suits', 'Shoes', # 取消推荐配饰 + # 'Swimwear', 'Underwear', # , 'Watches', 'Shopping Totes', 'Sunglasses', 'Handbags', 'Backpacks', 'Belts', 'Hats', 'Jewelry', 'Briefcases', 'Socks', 'Neckties', 'Scarves & Shawls' } CATEGORY_SET_ALL = { @@ -310,7 +311,7 @@ class AsyncStylistAgent: stylist_results = self.local_db.query_local_db(query_embedding, i['category'], n_results=10) stylist_item += random.choices(stylist_results['metadatas'][0], k=i['count']) stylist_item_ids += [item_id['item_id'] for item_id in stylist_item] - filter_items.append({"item_group_id": {"$ne": i['category']}}) + filter_items.append({"category": {"$ne": i["category"]}}) accessories_count = 9 - item_count - len(stylist_item) @@ -318,10 +319,19 @@ class AsyncStylistAgent: if accessories_count > 4: accessories_count = 4 for i in range(accessories_count): - random_poll = self.local_db.load_filtered_ids(filter_items) # 2. 在配饰池中过滤掉已经选中的item ,然后抽两个item + random_poll = self.local_db.load_filtered_ids(filter_items) + logger.info(f"random_poll 数量: {len(random_poll)}") + item = self.local_db.random_get_accessories(random.choice(random_poll)) - filter_items.append({"item_group_id": {"$ne": item['metadatas'][0]['category']}}) + if item['metadatas'][0]['category'] in ['Shopping Totes', 'Handbags', 'Backpacks', 'Briefcases']: + filter_items.append({"category": {"$ne": "Shopping Totes"}}) + filter_items.append({"category": {"$ne": "Handbags"}}) + filter_items.append({"category": {"$ne": "Backpacks"}}) + filter_items.append({"category": {"$ne": "Briefcases"}}) + else: + filter_items.append({"category": {"$ne": item['metadatas'][0]['category']}}) + random_items.append(item['metadatas'][0]) all_items = stylist_item + random_items