-
Notifications
You must be signed in to change notification settings - Fork 473
Description
Describe the bug
auto_mode_configuration is defined in the v2 SDK types (ProcessingOptionsAutoModeConfiguration in parsing_create_params.py), accepted by the /api/v2/parse and /api/v2/parse/upload endpoints without error, and the response includes a triggered_auto_mode field in per-page metadata — but it is always false for every page, across every configuration we tested.
We ran 6 separate parse jobs against a 45-page investment PDF that contains tables, images, charts, and mixed layouts. We tested:
| Config | Rules | Description | Triggered pages |
|---|---|---|---|
minimal (JSON endpoint) |
1 rule | table_in_page: true → agentic |
0 / 45 |
minimal (upload endpoint) |
1 rule | Same rule via /api/v2/parse/upload multipart |
0 / 45 |
booleans |
3 rules | image_in_page, table_in_page, catch-all |
0 / 45 |
strings |
13 rules | Full config, numeric thresholds as strings | 0 / 45 |
integers |
13 rules | Full config, numeric thresholds as integers | 0 / 45 |
raw |
13 rules | Direct raw httpx request | 0 / 45 |
Every single page across all 6 jobs returned triggered_auto_mode: false and cost_optimized: false. No page was ever routed to a different tier. The document clearly has tables and images (many pages have confidence scores suggesting layout detection ran), yet even the simplest boolean rule (table_in_page: true) never fired.
The core question: Is auto_mode_configuration actually functional in v2, or is it a v1-only feature that's been carried forward in the type definitions but not wired up on the backend?
Files
The test PDF is 2017.02 Industrial Parks US.pdf (3.5 MB, 45 pages) — a commercial real estate investment document with tables, charts, images, and mixed text layouts.
Job IDs
All jobs completed successfully (HTTP 200, status=COMPLETED):
pjb-hq4yan4h70a0x57uvctvh63mauvc— minimal config, JSON endpoint (/api/v2/parse)pjb-r47vfdbog8c9mer9w524251ea02n— minimal config, upload endpoint (/api/v2/parse/upload)pjb-f7w0xazjupd34fnmur1owktqdqfw— booleans-only configpjb-uvck1c87hkpwaqqfkzcyb6ygm10f— 13 rules, numeric values as stringspjb-5zwejvm1ib84192y1y3kabd6e8w0— 13 rules, numeric values as integerspjb-57s0l7cv35h3s4412nnpakjktf5k— raw httpx request
Client
- Python Library (
llama_cloudv2 SDK) - API (raw
httpxrequests to/api/v2/parseand/api/v2/parse/upload)
Additional context
What we sent (minimal example — single boolean rule)
{
"file_id": "ea1147b0-3079-4626-b0a1-1ef32e635373",
"tier": "cost_effective",
"version": "latest",
"disable_cache": true,
"processing_options": {
"auto_mode_configuration": [
{
"table_in_page": true,
"parsing_conf": {
"version": "latest",
"tier": "agentic"
}
}
]
}
}What the API returned (per-page metadata, same pattern for all 45 pages)
{
"page_number": 5,
"confidence": 0.952,
"cost_optimized": false,
"original_orientation_angle": 0,
"triggered_auto_mode": false
}Observations
- The API accepts
auto_mode_configurationwithout error (no 400/422) - The response includes
triggered_auto_modein per-page metadata — suggesting the field exists - But
triggered_auto_modeis alwaysfalseregardless of rules - No
parsing_modeortierfield appears in per-page metadata to show what tier was actually used - The
confidencefield varies per page (0.0–1.0), suggesting some layout analysis did run - We tried both endpoints (
/api/v2/parsewithfile_idand/api/v2/parse/uploadwith multipart) — same result - We tried integers vs strings for numeric thresholds — same result
cost_optimizedis alwaysfalsedespite being returned- The SDK types (
ProcessingOptionsAutoModeConfiguration) have full type definitions for all trigger fields, but none of them appear to be evaluated server-side
What we expected
Pages with tables should match table_in_page: true and be routed to the agentic tier specified in parsing_conf. At minimum, triggered_auto_mode should be true for those pages.
SDK version
llama_cloud (latest pip install as of 2026-02-08)