Bladeren bron

推荐模型自动化更新-脚本

Joe 9 maanden geleden
bovenliggende
commit
8ae824eb0a
2 gewijzigde bestanden met toevoegingen van 26 en 14 verwijderingen
  1. 14 6
      qiaojialiang/FeishuBot.py
  2. 12 8
      qiaojialiang/handle_rov.sh

+ 14 - 6
qiaojialiang/FeishuBot.py

@@ -1,4 +1,5 @@
 import requests
+import argparse
 
 
 class FeishuBot:
@@ -14,9 +15,16 @@ class FeishuBot:
         response.raise_for_status()  # 如果响应状态码不是200,则抛出HTTPError异常
         return response.json()  # 返回JSON响应(如果需要的话)
 
-# if __name__ == '__main__':
-#     bot = FeishuBot()
-#     msg = (f'推荐模型数据更新 \n step1【校验hive数据源】【success】:\n'
-#            f'读取project.table,分区:dt= partitionDt/hh=partitionHh,数据总量:count')
-#     msg = ('1')
-#     print(bot.send_message(msg))
+
+def main():
+    parser = argparse.ArgumentParser(description='Send a message via Feishu Bot')
+    parser.add_argument('message', type=str, help='The message to send to Feishu Bot')
+    args = parser.parse_args()
+
+    bot = FeishuBot()
+    response = bot.send_message(args.message)
+    print(response)  # 打印响应内容,以便查看发送结果
+
+
+if __name__ == '__main__':
+    main()

+ 12 - 8
qiaojialiang/handle_rov.sh

@@ -55,6 +55,7 @@ while true; do
   # shellcheck disable=SC2039
   if (( current_hour > max_hour || (current_hour == max_hour && current_minute >= max_minute) )); then
     echo "最长等待时间已到,失败:${current_hour}-${current_minute}"
+    python FeishuBot.py "荐模型数据更新 \n【任务名称】:step0校验是否生产完数据\n【是否成功】:error\n【信息】:最长等待时间已到,失败:${current_hour}-${current_minute}"
     exit 1
   fi
 done
@@ -71,6 +72,7 @@ savePath:${originDataPath} \
 table:${table}
 if [ $? -ne 0 ]; then
    echo "Spark原始样本生产任务执行失败"
+   python FeishuBot.py "荐模型数据更新 \n【任务名称】:step1根据${table}生产原始数据\n【是否成功】:error\n【信息】:Spark原始样本生产任务执行失败"
    exit 1
 else
    echo "spark原始样本生产执行成功"
@@ -88,6 +90,7 @@ savePath:${valueDataPath} \
 beginStr:${begin_early_2_Str} endStr:${end_early_2_Str} repartition:1000
 if [ $? -ne 0 ]; then
    echo "Spark特征值拼接处理任务执行失败"
+   python FeishuBot.py "荐模型数据更新 \n【任务名称】:step2特征值拼接\n【是否成功】:error\n【信息】:Spark特征值拼接处理任务执行失败"
    exit 1
 else
    echo "spark特征值拼接处理执行成功"
@@ -104,13 +107,14 @@ savePath:${bucketDataPath} \
 beginStr:${begin_early_2_Str} endStr:${end_early_2_Str} repartition:1000
 if [ $? -ne 0 ]; then
    echo "Spark特征分桶处理任务执行失败"
+   python FeishuBot.py "荐模型数据更新 \n【任务名称】:step3训练数据产出\n【是否成功】:error\n【信息】:Spark特征分桶处理任务执行失败"
    exit 1
 else
    echo "spark特征分桶处理执行成功"
 fi
 
 
-# 4 对比AUC 前置对比2日模型数据 与 线上模型数据效果对比,如果2日模型优于线上,更新线上模型
+# 4 对比AUC 前置对比3日模型数据 与 线上模型数据效果对比,如果3日模型优于线上,更新线上模型
 echo "$(date +%Y-%m-%d_%H-%M-%S)----------step4------------开始对比,新:${MODEL_PATH}/${model_name}_${today_early_3}.txt,与线上online模型数据auc效果"
 $HADOOP fs -text ${bucketDataPath}/${begin_early_2_Str}/* | ${FM_HOME}/fm_predict -m ${LAST_MODEL_HOME}/model_online.txt -dim 8 -core 8 -out ${PREDICT_PATH}/${model_name}_${today}_online.txt
 $HADOOP fs -text ${bucketDataPath}/${begin_early_2_Str}/* | ${FM_HOME}/fm_predict -m ${MODEL_PATH}/${model_name}_${today_early_3}.txt -dim 8 -core 8 -out ${PREDICT_PATH}/${model_name}_${today}_new.txt
@@ -118,14 +122,14 @@ $HADOOP fs -text ${bucketDataPath}/${begin_early_2_Str}/* | ${FM_HOME}/fm_predic
 online_auc=`cat ${PREDICT_PATH}/${model_name}_${today}_online.txt | /root/sunmingze/AUC/AUC`
 if [ $? -ne 0 ]; then
    echo "推荐线上模型AUC计算失败"
-#   /root/anaconda3/bin/python ad/ad_monitor_util.py "线上模型AUC计算失败"
+   python FeishuBot.py "荐模型数据更新 \n【任务名称】:step4新旧模型AUC对比\n【是否成功】:error\n【信息】:推荐线上模型AUC计算失败"
    exit 1
 fi
 
 new_auc=`cat ${PREDICT_PATH}/${model_name}_${today}_new.txt | /root/sunmingze/AUC/AUC`
 if [ $? -ne 0 ]; then
    echo "推荐新模型AUC计算失败"
-#   /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型AUC计算失败"
+   python FeishuBot.py "荐模型数据更新 \n【任务名称】:step4新旧模型AUC对比\n【是否成功】:error\n【信息】:推荐新模型AUC计算失败${PREDICT_PATH}/${model_name}_${today}_new.txt"
    exit 1
 fi
 
@@ -150,7 +154,7 @@ if [ "$online_auc" \< "$new_auc" ]; then
     }' > ${MODEL_PATH}/${model_name}_${today_early_3}_change.txt
     if [ $? -ne 0 ]; then
        echo "新模型文件格式转换失败"
-#       /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型文件格式转换失败"
+       python FeishuBot.py "荐模型数据更新 \n【任务名称】:step4模型格式转换\n【是否成功】:error\n【信息】:新模型文件格式转换失败${MODEL_PATH}/${model_name}_${today_early_3}.txt"
        exit 1
     fi
     # 4.1.2 模型文件上传OSS
@@ -168,6 +172,7 @@ if [ "$online_auc" \< "$new_auc" ]; then
        echo "推荐模型文件至OSS成功"
     else
        echo "推荐模型文件至OSS失败"
+       python FeishuBot.py "荐模型数据更新 \n【任务名称】:step4模型推送oss\n【是否成功】:error\n【信息】:推荐模型文件至OSS失败${MODEL_PATH}/${model_name}_${today_early_3}_change.txt --- ${online_model_path}"
        exit 1
     fi
     # 4.1.3 本地保存最新的线上使用的模型,用于下一次的AUC验证
@@ -175,13 +180,12 @@ if [ "$online_auc" \< "$new_auc" ]; then
     cp -f ${MODEL_PATH}/${model_name}_${today_early_3}.txt ${LAST_MODEL_HOME}/model_online.txt
     if [ $? -ne 0 ]; then
        echo "模型备份失败"
-#       /root/anaconda3/bin/python ad/ad_monitor_util.py "模型备份失败 - 最新模型地址: ${MODEL_PATH}/${model_name}_${today_early_1}.txt"
        exit 1
     fi
-#    /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型优于线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
+    python FeishuBot.py "荐模型数据更新 \n【任务名称】:step4模型更新\n【是否成功】:success\n【信息】:新模型优于线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc},已更新${model_name}_${today_early_3}.txt模型}"
 else
     echo "新模型不如线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
-#    /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型不如线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
+    python FeishuBot.py "荐模型数据更新 \n【任务名称】:step4模型更新\n【是否成功】:success\n【信息】:新模型不如线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}}"
 fi
 
 
@@ -191,7 +195,7 @@ echo "$(date +%Y-%m-%d_%H-%M-%S)----------step5------------开始模型训练"
 $HADOOP fs -text ${bucketDataPath}/${begin_early_2_Str}/* | ${FM_HOME}/fm_train -m ${MODEL_PATH}/${model_name}_${begin_early_2_Str}.txt -dim 1,1,8 -im ${LAST_MODEL_HOME}/model_online.txt -core 8
 if [ $? -ne 0 ]; then
    echo "模型训练失败"
-#   /root/anaconda3/bin/python ad/ad_monitor_util.py "推荐模型训练失败"
+   python FeishuBot.py "荐模型数据更新 \n【任务名称】:step5模型训练\n【是否成功】:error\n【信息】:${bucketDataPath}/${begin_early_2_Str}训练失败"
    exit 1
 fi