Fix: use hi_res strategy + chipper model + GPU for maximum quality
This commit is contained in:
+21
-4
@@ -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,17 +13,33 @@ 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()
|
||||||
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")
|
print(f"Extracted {len(elements)} elements")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user