Commit 90ec9a8d authored by 段英荣's avatar 段英荣

Merge branch 'user_id' into 'master'

add

See merge request !494
parents b76b0b30 a030d1d9
......@@ -303,7 +303,7 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
@bind("physical/search/pictorial_topic_sort")
def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10, sort_type=PICTORIAL_TOPIC_SORT.HOT):
def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10, sort_type=PICTORIAL_TOPIC_SORT.HOT, user_id=-1):
"""
:remark 画报排序 人气 部分
人气按照票数从大到小排序,相同票数按照图片票数更新时间由旧到新排序
......
......@@ -57,7 +57,7 @@ def get_discover_page_topic_ids(user_id, device_id, size, query_type=TopicPageTy
def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query=None,
query_type=TopicPageType.HOME_RECOMMEND, promote_topic_list=[], disable_collpase=False,
usefulrecall=-1, useful_tag_list=[], has_score= False,gray_list=[]):
usefulrecall=-1, useful_tag_list=[], has_score=False, gray_list=[]):
try:
topic_star_routing = "6"
index_type = "topic-high-star"
......@@ -261,7 +261,7 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
def get_home_recommend_pictorial_ids(user_id=-1, device_id="", size=4, gray_list=[]):
try:
if STRATEGY_TYPE.CTR_GRAY in gray_list:
pictorial_recommend_redis_key = "ctr_physical:linucb:pictorial_recommend:device_id:"+str(device_id)
pictorial_recommend_redis_key = "ctr_physical:linucb:pictorial_recommend:device_id:" + str(device_id)
else:
pictorial_recommend_redis_key = "physical:linucb:pictorial_recommend:device_id:" + str(device_id)
have_read_lin_pictorial_id_list = get_have_read_lin_pictorial_id_list(device_id, user_id,
......@@ -298,14 +298,16 @@ def get_home_recommend_pictorial_ids(user_id=-1, device_id="", size=4, gray_list
return []
def get_topic_and_pictorial_detail_for_debug(device_id = "",linucb_topic_id_list = [],rank_topic_id_list = [],linucb_pictorial_id_list = [],rank_topic_score = []):
def get_topic_and_pictorial_detail_for_debug(device_id="", linucb_topic_id_list=[], rank_topic_id_list=[],
linucb_pictorial_id_list=[], rank_topic_score=[]):
try:
linucb_tag_dict = get_device_linucb_tag(device_id,size=20,has_score=True)
linucb_tag_dict = get_device_linucb_tag(device_id, size=20, has_score=True)
linucb_topic_results = dict()
linucb_pictorial_results = dict()
rank_topic_results = dict()
if len(linucb_topic_id_list) >0:
linucb_topic_dict = TopicUtils.get_linucb_topic_info_for_debug(len(linucb_topic_id_list),linucb_topic_list=linucb_topic_id_list)
if len(linucb_topic_id_list) > 0:
linucb_topic_dict = TopicUtils.get_linucb_topic_info_for_debug(len(linucb_topic_id_list),
linucb_topic_list=linucb_topic_id_list)
linucb_topic_results = dict()
if len(linucb_topic_dict) > 0:
# num = 1
......@@ -321,11 +323,13 @@ def get_topic_and_pictorial_detail_for_debug(device_id = "",linucb_topic_id_list
{"id": edit_tag, "score": linucb_tag_dict[edit_tag]["score"],
"name": linucb_tag_dict[edit_tag]["name"]})
else:
edit_tag_name_score_list.append({"id": edit_tag, "score": 0, "name": edit_tag_List_dict[edit_tag]})
linucb_topic_results.update({str(topic_id):{"id":topic_id,"content_level":content_level,"edit_tags":edit_tag_name_score_list}})
edit_tag_name_score_list.append(
{"id": edit_tag, "score": 0, "name": edit_tag_List_dict[edit_tag]})
linucb_topic_results.update({str(topic_id): {"id": topic_id, "content_level": content_level,
"edit_tags": edit_tag_name_score_list}})
logging.info("linucb_topic:{}".format(linucb_topic_results))
# num += 1
if len(rank_topic_id_list) >0:
if len(rank_topic_id_list) > 0:
rank_topic_dict = TopicUtils.get_linucb_topic_info_for_debug(len(rank_topic_id_list),
linucb_topic_list=rank_topic_id_list)
rank_topic_results = dict()
......@@ -334,10 +338,10 @@ def get_topic_and_pictorial_detail_for_debug(device_id = "",linucb_topic_id_list
for i in range(len(rank_topic_id_list)):
topic_id = rank_topic_id_list[i]
score = rank_topic_score[i]
rank_topic_results.update({str(topic_id): {"id": topic_id, "rank":score}})
rank_topic_results.update({str(topic_id): {"id": topic_id, "rank": score}})
# num += 1
logging.info("rank_topic:{}".format(rank_topic_results))
if len(linucb_pictorial_id_list) >0:
if len(linucb_pictorial_id_list) > 0:
if len(linucb_pictorial_id_list) > 0:
linucb_pictorial_dict = TopicUtils.get_linucb_pictorial_info_for_debug(len(linucb_pictorial_id_list),
linucb_pictorial_list=linucb_pictorial_id_list)
......@@ -355,17 +359,19 @@ def get_topic_and_pictorial_detail_for_debug(device_id = "",linucb_topic_id_list
{"id": edit_tag, "score": linucb_tag_dict[edit_tag]["score"],
"name": linucb_tag_dict[edit_tag]["name"]})
else:
edit_tag_name_score_list.append({"id": edit_tag, "score": 0, "name": edit_tag_List_dict[edit_tag]})
edit_tag_name_score_list.append(
{"id": edit_tag, "score": 0, "name": edit_tag_List_dict[edit_tag]})
linucb_pictorial_results.update({str(pictorial_id): {"id": pictorial_id,
"edit_tags": edit_tag_name_score_list}})
logging.info("linucb_pictorial:{}".format(linucb_pictorial_results))
# num += 1
result = { "linucb_topic":linucb_topic_results,"rank_topic":rank_topic_results,"linucb_pictorial":linucb_pictorial_results}
result = {"linucb_topic": linucb_topic_results, "rank_topic": rank_topic_results,
"linucb_pictorial": linucb_pictorial_results}
logging.info("get_topic_and_pictorial_detail_for_debug:result:{}:device_id:{}".format(result, device_id))
return result
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return { "linucb_topic":{},"rank_topic":{},"linucb_pictorial":{}}
return {"linucb_topic": {}, "rank_topic": {}, "linucb_pictorial": {}}
@bind("physical/search/query_tag_id_by_topic")
......@@ -378,8 +384,9 @@ def query_tag_id_by_topic(offset=0, size=10, topic_id_list=[], user_id=-1):
@bind("physical/search/home_recommend")
def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, size=10, query_type=TopicPageType.HOME_RECOMMEND,
promote_topic_list=[], usefulrecall=-1, useful_tag_list=[], is_debug=False,gray_list=[]):
def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, size=10,
query_type=TopicPageType.HOME_RECOMMEND,
promote_topic_list=[], usefulrecall=-1, useful_tag_list=[], is_debug=False, gray_list=[]):
"""
:remark:首页推荐,目前只推荐日记
:param session_id:
......@@ -420,7 +427,8 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
else:
if usefulrecall != -1 and len(useful_tag_list) > 0:
recommend_pictorial_ids = get_home_recommend_pictorial_ids(user_id, device_id, lin_pictorial_count, gray_list=gray_list)
recommend_pictorial_ids = get_home_recommend_pictorial_ids(user_id, device_id, lin_pictorial_count,
gray_list=gray_list)
size = size - len(recommend_pictorial_ids)
if is_debug:
has_score = True
......@@ -431,7 +439,7 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
query_type=query_type,
promote_topic_list=promote_topic_list,
usefulrecall=usefulrecall,
useful_tag_list=useful_tag_list, has_score=has_score,gray_list=gray_list)
useful_tag_list=useful_tag_list, has_score=has_score, gray_list=gray_list)
else:
has_score = False
......@@ -444,7 +452,8 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
promote_topic_list=promote_topic_list,
usefulrecall=usefulrecall,
useful_tag_list=useful_tag_list,
has_score=has_score,gray_list=gray_list)
has_score=has_score,
gray_list=gray_list)
if not is_debug:
return {"linucb_topic_ids": recommend_topic_ids, "rank_topic_ids": rank_topic_ids,
"useful_topic_ids": useful_topic_ids, "linucb_pictorial_ids": recommend_pictorial_ids}
......@@ -456,7 +465,8 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
"debug_model_data": results}
else:
recommend_pictorial_ids = get_home_recommend_pictorial_ids(user_id, device_id, lin_pictorial_count, gray_list=gray_list)
recommend_pictorial_ids = get_home_recommend_pictorial_ids(user_id, device_id, lin_pictorial_count,
gray_list=gray_list)
size = size - len(recommend_pictorial_ids)
if is_debug:
has_score = True
......@@ -467,7 +477,8 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
size=size,
query_type=query_type,
promote_topic_list=promote_topic_list,
has_score=has_score,gray_list=gray_list)
has_score=has_score,
gray_list=gray_list)
else:
has_score = False
......@@ -475,7 +486,8 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
offset=0, size=size,
query_type=query_type,
promote_topic_list=promote_topic_list,
has_score=has_score,gray_list=gray_list)
has_score=has_score,
gray_list=gray_list)
if not is_debug:
return {"linucb_topic_ids": recommend_topic_ids, "rank_topic_ids": rank_topic_ids,
......@@ -488,9 +500,10 @@ def home_recommend(device_id="", user_id=-1, offset=0, lin_pictorial_count=4, si
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
if usefulrecall != -1:
return {"linucb_topic_ids": [], "rank_topic_ids": [], "useful_topic_ids": [],"linucb_pictorial_ids": [], "debug_model_data": {}}
return {"linucb_topic_ids": [], "rank_topic_ids": [], "useful_topic_ids": [], "linucb_pictorial_ids": [],
"debug_model_data": {}}
else:
return {"linucb_topic_ids": [], "rank_topic_ids": [], "linucb_pictorial_ids": [],"debug_model_data": {}}
return {"linucb_topic_ids": [], "rank_topic_ids": [], "linucb_pictorial_ids": [], "debug_model_data": {}}
@bind("physical/search/discover_page")
......@@ -724,7 +737,7 @@ def query_topic_by_tag_aggregation(user_id, tag_id, offset, size):
@bind("physical/search/topic")
def topic_search(filters, nfilters=None, sorts_by=None, offset=0, size=10):
def topic_search(filters, nfilters=None, sorts_by=None, offset=0, size=10, user_id=-1):
"""帖子搜索。"""
try:
......@@ -766,12 +779,12 @@ def query_topic_by_user_similarity(topic_similarity_score_dict, offset=0, size=1
@bind("physical/search/clear_history_for_debug")
def clear_history(device_id=None,user_id=-1):
def clear_history(device_id=None, user_id=-1):
try:
msg = list()
redis_key_list = list()
if device_id:
redis_key_list.extend(('physical:linucb:device_id:%s','physical:home_recommend:device_id:%s:query_type:1',
redis_key_list.extend(('physical:linucb:device_id:%s', 'physical:home_recommend:device_id:%s:query_type:1',
'physical:linucb:tag_recommend:device_id:%s',
'physical:linucb:topic_recommend:device_id:%s',
'physical:linucb:pictorial_recommend:device_id:%s',
......@@ -782,7 +795,8 @@ def clear_history(device_id=None,user_id=-1):
redis_client.delete(key)
msg.append('device_id_clear')
if user_id != -1:
redis_user_key_list = ["physical:home_recommend:user_id:%s:query_type:1",'physical:home_pictorial_recommend:user_id:%s:query_type:1']
redis_user_key_list = ["physical:home_recommend:user_id:%s:query_type:1",
'physical:home_pictorial_recommend:user_id:%s:query_type:1']
for redis_key in redis_user_key_list:
key = redis_key % user_id
if redis_client.type(key) != "b'none'":
......@@ -795,7 +809,8 @@ def clear_history(device_id=None,user_id=-1):
@bind("physical/search/home_recommend_debug")
def home_recommend_debug(device_id="", user_id=-1, recommend_topic_ids = [],rank_topic_ids = [],recommend_pictorial_ids =[]):
def home_recommend_debug(device_id="", user_id=-1, recommend_topic_ids=[], rank_topic_ids=[],
recommend_pictorial_ids=[]):
"""
:remark:首页推荐,目前只推荐日记
:param session_id:
......@@ -806,7 +821,8 @@ def home_recommend_debug(device_id="", user_id=-1, recommend_topic_ids = [],rank
"""
try:
if device_id:
results = get_topic_and_pictorial_detail_for_debug(device_id,recommend_topic_ids,rank_topic_ids,recommend_pictorial_ids)
results = get_topic_and_pictorial_detail_for_debug(device_id, recommend_topic_ids, rank_topic_ids,
recommend_pictorial_ids)
return results
else:
return {}
......@@ -815,13 +831,13 @@ def home_recommend_debug(device_id="", user_id=-1, recommend_topic_ids = [],rank
return {}
def get_device_linucb_tag(device_id = None,size = 20,has_score = False):
def get_device_linucb_tag(device_id=None, size=20, has_score=False):
# {
# "lincub": [{"id": 1, "name": 名字}, {"id": 2, "name": 名字}, {"id": 3, "name": 名字}, {"id": 5, "name": 名字},
# {"id": 6, "name": 名字}, ]
# }
try:
user_feature = [1,1]
user_feature = [1, 1]
if device_id:
linucb_matrix_redis_prefix = "physical:linucb:device_id:"
redis_key = linucb_matrix_redis_prefix + str(device_id)
......@@ -829,7 +845,10 @@ def get_device_linucb_tag(device_id = None,size = 20,has_score = False):
if len(redis_linucb_tag_data_dict) == 0:
return {"linucb": []}
else:
(recommend_tag_dict,recommend_tag_set) = LinUCB.linucb_recommend_tag(device_id,redis_linucb_tag_data_dict,user_feature,list(redis_linucb_tag_data_dict.keys()))
(recommend_tag_dict, recommend_tag_set) = LinUCB.linucb_recommend_tag(device_id,
redis_linucb_tag_data_dict,
user_feature, list(
redis_linucb_tag_data_dict.keys()))
recommend_tag_list = list(recommend_tag_dict.keys())
linucb_tag_dict_list = list()
linucb_tag_dict = dict()
......@@ -846,7 +865,7 @@ def get_device_linucb_tag(device_id = None,size = 20,has_score = False):
return linucb_tag_dict_list
else:
return {"linucb":[]}
return {"linucb": []}
except:
return {"linucb": []}
......@@ -864,13 +883,13 @@ def get_edit_tag_name(tag_lst):
@bind("physical/search/device_linucb_tag_debug")
def get_device_linucb_tag2(device_id = None,size = 20,has_score = False):
def get_device_linucb_tag2(device_id=None, size=20, has_score=False):
# {
# "lincub": [{"id": 1, "name": 名字}, {"id": 2, "name": 名字}, {"id": 3, "name": 名字}, {"id": 5, "name": 名字},
# {"id": 6, "name": 名字}, ]
# }
try:
user_feature = [1,1]
user_feature = [1, 1]
if device_id:
linucb_matrix_redis_prefix = "physical:linucb:device_id:"
redis_key = linucb_matrix_redis_prefix + str(device_id)
......@@ -878,7 +897,10 @@ def get_device_linucb_tag2(device_id = None,size = 20,has_score = False):
if len(redis_linucb_tag_data_dict) == 0:
return {"linucb": []}
else:
(recommend_tag_dict,recommend_tag_set) = LinUCB.linucb_recommend_tag(device_id,redis_linucb_tag_data_dict,user_feature,list(redis_linucb_tag_data_dict.keys()))
(recommend_tag_dict, recommend_tag_set) = LinUCB.linucb_recommend_tag(device_id,
redis_linucb_tag_data_dict,
user_feature, list(
redis_linucb_tag_data_dict.keys()))
recommend_tag_list = list(recommend_tag_dict.keys())
linucb_tag_dict_list = list()
linucb_tag_dict = dict()
......@@ -889,7 +911,7 @@ def get_device_linucb_tag2(device_id = None,size = 20,has_score = False):
result_lst = []
for id, name in tag_query_results:
result_lst.append({"name": name, "score": recommend_tag_dict[str(id)]})
linucb_tag_dict = {"linucb":result_lst}
linucb_tag_dict = {"linucb": result_lst}
logging.info("physical/search/device_linucb_tag_debug:%s" % str(linucb_tag_dict))
return linucb_tag_dict
else:
......@@ -898,6 +920,6 @@ def get_device_linucb_tag2(device_id = None,size = 20,has_score = False):
return linucb_tag_dict_list
else:
return {"linucb":[]}
return {"linucb": []}
except:
return {"linucb": []}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment