| # 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) |