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]
