forked from Mirror/ollama4j
		
	Compare commits
	
		
			7 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 44bb35b168 | ||
|   | 9832caf503 | ||
|   | 24674ea483 | ||
|   | 5d3a975e4c | ||
|   | ad670c3c62 | ||
|   | 5e2a07ad41 | ||
|   | 9636807819 | 
							
								
								
									
										4
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  | ||||
|     <groupId>io.github.amithkoujalgi</groupId> | ||||
|     <artifactId>ollama4j</artifactId> | ||||
|     <version>1.0.48</version> | ||||
|     <version>1.0.50</version> | ||||
|  | ||||
|     <name>Ollama4j</name> | ||||
|     <description>Java library for interacting with Ollama API.</description> | ||||
| @@ -39,7 +39,7 @@ | ||||
|         <connection>scm:git:git@github.com:amithkoujalgi/ollama4j.git</connection> | ||||
|         <developerConnection>scm:git:https://github.com/amithkoujalgi/ollama4j.git</developerConnection> | ||||
|         <url>https://github.com/amithkoujalgi/ollama4j</url> | ||||
|         <tag>v1.0.48</tag> | ||||
|         <tag>v1.0.50</tag> | ||||
|     </scm> | ||||
|  | ||||
|     <build> | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import lombok.Data; | ||||
| public class Model { | ||||
|  | ||||
|   private String name; | ||||
|   private String model; | ||||
|   @JsonProperty("modified_at") | ||||
|   private String modifiedAt; | ||||
|   private String digest; | ||||
|   | ||||
| @@ -5,7 +5,6 @@ import static org.junit.jupiter.api.Assertions.*; | ||||
| import io.github.amithkoujalgi.ollama4j.core.OllamaAPI; | ||||
| import io.github.amithkoujalgi.ollama4j.core.exceptions.OllamaBaseException; | ||||
| import io.github.amithkoujalgi.ollama4j.core.models.OllamaResult; | ||||
| import io.github.amithkoujalgi.ollama4j.core.types.OllamaModelType; | ||||
| import io.github.amithkoujalgi.ollama4j.core.utils.OptionsBuilder; | ||||
| import java.io.File; | ||||
| import java.io.IOException; | ||||
| @@ -16,26 +15,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(); | ||||
| @@ -44,9 +31,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 | ||||
| @@ -85,10 +72,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); | ||||
| @@ -102,7 +89,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); | ||||
| @@ -120,7 +107,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); | ||||
| @@ -139,7 +126,7 @@ class TestRealAPIs { | ||||
|     try { | ||||
|       OllamaResult result = | ||||
|           ollamaAPI.generateWithImageFiles( | ||||
|               OllamaModelType.LLAVA, | ||||
|               config.getImageModel(), | ||||
|               "What is in this image?", | ||||
|               List.of(imageFile), | ||||
|               new OptionsBuilder().build()); | ||||
| @@ -158,7 +145,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"), | ||||
| @@ -171,3 +158,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); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,2 +1,4 @@ | ||||
| ollama.api.url=http://192.168.29.223:11434 | ||||
| ollama.model=llava | ||||
| ollama.url=http://localhost:11434 | ||||
| ollama.model=qwen:0.5b | ||||
| ollama.model.image=llava | ||||
| ollama.request-timeout-seconds=120 | ||||
		Reference in New Issue
	
	Block a user