File size: 1,386 Bytes
c510d8a
8863a3f
 
d6a85e3
 
c510d8a
 
95dc466
12c5b62
 
c510d8a
 
 
12c5b62
c510d8a
3287afb
12c5b62
de32888
f213cf3
12c5b62
3287afb
d4e618e
 
2838a69
70ebc27
 
5f27e83
2838a69
70ebc27
d4e618e
 
5f27e83
 
2838a69
5f27e83
 
 
d4e618e
 
 
ec78aea
 
2838a69
788400e
12c5b62
d6a85e3
70ebc27
758e43f
d6a85e3
12c5b62
 
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

from util import load_model
from util import pipeline

import gradio as gr
cp_aug = 'minnehwg/finetune-newwiki-summarization-ver-augmented2'


def get_model(cp):
    checkpoint = cp
    tokenizer, model = load_model(checkpoint)
    return tokenizer, model

tokenizer, model = get_model(cp_aug)


def generate_summary(url):
    results = pipeline(url, model, tokenizer)
    summary = "\n".join(results)
    return summary

def generate_summary_and_video(url):
    summary = generate_summary(url)
    summary_html = summary.replace("\n", "<br>")
    try:
        video_id = url.split("v=")[1].split("&")[0]
        iframe = f'<iframe width="300" height="200" src="https://www.youtube.com/embed/{video_id}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
        return f"{iframe}<br><br>Những ý chính trong video:<br><br>{summary_html}"
    except IndexError:
        return f"**Summary:**\n{summary}\n\nInvalid YouTube URL for video display."

css = """
.output-html {
    font-size: 40px;
}
"""

demo = gr.Interface(
    fn=generate_summary_and_video,
    inputs=gr.Textbox(lines=2, placeholder="Enter URL..."),
    outputs=gr.HTML(label="Results"),
    title="Summarizer",
    description="Enter the URL to display the YouTube video and summarize the content.",
    css=css
)


demo.launch(share=True)