|
import streamlit as st |
|
from io import StringIO |
|
from chdg_inference import infer |
|
from infer_concat import vit5_infer |
|
|
|
st.set_page_config(layout="wide") |
|
st.title("Tóm tắt Đa văn bản Tiếng Việt") |
|
|
|
col1, col2 = st.columns([1, 1]) |
|
|
|
|
|
if 'num_docs' not in st.session_state: |
|
st.session_state.num_docs = 0 |
|
if 'docs' not in st.session_state: |
|
st.session_state.docs = [] |
|
|
|
|
|
def add_text_area(): |
|
st.session_state.num_docs += 1 |
|
|
|
|
|
col1.button("Thêm văn bản", on_click=add_text_area) |
|
|
|
|
|
for i in range(st.session_state.num_docs): |
|
doc = col1.text_area(f"Văn bản {i+1}", key=f"doc_{i}", height=150) |
|
doc.replace('\r', '\n') |
|
doc.replace('\"', "'") |
|
if len(st.session_state.docs) <= i: |
|
st.session_state.docs.append(doc) |
|
else: |
|
st.session_state.docs[i] = doc |
|
|
|
category = col1.selectbox("Chọn chủ để của văn bản: ", ['Giáo dục', 'Giải trí - Thể thao', 'Khoa học - Công nghệ', 'Kinh tế', 'Pháp luật', 'Thế giới', 'Văn hóa - Xã hội', 'Đời sống']) |
|
|
|
def summarize(): |
|
st.warning("Mô hình ViT5 sẽ mất 2 đến 3 phút để tóm tắt. Xin hãy kiên nhẫn đợi một chút!") |
|
summ, _ = infer(st.session_state.docs, category) |
|
with col2.container(): |
|
col2.subheader("Kết quả: ") |
|
col2.write("\n") |
|
col2.subheader("Sử dụng CHDG:") |
|
col2.write(summ) |
|
summ_vit5 = vit5_infer(st.session_state.docs) |
|
col2.subheader("Sử dụng ViT5:") |
|
for i in range(len(summ_vit5)): |
|
col2.write(f"Bản tóm tắt {i}:") |
|
col2.write(f"{summ_vit5[i]}") |
|
|
|
if col1.button("Tóm tắt"): |
|
summarize() |