attribute 字段名规范

This commit is contained in:
zhouchengrong
2024-03-28 10:30:18 +08:00
parent 2931dc2a41
commit ddcc8b4300
297 changed files with 5098 additions and 0 deletions

0
app/api/__init__.py Normal file
View File

19
app/api/api_attribute.py Normal file
View File

@@ -0,0 +1,19 @@
import logging
from pprint import pprint
from fastapi import APIRouter
from app.schemas.attribute import AttributeModel
from app.service.attribute_recognition import const, const_debug
from app.service.attribute_recognition.service import AttributeRecognition
logger = logging.getLogger()
router = APIRouter()
@router.post("")
def attribute(request_data: AttributeModel):
service = AttributeRecognition()
response = service.attribute(const, request_data)
logger.info("test")
return {"code": 200, "message": "ok", "data": response}

View File

@@ -0,0 +1,47 @@
import logging
import time
from fastapi import APIRouter
from app.schemas.outfit_matcher import OutfitMatcher
from app.service.outfit_matcher.dataset import FashionDataset
from app.service.outfit_matcher.outfit_evaluator import OutfitMaterTypeAware
from app.service.utils.decorator import RunTime
logger = logging.getLogger()
router = APIRouter()
@RunTime
@router.post("outfit_matcher")
def outfit_matcher(request_item: OutfitMatcher):
request_item = dict(request_item)
for i in range(len(request_item['query'])):
request_item['query'][i] = dict(request_item['query'][i])
for i in range(len(request_item['database'])):
request_item['database'][i] = dict(request_item['database'][i])
# try:
fashion_dataset = FashionDataset(request_item['database'])
service = OutfitMaterTypeAware()
result = []
start_time = time.time()
for item in request_item['query']:
outfits = fashion_dataset.generate_outfit(item, request_item["topk"], request_item["max_outfits"])
scores, features = service.get_result(outfits)
# save features in databases
if request_item['is_best']:
best_outfits, best_scores = service.visualize(outfits, scores, request_item["topk"], best=True,
# output_path=os.path.join(r"E:\workspace\outfit_matcher\2024 SS Outfit", f"{item['item_name']}_best_{param['topk']}.png")
)
result.append({"outfits": best_outfits, "scores": best_scores})
else:
bad_outfits, bad_scores = service.visualize(outfits, scores, request_item["topk"], best=False,
# output_path=os.path.join(r"E:\workspace\outfit_matcher\2024 SS Outfit", f"{item['item_name']}_worst_{param['topk']}.png")
)
result.append({"outfits": bad_outfits, "scores": bad_scores})
logger.info(f"run time is : {time.time() - start_time}")
return {"message": "ok", "data": result}
# except Exception as e:
# logger.warning(e)
# return {"message": f"{e}", "data": e}

13
app/api/api_route.py Normal file
View File

@@ -0,0 +1,13 @@
from fastapi import APIRouter
from app.api import api_test
from app.api import api_outfit_matcher
from app.api import api_attribute
from app.api import api_similar_match
router = APIRouter()
router.include_router(api_test.router, tags=["test"], prefix="/test")
router.include_router(api_outfit_matcher.router, tags=["outfit_matcher"], prefix="/api/outfit_matcher")
router.include_router(api_attribute.router, tags=["attribute"], prefix="/api/attribute")
router.include_router(api_similar_match.router, tags=["similar_match"], prefix="/api/similar_match")

View File

@@ -0,0 +1,28 @@
import logging
import time
from fastapi import APIRouter
from app.schemas.similar_match import SimilarMatchMItem
from app.service.similar_match.service import SimilarMatch
from app.service.utils.decorator import RunTime
logger = logging.getLogger()
router = APIRouter()
@RunTime
@router.post("similar_match")
def similar_match(request_item: SimilarMatchMItem):
try:
if request_item.result_number <= 0:
raise KeyError("result number can't be less than 0")
service = SimilarMatch(request_item)
search_response = service.match_features()
response_data = []
for response in search_response[0]:
response_data.append(response['entity'])
return {"message": "ok", "data": response_data}
except KeyError as e:
logger.warning(str(e))
return {"message": "result number can't be less than 0", "data": []}

12
app/api/api_test.py Normal file
View File

@@ -0,0 +1,12 @@
import logging
from fastapi import APIRouter
logger = logging.getLogger()
router = APIRouter()
@router.get("")
def test():
logger.info("test")
return {"message": "ok"}