Files
llm-gateway-sub-backup/workspace/interface/streamlit_ui.py
2025-08-11 18:56:38 +09:00

34 lines
1.4 KiB
Python

import streamlit as st
from urllib.parse import quote
import requests
import os
API_URL = "http://api:8888/upload" # FastAPI 서비스 이름 기준
DOWNLOAD_URL = "http://172.16.10.176:8888/download/"
st.set_page_config(page_title="HANMAC PGN Documents", layout="centered")
st.image("/app/app/static/logo.png", use_container_width=True)
st.markdown(
"<h2 style='text-align: center;'>🔹PM Oversea DEMO🔹</h2>",
unsafe_allow_html=True
)
uploaded_files = st.file_uploader("PDF 파일 업로드", type=["pdf"], accept_multiple_files=True)
if st.button("업로드 및 처리") and uploaded_files:
files = [("files", (f.name, f.getvalue(), "application/pdf")) for f in uploaded_files]
with st.spinner("서버에 업로드 및 처리 중..."):
response = requests.post(API_URL, files=files)
if response.status_code == 200:
st.success("처리 완료! 결과를 아래에서 확인하세요.")
results = response.json()["results"]
for r in results:
filename = r["filename"]
json_path = r["saved_path"]
encoded_filename = quote(os.path.basename(json_path))
download_link = f"{DOWNLOAD_URL}{encoded_filename}"
st.markdown(f"✅ **{filename}** 처리 완료\n[JSON 다운로드]({download_link})")
else:
st.error("❌ 처리 중 오류가 발생했습니다.")