File size: 1,864 Bytes
08ea547
 
 
4e1429c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
08ea547
4e1429c
08ea547
 
4e1429c
 
 
08ea547
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4e1429c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import gradio as gr
import random

# 假設有一個函數可以從影片連結中提取字幕
def extract_subtitles(video_url):
    # 此處應該有真正提取字幕的代碼
    # 這裡僅使用簡單的示例字幕文本
    subtitles = [
        "影片介紹了機器學習的基本概念。",
        "機器學習主要分為監督學習和非監督學習。",
        "決策樹是一種常用的機器學習算法。",
        "神經網絡是深度學習的基礎。",
        "支持向量機適用於分類問題。",
        "在訓練過程中,我們需要使用大量的數據。",
        "模型過擬合是機器學習中的一個常見問題。",
        "正則化技術可以幫助防止過擬合。",
        "卷積神經網絡在圖像處理中有廣泛應用。",
        "強化學習是一種基於獎勵的學習方法。"
    ]
    return subtitles

# 定義生成問題的函數
def generate_questions(video_url):
    subtitles = extract_subtitles(video_url)
    questions = []
    for i in range(10):
        sentence = random.choice(subtitles)
        question = f"根據影片中的以下句子生成問題: '{sentence}'"
        questions.append(question)
    return questions

# 使用 Gradio 建立界面
def interface():
    with gr.Blocks() as demo:
        gr.Markdown("## 影片習題產生器")
        
        # 輸入影片連結
        video_url = gr.Textbox(label="影片連結")
        
        # 生成題目按鈕
        generate_btn = gr.Button("生成題目")
        
        # 顯示生成的題目
        questions_output = gr.Textbox(label="生成的題目", lines=10)
        
        # 點擊按鈕時,生成題目
        generate_btn.click(fn=generate_questions, inputs=video_url, outputs=questions_output)
    
    return demo

# 運行 Gradio 應用
demo = interface()
demo.launch()