File size: 1,593 Bytes
90f2ef6
9c2785c
 
 
90f2ef6
 
 
9c2785c
 
 
90f2ef6
9c2785c
 
 
 
 
 
 
 
90f2ef6
9c2785c
 
 
 
 
 
 
 
 
 
 
90f2ef6
 
9c2785c
 
90f2ef6
 
 
 
 
 
 
9c2785c
 
90f2ef6
9c2785c
 
ced7370
90f2ef6
 
 
 
 
 
 
9c2785c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from textwrap import wrap
from transformers import pipeline
import streamlit as st

st.markdown('# Terms & conditions abstractive summarization model :pencil:')
st.write('This app summarizes the provided terms & conditions.')
st.write('Information about the model :point_right: https://huggingface.co/ml6team/distilbart-tos-summarizer-tosdr')

st.markdown("""
To use this:
- Copy terms & conditions and hit 'Summarize':point_down:""")


@st.cache(allow_output_mutation=True,
          suppress_st_warning=True,
          show_spinner=False)
def load_model():
    with st.spinner('Please wait for the model to load...'):
        terms_and_conditions_pipeline = pipeline(
            task='summarization',
            model='ml6team/distilbart-tos-summarizer-tosdr',
            tokenizer='ml6team/distilbart-tos-summarizer-tosdr'
        )
    return terms_and_conditions_pipeline


tc_pipeline = load_model()

if 'text' not in st.session_state:
    st.session_state['text'] = ""

st.header("Input")
form = st.form(key='terms-and-conditions')
placeholder = form.empty()
placeholder.empty()
tc_text = placeholder.text_area(
    value=st.session_state.text,
    label='Terms & conditions text:',
    key='tc_text',
    height=240

)
submit_button = form.form_submit_button(label='Summarize')

st.header("Output")

if submit_button:
    base_text = st.session_state.tc_text
    output_text = " ".join([result['summary_text'] for result in tc_pipeline(wrap(base_text, 2048))])
    st.markdown('#####')
    st.text_area(
        value=output_text,
        label="Summary",
        height=240
    )