Fix: use hi_res strategy + chipper model + GPU for maximum quality

This commit is contained in:
2026-07-16 16:00:35 +07:00
parent 35d5f48c5e
commit f8085d9ec2
+20 -3
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
""" """
Parse PDF document using unstructured-api on 192.168.1.103. 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. Saves parsed JSON to /tmp/pol177_parsed.json.
""" """
@@ -12,16 +13,32 @@ PDF_PATH = "/opt/documents_xk/АОХКСибцем/07 Служба Вице-пр
API_URL = "http://192.168.1.103:8005/general/v0/general" API_URL = "http://192.168.1.103:8005/general/v0/general"
def parse_pdf(): 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: with open(PDF_PATH, 'rb') as f:
files = {'file': f} # Note: 'files' (plural) - API expects list of UploadFile
response = requests.post(API_URL, files=files) files = {'files': f}
response = requests.post(API_URL, files=files, data=form_data)
if response.status_code != 200: if response.status_code != 200:
print(f"ERROR: API returned {response.status_code}: {response.text[:500]}") print(f"ERROR: API returned {response.status_code}: {response.text[:500]}")
sys.exit(1) sys.exit(1)
result = response.json() result = response.json()
# API returns array directly, not {"elements": [...]}
if isinstance(result, list):
elements = result
else:
elements = result.get('elements', []) elements = result.get('elements', [])
print(f"Extracted {len(elements)} elements") print(f"Extracted {len(elements)} elements")