mirror of
https://github.com/amithkoujalgi/ollama4j.git
synced 2025-05-15 11:57:12 +02:00
Updated integration tests
This commit is contained in:
parent
d40912c638
commit
8aa6e3b066
@ -43,10 +43,10 @@ public class OllamaAPIIntegrationTest {
|
|||||||
|
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
public static void setUp() {
|
public static void setUp() {
|
||||||
String version = "0.5.13";
|
String ollamaVersion = "0.6.1";
|
||||||
int internalPort = 11434;
|
int internalPort = 11434;
|
||||||
int mappedPort = 11435;
|
int mappedPort = 11435;
|
||||||
ollama = new OllamaContainer("ollama/ollama:" + version);
|
ollama = new OllamaContainer("ollama/ollama:" + ollamaVersion);
|
||||||
ollama.addExposedPort(internalPort);
|
ollama.addExposedPort(internalPort);
|
||||||
List<String> portBindings = new ArrayList<>();
|
List<String> portBindings = new ArrayList<>();
|
||||||
portBindings.add(mappedPort + ":" + internalPort);
|
portBindings.add(mappedPort + ":" + internalPort);
|
||||||
@ -94,7 +94,8 @@ public class OllamaAPIIntegrationTest {
|
|||||||
@Test
|
@Test
|
||||||
@Order(3)
|
@Order(3)
|
||||||
public void testPullModelAPI() throws URISyntaxException, IOException, OllamaBaseException, InterruptedException {
|
public void testPullModelAPI() throws URISyntaxException, IOException, OllamaBaseException, InterruptedException {
|
||||||
api.pullModel("all-minilm");
|
String embeddingModelMinilm = "all-minilm";
|
||||||
|
api.pullModel(embeddingModelMinilm);
|
||||||
List<Model> models = api.listModels();
|
List<Model> models = api.listModels();
|
||||||
assertNotNull(models, "Models should not be null");
|
assertNotNull(models, "Models should not be null");
|
||||||
assertFalse(models.isEmpty(), "Models list should contain elements");
|
assertFalse(models.isEmpty(), "Models list should contain elements");
|
||||||
@ -247,7 +248,45 @@ public class OllamaAPIIntegrationTest {
|
|||||||
assertTrue(chatResult.getChatHistory().get(chatResult.getChatHistory().size() - 1).getContent().contains("river"), "Response should be related to river");
|
assertTrue(chatResult.getChatHistory().get(chatResult.getChatHistory().size() - 1).getContent().contains("river"), "Response should be related to river");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(10)
|
||||||
|
void testChatWithImageFromURL() throws OllamaBaseException, IOException, InterruptedException, URISyntaxException {
|
||||||
|
String imageModel = "llava";
|
||||||
|
api.pullModel(imageModel);
|
||||||
|
|
||||||
|
OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(imageModel);
|
||||||
|
OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", Collections.emptyList(),
|
||||||
|
"https://t3.ftcdn.net/jpg/02/96/63/80/360_F_296638053_0gUVA4WVBKceGsIr7LNqRWSnkusi07dq.jpg")
|
||||||
|
.build();
|
||||||
|
api.registerAnnotatedTools(new OllamaAPIIntegrationTest());
|
||||||
|
|
||||||
|
OllamaChatResult chatResult = api.chat(requestModel);
|
||||||
|
assertNotNull(chatResult);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
@Order(10)
|
||||||
|
void testChatWithImageFromFileWithHistoryRecognition() throws OllamaBaseException, IOException, URISyntaxException, InterruptedException {
|
||||||
|
String imageModel = "moondream";
|
||||||
|
api.pullModel(imageModel);
|
||||||
|
OllamaChatRequestBuilder builder =
|
||||||
|
OllamaChatRequestBuilder.getInstance(imageModel);
|
||||||
|
OllamaChatRequest requestModel =
|
||||||
|
builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", Collections.emptyList(),
|
||||||
|
List.of(getImageFileFromClasspath("dog-on-a-boat.jpg"))).build();
|
||||||
|
|
||||||
|
OllamaChatResult chatResult = api.chat(requestModel);
|
||||||
|
assertNotNull(chatResult);
|
||||||
|
assertNotNull(chatResult.getResponseModel());
|
||||||
|
builder.reset();
|
||||||
|
|
||||||
|
requestModel =
|
||||||
|
builder.withMessages(chatResult.getChatHistory())
|
||||||
|
.withMessage(OllamaChatMessageRole.USER, "What's the dogs breed?").build();
|
||||||
|
|
||||||
|
chatResult = api.chat(requestModel);
|
||||||
|
assertNotNull(chatResult);
|
||||||
|
assertNotNull(chatResult.getResponseModel());
|
||||||
|
}
|
||||||
@Test
|
@Test
|
||||||
@Order(11)
|
@Order(11)
|
||||||
void testChatWithExplicitToolDefinition() throws OllamaBaseException, IOException, URISyntaxException, InterruptedException {
|
void testChatWithExplicitToolDefinition() throws OllamaBaseException, IOException, URISyntaxException, InterruptedException {
|
||||||
@ -300,7 +339,7 @@ public class OllamaAPIIntegrationTest {
|
|||||||
assertEquals(1, toolCalls.size());
|
assertEquals(1, toolCalls.size());
|
||||||
OllamaToolCallsFunction function = toolCalls.get(0).getFunction();
|
OllamaToolCallsFunction function = toolCalls.get(0).getFunction();
|
||||||
assertEquals("get-employee-details", function.getName());
|
assertEquals("get-employee-details", function.getName());
|
||||||
assertEquals(1, function.getArguments().size());
|
assert !function.getArguments().isEmpty();
|
||||||
Object employeeName = function.getArguments().get("employee-name");
|
Object employeeName = function.getArguments().get("employee-name");
|
||||||
assertNotNull(employeeName);
|
assertNotNull(employeeName);
|
||||||
assertEquals("Rahul Kumar", employeeName);
|
assertEquals("Rahul Kumar", employeeName);
|
||||||
@ -463,20 +502,6 @@ public class OllamaAPIIntegrationTest {
|
|||||||
assertEquals(sb.toString().trim(), chatResult.getResponseModel().getMessage().getContent().trim());
|
assertEquals(sb.toString().trim(), chatResult.getResponseModel().getMessage().getContent().trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@Order(16)
|
|
||||||
void testChatWithImageFromURL() throws OllamaBaseException, IOException, InterruptedException, URISyntaxException {
|
|
||||||
String imageModel = "llava";
|
|
||||||
api.pullModel(imageModel);
|
|
||||||
|
|
||||||
OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(imageModel);
|
|
||||||
OllamaChatRequest requestModel = builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", Collections.emptyList(),
|
|
||||||
"https://t3.ftcdn.net/jpg/02/96/63/80/360_F_296638053_0gUVA4WVBKceGsIr7LNqRWSnkusi07dq.jpg")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
OllamaChatResult chatResult = api.chat(requestModel);
|
|
||||||
assertNotNull(chatResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Order(17)
|
@Order(17)
|
||||||
@ -517,30 +542,7 @@ public class OllamaAPIIntegrationTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@Order(19)
|
|
||||||
void testChatWithImageFromFileWithHistoryRecognition() throws OllamaBaseException, IOException, URISyntaxException, InterruptedException {
|
|
||||||
String imageModel = "moondream";
|
|
||||||
api.pullModel(imageModel);
|
|
||||||
OllamaChatRequestBuilder builder =
|
|
||||||
OllamaChatRequestBuilder.getInstance(imageModel);
|
|
||||||
OllamaChatRequest requestModel =
|
|
||||||
builder.withMessage(OllamaChatMessageRole.USER, "What's in the picture?", Collections.emptyList(),
|
|
||||||
List.of(getImageFileFromClasspath("dog-on-a-boat.jpg"))).build();
|
|
||||||
|
|
||||||
OllamaChatResult chatResult = api.chat(requestModel);
|
|
||||||
assertNotNull(chatResult);
|
|
||||||
assertNotNull(chatResult.getResponseModel());
|
|
||||||
builder.reset();
|
|
||||||
|
|
||||||
requestModel =
|
|
||||||
builder.withMessages(chatResult.getChatHistory())
|
|
||||||
.withMessage(OllamaChatMessageRole.USER, "What's the dogs breed?").build();
|
|
||||||
|
|
||||||
chatResult = api.chat(requestModel);
|
|
||||||
assertNotNull(chatResult);
|
|
||||||
assertNotNull(chatResult.getResponseModel());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Order(20)
|
@Order(20)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user