structured-docling / README.md
flozi00's picture
first try
8e3d376
---
title: Structured Docling
emoji: πŸ“„
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.49.1
app_file: app_hf_spaces.py
pinned: false
license: gpl-3.0
---
# Docling Structured Extraction Demo
A Gradio-based demo application for extracting structured data from documents using Docling's beta structured extraction feature.
## Features
- πŸ“„ Support for PDF and image files (PNG, JPG, JPEG, TIFF, BMP)
- 🌐 URL input for remote documents
- 🎯 Customizable JSON templates for extraction
- πŸš€ Optimized for Hugging Face Spaces with Zero GPU support
- πŸ“Š Clean JSON output with extracted data
## Files
- `app.py` - Standard Gradio application
- `app_hf_spaces.py` - Version optimized for Hugging Face Spaces with Zero GPU decorator
- `requirements.txt` - Python dependencies
## Installation
```bash
pip install -r requirements.txt
```
## Usage
### Local Development
Run the standard version:
```bash
python app.py
```
### Hugging Face Spaces
The `app_hf_spaces.py` file is specifically designed for deployment on Hugging Face Spaces with Zero GPU support.
To deploy:
1. Create a new Space on Hugging Face
2. Upload `app_hf_spaces.py` (rename to `app.py`)
3. Upload `requirements.txt`
4. Enable Zero GPU in Space settings
## How to Use the Demo
1. **Input Source**: Either upload a document file or provide a URL to a document
2. **Define Template**: Create a JSON template specifying the fields you want to extract
- Use `"string"` for text fields
- Use `"float"` for decimal numbers
- Use `"int"` for whole numbers
3. **Extract**: Click the "Extract" button to process the document
4. **View Results**: The extracted data will appear in JSON format in the output box
## Template Examples
### Simple Invoice Extraction
```json
{
"bill_no": "string",
"total": "float",
"date": "string"
}
```
### Detailed Invoice Extraction
```json
{
"bill_no": "string",
"total": "float",
"sender_name": "string",
"receiver_name": "string",
"postal_code": "string",
"city": "string"
}
```
## Notes
- The structured extraction API is currently in **beta** and may change
- Only PDF and image formats are supported
- The extraction uses Vision Language Models (VLM) for understanding document content
- Processing time depends on document complexity and size
## Requirements
- Python 3.9+
- gradio >= 4.0.0
- docling[vlm] >= 2.0.0
- spaces >= 0.19.0 (for Hugging Face Spaces deployment)
## License
This demo is provided as-is for demonstration purposes.