from util import * import gradio as gr from deepmultilingualpunctuation import PunctuationModel cp_aug = 'minnehwg/finetune-newwiki-summarization-ver-augmented' def get_model(cp): checkpoint = cp tokenizer, model = load_model(checkpoint) return tokenizer, model tokenizer, model = get_model(cp_aug) restore_model = PunctuationModel() def execute_func(url, model, tokenizer, punc_model): trans, sub = get_subtitles(url) sub = restore_punctuation(sub, punc_model) vie_sub = translate_long(sub) vie_sub = processed(vie_sub) chunks = split_into_chunks(vie_sub, 700, 2) sum_para = [] for i in chunks: tmp = summarize(i, model, tokenizer, num_beams=3) sum_para.append(tmp) suma = ''.join(sum_para) del sub, vie_sub, sum_para, chunks suma = post_processing(suma) re = display(suma) return re def generate_summary(url): results = execute_func(url, model, tokenizer, restore_model) summary = "\n".join(results) return summary def generate_summary_and_video(url): summary = generate_summary(url) summary_html = summary.replace("\n", "
") try: video_id = url.split("v=")[1].split("&")[0] iframe = f'' return f"{iframe}

Những ý chính trong video:

{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(server_name="0.0.0.0", server_port=7860, share=True)