# What does this PR do?
Adds inline::unstructured as an opt-in file processor provider for
processing 65+ document formats using the local Unstructured library.
Follows the same structure as inline::docling provider.
Provides the same multi-format document processing capabilities with
structure-aware chunking options as remote::unstructured-api, but runs
locally without API costs. Follows the same structure as inline::docling
provider.
## Test Plan
Tested with real PDF processing via /v1alpha/file-processors/process
endpoint:
``` bash
# Start server
uv run ogx stack run \
--providers "file_processors=inline::unstructured,files=inline::localfs,vector_io=inline::faiss,inference=inline::sentence-transformers" \
--port 8321
# Process PDF
curl -X POST http://localhost:8321/v1alpha/file-processors/process \
-F "file=@example_pdf" \
-F 'chunking_strategy={"type":"auto"}
Results:
{
"metadata": {
"processor": "unstructured",
"processing_time_ms": 44121,
"extraction_method": "unstructured-local",
"file_size_bytes": 25766,
"total_elements": 174,
"strategy": "auto"
}
}
```
Output:
- Processed 25.7 KB PDF in 44 seconds
- Extracted 174 elements
- Created 2 chunks with auto chunking strategy
- Metadata preserved (filename, page numbers, element types)
- All unit tests passed
---------
Signed-off-by: Sahana Sreeram <sahanasreeram01@gmail.com>