@@ -52,6 +52,20 @@ def on_change_text():
5252 st .session_state .raw_json = None
5353
5454
55+ def upload ():
56+ data_files = st .session_state .upload_files ['files' ]
57+ for data_file in data_files :
58+ # Upload file
59+ if data_file and data_file .name not in st .session_state .upload_files [
60+ 'uploaded_files' ]:
61+ raw_json = upload_doc (data_file )
62+ st .session_state .upload_files ['uploaded_files' ].append (
63+ data_file .name )
64+ # Save the uploaded files
65+ st .session_state .upload_files ['uploaded_files' ] = list (
66+ set (st .session_state .upload_files ['uploaded_files' ]))
67+
68+
5569def main ():
5670
5771 st .set_page_config (
@@ -65,6 +79,7 @@ def main():
6579 set_state_if_absent ("results" , None )
6680 set_state_if_absent ("raw_json" , None )
6781 set_state_if_absent ("random_question_requested" , False )
82+ set_state_if_absent ("upload_files" , {'uploaded_files' : [], 'files' : []})
6883
6984 # Small callback to reset the interface in case the text of the question changes
7085 def reset_results (* args ):
@@ -107,12 +122,14 @@ def reset_results(*args):
107122 if not DISABLE_FILE_UPLOAD :
108123 st .sidebar .write ("## 文件上传:" )
109124 data_files = st .sidebar .file_uploader (
110- "" , type = ["pdf" , "txt" , "docx" , "png" ], accept_multiple_files = True )
111- for data_file in data_files :
112- # Upload file
113- if data_file :
114- raw_json = upload_doc (data_file )
115- st .sidebar .write (str (data_file .name ) + " ✅ " )
125+ "" ,
126+ type = ["pdf" , "txt" , "docx" , "png" ],
127+ help = "选择多个文件" ,
128+ accept_multiple_files = True )
129+ st .session_state .upload_files ['files' ] = data_files
130+ st .sidebar .button ("文件上传" , on_click = upload )
131+ for data_file in st .session_state .upload_files ['uploaded_files' ]:
132+ st .sidebar .write (str (data_file ) + " ✅ " )
116133 hs_version = ""
117134 try :
118135 hs_version = f" <small>(v{ pipelines_version ()} )</small>"
0 commit comments