diff --git a/parse_pol177.py b/parse_pol177.py index 4afd083..cd56182 100644 --- a/parse_pol177.py +++ b/parse_pol177.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 """ Parse PDF document using unstructured-api on 192.168.1.103. +Uses maximum quality settings (hi_res + GPU). Saves parsed JSON to /tmp/pol177_parsed.json. """ @@ -12,17 +13,33 @@ PDF_PATH = "/opt/documents_xk/АОХКСибцем/07 Служба Вице-пр API_URL = "http://192.168.1.103:8005/general/v0/general" def parse_pdf(): - print("Parsing PDF...") + print("Parsing PDF with maximum quality (hi_res + GPU)...") + + # Maximum quality parameters + form_data = { + 'strategy': 'hi_res', + 'hi_res_model_name': 'chipper', + 'pdf_infer_table_structure': 'true', + 'extract_images': 'true', + 'extract_image_block_types': '["image", "table"]', + } + with open(PDF_PATH, 'rb') as f: - files = {'file': f} - response = requests.post(API_URL, files=files) + # Note: 'files' (plural) - API expects list of UploadFile + files = {'files': f} + response = requests.post(API_URL, files=files, data=form_data) if response.status_code != 200: print(f"ERROR: API returned {response.status_code}: {response.text[:500]}") sys.exit(1) result = response.json() - elements = result.get('elements', []) + + # API returns array directly, not {"elements": [...]} + if isinstance(result, list): + elements = result + else: + elements = result.get('elements', []) print(f"Extracted {len(elements)} elements")