llama.cpp
9ea3f944 - server : return unparseable output as content instead of erroring

Commit
18 days ago
server : return unparseable output as content instead of erroring Follow-up to the lazy-grammar arming fix. Once the sampler correctly declines to arm on a recited trigger marker, the recitation survives into the final output - and the chat parser then throws on it, so the request still fails with HTTP 500, just from one layer further down: The model produced output that does not match the expected ... format With constrained sampling this case is well defined: anything the grammar let through as "not a tool call" is, by construction, plain prose. Add an opt-in `common_chat_parser_params::fallback_to_content` (default false, so tests and other callers keep the strict behaviour) that returns the raw output as assistant content with a warning, and enable it in the server. On a 48-seed sweep that asks a model to quote its own tool-call syntax (Llama-3.2-1B, template with an example block in the tools header), this takes llama-server from 1 x HTTP 500 to 48 x HTTP 200, with recitations returned as text and genuine tool calls still grammar-constrained.
Author
Committer
Parents
Loading