Ali2206 commited on
Commit
25e0d34
·
verified ·
1 Parent(s): 62739d0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -3
app.py CHANGED
@@ -175,10 +175,12 @@ def clean_response(text: str) -> str:
175
  cleaned.append(f"### {heading}\n" + "\n".join(findings))
176
 
177
  text = "\n\n".join(cleaned).strip()
 
178
  return text if text else ""
179
 
180
  def summarize_findings(combined_response: str) -> str:
181
  if not combined_response or all("No oversights identified" in chunk for chunk in combined_response.split("--- Analysis for Chunk")):
 
182
  return "### Summary of Clinical Oversights\nNo critical oversights identified in the provided records."
183
 
184
  sections = {}
@@ -205,9 +207,12 @@ def summarize_findings(combined_response: str) -> str:
205
  summary_lines.append(summary)
206
 
207
  if not summary_lines:
 
208
  return "### Summary of Clinical Oversights\nNo critical oversights identified."
209
 
210
- return "### Summary of Clinical Oversights\n" + "\n".join(summary_lines)
 
 
211
 
212
  def init_agent():
213
  logger.info("Initializing model...")
@@ -252,10 +257,12 @@ Patient Record Excerpt (Chunk {0} of {1}):
252
  def analyze(message: str, history: List[dict], files: List, progress=gr.Progress()):
253
  history.append({"role": "user", "content": message})
254
  yield history, None, ""
 
255
 
256
  extracted = ""
257
  file_hash_value = ""
258
  if files:
 
259
  def update_extraction_progress(current, total):
260
  progress(current / total, desc=f"Extracting text... Page {current}/{total}")
261
  return history, None, ""
@@ -265,11 +272,13 @@ Patient Record Excerpt (Chunk {0} of {1}):
265
  results = [sanitize_utf8(f.result()) for f in as_completed(futures)]
266
  extracted = "\n".join(results)
267
  file_hash_value = file_hash(files[0].name) if files else ""
268
-
269
  history.append({"role": "assistant", "content": "✅ Text extraction complete."})
270
  yield history, None, ""
271
- logger.info("Extracted text length: %d chars", len(extracted))
 
272
 
 
273
  chunk_size = 6000
274
  chunks = [extracted[i:i + chunk_size] for i in range(0, len(extracted), chunk_size)]
275
  logger.info("Created %d chunks", len(chunks))
@@ -304,6 +313,7 @@ Patient Record Excerpt (Chunk {0} of {1}):
304
  batch_responses.append(chunk_response)
305
  torch.cuda.empty_cache()
306
  gc.collect()
 
307
 
308
  for chunk_idx, chunk_response in enumerate(batch_responses, batch_idx + 1):
309
  if chunk_response:
@@ -323,6 +333,7 @@ Patient Record Excerpt (Chunk {0} of {1}):
323
  if report_path:
324
  with open(report_path, "w", encoding="utf-8") as f:
325
  f.write(combined_response + "\n\n" + summary)
 
326
  yield history, report_path if report_path and os.path.exists(report_path) else None, summary
327
 
328
  except Exception as e:
 
175
  cleaned.append(f"### {heading}\n" + "\n".join(findings))
176
 
177
  text = "\n\n".join(cleaned).strip()
178
+ logger.debug("Cleaned response length: %d chars", len(text))
179
  return text if text else ""
180
 
181
  def summarize_findings(combined_response: str) -> str:
182
  if not combined_response or all("No oversights identified" in chunk for chunk in combined_response.split("--- Analysis for Chunk")):
183
+ logger.info("No clinical oversights identified in analysis")
184
  return "### Summary of Clinical Oversights\nNo critical oversights identified in the provided records."
185
 
186
  sections = {}
 
207
  summary_lines.append(summary)
208
 
209
  if not summary_lines:
210
+ logger.info("No clinical oversights identified after summarization")
211
  return "### Summary of Clinical Oversights\nNo critical oversights identified."
212
 
213
+ summary = "### Summary of Clinical Oversights\n" + "\n".join(summary_lines)
214
+ logger.info("Summarized findings: %s", summary[:100])
215
+ return summary
216
 
217
  def init_agent():
218
  logger.info("Initializing model...")
 
257
  def analyze(message: str, history: List[dict], files: List, progress=gr.Progress()):
258
  history.append({"role": "user", "content": message})
259
  yield history, None, ""
260
+ logger.info("Starting analysis for message: %s", message[:100])
261
 
262
  extracted = ""
263
  file_hash_value = ""
264
  if files:
265
+ logger.info("Processing %d uploaded files", len(files))
266
  def update_extraction_progress(current, total):
267
  progress(current / total, desc=f"Extracting text... Page {current}/{total}")
268
  return history, None, ""
 
272
  results = [sanitize_utf8(f.result()) for f in as_completed(futures)]
273
  extracted = "\n".join(results)
274
  file_hash_value = file_hash(files[0].name) if files else ""
275
+ logger.info("Extraction complete for %d files", len(files))
276
  history.append({"role": "assistant", "content": "✅ Text extraction complete."})
277
  yield history, None, ""
278
+ else:
279
+ logger.warning("No files uploaded for analysis")
280
 
281
+ logger.info("Extracted text length: %d chars", len(extracted))
282
  chunk_size = 6000
283
  chunks = [extracted[i:i + chunk_size] for i in range(0, len(extracted), chunk_size)]
284
  logger.info("Created %d chunks", len(chunks))
 
313
  batch_responses.append(chunk_response)
314
  torch.cuda.empty_cache()
315
  gc.collect()
316
+ logger.debug("Processed chunk response length: %d chars", len(chunk_response))
317
 
318
  for chunk_idx, chunk_response in enumerate(batch_responses, batch_idx + 1):
319
  if chunk_response:
 
333
  if report_path:
334
  with open(report_path, "w", encoding="utf-8") as f:
335
  f.write(combined_response + "\n\n" + summary)
336
+ logger.info("Analysis complete, report saved at: %s", report_path if report_path else "None")
337
  yield history, report_path if report_path and os.path.exists(report_path) else None, summary
338
 
339
  except Exception as e: