137_Docing-Test/main.py

49 lines
1.7 KiB
Python
Raw Normal View History

2026-05-29 11:54:28 +00:00
# main.py
import os
import sys
# 1. Block hardware-level multi-device discovery loops
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import torch
# 2. Hard monkeypatch PyTorch's MPS detection before ANY machine learning imports occur
# This stops underlying huggingface models from forcing device="mps" internally
torch.backends.mps.is_available = lambda: False
torch.backends.mps.is_built = lambda: False
# Force standard CPU allocation for safety
torch.set_default_device("cpu")
import time
from docling.document_converter import DocumentConverter
def main():
2026-05-29 13:34:35 +00:00
#source = "https://arxiv.org/pdf/2408.09869"
source = "./1-AS_NZS_3000_2018_Wiring_Rules_Standards_Australia.pdf"
2026-05-29 11:54:28 +00:00
print("🚀 Initializing Docling engine with hardware-isolated CPU routing...")
start_time = time.time()
# This will now natively spin up on standard CPU threads
converter = DocumentConverter()
print("⏳ Processing document locally (Parsing layout, OCR, and tables)...")
result = converter.convert(source)
print("✨ Conversion finished! Compiling Markdown structure...")
markdown_output = result.document.export_to_markdown()
# Save output cleanly to project directory
2026-05-29 13:34:35 +00:00
output_filename = "1-AS_NZS_3000_2018_Wiring_Rules_Standards_Australia.md"
2026-05-29 11:54:28 +00:00
with open(output_filename, "w", encoding="utf-8") as f:
f.write(markdown_output)
elapsed_time = time.time() - start_time
print(f"✅ Success! Processing complete in {elapsed_time:.2f} seconds.")
print(f"📁 Structured output saved cleanly to: {os.path.abspath(output_filename)}")
print("\n--- Preview of First 300 Characters: ---")
print(markdown_output[:300])
if __name__ == "__main__":
main()