LocalAI/core/http/endpoints
Richard Palethorpe 5195062e12
fix(realtime): Include noAction function in prompt template and handle tool_choice (#8372)
The realtime endpoint was not passing the noAction "answer" function to the
model in the prompt template, causing the model to always call user-provided
tools even when a direct response was appropriate.

Root cause:
- User tools were added to the funcs list
- TemplateMessages() was called to generate the prompt
- noAction function was only added AFTER templating
- This meant the prompt didn't include the "answer" function, even though
  the grammar did

Fix:
- Move noAction function creation before TemplateMessages() call so it's
  included in both the prompt and grammar
- Add proper tool_choice parameter handling to support "auto", "required",
  "none", and specific function selection
- Match behavior of the standard chat endpoint

💘 Generated with Crush

Assisted-by: Claude Sonnet 4.5 via Crush <crush@charm.land>

Signed-off-by: Richard Palethorpe <io@richiejp.com>
2026-02-03 14:30:37 +01:00
..
anthropic chore: re-enable e2e tests, fixups anthropic API tools support (#8296) 2026-01-30 12:41:50 +01:00
elevenlabs chore(refactor): move logging to common package based on slog (#7668) 2025-12-21 19:33:13 +01:00
explorer feat: migrate to echo and enable cancellation of non-streaming requests (#7270) 2025-11-14 22:57:53 +01:00
jina chore(refactor): move logging to common package based on slog (#7668) 2025-12-21 19:33:13 +01:00
localai feat(tts): add support for streaming mode (#8291) 2026-01-30 11:58:01 +01:00
mcp chore(refactor): move logging to common package based on slog (#7668) 2025-12-21 19:33:13 +01:00
openai fix(realtime): Include noAction function in prompt template and handle tool_choice (#8372) 2026-02-03 14:30:37 +01:00
openresponses feat(openresponses): Support reasoning blocks (#8133) 2026-01-21 00:11:45 +01:00