[
https://issues.apache.org/jira/browse/CAMEL-24538?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-24538 started by Andrea Cosentino.
------------------------------------------------
> camel-openai: operator-precedence bug can discard the prompt supplied in the
> message body
> -----------------------------------------------------------------------------------------
>
> Key: CAMEL-24538
> URL: https://issues.apache.org/jira/browse/CAMEL-24538
> Project: Camel
> Issue Type: Bug
> Components: camel-openai
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.23.0
>
>
> OpenAIProducer (around line 306) computes the user prompt with:
> if (userPrompt == null || userPrompt.isEmpty() &&
> ObjectHelper.isNotEmpty(config.getUserMessage()))
> Because && binds tighter than ||, this parses as userPrompt==null ||
> (userPrompt.isEmpty() && userMessage-not-empty). The intent was
> ((userPrompt==null || userPrompt.isEmpty()) && userMessage-not-empty). With
> the current grouping, when the userMessage header is absent but the
> configured userMessage option is set to an empty string, userPrompt is left
> as "" and the prompt provided in the message body (applied later, around line
> 320) is never used, so the call ends up with "No input provided".
> The correct grouping is used in OpenAIResponsesInputBuilder (line 49). The
> twin expression for the system message (line 249) is benign but should be
> parenthesised for consistency. Fix: add explicit parentheses.
> _Claude Code on behalf of oscerd_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)