youngtsai commited on
Commit
330365b
1 Parent(s): 8a2e069
Files changed (1) hide show
  1. app.py +33 -3
app.py CHANGED
@@ -15,6 +15,7 @@ from moviepy.editor import VideoFileClip
15
  from pytube import YouTube
16
  import os
17
 
 
18
  from google.oauth2 import service_account
19
  from googleapiclient.discovery import build
20
  from googleapiclient.http import MediaFileUpload
@@ -55,11 +56,35 @@ VIDEO_ID = ""
55
 
56
  OPEN_AI_KEY = os.getenv("OPEN_AI_KEY")
57
  client = OpenAI(api_key=OPEN_AI_KEY)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
 
60
  # # ====drive====初始化Google Drive服务
61
  def init_drive_service():
62
- credentials_json_string = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
63
  credentials_dict = json.loads(credentials_json_string)
64
  SCOPES = ['https://www.googleapis.com/auth/drive']
65
  credentials = service_account.Credentials.from_service_account_info(
@@ -694,10 +719,15 @@ def respond(user_message, df_string_output, chat_history, socratic_mode=False):
694
  print("=== 變數:chat_history ===")
695
  print(chat_history)
696
 
 
 
 
 
 
697
  if socratic_mode:
698
  sys_content = f"""
699
  你是一個擅長資料分析跟影片教學的老師,user 為學生
700
- 請用 {df_string_output} 為資料文本,自行判斷資料的種類,
701
  並進行對話,使用 zh-TW
702
 
703
  如果是影片類型,不用解釋逐字稿格式,直接回答學生問題
@@ -715,7 +745,7 @@ def respond(user_message, df_string_output, chat_history, socratic_mode=False):
715
  else:
716
  sys_content = f"""
717
  你是一個擅長資料分析跟影片教學的老師,user 為學生
718
- 請用 {df_string_output} 為資料文本,自行判斷資料的種類,
719
  並進行對話,使用 zh-TW
720
 
721
  如果是影片類型,不用解釋逐字稿格式,直接回答學生問題
 
15
  from pytube import YouTube
16
  import os
17
 
18
+ from google.cloud import storage
19
  from google.oauth2 import service_account
20
  from googleapiclient.discovery import build
21
  from googleapiclient.http import MediaFileUpload
 
56
 
57
  OPEN_AI_KEY = os.getenv("OPEN_AI_KEY")
58
  client = OpenAI(api_key=OPEN_AI_KEY)
59
+ DRIVE_KEY = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
60
+ GCS_KEY = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
61
+
62
+ def init_gcs_client(service_account_key_string):
63
+ """使用服务账号密钥文件创建 GCS 客户端"""
64
+ credentials_json_string = service_account_key_string
65
+ credentials_dict = json.loads(credentials_json_string)
66
+ credentials = service_account.Credentials.from_service_account_info(credentials_dict)
67
+ gcs_client = storage.Client(credentials=credentials, project=credentials_dict['project_id'])
68
+ return gcs_client
69
+
70
+ def upload_file_to_gcs(gcs_client, bucket_name, source_file_name, destination_blob_name, service_account_key_file):
71
+ """上传文件到 GCS"""
72
+ bucket = gcs_client.bucket(bucket_name)
73
+ blob = bucket.blob(destination_blob_name)
74
+ blob.upload_from_filename(source_file_name)
75
+ print(f"{source_file_name} uploaded to {destination_blob_name}.")
76
+
77
+ def download_file_from_gcs(gcs_client, bucket_name, source_blob_name, destination_file_name, service_account_key_file):
78
+ """从 GCS 下载文件"""
79
+ bucket = gcs_client.bucket(bucket_name)
80
+ blob = bucket.blob(source_blob_name)
81
+ blob.download_to_filename(destination_file_name)
82
+ print(f"{source_blob_name} downloaded to {destination_file_name}.")
83
 
84
 
85
  # # ====drive====初始化Google Drive服务
86
  def init_drive_service():
87
+ credentials_json_string = DRIVE_KEY
88
  credentials_dict = json.loads(credentials_json_string)
89
  SCOPES = ['https://www.googleapis.com/auth/drive']
90
  credentials = service_account.Credentials.from_service_account_info(
 
719
  print("=== 變數:chat_history ===")
720
  print(chat_history)
721
 
722
+ data = df_string_output
723
+ for entry in data:
724
+ entry.pop('embed_url', None) # Remove 'embed_url' if it exists
725
+ entry.pop('screenshot_path', None)
726
+
727
  if socratic_mode:
728
  sys_content = f"""
729
  你是一個擅長資料分析跟影片教學的老師,user 為學生
730
+ 請用 {data} 為資料文本,自行判斷資料的種類,
731
  並進行對話,使用 zh-TW
732
 
733
  如果是影片類型,不用解釋逐字稿格式,直接回答學生問題
 
745
  else:
746
  sys_content = f"""
747
  你是一個擅長資料分析跟影片教學的老師,user 為學生
748
+ 請用 {data} 為資料文本,自行判斷資料的種類,
749
  並進行對話,使用 zh-TW
750
 
751
  如果是影片類型,不用解釋逐字稿格式,直接回答學生問題