diff --git a/app/api/api_outfit_matcher.py b/app/api/api_outfit_matcher.py index 2079bcb..be010c3 100644 --- a/app/api/api_outfit_matcher.py +++ b/app/api/api_outfit_matcher.py @@ -28,18 +28,43 @@ def outfit_matcher(request_item: OutfitMatcher): service = OutfitMaterTypeAware() all_items = request_item["query"] + request_item["database"] prepared_feature = {} - extracted_features = backbone_service.get_result(all_items) - data = deepcopy(all_items) # 做深拷贝 , all_items 是list 可变数组 - for i, feature in enumerate(extracted_features): - data[i]['features'] = feature - if 'mapped_cate' in data[i].keys(): - del data[i]['mapped_cate'] + # 连接milvus client = MilvusClient(uri=MILVUS_URL, token="root:Milvus", db_name="mixi") - res = client.insert(collection_name="mixi_outfit", data=data) - client.close() - for d in data: - prepared_feature[d['item_name']] = d['features'] + search_data = client.get(collection_name='mixi_outfit', ids=[item['item_name'] for item in all_items]) + + # 查询数据库,分成两批 需要过模型推理的和不需要的 + have_features_data = [] + no_have_features_data = [] + for ai in all_items: + for sd in search_data: + if ai['item_name'] == sd['item_name']: + ai['features'] = sd['features'] + if "features" not in ai.keys(): + no_have_features_data.append(ai) + else: + have_features_data.append(ai) + + if len(no_have_features_data) > 0: + extracted_features = backbone_service.get_result(no_have_features_data) + + # 准备数据 + data = deepcopy(all_items) # 做深拷贝 , all_items 是list 可变数组 + for i, feature in enumerate(extracted_features): + data[i]['features'] = feature + if 'mapped_cate' in data[i].keys(): + del data[i]['mapped_cate'] + + # 存入数据 + res = client.insert(collection_name="mixi_outfit", data=data) + # 断开连接 + client.close() + for d in data: + prepared_feature[d['item_name']] = d['features'] + + for hfd in have_features_data: + prepared_feature[hfd['item_name']] = hfd['features'] + result = [] start_time = time.time() for item in request_item['query']: diff --git a/app/core/config.py b/app/core/config.py index 1f6358c..4ba2f99 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -35,7 +35,7 @@ ATT_TRITON_PORT = "10020" MILVUS_URL = "http://10.1.1.240:19530" -DEBUG = 1 +DEBUG = 2 # service env : 1 # pycharm debug : 2