3a05chatgpt's picture
Upload 8 files
50a43ab verified
raw
history blame
2.38 kB
import streamlit as st
from textsumm import 摘要
from pdfsum import pdf摘要
from papersearch import 論文搜尋
st.set_page_config(page_title="PDF 工具箱 (中文)", page_icon=":books:", layout="wide")
st.sidebar.title("📑 PDF 工具箱")
功能 = st.sidebar.radio(
"請選擇功能",
["文字摘要", "PDF 摘要", "論文搜尋(arXiv)"],
index=0
)
st.sidebar.markdown("---")
st.sidebar.markdown("本應用支援中文摘要(Pegasus 中文模型)")
if 功能 == "文字摘要":
st.header("📝 文字摘要")
text = st.text_area("請輸入要摘要的文字")
if st.button("生成摘要"):
with st.spinner("AI 生成中..."):
summary = 摘要(text)
st.subheader("摘要結果")
st.success(summary)
elif 功能 == "PDF 摘要":
st.header("📄 PDF 摘要")
pdf_file = st.file_uploader("請上傳 PDF 檔案", type=["pdf"])
if st.button("產生 PDF 摘要"):
if pdf_file is not None:
with st.spinner("AI 解析中..."):
summary = pdf摘要(pdf_file)
st.subheader("PDF 摘要結果")
st.success(summary)
else:
st.warning("請先上傳 PDF 檔案")
elif 功能 == "論文搜尋(arXiv)":
st.header("🔎 論文搜尋(arXiv)")
關鍵字 = st.text_input("輸入主題或關鍵字")
max_results = st.slider("結果數量", 1, 30, 10)
col1, col2 = st.columns(2)
with col1:
start_year = st.number_input("起始年份", min_value=1991, max_value=2025, value=2011)
with col2:
end_year = st.number_input("結束年份", min_value=1991, max_value=2025, value=2025)
if st.button("搜尋論文"):
with st.spinner("搜尋中..."):
papers = 論文搜尋(關鍵字, max_results, start_year, end_year)
if not papers:
st.info("在所選年份範圍內沒有找到相關論文。")
else:
for idx, p in enumerate(papers, 1):
with st.expander(f"📄 {idx}. {p['標題']}"):
st.write(f"**作者:** {p['作者']}")
st.write(f"**發表日期:** {p['發表日期']}")
st.write(f"**摘要:** {p['摘要']}")
st.write(f"[arXiv 連結]({p['arXiv 連結']})")