youngtsai commited on
Commit
dcbbabb
·
1 Parent(s): 7a116ca

key_moment["keywords"] = generate_key_moments_keywords(transcript)

Browse files
Files changed (1) hide show
  1. app.py +24 -0
app.py CHANGED
@@ -1069,6 +1069,12 @@ def get_key_moments(video_id, formatted_simple_transcript, formatted_transcript,
1069
  is_key_moments_exists = GCS_SERVICE.check_file_exists(bucket_name, blob_name)
1070
  if not is_key_moments_exists:
1071
  key_moments = generate_key_moments(formatted_simple_transcript, formatted_transcript)
 
 
 
 
 
 
1072
  key_moments_json = {"key_moments": key_moments}
1073
  key_moments_text = json.dumps(key_moments_json, ensure_ascii=False, indent=2)
1074
  upload_file_to_gcs_with_json_string(gcs_client, bucket_name, blob_name, key_moments_text)
@@ -1161,6 +1167,24 @@ def generate_key_moments(formatted_simple_transcript, formatted_transcript):
1161
 
1162
  return key_moments
1163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1164
  def get_key_moments_html(key_moments):
1165
  css = """
1166
  <style>
 
1069
  is_key_moments_exists = GCS_SERVICE.check_file_exists(bucket_name, blob_name)
1070
  if not is_key_moments_exists:
1071
  key_moments = generate_key_moments(formatted_simple_transcript, formatted_transcript)
1072
+ # 檢查 key_moments 是否有 keywords
1073
+ for key_moment in key_moments:
1074
+ if "keywords" not in key_moment:
1075
+ transcript = key_moment["transcript"]
1076
+ key_moment["keywords"] = generate_key_moments_keywords(transcript)
1077
+
1078
  key_moments_json = {"key_moments": key_moments}
1079
  key_moments_text = json.dumps(key_moments_json, ensure_ascii=False, indent=2)
1080
  upload_file_to_gcs_with_json_string(gcs_client, bucket_name, blob_name, key_moments_text)
 
1167
 
1168
  return key_moments
1169
 
1170
+ def generate_key_moments_keywords(transcript):
1171
+ user_prompt = f"""transcript extract to keyword
1172
+ 保留專家名字、專業術語、年份、數字、期刊名稱、地名、數學公式、數學表示式、物理化學符號,
1173
+ 不用給上下文,直接給出關鍵字,使用 zh-TW,用逗號分隔, example: 關鍵字1, 關鍵字2
1174
+ transcript:{transcript}
1175
+ """
1176
+ response = OPEN_AI_CLIENT.completions.create(
1177
+ model="gpt-4-1106-preview",
1178
+ messages=[
1179
+ {"role": "system", "content": "你是一個擅長資料分析跟影片教學的老師,user 為學生,請根據以下文本提取關鍵字"},
1180
+ {"role": "user", "content": user_prompt}
1181
+ ],
1182
+ max_tokens=100,
1183
+ )
1184
+ keywords = response.choices[0].message.content.strip().split(", ")
1185
+
1186
+ return keywords
1187
+
1188
  def get_key_moments_html(key_moments):
1189
  css = """
1190
  <style>