mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-21 19:49:49 +00:00
fix(annotate): don't crash pipeline on persistent JSON parse failure
Some prompts/models occasionally return pure prose with no JSON object even on retry. Returning None (and logging a preview) lets the pipeline skip that one VLM call cleanly instead of aborting the whole episode. The modules already check for None / non-dict results and degrade gracefully (no row emitted from that call). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -164,7 +164,17 @@ class _GenericTextClient:
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
retry_text = self.generate_text([retry], max_tok, temp)[0]
|
retry_text = self.generate_text([retry], max_tok, temp)[0]
|
||||||
out.append(_strip_to_json(retry_text))
|
try:
|
||||||
|
out.append(_strip_to_json(retry_text))
|
||||||
|
except (ValueError, json.JSONDecodeError):
|
||||||
|
# After retry: log preview and return None instead of crashing
|
||||||
|
# the whole pipeline. Modules treat None as "skip".
|
||||||
|
preview = retry_text.strip().replace("\n", " ")[:200]
|
||||||
|
print(
|
||||||
|
f"[vlm] WARNING: failed to parse JSON after retry; preview: {preview!r}",
|
||||||
|
flush=True,
|
||||||
|
)
|
||||||
|
out.append(None)
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user