|
@@ -2,7 +2,11 @@
|
|
@author: luojunhui
|
|
@author: luojunhui
|
|
"""
|
|
"""
|
|
import json
|
|
import json
|
|
|
|
+import time
|
|
|
|
|
|
|
|
+from uuid import uuid4
|
|
|
|
+
|
|
|
|
+from applications.aliyunLog import AliyunArticleLog
|
|
from applications.functions import ArticleRank
|
|
from applications.functions import ArticleRank
|
|
from applications.functions import title_sim_v2_by_list
|
|
from applications.functions import title_sim_v2_by_list
|
|
from applications.functions import get_article_title_url_list
|
|
from applications.functions import get_article_title_url_list
|
|
@@ -44,6 +48,8 @@ class AccountArticleRank(object):
|
|
self.accountId = None
|
|
self.accountId = None
|
|
self.params = params
|
|
self.params = params
|
|
self.mysql_client = mysql_client
|
|
self.mysql_client = mysql_client
|
|
|
|
+ self.request_id = "alg-{}-{}".format(uuid4(), int(time.time()))
|
|
|
|
+ self.logger = AliyunArticleLog(request_id=self.request_id, alg="ArticleRank")
|
|
|
|
|
|
async def check_params(self):
|
|
async def check_params(self):
|
|
"""
|
|
"""
|
|
@@ -57,8 +63,11 @@ class AccountArticleRank(object):
|
|
self.strategy = self.params["strategy"]
|
|
self.strategy = self.params["strategy"]
|
|
self.publishNum = self.params["publishNum"]
|
|
self.publishNum = self.params["publishNum"]
|
|
self.publishArticleList = self.params["publishArticleList"]
|
|
self.publishArticleList = self.params["publishArticleList"]
|
|
- # self.title_list = [i["title"] for i in self.publishArticleList]
|
|
|
|
- # self.content_list = [i["content"] for i in self.publishArticleList]
|
|
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1001",
|
|
|
|
+ msg="参数校验成功",
|
|
|
|
+ data=self.params
|
|
|
|
+ )
|
|
return None
|
|
return None
|
|
except Exception as e:
|
|
except Exception as e:
|
|
response = {
|
|
response = {
|
|
@@ -66,6 +75,11 @@ class AccountArticleRank(object):
|
|
"info": "params check failed, params : {} is not correct".format(e),
|
|
"info": "params check failed, params : {} is not correct".format(e),
|
|
"code": 0,
|
|
"code": 0,
|
|
}
|
|
}
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1002",
|
|
|
|
+ msg="参数校验失败--{}".format(e),
|
|
|
|
+ data=self.params
|
|
|
|
+ )
|
|
return response
|
|
return response
|
|
|
|
|
|
async def basic_rank(self):
|
|
async def basic_rank(self):
|
|
@@ -145,9 +159,17 @@ class AccountArticleRank(object):
|
|
ranked_3 = sorted(ranked_3, key=lambda x:x['score'], reverse=True)
|
|
ranked_3 = sorted(ranked_3, key=lambda x:x['score'], reverse=True)
|
|
else:
|
|
else:
|
|
ranked_3 = []
|
|
ranked_3 = []
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1004",
|
|
|
|
+ msg="去重排序完成",
|
|
|
|
+ data={
|
|
|
|
+ "rank1": ranked_1,
|
|
|
|
+ "rank2": ranked_2,
|
|
|
|
+ "rank3": ranked_3
|
|
|
|
+ }
|
|
|
|
+ )
|
|
return ranked_1, ranked_2, ranked_3
|
|
return ranked_1, ranked_2, ranked_3
|
|
|
|
|
|
-
|
|
|
|
async def rank_v1(self):
|
|
async def rank_v1(self):
|
|
"""
|
|
"""
|
|
Rank Version 1
|
|
Rank Version 1
|
|
@@ -155,8 +177,6 @@ class AccountArticleRank(object):
|
|
"""
|
|
"""
|
|
try:
|
|
try:
|
|
ranked_1, ranked_2, ranked_3 = await self.basic_rank()
|
|
ranked_1, ranked_2, ranked_3 = await self.basic_rank()
|
|
- # 还要全局去重
|
|
|
|
-
|
|
|
|
try:
|
|
try:
|
|
L = []
|
|
L = []
|
|
if ranked_1:
|
|
if ranked_1:
|
|
@@ -181,6 +201,11 @@ class AccountArticleRank(object):
|
|
"publishNum": self.publishNum,
|
|
"publishNum": self.publishNum,
|
|
"rank_list": L[:self.publishNum],
|
|
"rank_list": L[:self.publishNum],
|
|
}
|
|
}
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code=1006,
|
|
|
|
+ msg="rank successfully",
|
|
|
|
+ data=result
|
|
|
|
+ )
|
|
response = {"status": "Rank Success", "data": result, "code": 1}
|
|
response = {"status": "Rank Success", "data": result, "code": 1}
|
|
except Exception as e:
|
|
except Exception as e:
|
|
result = {
|
|
result = {
|
|
@@ -191,8 +216,12 @@ class AccountArticleRank(object):
|
|
"publishNum": self.publishNum,
|
|
"publishNum": self.publishNum,
|
|
"rank_list": self.publishArticleList[: self.publishNum],
|
|
"rank_list": self.publishArticleList[: self.publishNum],
|
|
}
|
|
}
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code=1007,
|
|
|
|
+ msg="rank failed because of {}".format(e),
|
|
|
|
+ data=result
|
|
|
|
+ )
|
|
response = {"status": "Rank Fail", "data": result, "code": 1}
|
|
response = {"status": "Rank Fail", "data": result, "code": 1}
|
|
-
|
|
|
|
return response
|
|
return response
|
|
except:
|
|
except:
|
|
result = {"code": 2, "info": "account is not exist"}
|
|
result = {"code": 2, "info": "account is not exist"}
|
|
@@ -233,14 +262,34 @@ class AccountArticleRank(object):
|
|
"""
|
|
"""
|
|
match self.strategy:
|
|
match self.strategy:
|
|
case "ArticleRankV1":
|
|
case "ArticleRankV1":
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1003",
|
|
|
|
+ msg="命中排序策略1"
|
|
|
|
+ )
|
|
return await self.rank_v1()
|
|
return await self.rank_v1()
|
|
case "ArticleRankV2":
|
|
case "ArticleRankV2":
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1003",
|
|
|
|
+ msg="命中排序策略2"
|
|
|
|
+ )
|
|
return await self.rank_v2()
|
|
return await self.rank_v2()
|
|
case "ArticleRankV3":
|
|
case "ArticleRankV3":
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1003",
|
|
|
|
+ msg="命中排序策略3"
|
|
|
|
+ )
|
|
return await self.rank_v3()
|
|
return await self.rank_v3()
|
|
case "ArticleRankV4":
|
|
case "ArticleRankV4":
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1003",
|
|
|
|
+ msg="命中排序策略4"
|
|
|
|
+ )
|
|
return await self.rank_v4()
|
|
return await self.rank_v4()
|
|
case "ArticleRankV5":
|
|
case "ArticleRankV5":
|
|
|
|
+ self.logger.log(
|
|
|
|
+ code="1003",
|
|
|
|
+ msg="命中排序策略5"
|
|
|
|
+ )
|
|
return await self.rank_v5()
|
|
return await self.rank_v5()
|
|
|
|
|
|
async def deal(self):
|
|
async def deal(self):
|
|
@@ -253,6 +302,3 @@ class AccountArticleRank(object):
|
|
return error_params
|
|
return error_params
|
|
else:
|
|
else:
|
|
return await self.choose_strategy()
|
|
return await self.choose_strategy()
|
|
- # except Exception as e:
|
|
|
|
- # result = {"code": 2, "info": "account is not exist"}
|
|
|
|
- # return result
|
|
|