davsclaus commented on code in PR #21704:
URL: https://github.com/apache/camel/pull/21704#discussion_r2901698813


##########
components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConverter.java:
##########
@@ -19,30 +19,24 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URLConnection;
 import java.nio.file.Files;
 import java.util.Base64;
 
 import dev.langchain4j.data.audio.Audio;
 import dev.langchain4j.data.image.Image;
-import dev.langchain4j.data.message.AudioContent;
-import dev.langchain4j.data.message.Content;
-import dev.langchain4j.data.message.ImageContent;
-import dev.langchain4j.data.message.PdfFileContent;
-import dev.langchain4j.data.message.TextContent;
-import dev.langchain4j.data.message.VideoContent;
+import dev.langchain4j.data.message.*;
 import dev.langchain4j.data.pdf.PdfFile;
 import dev.langchain4j.data.video.Video;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
+import org.apache.camel.Message;
 import org.apache.camel.WrappedFile;
 import org.apache.camel.component.langchain4j.agent.api.AiAgentBody;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static 
org.apache.camel.component.langchain4j.agent.api.Headers.MEDIA_TYPE;
-import static 
org.apache.camel.component.langchain4j.agent.api.Headers.MEMORY_ID;
-import static 
org.apache.camel.component.langchain4j.agent.api.Headers.SYSTEM_MESSAGE;
-import static 
org.apache.camel.component.langchain4j.agent.api.Headers.USER_MESSAGE;
+import static org.apache.camel.component.langchain4j.agent.api.Headers.*;

Review Comment:
   Avoid star imports



##########
components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConverter.java:
##########
@@ -191,10 +165,44 @@ public static AiAgentBody<?> 
inputStreamToAiAgentBody(InputStream inputStream, E
         }
     }
 
+    /**
+     * Converts a {@link String} to an {@link AiAgentBody} with the 
appropriate {@link Content} type.
+     * <p>
+     * This converter is useful for the text components that return Text Body.
+     * </p>
+     *
+     * @param  text     String as message
+     * @param  exchange the Camel exchange containing headers
+     * @return          an AiAgentBody with the appropriate Content type
+     */
+    @Converter
+    public static AiAgentBody<?> textToAiAgentBody(String text, Exchange 
exchange) {
+        TextContent content = TextContent.from(text);
+        return buildAiAgentBody(exchange, content, text);
+    }
+
+    /**
+     * Support Camel stream caching bodies (ByteArrayInputStreamCache) and 
delegate them to the existing InputStream
+     * converter.
+     *
+     * @param  cache    the cached input stream containing the message body
+     * @param  exchange the Camel exchange containing headers such as * {@code 
CamelLangChain4jAgentMediaType},
+     *                  user/system messages, * and optional memory identifiers
+     * @return          an {@link AiAgentBody} containing the appropriate * 
LangChain4j {@link Content} representation
+     */
+    @Converter
+    public static AiAgentBody<?> inputStreamCacheToAiAgentBody(

Review Comment:
   ByteArrayInputStreamCache is already an InputStream so it would be able to 
use the existing converter as-is, so this converter is not needed



##########
components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConverter.java:
##########
@@ -19,30 +19,24 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URLConnection;
 import java.nio.file.Files;
 import java.util.Base64;
 
 import dev.langchain4j.data.audio.Audio;
 import dev.langchain4j.data.image.Image;
-import dev.langchain4j.data.message.AudioContent;
-import dev.langchain4j.data.message.Content;
-import dev.langchain4j.data.message.ImageContent;
-import dev.langchain4j.data.message.PdfFileContent;
-import dev.langchain4j.data.message.TextContent;
-import dev.langchain4j.data.message.VideoContent;
+import dev.langchain4j.data.message.*;

Review Comment:
   Avoid star imports



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