Spaces:
Running
Running
key_moment["keywords"] = generate_key_moments_keywords(transcript)
Browse files
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>
|