[ 
https://issues.apache.org/jira/browse/CAMEL-23695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-23695:
--------------------------------
    Fix Version/s: 4.21.0

> Langchain4j-agent: improve structured output when Langchain4j 1.16.0 is out
> ---------------------------------------------------------------------------
>
>                 Key: CAMEL-23695
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23695
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Zineb Bendhiba
>            Assignee: Zineb Bendhiba
>            Priority: Major
>             Fix For: 4.21.0
>
>
> I've implemented the {{{{}}{}}}chatRequestTransformer in Apache Camel's 
> camel-langchain4j-agent component and hit a snag. The one-liner transformer 
> doesn't work against DefaultAiServices:
> {code:java}
> // This throws: IllegalArgumentException: Cannot set both 'parameters' and 
> 'responseFormat' on ChatRequest 
> .chatRequestTransformer(chatRequest -> 
> chatRequest.toBuilder().responseFormat(responseFormat).build())   {code}
>  
> DefaultAiServices always sets a ChatRequestParameters object on the 
> ChatRequest (even with no tools), and ChatRequest.validate() rejects having 
> both parameters and a standalone responseFormat at the same time.
> I had to merge responseFormat into the existing ChatRequestParameters instead:
>  
> {code:java}
> .chatRequestTransformer(req -> {
>       ChatRequestParameters existing = req.parameters();
>       ChatRequestParameters withFormat = existing != null
>               ? existing.overrideWith(
>                       
> DefaultChatRequestParameters.builder().responseFormat(responseFormat).build())
>               : 
> DefaultChatRequestParameters.builder().responseFormat(responseFormat).build();
>       return 
> ChatRequest.builder().messages(req.messages()).parameters(withFormat).build();
>   }){code}
> This was fixe in this [Langchain4j 
> PR|https://github.com/langchain4j/langchain4j/pull/5325], and the fix will be 
> available in LangChain4j 1.16.0.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to