import gradio as gr import requests import nltk import json import random from utils import * nltk.download('punkt') # Function to handle summarization based on the selected method def summarize(text: str, method: str) -> str: processed_text = ' '.join(text.split("\n")) chunks = split_chunk(text) tree = MemWalker(chunks) tree.build_memory_tree() summary = summarize_three_ways(chunks) #print(processed_text) if method == "Truncation": return summary['truncated'] elif method == "Rewrite": return summary['rewrite'] elif method == "Accumulate": return summary['accumulate'] elif method == "Memory Tree": return tree.root.summary example_transcript = get_example() def clear_input(): return "", "Truncation" def load_example(index): return example_transcript[index] def load_example_1(): return load_example(0) def load_example_2(): return load_example(1) def load_example_3(): return load_example(2) def load_example_4(): return load_example(3) # Create the interface with gr.Blocks() as iface: text_input = gr.Textbox(lines=5, placeholder="Enter text to summarize here...", label="Input Transcript") method_input = gr.Radio(choices=["Truncation", "Rewrite", "Accumulate", "Memory Tree"], label="Summarization Method", value="Truncation") output_text = gr.Textbox(label="Summary") summarize_button = gr.Button("Summarize") clear_button = gr.Button("Clear Input") summarize_button.click(summarize, inputs=[text_input, method_input], outputs=output_text) clear_button.click(clear_input, outputs=[text_input, method_input]) #gr.Exa #gr.Examples([example_transcript[:100]], inputs=[text_input], label=f"Example", fn=load_example) example_button_1 = gr.Button(f"Example {1}: {example_transcript[0][:600]}...") example_button_1.click(load_example_1, inputs = None, outputs=[text_input]) example_button_2 = gr.Button(f"Example {2}: {example_transcript[1][:600]}...") example_button_2.click(load_example_2, inputs = None, outputs=[text_input]) example_button_3 = gr.Button(f"Example {3}: {example_transcript[2][:600]}...") example_button_3.click(load_example_3, inputs = None, outputs=[text_input]) example_button_4 = gr.Button(f"Example {4}: {example_transcript[3][:600]}...") example_button_4.click(load_example_4, inputs = None, outputs=[text_input]) # Launch the interface iface.launch(share = True, debug = True)