forked from Mirror/ollama4j
Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c296b34174 | ||
|
|
e8f99f28ec | ||
|
|
250b1abc79 | ||
|
|
42b15ad93f | ||
|
|
6f7a714bae | ||
|
|
92618e5084 | ||
|
|
391a9242c3 | ||
|
|
e1b6dc3b54 | ||
|
|
04124cf978 | ||
|
|
e4e717b747 | ||
|
|
10d2a8f5ff | ||
|
|
899fa38805 | ||
|
|
2df878c953 | ||
|
|
78a5eedc8f | ||
|
|
364f961ee2 | ||
|
|
b21aa6add2 | ||
|
|
ec4abd1c2d | ||
|
|
9900ae92fb | ||
|
|
fa20daf6e5 | ||
|
|
44949c0559 | ||
|
|
e88711a017 | ||
|
|
32169ded18 | ||
|
|
4b2d566fd9 | ||
|
|
fb4b7a7ce5 | ||
|
|
18f27775b0 | ||
|
|
cb462ad05a | ||
|
|
1eec22ca1a | ||
|
|
c1f3c51f88 | ||
|
|
7dd556293f | ||
|
|
ee50131ce4 | ||
|
|
2cd47dbfaa | ||
|
|
e5296c1067 | ||
|
|
0f00f05e3d | ||
|
|
976a3b82e5 | ||
|
|
ba26d620c4 | ||
|
|
e45246a767 | ||
|
|
7336668f0c | ||
|
|
11701fb222 | ||
|
|
b1ec12c4e9 | ||
|
|
d0b0a0fc97 | ||
|
|
20774fca6b |
@@ -110,6 +110,13 @@ make it
|
||||
Releases (newer artifact versions) are done automatically on pushing the code to the `main` branch through GitHub
|
||||
Actions CI workflow.
|
||||
|
||||
#### Who's using Ollama4j?
|
||||
|
||||
- `Datafaker`: a library to generate fake data
|
||||
- https://github.com/datafaker-net/datafaker-experimental/tree/main/ollama-api
|
||||
- `Vaadin Web UI`: UI-Tester for Interactions with Ollama via ollama4j
|
||||
- https://github.com/TEAMPB/ollama4j-vaadin-ui
|
||||
|
||||
#### Traction
|
||||
|
||||
[](https://star-history.com/#amithkoujalgi/ollama4j&Date)
|
||||
|
||||
@@ -41,6 +41,7 @@ public class Main {
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
You will get a response similar to:
|
||||
|
||||
> First answer: Should be Paris!
|
||||
@@ -50,23 +51,28 @@ You will get a response similar to:
|
||||
> Chat History:
|
||||
|
||||
```json
|
||||
[ {
|
||||
[
|
||||
{
|
||||
"role": "user",
|
||||
"content": "What is the capital of France?",
|
||||
"images": []
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "Should be Paris!",
|
||||
"images": []
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "And what is the second largest city?",
|
||||
"images": []
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "Marseille.",
|
||||
"images": []
|
||||
} ]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Create a conversation where the answer is streamed
|
||||
@@ -93,6 +99,7 @@ public class Main {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You will get a response similar to:
|
||||
|
||||
> The
|
||||
@@ -103,8 +110,27 @@ You will get a response similar to:
|
||||
> The capital of France is Paris
|
||||
> The capital of France is Paris.
|
||||
|
||||
## Use a simple Console Output Stream Handler
|
||||
|
||||
```java
|
||||
import io.github.amithkoujalgi.ollama4j.core.impl.ConsoleOutputStreamHandler;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) throws Exception {
|
||||
String host = "http://localhost:11434/";
|
||||
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!")
|
||||
.build();
|
||||
OllamaStreamHandler streamHandler = new ConsoleOutputStreamHandler();
|
||||
ollamaAPI.chat(requestModel, streamHandler);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Create a new conversation with individual system prompt
|
||||
|
||||
```java
|
||||
public class Main {
|
||||
|
||||
@@ -128,6 +154,7 @@ public class Main {
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
You will get a response similar to:
|
||||
|
||||
> NI.
|
||||
@@ -167,6 +194,12 @@ public class Main {
|
||||
|
||||
You will get a response similar to:
|
||||
|
||||
> First Answer: The image shows a dog sitting on the bow of a boat that is docked in calm water. The boat has two levels, with the lower level containing seating and what appears to be an engine cover. The dog seems relaxed and comfortable on the boat, looking out over the water. The background suggests it might be late afternoon or early evening, given the warm lighting and the low position of the sun in the sky.
|
||||
> First Answer: The image shows a dog sitting on the bow of a boat that is docked in calm water. The boat has two
|
||||
> levels, with the lower level containing seating and what appears to be an engine cover. The dog seems relaxed and
|
||||
> comfortable on the boat, looking out over the water. The background suggests it might be late afternoon or early
|
||||
> evening, given the warm lighting and the low position of the sun in the sky.
|
||||
>
|
||||
> Second Answer: Based on the image, it's difficult to definitively determine the breed of the dog. However, the dog appears to be medium-sized with a short coat and a brown coloration, which might suggest that it is a Golden Retriever or a similar breed. Without more details like ear shape and tail length, it's not possible to identify the exact breed confidently.
|
||||
> Second Answer: Based on the image, it's difficult to definitively determine the breed of the dog. However, the dog
|
||||
> appears to be medium-sized with a short coat and a brown coloration, which might suggest that it is a Golden Retriever
|
||||
> or a similar breed. Without more details like ear shape and tail length, it's not possible to identify the exact breed
|
||||
> confidently.
|
||||
@@ -42,7 +42,7 @@ public class AskPhi {
|
||||
.addSeparator()
|
||||
.add("How do I read a file in Go and print its contents to stdout?");
|
||||
|
||||
OllamaResult response = ollamaAPI.generate(model, promptBuilder.build());
|
||||
OllamaResult response = ollamaAPI.generate(model, promptBuilder.build(), new OptionsBuilder().build());
|
||||
System.out.println(response.getResponse());
|
||||
}
|
||||
}
|
||||
|
||||
4
pom.xml
4
pom.xml
@@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>io.github.amithkoujalgi</groupId>
|
||||
<artifactId>ollama4j</artifactId>
|
||||
<version>1.0.57</version>
|
||||
<version>1.0.68</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.57</tag>
|
||||
<tag>v1.0.68</tag>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -9,18 +9,13 @@ import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatResult;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.embeddings.OllamaEmbeddingResponseModel;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.embeddings.OllamaEmbeddingsRequestModel;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.generate.OllamaGenerateRequestModel;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.request.CustomModelFileContentsRequest;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.request.CustomModelFilePathRequest;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.request.ModelRequest;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.request.OllamaChatEndpointCaller;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.request.OllamaGenerateEndpointCaller;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.request.*;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.Options;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.Utils;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.http.HttpClient;
|
||||
@@ -33,16 +28,16 @@ import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/** The base Ollama API class. */
|
||||
/**
|
||||
* The base Ollama API class.
|
||||
*/
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
public class OllamaAPI {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(OllamaAPI.class);
|
||||
private final String host;
|
||||
private long requestTimeoutSeconds = 3;
|
||||
private long requestTimeoutSeconds = 10;
|
||||
private boolean verbose = true;
|
||||
private BasicAuth basicAuth;
|
||||
|
||||
@@ -365,7 +360,7 @@ public class OllamaAPI {
|
||||
|
||||
/**
|
||||
* Convenience method to call Ollama API without streaming responses.
|
||||
*
|
||||
* <p>
|
||||
* Uses {@link #generate(String, String, Options, OllamaStreamHandler)}
|
||||
*/
|
||||
public OllamaResult generate(String model, String prompt, Options options)
|
||||
@@ -420,7 +415,7 @@ public class OllamaAPI {
|
||||
|
||||
/**
|
||||
* Convenience method to call Ollama API without streaming responses.
|
||||
*
|
||||
* <p>
|
||||
* Uses {@link #generateWithImageFiles(String, String, List, Options, OllamaStreamHandler)}
|
||||
*/
|
||||
public OllamaResult generateWithImageFiles(
|
||||
@@ -456,7 +451,7 @@ public class OllamaAPI {
|
||||
|
||||
/**
|
||||
* Convenience method to call Ollama API without streaming responses.
|
||||
*
|
||||
* <p>
|
||||
* Uses {@link #generateWithImageURLs(String, String, List, Options, OllamaStreamHandler)}
|
||||
*/
|
||||
public OllamaResult generateWithImageURLs(String model, String prompt, List<String> imageURLs,
|
||||
@@ -466,7 +461,6 @@ public class OllamaAPI {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Ask a question to a model based on a given message stack (i.e. a chat history). Creates a synchronous call to the api
|
||||
* 'api/chat'.
|
||||
@@ -485,7 +479,7 @@ public class OllamaAPI {
|
||||
|
||||
/**
|
||||
* Ask a question to a model using an {@link OllamaChatRequestModel}. This can be constructed using an {@link OllamaChatRequestBuilder}.
|
||||
*
|
||||
* <p>
|
||||
* Hint: the OllamaChatRequestModel#getStream() property is not implemented.
|
||||
*
|
||||
* @param request request object to be sent to the server
|
||||
@@ -500,7 +494,7 @@ public class OllamaAPI {
|
||||
|
||||
/**
|
||||
* Ask a question to a model using an {@link OllamaChatRequestModel}. This can be constructed using an {@link OllamaChatRequestBuilder}.
|
||||
*
|
||||
* <p>
|
||||
* Hint: the OllamaChatRequestModel#getStream() property is not implemented.
|
||||
*
|
||||
* @param request request object to be sent to the server
|
||||
@@ -516,8 +510,7 @@ public class OllamaAPI {
|
||||
if (streamHandler != null) {
|
||||
request.setStream(true);
|
||||
result = requestCaller.call(request, streamHandler);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
result = requestCaller.callSync(request);
|
||||
}
|
||||
return new OllamaChatResult(result.getResponse(), result.getResponseTime(), result.getHttpStatusCode(), request.getMessages());
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package io.github.amithkoujalgi.ollama4j.core.impl;
|
||||
|
||||
import io.github.amithkoujalgi.ollama4j.core.OllamaStreamHandler;
|
||||
|
||||
public class ConsoleOutputStreamHandler implements OllamaStreamHandler {
|
||||
private final StringBuffer response = new StringBuffer();
|
||||
|
||||
@Override
|
||||
public void accept(String message) {
|
||||
String substr = message.substring(response.length());
|
||||
response.append(substr);
|
||||
System.out.print(substr);
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,15 @@
|
||||
package io.github.amithkoujalgi.ollama4j.core.models.chat;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class OllamaChatResponseModel {
|
||||
private String model;
|
||||
private @JsonProperty("created_at") String createdAt;
|
||||
private @JsonProperty("done_reason") String doneReason;
|
||||
private OllamaChatMessage message;
|
||||
private boolean done;
|
||||
private String error;
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
package io.github.amithkoujalgi.ollama4j.core.models.request;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
import io.github.amithkoujalgi.ollama4j.core.OllamaStreamHandler;
|
||||
import io.github.amithkoujalgi.ollama4j.core.exceptions.OllamaBaseException;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.BasicAuth;
|
||||
@@ -15,6 +9,10 @@ import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatResponseModel
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.chat.OllamaChatStreamObserver;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.OllamaRequestBody;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.Utils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Specialization class for requests
|
||||
@@ -54,7 +52,4 @@ public class OllamaChatEndpointCaller extends OllamaEndpointCaller{
|
||||
streamObserver = new OllamaChatStreamObserver(streamHandler);
|
||||
return super.callSync(body);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
package io.github.amithkoujalgi.ollama4j.core.models.request;
|
||||
|
||||
import io.github.amithkoujalgi.ollama4j.core.OllamaAPI;
|
||||
import io.github.amithkoujalgi.ollama4j.core.exceptions.OllamaBaseException;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.BasicAuth;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.OllamaErrorResponseModel;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.OllamaResult;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.OllamaRequestBody;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.Utils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -12,17 +22,6 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.util.Base64;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import io.github.amithkoujalgi.ollama4j.core.OllamaAPI;
|
||||
import io.github.amithkoujalgi.ollama4j.core.exceptions.OllamaBaseException;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.BasicAuth;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.OllamaErrorResponseModel;
|
||||
import io.github.amithkoujalgi.ollama4j.core.models.OllamaResult;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.OllamaRequestBody;
|
||||
import io.github.amithkoujalgi.ollama4j.core.utils.Utils;
|
||||
|
||||
/**
|
||||
* Abstract helperclass to call the ollama api server.
|
||||
*/
|
||||
@@ -57,7 +56,6 @@ public abstract class OllamaEndpointCaller {
|
||||
* @throws InterruptedException in case the server is not reachable or network issues happen
|
||||
*/
|
||||
public OllamaResult callSync(OllamaRequestBody body) throws OllamaBaseException, IOException, InterruptedException {
|
||||
|
||||
// Create Request
|
||||
long startTime = System.currentTimeMillis();
|
||||
HttpClient httpClient = HttpClient.newHttpClient();
|
||||
@@ -71,7 +69,6 @@ public abstract class OllamaEndpointCaller {
|
||||
HttpResponse<InputStream> response =
|
||||
httpClient.send(request, HttpResponse.BodyHandlers.ofInputStream());
|
||||
|
||||
|
||||
int statusCode = response.statusCode();
|
||||
InputStream responseBodyStream = response.body();
|
||||
StringBuilder responseBuffer = new StringBuilder();
|
||||
|
||||
@@ -8,57 +8,75 @@ package io.github.amithkoujalgi.ollama4j.core.types;
|
||||
*/
|
||||
@SuppressWarnings("ALL")
|
||||
public class OllamaModelType {
|
||||
public static final String GEMMA = "gemma";
|
||||
public static final String LLAMA2 = "llama2";
|
||||
public static final String LLAMA3 = "llama3";
|
||||
public static final String MISTRAL = "mistral";
|
||||
public static final String LLAVA = "llava";
|
||||
public static final String MIXTRAL = "mixtral";
|
||||
public static final String STARLING_LM = "starling-lm";
|
||||
public static final String LLAVA = "llava";
|
||||
public static final String LLAVA_PHI3 = "llava-phi3";
|
||||
public static final String NEURAL_CHAT = "neural-chat";
|
||||
public static final String CODELLAMA = "codellama";
|
||||
public static final String LLAMA2_UNCENSORED = "llama2-uncensored";
|
||||
public static final String DOLPHIN_MIXTRAL = "dolphin-mixtral";
|
||||
public static final String MISTRAL_OPENORCA = "mistral-openorca";
|
||||
public static final String LLAMA2_UNCENSORED = "llama2-uncensored";
|
||||
public static final String PHI = "phi";
|
||||
public static final String PHI3 = "phi3";
|
||||
public static final String ORCA_MINI = "orca-mini";
|
||||
public static final String DEEPSEEK_CODER = "deepseek-coder";
|
||||
public static final String DOLPHIN_MISTRAL = "dolphin-mistral";
|
||||
public static final String VICUNA = "vicuna";
|
||||
public static final String WIZARD_VICUNA_UNCENSORED = "wizard-vicuna-uncensored";
|
||||
public static final String PHIND_CODELLAMA = "phind-codellama";
|
||||
public static final String PHI = "phi";
|
||||
public static final String ZEPHYR = "zephyr";
|
||||
public static final String OPENHERMES = "openhermes";
|
||||
public static final String QWEN = "qwen";
|
||||
public static final String WIZARDCODER = "wizardcoder";
|
||||
public static final String MISTRAL_OPENORCA = "mistral-openorca";
|
||||
public static final String NOUS_HERMES = "nous-hermes";
|
||||
public static final String DEEPSEEK_CODER = "deepseek-coder";
|
||||
public static final String WIZARD_MATH = "wizard-math";
|
||||
public static final String LLAMA2_CHINESE = "llama2-chinese";
|
||||
public static final String FALCON = "falcon";
|
||||
public static final String ORCA2 = "orca2";
|
||||
public static final String STABLE_BELUGA = "stable-beluga";
|
||||
public static final String CODEUP = "codeup";
|
||||
public static final String EVERYTHINGLM = "everythinglm";
|
||||
public static final String MEDLLAMA2 = "medllama2";
|
||||
public static final String WIZARDLM_UNCENSORED = "wizardlm-uncensored";
|
||||
public static final String STARCODER = "starcoder";
|
||||
public static final String DOLPHIN22_MISTRAL = "dolphin2.2-mistral";
|
||||
public static final String TINYLLAMA = "tinyllama";
|
||||
public static final String PHIND_CODELLAMA = "phind-codellama";
|
||||
public static final String OPENCHAT = "openchat";
|
||||
public static final String WIZARD_VICUNA = "wizard-vicuna";
|
||||
public static final String OPENHERMES25_MISTRAL = "openhermes2.5-mistral";
|
||||
public static final String OPEN_ORCA_PLATYPUS2 = "open-orca-platypus2";
|
||||
public static final String ORCA2 = "orca2";
|
||||
public static final String FALCON = "falcon";
|
||||
public static final String WIZARD_MATH = "wizard-math";
|
||||
public static final String TINYDOLPHIN = "tinydolphin";
|
||||
public static final String NOUS_HERMES = "nous-hermes";
|
||||
public static final String YI = "yi";
|
||||
public static final String YARN_MISTRAL = "yarn-mistral";
|
||||
public static final String SAMANTHA_MISTRAL = "samantha-mistral";
|
||||
public static final String SQLCODER = "sqlcoder";
|
||||
public static final String YARN_LLAMA2 = "yarn-llama2";
|
||||
public static final String MEDITRON = "meditron";
|
||||
public static final String STABLELM_ZEPHYR = "stablelm-zephyr";
|
||||
public static final String OPENHERMES2_MISTRAL = "openhermes2-mistral";
|
||||
public static final String DEEPSEEK_LLM = "deepseek-llm";
|
||||
public static final String MISTRALLITE = "mistrallite";
|
||||
public static final String DOLPHIN21_MISTRAL = "dolphin2.1-mistral";
|
||||
public static final String WIZARDLM = "wizardlm";
|
||||
public static final String CODEBOOGA = "codebooga";
|
||||
public static final String MAGICODER = "magicoder";
|
||||
public static final String GOLIATH = "goliath";
|
||||
public static final String NEXUSRAVEN = "nexusraven";
|
||||
public static final String ALFRED = "alfred";
|
||||
public static final String XWINLM = "xwinlm";
|
||||
public static final String DOLPHIN_PHI = "dolphin-phi";
|
||||
public static final String STARLING_LM = "starling-lm";
|
||||
public static final String STARCODER = "starcoder";
|
||||
public static final String CODEUP = "codeup";
|
||||
public static final String MEDLLAMA2 = "medllama2";
|
||||
public static final String STABLE_CODE = "stable-code";
|
||||
public static final String WIZARDLM_UNCENSORED = "wizardlm-uncensored";
|
||||
public static final String BAKLLAVA = "bakllava";
|
||||
public static final String EVERYTHINGLM = "everythinglm";
|
||||
public static final String SOLAR = "solar";
|
||||
public static final String STABLE_BELUGA = "stable-beluga";
|
||||
public static final String SQLCODER = "sqlcoder";
|
||||
public static final String YARN_MISTRAL = "yarn-mistral";
|
||||
public static final String NOUS_HERMES2_MIXTRAL = "nous-hermes2-mixtral";
|
||||
public static final String SAMANTHA_MISTRAL = "samantha-mistral";
|
||||
public static final String STABLELM_ZEPHYR = "stablelm-zephyr";
|
||||
public static final String MEDITRON = "meditron";
|
||||
public static final String WIZARD_VICUNA = "wizard-vicuna";
|
||||
public static final String STABLELM2 = "stablelm2";
|
||||
public static final String MAGICODER = "magicoder";
|
||||
public static final String YARN_LLAMA2 = "yarn-llama2";
|
||||
public static final String NOUS_HERMES2 = "nous-hermes2";
|
||||
public static final String DEEPSEEK_LLM = "deepseek-llm";
|
||||
public static final String LLAMA_PRO = "llama-pro";
|
||||
public static final String OPEN_ORCA_PLATYPUS2 = "open-orca-platypus2";
|
||||
public static final String CODEBOOGA = "codebooga";
|
||||
public static final String MISTRALLITE = "mistrallite";
|
||||
public static final String NEXUSRAVEN = "nexusraven";
|
||||
public static final String GOLIATH = "goliath";
|
||||
public static final String NOMIC_EMBED_TEXT = "nomic-embed-text";
|
||||
public static final String NOTUX = "notux";
|
||||
public static final String ALFRED = "alfred";
|
||||
public static final String MEGADOLPHIN = "megadolphin";
|
||||
public static final String WIZARDLM = "wizardlm";
|
||||
public static final String XWINLM = "xwinlm";
|
||||
public static final String NOTUS = "notus";
|
||||
public static final String DUCKDB_NSQL = "duckdb-nsql";
|
||||
public static final String ALL_MINILM = "all-minilm";
|
||||
}
|
||||
|
||||
@@ -51,12 +51,27 @@ public class TestChatRequestSerialization extends AbstractRequestSerializationTe
|
||||
public void testRequestWithOptions() {
|
||||
OptionsBuilder b = new OptionsBuilder();
|
||||
OllamaChatRequestModel req = builder.withMessage(OllamaChatMessageRole.USER, "Some prompt")
|
||||
.withOptions(b.setMirostat(1).build()).build();
|
||||
.withOptions(b.setMirostat(1).build())
|
||||
.withOptions(b.setTemperature(1L).build())
|
||||
.withOptions(b.setMirostatEta(1L).build())
|
||||
.withOptions(b.setMirostatTau(1L).build())
|
||||
.withOptions(b.setNumGpu(1).build())
|
||||
.withOptions(b.setSeed(1).build())
|
||||
.withOptions(b.setTopK(1).build())
|
||||
.withOptions(b.setTopP(1).build())
|
||||
.build();
|
||||
|
||||
String jsonRequest = serializeRequest(req);
|
||||
OllamaChatRequestModel deserializeRequest = deserializeRequest(jsonRequest, OllamaChatRequestModel.class);
|
||||
assertEqualsAfterUnmarshalling(deserializeRequest, req);
|
||||
assertEquals(1, deserializeRequest.getOptions().get("mirostat"));
|
||||
assertEquals(1.0, deserializeRequest.getOptions().get("temperature"));
|
||||
assertEquals(1.0, deserializeRequest.getOptions().get("mirostat_eta"));
|
||||
assertEquals(1.0, deserializeRequest.getOptions().get("mirostat_tau"));
|
||||
assertEquals(1, deserializeRequest.getOptions().get("num_gpu"));
|
||||
assertEquals(1, deserializeRequest.getOptions().get("seed"));
|
||||
assertEquals(1, deserializeRequest.getOptions().get("top_k"));
|
||||
assertEquals(1.0, deserializeRequest.getOptions().get("top_p"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -71,4 +86,28 @@ public class TestChatRequestSerialization extends AbstractRequestSerializationTe
|
||||
String requestFormatProperty = jsonObject.getString("format");
|
||||
assertEquals("json", requestFormatProperty);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithTemplate() {
|
||||
OllamaChatRequestModel req = builder.withTemplate("System Template")
|
||||
.build();
|
||||
String jsonRequest = serializeRequest(req);
|
||||
assertEqualsAfterUnmarshalling(deserializeRequest(jsonRequest, OllamaChatRequestModel.class), req);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithStreaming() {
|
||||
OllamaChatRequestModel req = builder.withStreaming().build();
|
||||
String jsonRequest = serializeRequest(req);
|
||||
assertEquals(deserializeRequest(jsonRequest, OllamaChatRequestModel.class).isStream(), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithKeepAlive() {
|
||||
String expectedKeepAlive = "5m";
|
||||
OllamaChatRequestModel req = builder.withKeepAlive(expectedKeepAlive)
|
||||
.build();
|
||||
String jsonRequest = serializeRequest(req);
|
||||
assertEquals(deserializeRequest(jsonRequest, OllamaChatRequestModel.class).getKeepAlive(), expectedKeepAlive);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user