zhangyong 3 months ago
parent
commit
f85cb78839
4 changed files with 28 additions and 19 deletions
  1. 9 7
      docker-compose.yml
  2. 7 0
      product.env
  3. 8 0
      sh/select.sh
  4. 4 12
      workers/consumption_work.py

+ 9 - 7
docker-compose.yml

@@ -11,17 +11,19 @@ services:
     networks:
       - supply_net
     entrypoint: "python /app/workers/select_work.py"
-  worker2:
-    depends_on:
-      - worker2
+  consumption:
     image: supply_job
-    container_name: supply_worker2
     restart: unless-stopped
-    environment:
-      - ENV=prod
+    env_file:
+      - product.env
+    volumes:
+      - ./sh:/app/sh
+      - /var/run/docker.sock:/var/run/docker.sock:ro
     networks:
       - supply_net
-    entrypoint: "python /app/workers/consumption_work.py"
+    deploy:
+      replicas: 2
+    entrypoint: sh /app/sh/select.sh
 networks:
   google_net:
     name: supply_net

+ 7 - 0
product.env

@@ -0,0 +1,7 @@
+ENV=prod
+
+GEMINI_API_KEY_1=AIzaSyCTFPsbSfESF0Xybm8_qz7st_SH5E7wsdg
+GEMINI_API_KEY_2=AIzaSyAJ8kUcEXRu37SuNx2w5qllaowMcUoPhoU
+GEMINI_API_KEY_3=AIzaSyC-2Es4bk1uE-6u3lW5AOQuGqXWNzb92eQ
+GEMINI_API_KEY_4=AIzaSyD6R8tIOO11yh6WOXVQMBA2wzSZiREGUrA
+GEMINI_API_KEY_5=AIzaSyAwGqthDADh5NPVe3BMcOJBQkJaf0HWBuQ

+ 8 - 0
sh/select.sh

@@ -0,0 +1,8 @@
+#!/bin/sh
+
+export CONTAINER_INFO="$(curl -s --unix-socket /var/run/docker.sock http://docker/containers/$HOSTNAME/json)"
+export CONTAINER_INDEX="$(echo "$CONTAINER_INFO" | jq '.Name' | sed 's/^"\(.*\)"$/\1/' | awk -F'-' '{print $NF}')"
+echo "export GEMINI_API_KEY=$(eval echo \$"GEMINI_API_KEY_${CONTAINER_INDEX}")" >> /root/.bashrc
+. /root/.bashrc
+
+python /app/workers/consumption_work.py

+ 4 - 12
workers/consumption_work.py

@@ -1,4 +1,5 @@
 import asyncio
+import os
 import time
 from datetime import datetime
 
@@ -25,24 +26,15 @@ class ConsumptionRecommend(object):
         task = orjson.loads(task)
         logger.info(f"[处理] 获取redis数据{task}")
         video_id = task['video_id']
-        channel = task['channel']
         logger.info(f"[处理] 开始获取原视频OSS地址")
         video_path, cover_path = PQ.get_pq_oss(video_id)
         if not video_path:
             return
         logger.info(f"[处理] 获取原视频OSS地址,视频链接:{video_path},封面链接:{cover_path}")
         video_url = f"http://rescdn.yishihui.com/{video_path}"
-        if channel == "快手品类账号":
-            api_key = 'AIzaSyCTFPsbSfESF0Xybm8_qz7st_SH5E7wsdg'
-        elif channel == "抖音品类账号":
-            api_key = 'AIzaSyAJ8kUcEXRu37SuNx2w5qllaowMcUoPhoU'
-        elif channel == "抖音关键词抓取":
-            api_key = 'AIzaSyC-2Es4bk1uE-6u3lW5AOQuGqXWNzb92eQ'
-        elif channel == "快手关键词抓取":
-            api_key = 'AIzaSyD6R8tIOO11yh6WOXVQMBA2wzSZiREGUrA'
-        else:
-            api_key = 'AIzaSyAwGqthDADh5NPVe3BMcOJBQkJaf0HWBuQ'
         logger.info(f"[处理] 开始提取口播文案")
+        api_key = os.getenv("GEMINI_API_KEY")
+        logger.info(f"[处理] 使用的API_KEY:{api_key}")
         text = GoogleAI.run(api_key, video_url)
         if not text:
             logger.error(f"[处理] 提取口播文案失败")
@@ -70,7 +62,7 @@ class ConsumptionRecommend(object):
         current_time = datetime.now()
         formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
         logger.info(f"[处理] 开始写入飞书表格")
-        values = [[video_id,code_vid,new_title,channel,task["time"],task["partition"],formatted_time]]
+        values = [[video_id,code_vid,new_title,task['channel'],task["time"],task["partition"],formatted_time]]
         Feishu.insert_columns("JY4esfYvShLbTkthHEqcTw5qnsh", "qFpmD4", "ROWS", 1, 2)
         time.sleep(0.5)
         Feishu.update_values("JY4esfYvShLbTkthHEqcTw5qnsh", "qFpmD4", "A2:Z2", values)