Spaces:
Paused
Paused
| title: PaDoc | |
| emoji: ๐ | |
| colorFrom: green | |
| colorTo: gray | |
| sdk: gradio | |
| sdk_version: 6.22.0 | |
| app_file: app.py | |
| python_version: "3.12" | |
| startup_duration_timeout: 1h | |
| short_description: Stream parallel document parsing with PaDoc | |
| models: | |
| - Longin-Yu/PaDoc | |
| # PaDoc | |
| This Space runs the Transformers parallel decoding path from | |
| [PaDoc](https://github.com/Longin-Yu/Padoc) on ZeroGPU. It exposes only | |
| lockstep-batched `parallel` execution: the main layout stream and every active | |
| content branch advance together, bounded by eight concurrent branches. | |
| The Gradio handler streams scheduler state, main tokens, branch content, | |
| detected layout boxes, and the final JSON result as generation runs. It is the | |
| ZeroGPU-compatible equivalent of: | |
| ```bash | |
| CUDA_VISIBLE_DEVICES=0 padoc-transformers-serve \ | |
| --model Longin-Yu/PaDoc \ | |
| --device cuda:0 \ | |
| --execution-mode parallel \ | |
| --max-concurrent-branches 8 | |
| ``` | |
| The Space uses direct PyTorch inference rather than starting the local FastAPI | |
| server because ZeroGPU allocates a GPU only while the decorated Gradio request | |
| is active. | |
| ## API | |
| The streaming endpoint is named `/parse`: | |
| ```python | |
| from gradio_client import Client, handle_file | |
| client = Client("TonyZhan/PaDoc") | |
| job = client.submit( | |
| handle_file("document.png"), | |
| "Parse this document.", | |
| api_name="/parse", | |
| ) | |
| for update in job: | |
| print(update) | |
| ``` | |
| ## Configuration | |
| The defaults mirror the supported PaDoc dashboard path: | |
| | Variable | Default | | |
| | --- | ---: | | |
| | `MODEL_ID` | `Longin-Yu/PaDoc` | | |
| | `MAX_NEW_TOKENS` | `512` | | |
| | `MAX_BRANCH_TOKENS` | `512` | | |
| | `MAX_CONCURRENT_BRANCHES` | `8` | | |
| | `MAX_TOTAL_BRANCHES` | `64` | | |
| Model weights are licensed under | |
| [CC-BY-NC-4.0](https://huggingface.co/Longin-Yu/PaDoc). | |