ソースを参照

封装全流程api

yangzeyu 10 ヶ月 前
コミット
8513f8e9a6
4 ファイル変更77 行追加6 行削除
  1. 37 1
      api.py
  2. 36 3
      api_test.py
  3. 3 1
      utils/__init__.py
  4. 1 1
      utils/api_service.py

+ 37 - 1
api.py

@@ -3,7 +3,7 @@ from fastapi.exceptions import RequestValidationError
 from fastapi.responses import JSONResponse
 import json
 from pydantic import BaseModel
-from utils import Service
+from utils import Service, ApiService
 import uvicorn
 
 app = FastAPI()
@@ -37,6 +37,10 @@ class LogoRequest(BaseModel):
     brand_name: str                             # 判定品牌名称
     image_url: str                              # 图片链接 
     
+class JudgementRequest(BaseModel):
+    url_data: str
+    basic_data: str
+    
 @app.post("/brandanalysis/api/v1/keyword")
 async def brand_key_word_judgement(request: KeyWordRequest):
     """关键词引流判定api"""
@@ -66,5 +70,37 @@ async def logo_judgement(request: LogoRequest):
     
     return {"code": 200, "message": "success", "data": {"judgement_info": logo_judgement_res}}
 
+@app.post("/brandanalysis/api/v1/infringe_judgement")
+async def infringe_judgement(request: JudgementRequest):
+    """侵权判定全流程接口"""
+    # 先解析链接和基础数据
+    url_data = json.loads(request.url_data)
+    basic_data = json.loads(request.basic_data)
+    
+    # 关键词引流判断
+    is_keyword = ApiService.keyword_judgement(url_data, basic_data)
+    # 近似商标侵权判断
+    is_similarity_logo = ApiService.similarity_logo_judgement(url_data, basic_data)
+    # 商标1比1侵权判断
+    is_brand_1to1 = ApiService.logo_1to1_judgement(url_data, basic_data)
+    # 低价判断
+    is_low_price = ApiService.low_price_judgement(url_data, basic_data)
+    # 授权商品判断
+    is_in_authorize_sale_list = ApiService.license_judgement(url_data, basic_data)
+    
+    return {
+        'code': 200,
+        'message': 'sucess',
+        'data': {
+            'juedgement_result': {
+                'is_keyword': is_keyword,
+                'is_similarity_logo': is_similarity_logo,
+                'is_brand_1to1': is_brand_1to1,
+                'is_low_price': is_low_price,
+                'is_in_authorize_sale_list': is_in_authorize_sale_list,
+            }
+        }
+    }
+
 if __name__ == "__main__":
     uvicorn.run(app, host="0.0.0.0", port=7860)

+ 36 - 3
api_test.py

@@ -25,10 +25,43 @@ import json
 # print(response.json())
 
 
-url = "https://670813644644357-http-7860.northwest1.gpugeek.com:8443/brandanalysis/api/v1/logo"
+# url = "https://670813644644357-http-7860.northwest1.gpugeek.com:8443/brandanalysis/api/v1/logo"
+# payload = {
+#     "brand_name": "李宁",
+#     "image_url": "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/2024/12/13/131/82a925f9-14af-4be3-bf78-3262f7909482.jpg",
+# }
+# headers = {'Content-Type': 'application/json'}
+
+# response = requests.post(url, data=json.dumps(payload), headers=headers)
+# print(response.json())
+
+url = "http://172.18.1.189:7860/brandanalysis/api/v1/infringe_judgement"
+url_data = {
+    'title': '李宇休闲短裤女士运动潮流系列夏季女装裤子梭织运动裤',
+    'brand_name': '李宇',
+    'product_images': [
+        'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg',
+        'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg'  
+    ],
+    'price': 19.9
+}
+
+basic_data = {
+    'product_name': '李宇休闲短裤女士运动潮流系列夏季女装裤子梭织运动裤',
+    'brand_name': '李宁',
+    'similarity_logos': ['李宇', '李柠'],
+    'product_images': [
+        'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg',
+        'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg' 
+    ],
+    'base_price': 200,
+    'price_percent': 0.9
+        
+}
+
 payload = {
-    "brand_name": "李宁",
-    "image_url": "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/2024/12/13/131/82a925f9-14af-4be3-bf78-3262f7909482.jpg",
+    'url_data': json.dumps(url_data),
+    'basic_data': json.dumps(basic_data)
 }
 headers = {'Content-Type': 'application/json'}
 

+ 3 - 1
utils/__init__.py

@@ -1,7 +1,9 @@
 from utils.utils import image_to_base, load_image_from_url
 from utils.service import Service
+from utils.api_service import ApiService
 __all__ =[
     "image_to_base",
     "load_image_from_url",
-    "Service"
+    "Service",
+    "ApiService"
 ]

+ 1 - 1
utils/api_service.py

@@ -109,7 +109,7 @@ if __name__ == '__main__':
         'price': 199
     }
     basic_data = {
-        'product_name': '休闲短裤女士运动潮流系列夏季女装裤子梭织运动裤1',
+        'product_name': '休闲短裤女士运动潮流系列夏季女装裤子梭织运动裤',
         'brand_name': '李宁',
         'similarity_logos': ['李宇', '李柠'],
         'product_images': [