docling-project / docling-project/docling-jobkit

Built-in enrichment presets cannot be selected consistently from the local CLI

Open
#230 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.