Claus Ibsen created CAMEL-26204:
-----------------------------------

             Summary: camel-langchain4j-embeddingstore - auto-embedding stores 
the TextSegment toString and embeds a List as one text, and REMOVE accepts any 
body as an id
                 Key: CAMEL-26204
                 URL: https://issues.apache.org/jira/browse/CAMEL-26204
             Project: Camel
          Issue Type: Bug
          Components: camel-langchain4j
            Reporter: Claus Ibsen
             Fix For: 4.24.0


Found while adding the catalog body types of langchain4j-embeddingstore 
(CAMEL-24961, PR #28401).

h4. 1. Auto-embedding a TextSegment body stores its toString

With an {{embeddingModel}} and no embedding header, 
{{LangChain4jEmbeddingStoreProducer.resolveEmbedding}} (main 2a465aa4814c, line 
353) reads the body with {{getBody(String.class)}}. A {{TextSegment}} body 
becomes its {{toString()}} (it starts with {{TextSegment \{ text =}}), and that 
text is embedded and stored instead of the segment text and metadata. Checked 
on 4.24.0-SNAPSHOT with AllMiniLmL6V2 and an {{InMemoryEmbeddingStore}}.

Proposed: when the body is a {{TextSegment}}, embed and store it as is.

h4. 2. A List of Strings is embedded as one text

The same code (line 353) turns a {{List<String>}} body into one text such as 
{{\[a, b\]}}, which is embedded and stored as a single entry. Checked on 
4.24.0-SNAPSHOT with AllMiniLmL6V2 and an {{InMemoryEmbeddingStore}}.

Proposed: embed a List of Strings or TextSegments as a batch (as with the 
EMBEDDINGS header in {{addBatch}}), or fail with a clear message.

h4. 3. REMOVE with a Map or an Integer body silently removes a made-up id

{{remove}} (line 266) converts any body that is not a Collection with 
{{getBody(String.class)}}, so a Map body removes the id made of the Map's 
{{toString()}} and an Integer {{42}} removes the id {{"42"}}; nothing fails and 
nothing is removed. Checked on 4.24.0-SNAPSHOT with an 
{{InMemoryEmbeddingStore}}.

Proposed: accept only a String (or a Collection of Strings) as the id and fail 
for other body types.

_Claude Code on behalf of davsclaus_



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

Reply via email to