[
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)