Browse Source

增加日志

zhangyong 6 months ago
parent
commit
d255b75676
1 changed files with 21 additions and 7 deletions
  1. 21 7
      job.py

+ 21 - 7
job.py

@@ -12,6 +12,7 @@ from google.generativeai.types import (File, GenerateContentResponse,
                                        HarmBlockThreshold, HarmCategory)
 from loguru import logger
 
+from common.aliyun_log import AliyunLogger
 from common.common_log import Common
 from common.feishu_data import Material
 from common.redis import SyncRedisHelper
@@ -97,7 +98,7 @@ def download_video(video_link: str) -> Optional[str]:
     return
 
 
-def upload_video(video_path: str) -> Optional[Tuple[File, str]]:
+def upload_video(video_path: str, redis_task) -> Optional[Tuple[File, str]]:
     try:
         file = genai.upload_file(path=video_path)
         while True:
@@ -107,11 +108,13 @@ def upload_video(video_path: str) -> Optional[Tuple[File, str]]:
             else:
                 return file, file.state.name
     except Exception as e:
+        AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], '',
+                             redis_task['type'], redis_task['partition'], f"[+] 上传视频失败: {e}" )
         logger.error(f'[+] 上传视频失败: {e}')
         return
 
 
-def create_model_cache() -> Optional[genai.GenerativeModel]:
+def create_model_cache(redis_task) -> Optional[genai.GenerativeModel]:
     try:
         model = genai.GenerativeModel(
             model_name='gemini-1.5-flash',
@@ -121,12 +124,14 @@ def create_model_cache() -> Optional[genai.GenerativeModel]:
         logger.info('[+] 创建缓存模型成功')
         return model
     except Exception as e:
+        AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], '',
+                              redis_task['type'], redis_task['partition'], f"[+] 视频创建缓存内容,并返回生成模型异常信息: {e}" )
         logger.error(f'视频创建缓存内容,并返回生成模型异常信息: {e}')
         Common.logger('ai').info(f'视频创建缓存内容,并返回生成模型异常信息: {e}')
         return
 
 
-def analyze_video(model: genai.GenerativeModel, google_file: File, prompt: str) -> Optional[GenerateContentResponse]:
+def analyze_video(model: genai.GenerativeModel, google_file: File, prompt: str, redis_task) -> Optional[GenerateContentResponse]:
     try:
         session = model.start_chat(history=[])
         content = {
@@ -137,8 +142,11 @@ def analyze_video(model: genai.GenerativeModel, google_file: File, prompt: str)
         }
         return session.send_message(content=content)
     except Exception as e:
+        AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], '',
+                              redis_task['type'], redis_task['partition'], f"[+] 视频处理请求失败: {e}" )
         logger.error(f'视频处理请求失败: {e}')
         Common.logger('ai').info(f'视频处理请求失败: {e}')
+
         return
 
 
@@ -156,35 +164,40 @@ def run():
         time.sleep(10)
         return
     redis_task = json.loads(redis_task)
-
     mark, prompt = Material.feishu_list()
 
     video_duration = get_video_duration(video_link=redis_task['video_path'])
     if not video_duration:
+        AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], "",
+                              redis_task['type'], redis_task['partition'], "[+] 获取视频时长失败, 跳过任务" )
         logger.error('[+] 获取视频时长失败, 跳过任务')
         return
     elif video_duration >= 600:
+        AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], "",
+                              redis_task['type'], redis_task['partition'], "[+] 视频时长超过10分钟, 跳过任务" )
         logger.error('[+] 视频时长超过10分钟, 跳过任务')
         return
 
     video_path = download_video(video_link=redis_task['video_path'])
     if not video_path:
+        AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], "",
+                              redis_task['type'], redis_task['partition'], "[+] 视频下载失败, 跳过任务" )
         logger.error(f'[+] 视频下载失败, 跳过任务')
         return
 
-    google_file, google_file_state = upload_video(video_path=video_path)
+    google_file, google_file_state = upload_video(video_path=video_path, redis_task=redis_task)
     if not google_file_state:
         return
     elif google_file_state != 'ACTIVE':
         logger.error('[+] 视频上传状态不为 ACTIVE, 跳过任务')
         return
 
-    model = create_model_cache()
+    model = create_model_cache(redis_task=redis_task)
     if isinstance(model, str):
         logger.error('[+] 创建模型失败, 跳过任务')
         return
 
-    response = analyze_video(model=model, google_file=google_file, prompt=prompt)
+    response = analyze_video(model=model, google_file=google_file, prompt=prompt, redis_task=redis_task)
     if isinstance(response, str):
         logger.error('[+] 获取模型响应失败, 跳过任务')
         return
@@ -192,6 +205,7 @@ def run():
     usage_info, text = str(response.usage_metadata).replace('\n', ', '), response.text.strip()
     logger.info(f'[+] 使用情况: {usage_info}')
     logger.info(f'[+] 模型响应结果: {text}')
+    AliyunLogger.logging( str( redis_task['video_id'] ), redis_task['title'], redis_task['video_path'], mark, redis_task['type'], redis_task['partition'], text )
 
     genai.delete_file(google_file)