Explorar el Código

人群定向预估接口

liyuyi@c-top.com.cn hace 4 años
padre
commit
ff26e1f137
Se han modificado 3 ficheros con 21 adiciones y 3 borrados
  1. 15 3
      BayesCombine.py
  2. 5 0
      config/url.py
  3. 1 0
      readme.txt

+ 15 - 3
BayesCombine.py

@@ -1,3 +1,4 @@
+import json
 import yaml
 import os
 import pandas as pd
@@ -8,6 +9,9 @@ from itertools import product
 from datetime import datetime
 from statsmodels.stats.proportion import proportions_ztest
 import traceback
+import requests
+from utils.BaseClass import NpEncoder
+from config.url import estimate_people_number_url, headers
 
 import logging
 from concurrent_log import ConcurrentTimedRotatingFileHandler
@@ -172,7 +176,7 @@ class BayesCombine(object):
             out_dict['p_value'] = p_value
             out_dict['sample_size'] = self.sample_size
 
-            # TODO 调用人群预估覆盖接口,得到该组合的人群覆盖数
+            # TODO 调用人群预估覆盖接口,得到该组合的人群覆盖数 修改advertiser_id 的值 为 account_id
             # 获取该项目下在投的账号
             get_acc_sql = """select account_id from ctop_user_allocation where project_id = %s and account_status=0 limit 1""" % \
                           self.project_id
@@ -181,8 +185,16 @@ class BayesCombine(object):
             request_data = {'region': city_code_transform(out_dict.get('city')),
                             'ages_range': age_code_transform(out_dict.get('age')),
                             'gender': gender_code_transform(out_dict.get('gender')),
-                            'advertiser_id': account_id}
-            out_dict['crowd_coverage_cnt'] = 1000
+                            'advertiser_id': 9774238}
+
+            request = requests.post(url=estimate_people_number_url,
+                                    headers=headers,
+                                    data=json.dumps(request_data, cls=NpEncoder))
+            response_data = json.loads(request.text)
+            if response_data['code'] == 0:
+                out_dict['crowd_coverage_cnt'] = response_data['data'].get('audience_prediction_num')
+            else:
+                logger.error("人群预估覆盖接口调用报错,请求数据为%s,返回数据为%s" % (str(request_data), str(response_data)))
 
             out_dict['combine_estimate_prob'] = prob
             out_dict['actual_prob'] = self.actual_prob

+ 5 - 0
config/url.py

@@ -43,3 +43,8 @@ create_group_and_creative_url = (debug_url if os_env == 'dev' else product_url)
 
 # ai_target_combine 服务的接口
 target_combine_url = (dev_server_port if os_env == 'dev' else product_server_port) + 'ai_target_combine'
+
+# 定向人群预估查询
+
+estimate_people_number_url = (debug_url if os_env == 'dev' else product_url) + 'estimatePeopleNumber/getCount'
+

+ 1 - 0
readme.txt

@@ -18,6 +18,7 @@ telnet 139.186.165.84 31012
 上线的准备
 1、ctop_ai_kuaishou_unit_level_operation_record 表中 新增字段: `target_combine_id` int(11) DEFAULT NULL COMMENT '定向组合id'
 2、ctop_ai_kuaishou_unit_level_operation_record 表中 修改region 字段类型, 修改为 mediumtext 类型
+3、人群预估覆盖接口,需要提醒泽宇,把代码合并到master上,进行上到生产