zhangyong 6 tháng trước cách đây
mục cha
commit
a5041059b6
2 tập tin đã thay đổi với 17 bổ sung17 xóa
  1. 16 16
      google_ai/generativeai_video.py
  2. 1 1
      job_video_processing.py

+ 16 - 16
google_ai/generativeai_video.py

@@ -12,7 +12,7 @@ from common import Common
 class VideoAnalyzer:
     def __init__(self, api_key):
         """初始化类,配置 API 密钥和视频路径"""
-        genai.configure(api_key=api_key)
+        genai.configure( api_key=api_key )
         self.video_file = None
 
     async def process_and_delete_file(self, file_path):
@@ -28,10 +28,10 @@ class VideoAnalyzer:
     # async def download_video(self, video_url, save_directory='/Users/tzld/Desktop/google_ai_studio/path'):
 
         """从给定的视频链接下载视频并保存到指定路径"""
+        random_filename = f"{uuid.uuid4()}.mp4"
         max_retries = 3  # 最大重试次数
         for attempt in range(max_retries):
             try:
-                random_filename = f"{uuid.uuid4()}.mp4"
                 save_path = os.path.join( save_directory, random_filename )
                 # 发送 GET 请求获取视频内容
                 headers = {}
@@ -58,20 +58,20 @@ class VideoAnalyzer:
     async def upload_video(self, save_path):
         """上传视频文件并获取视频文件对象"""
         try:
+
             self.video_file = genai.upload_file(save_path)
-            await self._wait_for_processing()
+            print("upload_file 成功")
+            """等待视频文件处理完成"""
+            while self.video_file.state.name == 'PROCESSING':
+                print( '等待视频处理完成...' )
+                await asyncio.sleep( 2 )  # 使用异步睡眠代替阻塞睡眠
+                self.video_file = genai.get_file( self.video_file.name )
+            print( f'视频处理完成: {self.video_file.uri}' )
         except Exception as e:
+
             Common.logger("ai").info(f'上传视频文件并获取视频文件对象失败异常信息{e}')
             return f"上传视频文件并获取视频文件对象失败:{e}"
 
-    async def _wait_for_processing(self):
-        """等待视频文件处理完成"""
-        while self.video_file.state.name == 'PROCESSING':
-            print( '等待视频处理完成...' )
-            await asyncio.sleep(2)  # 使用异步睡眠代替阻塞睡眠
-            self.video_file = genai.get_file( self.video_file.name )
-        print( f'视频处理完成: {self.video_file.uri}' )
-
     async def create_cache(self):
         try:
             generation_config = {
@@ -106,7 +106,6 @@ class VideoAnalyzer:
                 ]
             }
             response = chat_session.send_message( message_content )
-            self.video_file.delete()
             return response
         except Exception as e:
             Common.logger("ai").info(f'视频处理请求失败:{e}')
@@ -130,15 +129,16 @@ async def main(video_path, api_key, prompt, sample_data):
         try:
             # 初始化视频分析类
             analyzer = VideoAnalyzer(api_key )
-            # for file in genai.list_files():
-            #     file.delete()
-            #     print( "  ", file.name )
+            for file in genai.list_files():
+                print( "  ", file.name )
+                file.delete()
+
             duration = analyzer.video_duration( video_path )
             print( f"视频时长为{duration}秒" )
             if int( duration ) >= 600 or int( duration ) == 0:
                 return f"视频时长过长/视频时长为:{duration}秒"
             save_path = await analyzer.download_video(video_path)
-            if not save_path or save_path == None:
+            if save_path == None:
                 if os.path.exists( save_path ):
                     os.remove( save_path )
                     print( f"文件已删除: {save_path}" )

+ 1 - 1
job_video_processing.py

@@ -2,7 +2,7 @@ import time
 from concurrent.futures import ThreadPoolExecutor
 from video_processing.video_processing import VideoProcessing
 
-max_workers = 2  # 最大线程数
+max_workers = 1  # 最大线程数
 
 
 def video_ai_task_start():