diff --git a/pom.xml b/pom.xml
index b45a72f..9fe4a08 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
io.github.amithkoujalgi
ollama4j
- 1.0.50-SNAPSHOT
+ 1.0.51-SNAPSHOT
Ollama4j
Java library for interacting with Ollama API.
diff --git a/src/test/java/io/github/amithkoujalgi/ollama4j/integrationtests/TestRealAPIs.java b/src/test/java/io/github/amithkoujalgi/ollama4j/integrationtests/TestRealAPIs.java
index 846b12a..0ca633f 100644
--- a/src/test/java/io/github/amithkoujalgi/ollama4j/integrationtests/TestRealAPIs.java
+++ b/src/test/java/io/github/amithkoujalgi/ollama4j/integrationtests/TestRealAPIs.java
@@ -9,7 +9,6 @@ import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatMessageRole;
import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatRequestBuilder;
import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatRequestModel;
import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatResult;
-import io.github.amithkoujalgi.ollama4j.core.types.OllamaModelType;
import io.github.amithkoujalgi.ollama4j.core.utils.OptionsBuilder;
import java.io.File;
import java.io.IOException;
@@ -20,26 +19,14 @@ import java.net.http.HttpConnectTimeoutException;
import java.util.List;
import java.util.Objects;
import java.util.Properties;
+import lombok.Data;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
class TestRealAPIs {
OllamaAPI ollamaAPI;
-
- private Properties loadProperties() {
- Properties properties = new Properties();
- try (InputStream input =
- getClass().getClassLoader().getResourceAsStream("test-config.properties")) {
- if (input == null) {
- throw new RuntimeException("Sorry, unable to find test-config.properties");
- }
- properties.load(input);
- return properties;
- } catch (IOException e) {
- throw new RuntimeException("Error loading properties", e);
- }
- }
+ Config config;
private File getImageFileFromClasspath(String fileName) {
ClassLoader classLoader = getClass().getClassLoader();
@@ -48,9 +35,9 @@ class TestRealAPIs {
@BeforeEach
void setUp() {
- Properties properties = loadProperties();
- ollamaAPI = new OllamaAPI(properties.getProperty("ollama.api.url"));
- ollamaAPI.setRequestTimeoutSeconds(20);
+ config = new Config();
+ ollamaAPI = new OllamaAPI(config.getOllamaURL());
+ ollamaAPI.setRequestTimeoutSeconds(config.getRequestTimeoutSeconds());
}
@Test
@@ -89,10 +76,10 @@ class TestRealAPIs {
void testPullModel() {
testEndpointReachability();
try {
- ollamaAPI.pullModel(OllamaModelType.LLAMA2);
+ ollamaAPI.pullModel(config.getModel());
boolean found =
ollamaAPI.listModels().stream()
- .anyMatch(model -> model.getModelName().equals(OllamaModelType.LLAMA2));
+ .anyMatch(model -> model.getModel().equalsIgnoreCase(config.getModel()));
assertTrue(found);
} catch (IOException | OllamaBaseException | InterruptedException | URISyntaxException e) {
throw new RuntimeException(e);
@@ -106,7 +93,7 @@ class TestRealAPIs {
try {
OllamaResult result =
ollamaAPI.generate(
- OllamaModelType.LLAMA2,
+ config.getModel(),
"What is the capital of France? And what's France's connection with Mona Lisa?",
new OptionsBuilder().build());
assertNotNull(result);
@@ -124,7 +111,7 @@ class TestRealAPIs {
try {
OllamaResult result =
ollamaAPI.generate(
- OllamaModelType.LLAMA2,
+ config.getModel(),
"What is the capital of France? And what's France's connection with Mona Lisa?",
new OptionsBuilder().setTemperature(0.9f).build());
assertNotNull(result);
@@ -140,7 +127,7 @@ class TestRealAPIs {
void testChat() {
testEndpointReachability();
try {
- OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(OllamaModelType.LLAMA2);
+ OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getModel());
OllamaChatRequestModel requestModel = builder.withMessage(OllamaChatMessageRole.USER, "Say hello to my little friend")
.withMessage(OllamaChatMessageRole.ASSISTANT, "Seems to be a Tony Montana montage!")
.withMessage(OllamaChatMessageRole.USER,"We need a montage!")
@@ -160,7 +147,7 @@ class TestRealAPIs {
void testChatWithSystemPrompt() {
testEndpointReachability();
try {
- OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(OllamaModelType.LLAMA2);
+ OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(config.getModel());
OllamaChatRequestModel 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,"We need a montage!")
.build();
@@ -183,7 +170,7 @@ class TestRealAPIs {
try {
OllamaResult result =
ollamaAPI.generateWithImageFiles(
- OllamaModelType.LLAVA,
+ config.getImageModel(),
"What is in this image?",
List.of(imageFile),
new OptionsBuilder().build());
@@ -202,7 +189,7 @@ class TestRealAPIs {
try {
OllamaResult result =
ollamaAPI.generateWithImageURLs(
- OllamaModelType.LLAVA,
+ config.getImageModel(),
"What is in this image?",
List.of(
"https://t3.ftcdn.net/jpg/02/96/63/80/360_F_296638053_0gUVA4WVBKceGsIr7LNqRWSnkusi07dq.jpg"),
@@ -215,3 +202,29 @@ class TestRealAPIs {
}
}
}
+
+@Data
+class Config {
+ private String ollamaURL;
+ private String model;
+ private String imageModel;
+ private int requestTimeoutSeconds;
+
+ public Config() {
+ Properties properties = new Properties();
+ try (InputStream input =
+ getClass().getClassLoader().getResourceAsStream("test-config.properties")) {
+ if (input == null) {
+ throw new RuntimeException("Sorry, unable to find test-config.properties");
+ }
+ properties.load(input);
+ this.ollamaURL = properties.getProperty("ollama.url");
+ this.model = properties.getProperty("ollama.model");
+ this.imageModel = properties.getProperty("ollama.model.image");
+ this.requestTimeoutSeconds =
+ Integer.parseInt(properties.getProperty("ollama.request-timeout-seconds"));
+ } catch (IOException e) {
+ throw new RuntimeException("Error loading properties", e);
+ }
+ }
+}
diff --git a/src/test/resources/test-config.properties b/src/test/resources/test-config.properties
index 1d5d55e..1bda263 100644
--- a/src/test/resources/test-config.properties
+++ b/src/test/resources/test-config.properties
@@ -1,2 +1,4 @@
-ollama.api.url=http://192.168.29.223:11434
-ollama.model=llava
\ No newline at end of file
+ollama.url=http://localhost:11434
+ollama.model=qwen:0.5b
+ollama.model.image=llava
+ollama.request-timeout-seconds=120
\ No newline at end of file