1
0
forked from erp-dev/erp

fix: limit param for tiia(tencent)

This commit is contained in:
2026-01-20 17:45:09 +08:00
parent c170381383
commit a5e3312d5c
4 changed files with 134 additions and 0 deletions

View File

@@ -39,11 +39,39 @@ class TiiaSearchImageView(APIView):
# - imageBase64
image_url = request.data.get('imageUrl')
image_base64 = request.data.get('imageBase64')
limit = request.data.get('limit', None)
offset = request.data.get('offset', None)
match_threshold = request.data.get('matchThreshold', None)
try:
if limit is not None and str(limit).strip() != '':
limit = int(limit)
# TencentCloud SearchImage: default 10, max 100
if limit <= 0 or limit > 100:
raise ValueError('limit 必须在 1~100 之间')
else:
limit = None
if offset is not None and str(offset).strip() != '':
offset = int(offset)
if offset < 0:
raise ValueError('offset 必须 >= 0')
else:
offset = None
if match_threshold is not None and str(match_threshold).strip() != '':
match_threshold = int(match_threshold)
if match_threshold < 0 or match_threshold > 100:
raise ValueError('matchThreshold 必须在 0~100 之间')
else:
match_threshold = None
limiter = SimpleRateLimiter(qps=float(getattr(settings, 'TENCENTCLOUD_TIIA_QPS', 10)))
resp = search_image_url_in_tencent_tiia(
image_url=str(image_url or '') if image_url is not None else None,
image_base64=str(image_base64 or '') if image_base64 is not None else None,
limit=limit,
offset=offset,
match_threshold=match_threshold,
rate_limiter=limiter,
)
return Response(resp, status=status.HTTP_200_OK)