diff --git a/.gitignore b/.gitignore index 1c00e11..928b77d 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,6 @@ build/ .DS_Store /.idea/ pom.xml.* -release.properties \ No newline at end of file +release.properties + +src/main/java/io/github/ollama4j/localtests \ No newline at end of file diff --git a/docs/docs/apis-generate/chat.md b/docs/docs/apis-generate/chat.md index 78827bd..af23ac4 100644 --- a/docs/docs/apis-generate/chat.md +++ b/docs/docs/apis-generate/chat.md @@ -13,7 +13,7 @@ information using the history of already asked questions and the respective answ import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; +import io.github.ollama4j.models.chat.OllamaChatRequest; import io.github.ollama4j.models.chat.OllamaChatResult; import io.github.ollama4j.types.OllamaModelType; @@ -27,7 +27,7 @@ public class Main { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(OllamaModelType.LLAMA2); // create first user question - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What is the capital of France?") + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What is the capital of France?") .build(); // start conversation with model @@ -87,8 +87,8 @@ You will get a response similar to: ```java import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.models.chat.OllamaChatMessageRole; +import io.github.ollama4j.models.chat.OllamaChatRequest; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.models.chat.OllamaChatResult; import io.github.ollama4j.models.generate.OllamaStreamHandler; @@ -101,7 +101,7 @@ public class Main { OllamaAPI ollamaAPI = new OllamaAPI(host); OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getModel()); - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What is the capital of France? And what's France's connection with Mona Lisa?") .build(); @@ -132,7 +132,7 @@ import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.impl.ConsoleOutputStreamHandler; import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; +import io.github.ollama4j.models.chat.OllamaChatRequest; import io.github.ollama4j.models.generate.OllamaStreamHandler; import io.github.ollama4j.types.OllamaModelType; @@ -142,7 +142,7 @@ public class Main { OllamaAPI ollamaAPI = new OllamaAPI(host); OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(OllamaModelType.LLAMA2); - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, "List all cricket world cup teams of 2019. Name the teams!") + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "List all cricket world cup teams of 2019. Name the teams!") .build(); OllamaStreamHandler streamHandler = new ConsoleOutputStreamHandler(); ollamaAPI.chat(requestModel, streamHandler); @@ -156,7 +156,7 @@ public class Main { import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; +import io.github.ollama4j.models.chat.OllamaChatRequest; import io.github.ollama4j.models.chat.OllamaChatResult; import io.github.ollama4j.types.OllamaModelType; @@ -171,7 +171,7 @@ public class Main { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(OllamaModelType.LLAMA2); // create request with system-prompt (overriding the model defaults) and user question - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.SYSTEM, "You are a silent bot that only says 'NI'. Do not say anything else under any circumstances!") + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.SYSTEM, "You are a silent bot that only says 'NI'. Do not say anything else under any circumstances!") .withMessage(OllamaChatMessageRole.USER, "What is the capital of France? And what's France's connection with Mona Lisa?") .build(); @@ -193,8 +193,8 @@ You will get a response similar to: ```java import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.models.chat.OllamaChatMessageRole; +import io.github.ollama4j.models.chat.OllamaChatRequest; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.models.chat.OllamaChatResult; import io.github.ollama4j.types.OllamaModelType; @@ -211,7 +211,7 @@ public class Main { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(OllamaModelType.LLAVA); // Load Image from File and attach to user message (alternatively images could also be added via URL) - OllamaChatRequestModel requestModel = + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", List.of( new File("/path/to/image"))).build(); diff --git a/docs/docs/apis-generate/generate-async.md b/docs/docs/apis-generate/generate-async.md index ad5b786..1b8b47c 100644 --- a/docs/docs/apis-generate/generate-async.md +++ b/docs/docs/apis-generate/generate-async.md @@ -13,7 +13,7 @@ the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#gener ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaAsyncResultStreamer; +import io.github.ollama4j.models.response.OllamaAsyncResultStreamer; import io.github.ollama4j.types.OllamaModelType; public class Main { diff --git a/docs/docs/apis-generate/generate-with-image-files.md b/docs/docs/apis-generate/generate-with-image-files.md index 4e4214a..b26f9ba 100644 --- a/docs/docs/apis-generate/generate-with-image-files.md +++ b/docs/docs/apis-generate/generate-with-image-files.md @@ -23,9 +23,10 @@ If you have this image downloaded and you pass the path to the downloaded image ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; + import java.io.File; import java.util.List; diff --git a/docs/docs/apis-generate/generate-with-image-urls.md b/docs/docs/apis-generate/generate-with-image-urls.md index 04573b9..cf9e755 100644 --- a/docs/docs/apis-generate/generate-with-image-urls.md +++ b/docs/docs/apis-generate/generate-with-image-urls.md @@ -23,9 +23,10 @@ Passing the link of this image the following code: ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; + import java.util.List; public class Main { diff --git a/docs/docs/apis-generate/generate.md b/docs/docs/apis-generate/generate.md index 70bbb89..1cd6a47 100644 --- a/docs/docs/apis-generate/generate.md +++ b/docs/docs/apis-generate/generate.md @@ -17,7 +17,7 @@ to [this](/apis-extras/options-builder). ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; @@ -50,7 +50,7 @@ You will get a response similar to: ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.models.generate.OllamaStreamHandler; import io.github.ollama4j.utils.OptionsBuilder; @@ -91,7 +91,7 @@ You will get a response similar to: ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; @@ -139,7 +139,7 @@ You'd then get a response from the model: ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; import io.github.ollama4j.utils.SamplePrompts; diff --git a/docs/docs/apis-generate/prompt-builder.md b/docs/docs/apis-generate/prompt-builder.md index 150f3cd..b947dca 100644 --- a/docs/docs/apis-generate/prompt-builder.md +++ b/docs/docs/apis-generate/prompt-builder.md @@ -9,7 +9,7 @@ inferences. ```java import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; import io.github.ollama4j.utils.PromptBuilder; diff --git a/docs/docs/apis-model-management/get-model-details.md b/docs/docs/apis-model-management/get-model-details.md index d415a5c..0162e29 100644 --- a/docs/docs/apis-model-management/get-model-details.md +++ b/docs/docs/apis-model-management/get-model-details.md @@ -8,7 +8,7 @@ This API lets you get the details of a model on the Ollama server. ```java title="GetModelDetails.java" import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.ModelDetail; +import io.github.ollama4j.models.response.ModelDetail; import io.github.ollama4j.types.OllamaModelType; public class Main { diff --git a/docs/docs/apis-model-management/list-models.md b/docs/docs/apis-model-management/list-models.md index 19738da..cb594ef 100644 --- a/docs/docs/apis-model-management/list-models.md +++ b/docs/docs/apis-model-management/list-models.md @@ -8,7 +8,7 @@ This API lets you list available models on the Ollama server. ```java title="ListModels.java" import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.Model; +import io.github.ollama4j.models.response.Model; import java.util.List; diff --git a/src/main/java/io/github/ollama4j/OllamaAPI.java b/src/main/java/io/github/ollama4j/OllamaAPI.java index 2e04e81..64ccb18 100644 --- a/src/main/java/io/github/ollama4j/OllamaAPI.java +++ b/src/main/java/io/github/ollama4j/OllamaAPI.java @@ -1,20 +1,19 @@ package io.github.ollama4j; -import com.fasterxml.jackson.core.JsonProcessingException; import io.github.ollama4j.exceptions.OllamaBaseException; import io.github.ollama4j.exceptions.ToolInvocationException; import io.github.ollama4j.exceptions.ToolNotFoundException; -import io.github.ollama4j.models.*; import io.github.ollama4j.models.chat.OllamaChatMessage; +import io.github.ollama4j.models.chat.OllamaChatRequest; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.models.chat.OllamaChatResult; import io.github.ollama4j.models.embeddings.OllamaEmbeddingResponseModel; import io.github.ollama4j.models.embeddings.OllamaEmbeddingsRequestModel; -import io.github.ollama4j.models.generate.OllamaGenerateRequestModel; +import io.github.ollama4j.models.generate.OllamaGenerateRequest; import io.github.ollama4j.models.generate.OllamaStreamHandler; import io.github.ollama4j.models.ps.ModelsProcessResponse; import io.github.ollama4j.models.request.*; +import io.github.ollama4j.models.response.*; import io.github.ollama4j.tools.*; import io.github.ollama4j.utils.Options; import io.github.ollama4j.utils.Utils; @@ -384,7 +383,7 @@ public class OllamaAPI { */ public OllamaResult generate(String model, String prompt, boolean raw, Options options, OllamaStreamHandler streamHandler) throws OllamaBaseException, IOException, InterruptedException { - OllamaGenerateRequestModel ollamaRequestModel = new OllamaGenerateRequestModel(model, prompt); + OllamaGenerateRequest ollamaRequestModel = new OllamaGenerateRequest(model, prompt); ollamaRequestModel.setRaw(raw); ollamaRequestModel.setOptions(options.getOptionsMap()); return generateSyncForOllamaRequestModel(ollamaRequestModel, streamHandler); @@ -453,7 +452,7 @@ public class OllamaAPI { * @return the ollama async result callback handle */ public OllamaAsyncResultStreamer generateAsync(String model, String prompt, boolean raw) { - OllamaGenerateRequestModel ollamaRequestModel = new OllamaGenerateRequestModel(model, prompt); + OllamaGenerateRequest ollamaRequestModel = new OllamaGenerateRequest(model, prompt); ollamaRequestModel.setRaw(raw); URI uri = URI.create(this.host + "/api/generate"); OllamaAsyncResultStreamer ollamaAsyncResultStreamer = @@ -483,7 +482,7 @@ public class OllamaAPI { for (File imageFile : imageFiles) { images.add(encodeFileToBase64(imageFile)); } - OllamaGenerateRequestModel ollamaRequestModel = new OllamaGenerateRequestModel(model, prompt, images); + OllamaGenerateRequest ollamaRequestModel = new OllamaGenerateRequest(model, prompt, images); ollamaRequestModel.setOptions(options.getOptionsMap()); return generateSyncForOllamaRequestModel(ollamaRequestModel, streamHandler); } @@ -519,7 +518,7 @@ public class OllamaAPI { for (String imageURL : imageURLs) { images.add(encodeByteArrayToBase64(Utils.loadImageBytesFromUrl(imageURL))); } - OllamaGenerateRequestModel ollamaRequestModel = new OllamaGenerateRequestModel(model, prompt, images); + OllamaGenerateRequest ollamaRequestModel = new OllamaGenerateRequest(model, prompt, images); ollamaRequestModel.setOptions(options.getOptionsMap()); return generateSyncForOllamaRequestModel(ollamaRequestModel, streamHandler); } @@ -553,7 +552,7 @@ public class OllamaAPI { } /** - * Ask a question to a model using an {@link OllamaChatRequestModel}. This can be constructed using an {@link OllamaChatRequestBuilder}. + * Ask a question to a model using an {@link OllamaChatRequest}. This can be constructed using an {@link OllamaChatRequestBuilder}. *

* Hint: the OllamaChatRequestModel#getStream() property is not implemented. * @@ -563,12 +562,12 @@ public class OllamaAPI { * @throws IOException in case the responseStream can not be read * @throws InterruptedException in case the server is not reachable or network issues happen */ - public OllamaChatResult chat(OllamaChatRequestModel request) throws OllamaBaseException, IOException, InterruptedException { + public OllamaChatResult chat(OllamaChatRequest request) throws OllamaBaseException, IOException, InterruptedException { return chat(request, null); } /** - * Ask a question to a model using an {@link OllamaChatRequestModel}. This can be constructed using an {@link OllamaChatRequestBuilder}. + * Ask a question to a model using an {@link OllamaChatRequest}. This can be constructed using an {@link OllamaChatRequestBuilder}. *

* Hint: the OllamaChatRequestModel#getStream() property is not implemented. * @@ -579,7 +578,7 @@ public class OllamaAPI { * @throws IOException in case the responseStream can not be read * @throws InterruptedException in case the server is not reachable or network issues happen */ - public OllamaChatResult chat(OllamaChatRequestModel request, OllamaStreamHandler streamHandler) throws OllamaBaseException, IOException, InterruptedException { + public OllamaChatResult chat(OllamaChatRequest request, OllamaStreamHandler streamHandler) throws OllamaBaseException, IOException, InterruptedException { OllamaChatEndpointCaller requestCaller = new OllamaChatEndpointCaller(host, basicAuth, requestTimeoutSeconds, verbose); OllamaResult result; if (streamHandler != null) { @@ -606,7 +605,7 @@ public class OllamaAPI { } private OllamaResult generateSyncForOllamaRequestModel( - OllamaGenerateRequestModel ollamaRequestModel, OllamaStreamHandler streamHandler) + OllamaGenerateRequest ollamaRequestModel, OllamaStreamHandler streamHandler) throws OllamaBaseException, IOException, InterruptedException { OllamaGenerateEndpointCaller requestCaller = new OllamaGenerateEndpointCaller(host, basicAuth, requestTimeoutSeconds, verbose); diff --git a/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestModel.java b/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequest.java similarity index 66% rename from src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestModel.java rename to src/main/java/io/github/ollama4j/models/chat/OllamaChatRequest.java index d40739e..e6e528d 100644 --- a/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestModel.java +++ b/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequest.java @@ -2,7 +2,7 @@ package io.github.ollama4j.models.chat; import java.util.List; -import io.github.ollama4j.models.OllamaCommonRequestModel; +import io.github.ollama4j.models.request.OllamaCommonRequest; import io.github.ollama4j.utils.OllamaRequestBody; import lombok.Getter; @@ -17,20 +17,20 @@ import lombok.Setter; */ @Getter @Setter -public class OllamaChatRequestModel extends OllamaCommonRequestModel implements OllamaRequestBody { +public class OllamaChatRequest extends OllamaCommonRequest implements OllamaRequestBody { private List messages; - public OllamaChatRequestModel() {} + public OllamaChatRequest() {} - public OllamaChatRequestModel(String model, List messages) { + public OllamaChatRequest(String model, List messages) { this.model = model; this.messages = messages; } @Override public boolean equals(Object o) { - if (!(o instanceof OllamaChatRequestModel)) { + if (!(o instanceof OllamaChatRequest)) { return false; } diff --git a/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestBuilder.java b/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestBuilder.java index 547fda6..1d7aa0b 100644 --- a/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestBuilder.java +++ b/src/main/java/io/github/ollama4j/models/chat/OllamaChatRequestBuilder.java @@ -15,28 +15,28 @@ import io.github.ollama4j.utils.Options; import io.github.ollama4j.utils.Utils; /** - * Helper class for creating {@link OllamaChatRequestModel} objects using the builder-pattern. + * Helper class for creating {@link OllamaChatRequest} objects using the builder-pattern. */ public class OllamaChatRequestBuilder { private static final Logger LOG = LoggerFactory.getLogger(OllamaChatRequestBuilder.class); private OllamaChatRequestBuilder(String model, List messages){ - request = new OllamaChatRequestModel(model, messages); + request = new OllamaChatRequest(model, messages); } - private OllamaChatRequestModel request; + private OllamaChatRequest request; public static OllamaChatRequestBuilder getInstance(String model){ return new OllamaChatRequestBuilder(model, new ArrayList<>()); } - public OllamaChatRequestModel build(){ + public OllamaChatRequest build(){ return request; } public void reset(){ - request = new OllamaChatRequestModel(request.getModel(), new ArrayList<>()); + request = new OllamaChatRequest(request.getModel(), new ArrayList<>()); } public OllamaChatRequestBuilder withMessage(OllamaChatMessageRole role, String content, List images){ diff --git a/src/main/java/io/github/ollama4j/models/chat/OllamaChatResult.java b/src/main/java/io/github/ollama4j/models/chat/OllamaChatResult.java index c779c60..b105e81 100644 --- a/src/main/java/io/github/ollama4j/models/chat/OllamaChatResult.java +++ b/src/main/java/io/github/ollama4j/models/chat/OllamaChatResult.java @@ -2,7 +2,7 @@ package io.github.ollama4j.models.chat; import java.util.List; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; /** * Specific chat-API result that contains the chat history sent to the model and appends the answer as {@link OllamaChatResult} given by the diff --git a/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestModel.java b/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequest.java similarity index 58% rename from src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestModel.java rename to src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequest.java index 3b4c693..de767dc 100644 --- a/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestModel.java +++ b/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequest.java @@ -1,7 +1,7 @@ package io.github.ollama4j.models.generate; -import io.github.ollama4j.models.OllamaCommonRequestModel; +import io.github.ollama4j.models.request.OllamaCommonRequest; import io.github.ollama4j.utils.OllamaRequestBody; import java.util.List; @@ -11,7 +11,7 @@ import lombok.Setter; @Getter @Setter -public class OllamaGenerateRequestModel extends OllamaCommonRequestModel implements OllamaRequestBody{ +public class OllamaGenerateRequest extends OllamaCommonRequest implements OllamaRequestBody{ private String prompt; private List images; @@ -20,15 +20,15 @@ public class OllamaGenerateRequestModel extends OllamaCommonRequestModel impleme private String context; private boolean raw; - public OllamaGenerateRequestModel() { + public OllamaGenerateRequest() { } - public OllamaGenerateRequestModel(String model, String prompt) { + public OllamaGenerateRequest(String model, String prompt) { this.model = model; this.prompt = prompt; } - public OllamaGenerateRequestModel(String model, String prompt, List images) { + public OllamaGenerateRequest(String model, String prompt, List images) { this.model = model; this.prompt = prompt; this.images = images; @@ -36,7 +36,7 @@ public class OllamaGenerateRequestModel extends OllamaCommonRequestModel impleme @Override public boolean equals(Object o) { - if (!(o instanceof OllamaGenerateRequestModel)) { + if (!(o instanceof OllamaGenerateRequest)) { return false; } diff --git a/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestBuilder.java b/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestBuilder.java index 2bd3dce..f802094 100644 --- a/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestBuilder.java +++ b/src/main/java/io/github/ollama4j/models/generate/OllamaGenerateRequestBuilder.java @@ -3,22 +3,22 @@ package io.github.ollama4j.models.generate; import io.github.ollama4j.utils.Options; /** - * Helper class for creating {@link OllamaGenerateRequestModel} + * Helper class for creating {@link OllamaGenerateRequest} * objects using the builder-pattern. */ public class OllamaGenerateRequestBuilder { private OllamaGenerateRequestBuilder(String model, String prompt){ - request = new OllamaGenerateRequestModel(model, prompt); + request = new OllamaGenerateRequest(model, prompt); } - private OllamaGenerateRequestModel request; + private OllamaGenerateRequest request; public static OllamaGenerateRequestBuilder getInstance(String model){ return new OllamaGenerateRequestBuilder(model,""); } - public OllamaGenerateRequestModel build(){ + public OllamaGenerateRequest build(){ return request; } diff --git a/src/main/java/io/github/ollama4j/models/BasicAuth.java b/src/main/java/io/github/ollama4j/models/request/BasicAuth.java similarity index 83% rename from src/main/java/io/github/ollama4j/models/BasicAuth.java rename to src/main/java/io/github/ollama4j/models/request/BasicAuth.java index 897e71f..f3372a9 100644 --- a/src/main/java/io/github/ollama4j/models/BasicAuth.java +++ b/src/main/java/io/github/ollama4j/models/request/BasicAuth.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.request; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/io/github/ollama4j/models/request/OllamaChatEndpointCaller.java b/src/main/java/io/github/ollama4j/models/request/OllamaChatEndpointCaller.java index a3314d4..b875bf8 100644 --- a/src/main/java/io/github/ollama4j/models/request/OllamaChatEndpointCaller.java +++ b/src/main/java/io/github/ollama4j/models/request/OllamaChatEndpointCaller.java @@ -2,8 +2,7 @@ package io.github.ollama4j.models.request; import com.fasterxml.jackson.core.JsonProcessingException; import io.github.ollama4j.exceptions.OllamaBaseException; -import io.github.ollama4j.models.BasicAuth; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.models.chat.OllamaChatResponseModel; import io.github.ollama4j.models.chat.OllamaChatStreamObserver; import io.github.ollama4j.models.generate.OllamaStreamHandler; diff --git a/src/main/java/io/github/ollama4j/models/OllamaCommonRequestModel.java b/src/main/java/io/github/ollama4j/models/request/OllamaCommonRequest.java similarity index 91% rename from src/main/java/io/github/ollama4j/models/OllamaCommonRequestModel.java rename to src/main/java/io/github/ollama4j/models/request/OllamaCommonRequest.java index b6ef074..2e6ed7e 100644 --- a/src/main/java/io/github/ollama4j/models/OllamaCommonRequestModel.java +++ b/src/main/java/io/github/ollama4j/models/request/OllamaCommonRequest.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.request; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; @@ -12,7 +12,7 @@ import lombok.Data; @Data @JsonInclude(JsonInclude.Include.NON_NULL) -public abstract class OllamaCommonRequestModel { +public abstract class OllamaCommonRequest { protected String model; @JsonSerialize(using = BooleanToJsonFormatFlagSerializer.class) diff --git a/src/main/java/io/github/ollama4j/models/request/OllamaEndpointCaller.java b/src/main/java/io/github/ollama4j/models/request/OllamaEndpointCaller.java index c1aed87..8529c18 100644 --- a/src/main/java/io/github/ollama4j/models/request/OllamaEndpointCaller.java +++ b/src/main/java/io/github/ollama4j/models/request/OllamaEndpointCaller.java @@ -2,9 +2,8 @@ package io.github.ollama4j.models.request; import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.exceptions.OllamaBaseException; -import io.github.ollama4j.models.BasicAuth; -import io.github.ollama4j.models.OllamaErrorResponseModel; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaErrorResponse; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.utils.OllamaRequestBody; import io.github.ollama4j.utils.Utils; import org.slf4j.Logger; @@ -78,19 +77,19 @@ public abstract class OllamaEndpointCaller { while ((line = reader.readLine()) != null) { if (statusCode == 404) { LOG.warn("Status code: 404 (Not Found)"); - OllamaErrorResponseModel ollamaResponseModel = - Utils.getObjectMapper().readValue(line, OllamaErrorResponseModel.class); + OllamaErrorResponse ollamaResponseModel = + Utils.getObjectMapper().readValue(line, OllamaErrorResponse.class); responseBuffer.append(ollamaResponseModel.getError()); } else if (statusCode == 401) { LOG.warn("Status code: 401 (Unauthorized)"); - OllamaErrorResponseModel ollamaResponseModel = + OllamaErrorResponse ollamaResponseModel = Utils.getObjectMapper() - .readValue("{\"error\":\"Unauthorized\"}", OllamaErrorResponseModel.class); + .readValue("{\"error\":\"Unauthorized\"}", OllamaErrorResponse.class); responseBuffer.append(ollamaResponseModel.getError()); } else if (statusCode == 400) { LOG.warn("Status code: 400 (Bad Request)"); - OllamaErrorResponseModel ollamaResponseModel = Utils.getObjectMapper().readValue(line, - OllamaErrorResponseModel.class); + OllamaErrorResponse ollamaResponseModel = Utils.getObjectMapper().readValue(line, + OllamaErrorResponse.class); responseBuffer.append(ollamaResponseModel.getError()); } else { boolean finished = parseResponseAndAddToBuffer(line, responseBuffer); diff --git a/src/main/java/io/github/ollama4j/models/request/OllamaGenerateEndpointCaller.java b/src/main/java/io/github/ollama4j/models/request/OllamaGenerateEndpointCaller.java index da73316..f4afb2c 100644 --- a/src/main/java/io/github/ollama4j/models/request/OllamaGenerateEndpointCaller.java +++ b/src/main/java/io/github/ollama4j/models/request/OllamaGenerateEndpointCaller.java @@ -2,8 +2,7 @@ package io.github.ollama4j.models.request; import com.fasterxml.jackson.core.JsonProcessingException; import io.github.ollama4j.exceptions.OllamaBaseException; -import io.github.ollama4j.models.BasicAuth; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.models.generate.OllamaGenerateResponseModel; import io.github.ollama4j.models.generate.OllamaGenerateStreamObserver; import io.github.ollama4j.models.generate.OllamaStreamHandler; diff --git a/src/main/java/io/github/ollama4j/models/ListModelsResponse.java b/src/main/java/io/github/ollama4j/models/response/ListModelsResponse.java similarity index 72% rename from src/main/java/io/github/ollama4j/models/ListModelsResponse.java rename to src/main/java/io/github/ollama4j/models/response/ListModelsResponse.java index e78700d..62f151b 100644 --- a/src/main/java/io/github/ollama4j/models/ListModelsResponse.java +++ b/src/main/java/io/github/ollama4j/models/response/ListModelsResponse.java @@ -1,6 +1,7 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import java.util.List; + import lombok.Data; @Data diff --git a/src/main/java/io/github/ollama4j/models/Model.java b/src/main/java/io/github/ollama4j/models/response/Model.java similarity index 96% rename from src/main/java/io/github/ollama4j/models/Model.java rename to src/main/java/io/github/ollama4j/models/response/Model.java index 5841c8f..e03049e 100644 --- a/src/main/java/io/github/ollama4j/models/Model.java +++ b/src/main/java/io/github/ollama4j/models/response/Model.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import java.time.OffsetDateTime; diff --git a/src/main/java/io/github/ollama4j/models/ModelDetail.java b/src/main/java/io/github/ollama4j/models/response/ModelDetail.java similarity index 94% rename from src/main/java/io/github/ollama4j/models/ModelDetail.java rename to src/main/java/io/github/ollama4j/models/response/ModelDetail.java index 3d1a397..cf7e6bb 100644 --- a/src/main/java/io/github/ollama4j/models/ModelDetail.java +++ b/src/main/java/io/github/ollama4j/models/response/ModelDetail.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/io/github/ollama4j/models/ModelMeta.java b/src/main/java/io/github/ollama4j/models/response/ModelMeta.java similarity index 95% rename from src/main/java/io/github/ollama4j/models/ModelMeta.java rename to src/main/java/io/github/ollama4j/models/response/ModelMeta.java index 812bf0c..eb7f176 100644 --- a/src/main/java/io/github/ollama4j/models/ModelMeta.java +++ b/src/main/java/io/github/ollama4j/models/response/ModelMeta.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/io/github/ollama4j/models/ModelPullResponse.java b/src/main/java/io/github/ollama4j/models/response/ModelPullResponse.java similarity index 86% rename from src/main/java/io/github/ollama4j/models/ModelPullResponse.java rename to src/main/java/io/github/ollama4j/models/response/ModelPullResponse.java index 12afa88..dc8349e 100644 --- a/src/main/java/io/github/ollama4j/models/ModelPullResponse.java +++ b/src/main/java/io/github/ollama4j/models/response/ModelPullResponse.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; diff --git a/src/main/java/io/github/ollama4j/models/OllamaAsyncResultStreamer.java b/src/main/java/io/github/ollama4j/models/response/OllamaAsyncResultStreamer.java similarity index 92% rename from src/main/java/io/github/ollama4j/models/OllamaAsyncResultStreamer.java rename to src/main/java/io/github/ollama4j/models/response/OllamaAsyncResultStreamer.java index 0655b41..11c726c 100644 --- a/src/main/java/io/github/ollama4j/models/OllamaAsyncResultStreamer.java +++ b/src/main/java/io/github/ollama4j/models/response/OllamaAsyncResultStreamer.java @@ -1,8 +1,7 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; -import io.github.ollama4j.OllamaResultStream; import io.github.ollama4j.exceptions.OllamaBaseException; -import io.github.ollama4j.models.generate.OllamaGenerateRequestModel; +import io.github.ollama4j.models.generate.OllamaGenerateRequest; import io.github.ollama4j.models.generate.OllamaGenerateResponseModel; import io.github.ollama4j.utils.Utils; import lombok.Data; @@ -25,7 +24,7 @@ import java.time.Duration; @SuppressWarnings("unused") public class OllamaAsyncResultStreamer extends Thread { private final HttpRequest.Builder requestBuilder; - private final OllamaGenerateRequestModel ollamaRequestModel; + private final OllamaGenerateRequest ollamaRequestModel; private final OllamaResultStream stream = new OllamaResultStream(); private String completeResponse; @@ -56,7 +55,7 @@ public class OllamaAsyncResultStreamer extends Thread { public OllamaAsyncResultStreamer( HttpRequest.Builder requestBuilder, - OllamaGenerateRequestModel ollamaRequestModel, + OllamaGenerateRequest ollamaRequestModel, long requestTimeoutSeconds) { this.requestBuilder = requestBuilder; this.ollamaRequestModel = ollamaRequestModel; @@ -91,8 +90,8 @@ public class OllamaAsyncResultStreamer extends Thread { StringBuilder responseBuffer = new StringBuilder(); while ((line = reader.readLine()) != null) { if (statusCode == 404) { - OllamaErrorResponseModel ollamaResponseModel = - Utils.getObjectMapper().readValue(line, OllamaErrorResponseModel.class); + OllamaErrorResponse ollamaResponseModel = + Utils.getObjectMapper().readValue(line, OllamaErrorResponse.class); stream.add(ollamaResponseModel.getError()); responseBuffer.append(ollamaResponseModel.getError()); } else { diff --git a/src/main/java/io/github/ollama4j/models/OllamaErrorResponseModel.java b/src/main/java/io/github/ollama4j/models/response/OllamaErrorResponse.java similarity index 67% rename from src/main/java/io/github/ollama4j/models/OllamaErrorResponseModel.java rename to src/main/java/io/github/ollama4j/models/response/OllamaErrorResponse.java index 39e8df3..bbc78c1 100644 --- a/src/main/java/io/github/ollama4j/models/OllamaErrorResponseModel.java +++ b/src/main/java/io/github/ollama4j/models/response/OllamaErrorResponse.java @@ -1,11 +1,11 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; @Data @JsonIgnoreProperties(ignoreUnknown = true) -public class OllamaErrorResponseModel { +public class OllamaErrorResponse { private String error; } diff --git a/src/main/java/io/github/ollama4j/models/OllamaResult.java b/src/main/java/io/github/ollama4j/models/response/OllamaResult.java similarity index 96% rename from src/main/java/io/github/ollama4j/models/OllamaResult.java rename to src/main/java/io/github/ollama4j/models/response/OllamaResult.java index c7bd08d..beb01ec 100644 --- a/src/main/java/io/github/ollama4j/models/OllamaResult.java +++ b/src/main/java/io/github/ollama4j/models/response/OllamaResult.java @@ -1,4 +1,4 @@ -package io.github.ollama4j.models; +package io.github.ollama4j.models.response; import static io.github.ollama4j.utils.Utils.getObjectMapper; diff --git a/src/main/java/io/github/ollama4j/OllamaResultStream.java b/src/main/java/io/github/ollama4j/models/response/OllamaResultStream.java similarity index 91% rename from src/main/java/io/github/ollama4j/OllamaResultStream.java rename to src/main/java/io/github/ollama4j/models/response/OllamaResultStream.java index 7530421..de44d63 100644 --- a/src/main/java/io/github/ollama4j/OllamaResultStream.java +++ b/src/main/java/io/github/ollama4j/models/response/OllamaResultStream.java @@ -1,4 +1,4 @@ -package io.github.ollama4j; +package io.github.ollama4j.models.response; import java.util.Iterator; import java.util.LinkedList; diff --git a/src/main/java/io/github/ollama4j/tools/OllamaToolsResult.java b/src/main/java/io/github/ollama4j/tools/OllamaToolsResult.java index bf048b0..c855bd2 100644 --- a/src/main/java/io/github/ollama4j/tools/OllamaToolsResult.java +++ b/src/main/java/io/github/ollama4j/tools/OllamaToolsResult.java @@ -1,6 +1,6 @@ package io.github.ollama4j.tools; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.OllamaResult; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/src/test/java/io/github/ollama4j/integrationtests/TestRealAPIs.java b/src/test/java/io/github/ollama4j/integrationtests/TestRealAPIs.java index 7c21ec9..d584747 100644 --- a/src/test/java/io/github/ollama4j/integrationtests/TestRealAPIs.java +++ b/src/test/java/io/github/ollama4j/integrationtests/TestRealAPIs.java @@ -2,11 +2,11 @@ package io.github.ollama4j.integrationtests; import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.exceptions.OllamaBaseException; -import io.github.ollama4j.models.ModelDetail; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.ModelDetail; +import io.github.ollama4j.models.chat.OllamaChatRequest; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.models.chat.OllamaChatResult; import io.github.ollama4j.models.embeddings.OllamaEmbeddingsRequestBuilder; import io.github.ollama4j.models.embeddings.OllamaEmbeddingsRequestModel; @@ -177,7 +177,7 @@ class TestRealAPIs { testEndpointReachability(); try { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getModel()); - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What is the capital of France?") + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What is the capital of France?") .withMessage(OllamaChatMessageRole.ASSISTANT, "Should be Paris!") .withMessage(OllamaChatMessageRole.USER, "And what is the second larges city?") .build(); @@ -197,7 +197,7 @@ class TestRealAPIs { testEndpointReachability(); try { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getModel()); - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.SYSTEM, + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.SYSTEM, "You are a silent bot that only says 'NI'. Do not say anything else under any circumstances!") .withMessage(OllamaChatMessageRole.USER, "What is the capital of France? And what's France's connection with Mona Lisa?") @@ -219,7 +219,7 @@ class TestRealAPIs { testEndpointReachability(); try { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getModel()); - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What is the capital of France? And what's France's connection with Mona Lisa?") .build(); @@ -245,7 +245,7 @@ class TestRealAPIs { try { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getImageModel()); - OllamaChatRequestModel requestModel = + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", List.of(getImageFileFromClasspath("dog-on-a-boat.jpg"))).build(); @@ -275,7 +275,7 @@ class TestRealAPIs { testEndpointReachability(); try { OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getImageModel()); - OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", + OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", "https://t3.ftcdn.net/jpg/02/96/63/80/360_F_296638053_0gUVA4WVBKceGsIr7LNqRWSnkusi07dq.jpg") .build(); diff --git a/src/test/java/io/github/ollama4j/unittests/TestMockedAPIs.java b/src/test/java/io/github/ollama4j/unittests/TestMockedAPIs.java index 61023e9..921ccf7 100644 --- a/src/test/java/io/github/ollama4j/unittests/TestMockedAPIs.java +++ b/src/test/java/io/github/ollama4j/unittests/TestMockedAPIs.java @@ -2,9 +2,9 @@ package io.github.ollama4j.unittests; import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.exceptions.OllamaBaseException; -import io.github.ollama4j.models.ModelDetail; -import io.github.ollama4j.models.OllamaAsyncResultStreamer; -import io.github.ollama4j.models.OllamaResult; +import io.github.ollama4j.models.response.ModelDetail; +import io.github.ollama4j.models.response.OllamaAsyncResultStreamer; +import io.github.ollama4j.models.response.OllamaResult; import io.github.ollama4j.types.OllamaModelType; import io.github.ollama4j.utils.OptionsBuilder; import org.junit.jupiter.api.Test; diff --git a/src/test/java/io/github/ollama4j/unittests/jackson/TestChatRequestSerialization.java b/src/test/java/io/github/ollama4j/unittests/jackson/TestChatRequestSerialization.java index fc9a1ea..2391a94 100644 --- a/src/test/java/io/github/ollama4j/unittests/jackson/TestChatRequestSerialization.java +++ b/src/test/java/io/github/ollama4j/unittests/jackson/TestChatRequestSerialization.java @@ -5,16 +5,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.File; import java.util.List; +import io.github.ollama4j.models.chat.OllamaChatRequest; import org.json.JSONObject; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.utils.OptionsBuilder; -public class TestChatRequestSerialization extends AbstractSerializationTest { +public class TestChatRequestSerialization extends AbstractSerializationTest { private OllamaChatRequestBuilder builder; @@ -25,32 +25,32 @@ public class TestChatRequestSerialization extends AbstractSerializationTest { +public class TestGenerateRequestSerialization extends AbstractSerializationTest { private OllamaGenerateRequestBuilder builder; @@ -22,27 +22,27 @@ public class TestGenerateRequestSerialization extends AbstractSerializationTest< @Test public void testRequestOnlyMandatoryFields() { - OllamaGenerateRequestModel req = builder.withPrompt("Some prompt").build(); + OllamaGenerateRequest req = builder.withPrompt("Some prompt").build(); String jsonRequest = serialize(req); - assertEqualsAfterUnmarshalling(deserialize(jsonRequest, OllamaGenerateRequestModel.class), req); + assertEqualsAfterUnmarshalling(deserialize(jsonRequest, OllamaGenerateRequest.class), req); } @Test public void testRequestWithOptions() { OptionsBuilder b = new OptionsBuilder(); - OllamaGenerateRequestModel req = + OllamaGenerateRequest req = builder.withPrompt("Some prompt").withOptions(b.setMirostat(1).build()).build(); String jsonRequest = serialize(req); - OllamaGenerateRequestModel deserializeRequest = deserialize(jsonRequest, OllamaGenerateRequestModel.class); + OllamaGenerateRequest deserializeRequest = deserialize(jsonRequest, OllamaGenerateRequest.class); assertEqualsAfterUnmarshalling(deserializeRequest, req); assertEquals(1, deserializeRequest.getOptions().get("mirostat")); } @Test public void testWithJsonFormat() { - OllamaGenerateRequestModel req = + OllamaGenerateRequest req = builder.withPrompt("Some prompt").withGetJsonResponse().build(); String jsonRequest = serialize(req); diff --git a/src/test/java/io/github/ollama4j/unittests/jackson/TestModelRequestSerialization.java b/src/test/java/io/github/ollama4j/unittests/jackson/TestModelRequestSerialization.java index ac6213e..5bc44f3 100644 --- a/src/test/java/io/github/ollama4j/unittests/jackson/TestModelRequestSerialization.java +++ b/src/test/java/io/github/ollama4j/unittests/jackson/TestModelRequestSerialization.java @@ -1,6 +1,6 @@ package io.github.ollama4j.unittests.jackson; -import io.github.ollama4j.models.Model; +import io.github.ollama4j.models.response.Model; import org.junit.jupiter.api.Test; public class TestModelRequestSerialization extends AbstractSerializationTest {