Update app.py
Browse files
app.py
CHANGED
@@ -481,14 +481,34 @@ def process_image_hf(image: Image.Image, prompt: str, use_api: bool) -> str:
|
|
481 |
|
482 |
async def process_hf_ocr(image: Image.Image, output_file: str, use_api: bool) -> str:
|
483 |
""" Performs OCR using the process_image_hf function framework. """
|
484 |
-
|
|
|
485 |
result = process_image_hf(image, ocr_prompt, use_api=use_api) # Pass use_api flag
|
|
|
|
|
486 |
if result and not result.startswith("Error") and not result.startswith("["):
|
487 |
try:
|
488 |
-
async with aiofiles.open(output_file, "w", encoding='utf-8') as f:
|
|
|
489 |
logger.info(f"HF OCR result saved to {output_file}")
|
490 |
-
except IOError as e:
|
491 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
return result
|
493 |
|
494 |
# --- Character Functions (Keep from previous) -----------
|
|
|
481 |
|
482 |
async def process_hf_ocr(image: Image.Image, output_file: str, use_api: bool) -> str:
|
483 |
""" Performs OCR using the process_image_hf function framework. """
|
484 |
+
# Simple prompt for OCR task
|
485 |
+
ocr_prompt = "Extract text content from this image."
|
486 |
result = process_image_hf(image, ocr_prompt, use_api=use_api) # Pass use_api flag
|
487 |
+
|
488 |
+
# Save the result if it looks like text (basic check)
|
489 |
if result and not result.startswith("Error") and not result.startswith("["):
|
490 |
try:
|
491 |
+
async with aiofiles.open(output_file, "w", encoding='utf-8') as f:
|
492 |
+
await f.write(result)
|
493 |
logger.info(f"HF OCR result saved to {output_file}")
|
494 |
+
except IOError as e:
|
495 |
+
logger.error(f"Failed to save HF OCR output to {output_file}: {e}")
|
496 |
+
result += f"\n[Error saving file: {e}]" # Append error to result if save fails
|
497 |
+
|
498 |
+
# --- CORRECTED BLOCK ---
|
499 |
+
elif os.path.exists(output_file):
|
500 |
+
# Remove file if processing failed or was just a placeholder message
|
501 |
+
try:
|
502 |
+
os.remove(output_file)
|
503 |
+
except OSError:
|
504 |
+
# Log error or just ignore if removal fails
|
505 |
+
logger.warning(f"Could not remove potentially empty/failed OCR file: {output_file}")
|
506 |
+
pass # Ignore removal error
|
507 |
+
except Exception as e_rem: # Catch any other error during removal
|
508 |
+
logger.warning(f"Error removing OCR file {output_file}: {e_rem}")
|
509 |
+
pass
|
510 |
+
# --- END CORRECTION ---
|
511 |
+
|
512 |
return result
|
513 |
|
514 |
# --- Character Functions (Keep from previous) -----------
|