Daemontatox commited on
Commit
9e36f0e
·
verified ·
1 Parent(s): 0f2aa55

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -7
app.py CHANGED
@@ -85,17 +85,27 @@ def process_uploaded_file(file):
85
 
86
  if file is None:
87
  return "No file uploaded. Please upload a file."
 
 
 
 
 
 
88
 
89
- file_path = file.name if isinstance(file, FileData) else file
90
-
91
- if file_path.lower().endswith('.pdf'):
 
 
 
 
92
  doc_state.doc_type = 'pdf'
93
  try:
94
  doc_state.current_doc_images, doc_state.current_doc_text = process_pdf_file(file_path)
95
  return f"PDF processed successfully. Total pages: {len(doc_state.current_doc_images)}. You can now ask questions about the content."
96
  except Exception as e:
97
  return f"Error processing PDF: {str(e)}. Please try a different PDF file."
98
- else:
99
  doc_state.doc_type = 'image'
100
  try:
101
  img = Image.open(file_path).convert("RGB")
@@ -108,6 +118,8 @@ def process_uploaded_file(file):
108
  return "Image loaded successfully. You can now ask questions about the content."
109
  except Exception as e:
110
  return f"Error processing image: {str(e)}. Please try a different image file."
 
 
111
  except Exception as e:
112
  logger.error(f"Error in process_file: {str(e)}")
113
  return "An error occurred while processing the file. Please try again."
@@ -175,12 +187,12 @@ def clear_context():
175
  # Create the Gradio interface
176
  with gr.Blocks() as demo:
177
  gr.Markdown("# Document Analyzer with Chat Support")
178
- gr.Markdown("Upload a PDF or image and chat about its contents. For PDFs, all pages will be processed for visual analysis.")
179
 
180
  with gr.Row():
181
  file_upload = gr.File(
182
- label="Upload Document (PDF or Image)",
183
- file_types=["pdf", "image"]
184
  )
185
  upload_status = gr.Textbox(
186
  label="Upload Status",
 
85
 
86
  if file is None:
87
  return "No file uploaded. Please upload a file."
88
+
89
+ # Get the file path and extension
90
+ if isinstance(file, dict):
91
+ file_path = file["name"]
92
+ else:
93
+ file_path = file.name
94
 
95
+ # Get file extension
96
+ file_ext = file_path.lower().split('.')[-1]
97
+
98
+ # Define allowed extensions
99
+ image_extensions = {'png', 'jpg', 'jpeg', 'gif', 'bmp', 'webp'}
100
+
101
+ if file_ext == 'pdf':
102
  doc_state.doc_type = 'pdf'
103
  try:
104
  doc_state.current_doc_images, doc_state.current_doc_text = process_pdf_file(file_path)
105
  return f"PDF processed successfully. Total pages: {len(doc_state.current_doc_images)}. You can now ask questions about the content."
106
  except Exception as e:
107
  return f"Error processing PDF: {str(e)}. Please try a different PDF file."
108
+ elif file_ext in image_extensions:
109
  doc_state.doc_type = 'image'
110
  try:
111
  img = Image.open(file_path).convert("RGB")
 
118
  return "Image loaded successfully. You can now ask questions about the content."
119
  except Exception as e:
120
  return f"Error processing image: {str(e)}. Please try a different image file."
121
+ else:
122
+ return f"Unsupported file type: {file_ext}. Please upload a PDF or image file (PNG, JPG, JPEG, GIF, BMP, WEBP)."
123
  except Exception as e:
124
  logger.error(f"Error in process_file: {str(e)}")
125
  return "An error occurred while processing the file. Please try again."
 
187
  # Create the Gradio interface
188
  with gr.Blocks() as demo:
189
  gr.Markdown("# Document Analyzer with Chat Support")
190
+ gr.Markdown("Upload a PDF or image (PNG, JPG, JPEG, GIF, BMP, WEBP) and chat about its contents.")
191
 
192
  with gr.Row():
193
  file_upload = gr.File(
194
+ label="Upload Document",
195
+ file_types=[".pdf", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp"]
196
  )
197
  upload_status = gr.Textbox(
198
  label="Upload Status",