MingGatsby commited on
Commit
8858de6
·
verified ·
1 Parent(s): 488e90f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -5
app.py CHANGED
@@ -5,7 +5,6 @@ import base64
5
  from openai import OpenAI
6
  import os
7
 
8
- # 參考: https://cookbook.openai.com/examples/gpt4o/introduction_to_gpt4o
9
  def process_video(video_path, seconds_per_frame=2):
10
  base64Frames = []
11
  base_video_path, _ = os.path.splitext(video_path)
@@ -33,8 +32,7 @@ def process_video(video_path, seconds_per_frame=2):
33
 
34
  return base64Frames, audio_path
35
 
36
-
37
- def summarize_video(file_path):
38
  api_key = os.getenv("OPENAI_API_KEY")
39
  client = OpenAI(api_key=api_key)
40
 
@@ -46,13 +44,21 @@ def summarize_video(file_path):
46
  model="whisper-1", file=open(audio_path, "rb")
47
  )
48
 
 
 
 
 
 
 
 
 
49
  # 使用GPT-4o生成摘要
50
  response = client.chat.completions.create(
51
  model="gpt-4o",
52
  messages=[
53
  {
54
  "role": "system",
55
- "content": """您是一名優秀的摘要專家,請根據提供的影片和其轉錄內容生成Markdown格式的摘要。""",
56
  },
57
  {
58
  "role": "user",
@@ -82,7 +88,10 @@ def summarize_video(file_path):
82
 
83
  demo = gr.Interface(
84
  fn=summarize_video,
85
- inputs=[gr.File(label="上傳影片 (mp4)")],
 
 
 
86
  outputs="markdown",
87
  title="影片摘要生成器",
88
  description="上傳影片,將生成影片的摘要。",
 
5
  from openai import OpenAI
6
  import os
7
 
 
8
  def process_video(video_path, seconds_per_frame=2):
9
  base64Frames = []
10
  base_video_path, _ = os.path.splitext(video_path)
 
32
 
33
  return base64Frames, audio_path
34
 
35
+ def summarize_video(file_path, summary_detail):
 
36
  api_key = os.getenv("OPENAI_API_KEY")
37
  client = OpenAI(api_key=api_key)
38
 
 
44
  model="whisper-1", file=open(audio_path, "rb")
45
  )
46
 
47
+ # 根據用戶選擇的詳細程度設置提示
48
+ if summary_detail == "簡短":
49
+ summary_prompt = "生成一個簡短的摘要,不超過50字。"
50
+ elif summary_detail == "中等":
51
+ summary_prompt = "生成一個中等長度的摘要,概述影片的主要內容。"
52
+ else: # 詳細
53
+ summary_prompt = "生成一個詳細的摘要,包括影片的主要內容和關鍵細節。"
54
+
55
  # 使用GPT-4o生成摘要
56
  response = client.chat.completions.create(
57
  model="gpt-4o",
58
  messages=[
59
  {
60
  "role": "system",
61
+ "content": f"""您是一名優秀的摘要專家,請根據提供的影片和其轉錄內容生成Markdown格式的摘要。{summary_prompt}""",
62
  },
63
  {
64
  "role": "user",
 
88
 
89
  demo = gr.Interface(
90
  fn=summarize_video,
91
+ inputs=[
92
+ gr.File(label="上傳影片 (mp4)"),
93
+ gr.Radio(["簡短", "中等", "詳細"], label="摘要詳細程度", value="中等")
94
+ ],
95
  outputs="markdown",
96
  title="影片摘要生成器",
97
  description="上傳影片,將生成影片的摘要。",