Spaces:
Sleeping
Sleeping
""" | |
Application that builds a summary of an article. | |
""" | |
import os | |
import streamlit as st | |
from txtai.pipeline import Summary, Textractor | |
from txtai.workflow import UrlTask, Task, Workflow | |
class Application: | |
""" | |
Main application. | |
""" | |
def __init__(self): | |
""" | |
Creates a new application. | |
""" | |
textract = Textractor(paragraphs=True, minlength=100, join=True) | |
summary = Summary("sshleifer/distilbart-cnn-12-6") | |
self.workflow = Workflow([UrlTask(textract), Task(summary)]) | |
def run(self): | |
""" | |
Runs a Streamlit application. | |
""" | |
st.title("Article Summary") | |
st.markdown("This application builds a summary of an article.") | |
url = st.text_input("URL") | |
if url: | |
# Run workflow and get summary | |
summary = list(self.workflow([url]))[0] | |
# Write results | |
st.write(summary) | |
st.markdown("*Source: " + url + "*") | |
def create(): | |
""" | |
Creates and caches a Streamlit application. | |
Returns: | |
Application | |
""" | |
return Application() | |
if __name__ == "__main__": | |
os.environ["TOKENIZERS_PARALLELISM"] = "false" | |
# Create and run application | |
app = create() | |
app.run() | |