forked from erp-dev/erp
feat: search image by tencent tiia
This commit is contained in:
57
api_v1/views/tiia.py
Normal file
57
api_v1/views/tiia.py
Normal file
@@ -0,0 +1,57 @@
|
||||
"""
|
||||
Tencent Cloud TIIA simplified APIs.
|
||||
|
||||
Currently provides:
|
||||
- SearchImage (by ImageUrl) with fixed groupId/region from settings.
|
||||
"""
|
||||
|
||||
from rest_framework import status
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from api_v1.utils.tencentcloud_tiia import SimpleRateLimiter, search_image_url_in_tencent_tiia
|
||||
|
||||
|
||||
class TiiaSearchImageView(APIView):
|
||||
"""
|
||||
Tencent Cloud TIIA: SearchImage (simplified)
|
||||
|
||||
POST /api/v1/tiia/search-image/
|
||||
|
||||
Body:
|
||||
{
|
||||
"imageUrl": "https://example.com/xxx.png"
|
||||
}
|
||||
|
||||
Notes:
|
||||
- groupId/region/endpoint are configured via Django settings (TENCENTCLOUD_TIIA_*).
|
||||
- Enforces QPS using settings.TENCENTCLOUD_TIIA_QPS (default 10).
|
||||
"""
|
||||
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def post(self, request):
|
||||
image_url = (
|
||||
request.data.get('imageUrl')
|
||||
or request.data.get('ImageUrl')
|
||||
or request.data.get('image_url')
|
||||
or request.data.get('ImageURL')
|
||||
)
|
||||
try:
|
||||
limiter = SimpleRateLimiter(qps=float(getattr(settings, 'TENCENTCLOUD_TIIA_QPS', 10)))
|
||||
resp = search_image_url_in_tencent_tiia(
|
||||
image_url=str(image_url or ''),
|
||||
rate_limiter=limiter,
|
||||
)
|
||||
return Response(resp, status=status.HTTP_200_OK)
|
||||
except ValueError as e:
|
||||
return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
||||
except Exception as e:
|
||||
return Response(
|
||||
{'error': '腾讯云搜图失败', 'message': str(e)},
|
||||
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user