# Use a pipeline as a high-level helper from transformers import pipeline import torch import gradio as gr from huggingface_hub import CommitScheduler from pathlib import Path import os import uuid import joblib import json # Prepare the logging functionality log_file = Path("logs/") / f"data_{uuid.uuid4()}.json" log_folder = log_file.parent scheduler = CommitScheduler( repo_id="text-summarization-logs", repo_type="dataset", folder_path=log_folder, path_in_repo="data", every=2 ) text_summary = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6", torch_dtype=torch.bfloat16) # model_path = "Model/models--sshleifer--distilbart-cnn-12-6/snapshots/a4f8f3ea906ed274767e9906dbaede7531d660ff" # text_summary = pipeline("summarization", model=model_path, torch_dtype=torch.bfloat16) # text="Why You Can Trust Forbes Advisor Small Business \ # The Forbes Advisor Small Business team is committed to bringing you unbiased \ # rankings and information with full editorial independence. We use product data, \ # strategic methodologies and expert insights to inform all of our content and guide \ # you in making the best decisions for your business journey.\ # We reviewed 11 systems to help you find the best blogging platform for your blog or \ # small business. Our ratings looked at factors that included the platform’s starting \ # price (including whether it offered a free trial or free version); useful general features,\ # such as drag-and-drop functionality and search engine optimization (SEO) tools; unique features, \ # how well the blogging platform fared on third-party review sites and a final review by our experts.\ # All ratings are determined solely by our editorial team." # print(text_summary(text)[0]) def summary(input): output = text_summary(input) with scheduler.lock: with log_file.open("a") as f: f.write(json.dumps( { 'Input Text': input, 'Summary':output[0]['summary_text'] } )) f.write("\n") return output[0]['summary_text'] gr.close_all() # demo = gr.Interface(fn=summary,inputs="text",outputs='text',title='Text Summarization Gradio Huggingface') demo = gr.Interface(fn=summary, inputs=[gr.Textbox(label="Input text to summarization", lines=6)], outputs=[gr.Textbox(label="Summarized text", lines=4)], title='Text Summarization', description='This application will be used to summarize the text', theme=gr.themes.Soft(), concurrency_limit=16) demo.launch(share=True)