docling-project / docling-project/docling-jobkit
Built-in enrichment presets cannot be selected consistently from the local CLI
- Dominant language
- Python
- Stars
- 36
- Forks
- 48
- Avg merge
- 7d 3h
- Merged PRs (30d)
- 17
Description
### Bug
The 3.4.0 local CLI cannot enable the documented enrichment presets through an ordinary config.
1. `picture_classification_preset: document_figure_classifier_v2` raises `Unknown picture classification preset`, although `DoclingConverterManagerConfig.default_picture_classification_preset` uses that value.
2. `picture_description_preset: granite_vision` raises that only `default` is allowed. The local CLI gives no way to set `allowed_picture_description_presets`.
3. `code_formula_preset: default` resolves through `default_code_formula_preset="default"`, then Docling raises because the available CodeFormula presets are only `codeformulav2` and `granite_docling`.
4. `code_formula_preset: codeformulav2` is rejected by Jobkit because the local CLI gives no way to add it to `allowed_code_formula_presets`.
5. `vlm_pipeline_preset: granite_docling` is rejected because the manager registers the configured default only under the key `default`; using `default` works.
A small embedding wrapper works after constructing `DoclingConverterManagerConfig` with:
```python
default_picture_description_preset="granite_vision"
allowed_picture_description_presets=["smolvlm", "granite_vision"]
default_code_formula_preset="codeformulav2"
allowed_code_formula_presets=["codeformulav2", "granite_docling"]
```
### Expected
The local CLI should accept built-in Docling preset IDs, and every configured default should resolve to a real Docling preset. The sample/config documentation should say when callers must use the alias `default` rather than the underlying preset ID.
Tested with `docling-jobkit==3.4.0` and Docling 2.121.0 on macOS arm64.
Contributor guide
Research direction
Start by tracing how the local CLI builds DoclingConverterManagerConfig and how Jobkit validates the five preset settings. Compare those paths with the working embedding-wrapper configuration described in the issue, then review the sample/config documentation. Done means built-in preset IDs and configured defaults resolve consistently, with the required `default` alias documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100