txtai
1"""
2Application that builds a summary of an article.
3
4Requires streamlit to be installed.
5pip install streamlit
6"""
7
8import os
9
10import streamlit as st
11
12from txtai.pipeline import Summary, Textractor
13from txtai.workflow import UrlTask, Task, Workflow
14
15
16class Application:
17"""
18Main application.
19"""
20
21def __init__(self):
22"""
23Creates a new application.
24"""
25
26textract = Textractor(paragraphs=True, minlength=100, join=True)
27summary = Summary("sshleifer/distilbart-cnn-12-6")
28
29self.workflow = Workflow([UrlTask(textract), Task(summary)])
30
31def run(self):
32"""
33Runs a Streamlit application.
34"""
35
36st.title("Article Summary")
37st.markdown("This application builds a summary of an article.")
38
39url = st.text_input("URL")
40if url:
41# Run workflow and get summary
42summary = list(self.workflow([url]))[0]
43
44# Write results
45st.write(summary)
46st.markdown("*Source: " + url + "*")
47
48
49@st.cache(allow_output_mutation=True)
50def create():
51"""
52Creates and caches a Streamlit application.
53
54Returns:
55Application
56"""
57
58return Application()
59
60
61if __name__ == "__main__":
62os.environ["TOKENIZERS_PARALLELISM"] = "false"
63
64# Create and run application
65app = create()
66app.run()
67