import gradio as gr import time def upload_files(files, filepaths): verbose = False filepaths_new = [file.name for file in files] if verbose: print(f'previous files: {filepaths}') print(f'new files: {filepaths_new}') filepaths = filepaths + filepaths_new return filepaths, filepaths def echo(message, history, system_prompt, filepaths): filepaths_str = '\n'.join(filepaths) response = f""" System prompt: {system_prompt} Message: {message} Uploaded Files: {filepaths_str} """ return response with gr.Blocks() as demo: gr.Markdown("Define References") filepaths = gr.State([]) file_output = gr.File() upload_button = gr.UploadButton("Upload PDF(s)", file_count="multiple") upload_button.upload( fn=upload_files, inputs=[upload_button, filepaths], outputs=[file_output, filepaths]) system_prompt = gr.Textbox("You are helpful AI.", label="System Prompt") gr.ChatInterface( fn=echo, additional_inputs=[system_prompt, filepaths], type="messages" ) if __name__ == "__main__": demo.launch()