forked from Mirror/ollama4j
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b57fc1f818 | ||
|
|
01c5a8f07f | ||
|
|
243b8a3747 |
58
README.md
58
README.md
@@ -2,8 +2,33 @@
|
||||
|
||||
<img src='https://raw.githubusercontent.com/amithkoujalgi/ollama4j/65a9d526150da8fcd98e2af6a164f055572bf722/ollama4j.jpeg' width='100' alt="ollama4j-icon">
|
||||
|
||||
A Java library (wrapper/binding)
|
||||
for [Ollama](https://github.com/jmorganca/ollama/blob/main/docs/api.md) APIs.
|
||||
A Java library (wrapper/binding) for [Ollama](https://ollama.ai/) server.
|
||||
|
||||
Find more details on the [website](https://amithkoujalgi.github.io/ollama4j/).
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||

|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [How does it work?](#how-does-it-work)
|
||||
- [Requirements](#requirements)
|
||||
- [Installation](#installation)
|
||||
- [API Spec](#api-spec)
|
||||
- [Demo APIs](#try-out-the-apis-with-ollama-server)
|
||||
- [Development](#development)
|
||||
- [Contributions](#get-involved)
|
||||
- [References](#references)
|
||||
|
||||
#### How does it work?
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -17,26 +42,6 @@ for [Ollama](https://github.com/jmorganca/ollama/blob/main/docs/api.md) APIs.
|
||||
end
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Requirements](#requirements)
|
||||
- [Installation](#installation)
|
||||
- [API Spec](#api-spec)
|
||||
- [Demo APIs](#try-out-the-apis-with-ollama-server)
|
||||
- [Development](#development)
|
||||
- [Contributions](#get-involved)
|
||||
|
||||
#### Requirements
|
||||
|
||||

|
||||
@@ -64,7 +69,7 @@ In your Maven project, add this dependency:
|
||||
</dependency>
|
||||
```
|
||||
|
||||
Latest release:
|
||||
Latest release:
|
||||
|
||||

|
||||
|
||||
@@ -76,7 +81,7 @@ Latest release:
|
||||
|
||||
#### API Spec
|
||||
|
||||
Find the full `Javadoc` (API specifications) [here](https://amithkoujalgi.github.io/ollama4j/).
|
||||
Find the full API specifications on the [website](https://amithkoujalgi.github.io/ollama4j/).
|
||||
|
||||
#### Development
|
||||
|
||||
@@ -117,6 +122,7 @@ Actions CI workflow.
|
||||
- [x] Use lombok
|
||||
- [x] Update request body creation with Java objects
|
||||
- [ ] Async APIs for images
|
||||
- [ ] Add custom headers to requests
|
||||
- [ ] Add additional params for `ask` APIs such as:
|
||||
- `options`: additional model parameters for the Modelfile such as `temperature`
|
||||
- `system`: system prompt to (overrides what is defined in the Modelfile)
|
||||
@@ -138,3 +144,7 @@ of contribution is much appreciated.
|
||||
|
||||
The nomenclature and the icon have been adopted from the incredible [Ollama](https://ollama.ai/)
|
||||
project.
|
||||
|
||||
### References
|
||||
|
||||
- [Ollama REST APIs](https://github.com/jmorganca/ollama/blob/main/docs/api.md)
|
||||
4
pom.xml
4
pom.xml
@@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>io.github.amithkoujalgi</groupId>
|
||||
<artifactId>ollama4j</artifactId>
|
||||
<version>1.0.32</version>
|
||||
<version>1.0.33</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.32</tag>
|
||||
<tag>v1.0.33</tag>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -331,12 +331,12 @@ public class OllamaAPI {
|
||||
* Ask a question to a model running on Ollama server. This is a sync/blocking call.
|
||||
*
|
||||
* @param model the ollama model to ask the question to
|
||||
* @param promptText the prompt/question text
|
||||
* @param prompt the prompt/question text
|
||||
* @return OllamaResult that includes response text and time taken for response
|
||||
*/
|
||||
public OllamaResult ask(String model, String promptText)
|
||||
public OllamaResult ask(String model, String prompt)
|
||||
throws OllamaBaseException, IOException, InterruptedException {
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText);
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt);
|
||||
return askSync(ollamaRequestModel);
|
||||
}
|
||||
|
||||
@@ -346,11 +346,11 @@ public class OllamaAPI {
|
||||
* async/non-blocking call.
|
||||
*
|
||||
* @param model the ollama model to ask the question to
|
||||
* @param promptText the prompt/question text
|
||||
* @param prompt the prompt/question text
|
||||
* @return the ollama async result callback handle
|
||||
*/
|
||||
public OllamaAsyncResultCallback askAsync(String model, String promptText) {
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText);
|
||||
public OllamaAsyncResultCallback askAsync(String model, String prompt) {
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt);
|
||||
|
||||
URI uri = URI.create(this.host + "/api/generate");
|
||||
OllamaAsyncResultCallback ollamaAsyncResultCallback =
|
||||
@@ -365,17 +365,17 @@ public class OllamaAPI {
|
||||
* sync/blocking call.
|
||||
*
|
||||
* @param model the ollama model to ask the question to
|
||||
* @param promptText the prompt/question text
|
||||
* @param prompt the prompt/question text
|
||||
* @param imageFiles the list of image files to use for the question
|
||||
* @return OllamaResult that includes response text and time taken for response
|
||||
*/
|
||||
public OllamaResult askWithImageFiles(String model, String promptText, List<File> imageFiles)
|
||||
public OllamaResult askWithImageFiles(String model, String prompt, List<File> imageFiles)
|
||||
throws OllamaBaseException, IOException, InterruptedException {
|
||||
List<String> images = new ArrayList<>();
|
||||
for (File imageFile : imageFiles) {
|
||||
images.add(encodeFileToBase64(imageFile));
|
||||
}
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText, images);
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt, images);
|
||||
return askSync(ollamaRequestModel);
|
||||
}
|
||||
|
||||
@@ -384,17 +384,17 @@ public class OllamaAPI {
|
||||
* sync/blocking call.
|
||||
*
|
||||
* @param model the ollama model to ask the question to
|
||||
* @param promptText the prompt/question text
|
||||
* @param prompt the prompt/question text
|
||||
* @param imageURLs the list of image URLs to use for the question
|
||||
* @return OllamaResult that includes response text and time taken for response
|
||||
*/
|
||||
public OllamaResult askWithImageURLs(String model, String promptText, List<String> imageURLs)
|
||||
public OllamaResult askWithImageURLs(String model, String prompt, List<String> imageURLs)
|
||||
throws OllamaBaseException, IOException, InterruptedException, URISyntaxException {
|
||||
List<String> images = new ArrayList<>();
|
||||
for (String imageURL : imageURLs) {
|
||||
images.add(encodeByteArrayToBase64(loadImageBytesFromUrl(imageURL)));
|
||||
}
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText, images);
|
||||
OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt, images);
|
||||
return askSync(ollamaRequestModel);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user