mirror of
				https://github.com/amithkoujalgi/ollama4j.git
				synced 2025-11-04 02:20:50 +01:00 
			
		
		
		
	Adds base64 encoding for chat-API request messages
This commit is contained in:
		@@ -3,6 +3,10 @@ package io.github.amithkoujalgi.ollama4j.core.models.chat;
 | 
			
		||||
import static io.github.amithkoujalgi.ollama4j.core.utils.Utils.getObjectMapper;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 | 
			
		||||
 | 
			
		||||
import io.github.amithkoujalgi.ollama4j.core.utils.FileToBase64Serializer;
 | 
			
		||||
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
@@ -28,6 +32,7 @@ public class OllamaChatMessage {
 | 
			
		||||
    @NonNull
 | 
			
		||||
    private String content;
 | 
			
		||||
 | 
			
		||||
    @JsonSerialize(using = FileToBase64Serializer.class)
 | 
			
		||||
    private List<File> images;
 | 
			
		||||
    
 | 
			
		||||
      @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
package io.github.amithkoujalgi.ollama4j.core.utils;
 | 
			
		||||
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.ObjectOutputStream;
 | 
			
		||||
import java.util.Base64;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.core.JsonGenerator;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonSerializer;
 | 
			
		||||
import com.fasterxml.jackson.databind.SerializerProvider;
 | 
			
		||||
 | 
			
		||||
public class FileToBase64Serializer extends JsonSerializer<Collection<File>> {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void serialize(Collection<File> value, JsonGenerator jsonGenerator, SerializerProvider serializers) throws IOException {
 | 
			
		||||
        jsonGenerator.writeStartArray();
 | 
			
		||||
        for (File file : value) {
 | 
			
		||||
            jsonGenerator.writeString(Base64.getEncoder().encodeToString(serialize(file)));
 | 
			
		||||
        }
 | 
			
		||||
        jsonGenerator.writeEndArray();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static byte[] serialize(Object obj) throws IOException {
 | 
			
		||||
        ByteArrayOutputStream out = new ByteArrayOutputStream();
 | 
			
		||||
        ObjectOutputStream os = new ObjectOutputStream(out);
 | 
			
		||||
        os.writeObject(obj);
 | 
			
		||||
        return out.toByteArray();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user