Skip to content

Add 'detect' task type: return bbox without running OCR#158

Open
surajama wants to merge 1 commit intozai-org:mainfrom
surajama:feat/detect-task-type
Open

Add 'detect' task type: return bbox without running OCR#158
surajama wants to merge 1 commit intozai-org:mainfrom
surajama:feat/detect-task-type

Conversation

@surajama
Copy link
Copy Markdown

Adds a new detect task type to label_task_mapping. When a region label (e.g. table) is mapped to detect, the local pipeline skips the OCR API call and returns the region with its bbox_2d intact and content: "". This lets callers crop table regions by bounding box without paying the token cost of table OCR.

Changes:

  • pipeline/pipeline.py: route detect regions through pending_skip (no OCR submitted), set content="" on drain
  • postprocess/result_formatter.py: exempt detect regions from the empty-content filter so they survive into json_result
  • config.py: add id2label as an explicit LayoutConfig field (was previously only accessible via model_extra, causing AttributeError when the field was absent from a partial config)
  • examples/detect/: self-hosted example config + run script

Contribution Guide

We welcome your contributions to this repository. To ensure elegant code style and better code quality, we have prepared
the following contribution guidelines.

What We Accept

  • This PR fixes a typo or improves the documentation (if this is the case, you may skip the other checks).
  • This PR fixes a specific issue — please reference the issue number in the PR description. Make sure your code strictly
    follows the coding standards below.
  • This PR introduces a new feature — please clearly explain the necessity and implementation of the feature. Make sure
    your code strictly follows the coding standards below.

Code Style Guide

Good code style is an art. We have prepared a pre-commit hook to enforce consistent code
formatting across the project. You can clean up your code following the steps below:

pre-commit run --all-files

If your code complies with the standards, you should not see any errors.

Naming Conventions

  • Please use English for naming; do not use Pinyin or other languages. All comments should also be in English.
  • Follow PEP8 naming conventions strictly, and use underscores to separate words. Avoid meaningless names such as
    a, b, c.

Adds a new `detect` task type to `label_task_mapping`. When a region
label (e.g. `table`) is mapped to `detect`, the local pipeline skips
the OCR API call and returns the region with its `bbox_2d` intact and
`content: ""`. This lets callers crop table regions by bounding box
without paying the token cost of table OCR.

Changes:
- pipeline/pipeline.py: route detect regions through pending_skip (no
  OCR submitted), set content="" on drain
- postprocess/result_formatter.py: exempt detect regions from the
  empty-content filter so they survive into json_result
- config.py: add id2label as an explicit LayoutConfig field (was
  previously only accessible via model_extra, causing AttributeError
  when the field was absent from a partial config)
- examples/detect/: self-hosted example config + run script

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant