| """ |
| Test Docling Hugging Face API |
| Usage: python test_docling.py <HF_API_URL> |
| """ |
| import sys |
| import requests |
| import json |
|
|
| if len(sys.argv) < 2: |
| print("Usage: python test_docling.py <HF_API_URL>") |
| print("Example: python test_docling.py https://your-username-docling.hf.space") |
| sys.exit(1) |
|
|
| HF_URL = sys.argv[1].rstrip('/') |
|
|
| print(f"\n{'='*60}") |
| print(f"Testing Docling API: {HF_URL}") |
| print(f"{'='*60}\n") |
|
|
| |
| print("1. Testing health check...") |
| try: |
| resp = requests.get(f"{HF_URL}/") |
| print(f" Status: {resp.status_code}") |
| print(f" Response: {resp.json()}") |
| print(f" β
Health check passed!\n") |
| except Exception as e: |
| print(f" β Failed: {e}\n") |
| sys.exit(1) |
|
|
| |
| import os |
| test_pdf = "test.pdf" |
| if not os.path.exists(test_pdf): |
| print(f"β οΈ No test.pdf found. Please add a test PDF to this directory.") |
| print(f" Or create a simple test: {HF_URL}/docs") |
| sys.exit(0) |
|
|
| |
| print(f"2. Testing full document conversion with {test_pdf}...") |
| try: |
| with open(test_pdf, 'rb') as f: |
| resp = requests.post( |
| f"{HF_URL}/convert", |
| files={"file": f}, |
| timeout=120 |
| ) |
| |
| print(f" Status: {resp.status_code}") |
| |
| if resp.status_code == 200: |
| data = resp.json() |
| print(f" β
Success!") |
| print(f" File: {data.get('file_name')}") |
| print(f" Tables: {data.get('document', {}).get('tables_count', 0)}") |
| print(f" Pages: {data.get('document', {}).get('num_pages', 0)}") |
| |
| |
| tables = data.get('document', {}).get('tables', []) |
| if tables: |
| print(f"\n First table preview:") |
| for table in tables[:1]: |
| rows = table.get('rows', [])[:3] |
| for row in rows: |
| print(f" {row}") |
| else: |
| print(f" β Failed: {resp.text}\n") |
| |
| except Exception as e: |
| print(f" β Failed: {e}\n") |
|
|
| print(f"\n{'='*60}") |
| print("Test complete!") |
| print(f"{'='*60}\n") |
|
|