[ 
https://issues.apache.org/jira/browse/CAMEL-26219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18137414#comment-18137414
 ] 

Claus Ibsen commented on CAMEL-26219:
-------------------------------------

Fixed by https://github.com/apache/camel/pull/29066 (merged to main as 
703d4fcbdae4), fix version 4.24.0.

_Claude Code on behalf of Claus Ibsen (davsclaus)_

> camel-huggingface - the chat history map grows without bound, and any output 
> containing the text "error" is treated as a failure
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26219
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26219
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-ai
>            Reporter: Claus Ibsen
>            Assignee: Andrea Cosentino
>            Priority: Major
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of huggingface (CAMEL-24961, PR 
> #28402).
> h4. 1. The chat history map grows without bound
> {{ChatPredictor}} (main 2a465aa4814c, line 103) keeps a {{ConcurrentHashMap}} 
> of histories keyed by the memory id header (line 122); an entry is removed 
> only with {{CamelChatClearHistory}} (line 127), so with one memory id per 
> user or session the map and each history grow for the life of the endpoint. 
> Read in the code, not run.
> Proposed: bound the map (size or idle time) and the history length, or use a 
> pluggable chat memory store.
> h4. 2. Any output containing the quoted text "error" is treated as a failure
> Every predictor checks {{result.contains("\"error\"")}} (for example 
> {{TextGenerationPredictor}} line 107, {{ChatPredictor}} line 169, 
> {{SummarizationPredictor}} line 109) and throws "Python inference failed", so 
> a generated text that contains the word {{"error"}} in quotes (for example a 
> JSON snippet) fails. Checked on 4.24.0-SNAPSHOT by calling the predictors' 
> {{processOutput}} directly.
> Proposed: parse the JSON and check for a top-level {{error}} key only.
> h4. 3. text-to-speech sets Content-Type application/octet-stream on a POJO 
> body
> {{TextToSpeechPredictor}} (line 136) sets {{Content-Type: 
> application/octet-stream}}, but the body is a DJL 
> {{ai.djl.modality.audio.Audio}} object, not bytes. Checked on 4.24.0-SNAPSHOT 
> by calling the predictor directly.
> Proposed: set the body to the encoded audio bytes (WAV) to match the header, 
> or do not set the header.
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to