jiriOndrusek-agent opened a new pull request, #3085:
URL: https://github.com/apache/camel-kamelets/pull/3085

   Adds `modality` (`text` | `media`) and `contentType` to the 
`langchain4j-ingest-sink` Kamelet, forwarded to the `camel-langchain4j-ingest` 
endpoint. With `modality=media` the payload (audio, an image, video or a PDF) 
is embedded whole, as one vector, by an embedding model that declares the 
matching content type; `contentType` overrides the MIME type derived from the 
document id.
   
   Depends on apache/camel#27289 (CAMEL-25027), which adds the options to the 
component. Draft until that change is merged and in the 4.23.0 snapshot; until 
then the new Citrus test fails against the nightly. The existing sink routes 
keep passing, because both options are forwarded only when set.
   
   **Changes**
   - `kamelets/langchain4j-ingest-sink.kamelet.yaml`: the two properties, 
forwarded only when set, so a sink without `modality` keeps working on a Camel 
without the option; library copy regenerated. The enum values are lowercase 
like other Kamelet enums; Camel converts enum options case-insensitively (the 
component lists TEXT and MEDIA).
   - `kamelets/langchain4j-ingest-file-source.kamelet.yaml`: the `charset` 
description names the media sink.
   - One Citrus test: the file source -> sink composition in media mode over 
the PNG signature as fixture under an id without extension, so only the 
forwarded `contentType` can type it; the stub model fails unless the bytes 
arrive unchanged.
   
   **Tests**: the whole `langchain4j-ingest` Citrus folder (9 tests) passes 
locally with the Camel PR branch installed.
   
   _Written with Claude Code on behalf of Jiří Ondrušek._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to