forked from Mirror/ollama4j
337 lines
10 KiB
Markdown
337 lines
10 KiB
Markdown
### Ollama4j
|
|
|
|
<p align="center">
|
|
<img src='https://raw.githubusercontent.com/ollama4j/ollama4j/65a9d526150da8fcd98e2af6a164f055572bf722/ollama4j.jpeg' width='100' alt="ollama4j-icon">
|
|
</p>
|
|
|
|
|
|
A Java library (wrapper/binding) for [Ollama](https://ollama.ai/) server.
|
|
|
|
Find more details on the [website](https://ollama4j.github.io/ollama4j/).
|
|
|
|
<div align="center">
|
|
|
|

|
|

|
|

|
|

|
|

|
|
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|

|
|
[](https://codecov.io/gh/ollama4j/ollama4j)
|
|

|
|
|
|
</div>
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
## Table of Contents
|
|
|
|
- [How does it work?](#how-does-it-work)
|
|
- [Requirements](#requirements)
|
|
- [Installation](#installation)
|
|
- [API Spec](https://ollama4j.github.io/ollama4j/category/apis---model-management)
|
|
- [Javadoc](https://ollama4j.github.io/ollama4j/apidocs/)
|
|
- [Development](#development)
|
|
- [Contributions](#get-involved)
|
|
- [References](#references)
|
|
|
|
#### How does it work?
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
o4j[Ollama4j]
|
|
o[Ollama Server]
|
|
o4j -->|Communicates with| o;
|
|
m[Models]
|
|
subgraph Ollama Deployment
|
|
direction TB
|
|
o -->|Manages| m
|
|
end
|
|
```
|
|
|
|
#### Requirements
|
|
|
|

|
|
|
|
|
|
<a href="https://ollama.com/" target="_blank">
|
|
<img src="https://img.shields.io/badge/v0.3.0-green.svg?style=for-the-badge&labelColor=gray&label=Ollama&color=blue" alt=""/>
|
|
</a>
|
|
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
|
|
<a href="https://ollama.ai/" target="_blank">Local Installation</a>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<a href="https://hub.docker.com/r/ollama/ollama" target="_blank">Docker Installation</a>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
|
|
<a href="https://ollama.com/download/Ollama-darwin.zip" target="_blank">Download for macOS</a>
|
|
|
|
<a href="https://ollama.com/download/OllamaSetup.exe" target="_blank">Download for Windows</a>
|
|
|
|
Install on Linux
|
|
|
|
```shell
|
|
curl -fsSL https://ollama.com/install.sh | sh
|
|
```
|
|
|
|
</td>
|
|
<td>
|
|
|
|
|
|
|
|
CPU only
|
|
|
|
```shell
|
|
docker run -d -p 11434:11434 \
|
|
-v ollama:/root/.ollama \
|
|
--name ollama \
|
|
ollama/ollama
|
|
```
|
|
|
|
NVIDIA GPU
|
|
|
|
```shell
|
|
docker run -d -p 11434:11434 \
|
|
--gpus=all \
|
|
-v ollama:/root/.ollama \
|
|
--name ollama \
|
|
ollama/ollama
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
## Installation
|
|
|
|
> [!NOTE]
|
|
> We are now publishing the artifacts to both Maven Central and GitHub package repositories.
|
|
>
|
|
> Track the releases [here](https://github.com/ollama4j/ollama4j/releases) and update the dependency version
|
|
> according to your requirements.
|
|
|
|
### For Maven
|
|
|
|
#### Using [Maven Central](https://central.sonatype.com/)
|
|
|
|
[![][ollama4j-mvn-releases-shield]][ollama4j-mvn-releases-link]
|
|
|
|
[ollama4j-mvn-releases-link]: https://central.sonatype.com/artifact/io.github.ollama4j/ollama4j/overview
|
|
|
|
[ollama4j-mvn-releases-shield]: https://img.shields.io/maven-central/v/io.github.ollama4j/ollama4j?display_name=release&style=for-the-badge&label=From%20Maven%20Central
|
|
|
|
In your Maven project, add this dependency:
|
|
|
|
```xml
|
|
|
|
<dependency>
|
|
<groupId>io.github.ollama4j</groupId>
|
|
<artifactId>ollama4j</artifactId>
|
|
<version>1.0.79</version>
|
|
</dependency>
|
|
```
|
|
|
|
#### Using GitHub's Maven Package Repository
|
|
|
|
[![][ollama4j-releases-shield]][ollama4j-releases-link]
|
|
|
|
[ollama4j-releases-link]: https://github.com/ollama4j/ollama4j/releases
|
|
|
|
[ollama4j-releases-shield]: https://img.shields.io/github/v/release/ollama4j/ollama4j?display_name=release&style=for-the-badge&label=From%20GitHub%20Packages
|
|
|
|
1. Add `GitHub Maven Packages` repository to your project's `pom.xml` or your `settings.xml`:
|
|
|
|
```xml
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>github</id>
|
|
<name>GitHub Apache Maven Packages</name>
|
|
<url>https://maven.pkg.github.com/ollama4j/ollama4j</url>
|
|
<releases>
|
|
<enabled>true</enabled>
|
|
</releases>
|
|
<snapshots>
|
|
<enabled>true</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
```
|
|
|
|
2. Add `GitHub` server to settings.xml. (Usually available at ~/.m2/settings.xml)
|
|
|
|
```xml
|
|
|
|
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
|
|
http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
|
<servers>
|
|
<server>
|
|
<id>github</id>
|
|
<username>YOUR-USERNAME</username>
|
|
<password>YOUR-TOKEN</password>
|
|
</server>
|
|
</servers>
|
|
</settings>
|
|
```
|
|
|
|
3. In your Maven project, add this dependency:
|
|
|
|
```xml
|
|
|
|
<dependency>
|
|
<groupId>io.github.ollama4j</groupId>
|
|
<artifactId>ollama4j</artifactId>
|
|
<version>1.0.79</version>
|
|
</dependency>
|
|
```
|
|
|
|
### For Gradle
|
|
|
|
1. Add the dependency
|
|
|
|
```groovy
|
|
dependencies {
|
|
implementation 'io.github.ollama4j:ollama4j:1.0.79'
|
|
}
|
|
```
|
|
|
|
[//]: # (Latest release:)
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ([![][lib-shield]][lib])
|
|
|
|
[lib]: https://central.sonatype.com/artifact/io.github.ollama4j/ollama4j
|
|
|
|
[lib-shield]: https://img.shields.io/badge/ollama4j-get_latest_version-blue.svg?style=just-the-message&labelColor=gray
|
|
|
|
#### API Spec
|
|
|
|
> [!TIP]
|
|
> Find the full API specifications on the [website](https://ollama4j.github.io/ollama4j/).
|
|
|
|
#### Development
|
|
|
|
Build:
|
|
|
|
```shell
|
|
make build
|
|
```
|
|
|
|
Run unit tests:
|
|
|
|
```shell
|
|
make unit-tests
|
|
```
|
|
|
|
Run integration tests:
|
|
|
|
```shell
|
|
make integration-tests
|
|
```
|
|
|
|
#### Releases
|
|
|
|
Newer artifacts are published via GitHub Actions CI workflow when a new release is created from `main` branch.
|
|
|
|
#### 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
|
|
- `ollama-translator`: Minecraft 1.20.6 spigot plugin allows to easily break language barriers by using ollama on the
|
|
server to translate all messages into a specfic target language.
|
|
- https://github.com/liebki/ollama-translator
|
|
- `Ollama4j Web UI`: A web UI for Ollama written in Java using Spring Boot and Vaadin framework and
|
|
Ollama4j. https://github.com/ollama4j/ollama4j-web-ui
|
|
|
|
#### Traction
|
|
|
|
[](https://star-history.com/#ollama4j/ollama4j&Date)
|
|
|
|
### Get Involved
|
|
|
|
<div align="center">
|
|
|
|
<a href=""></a>
|
|
<a href=""></a>
|
|
<a href=""></a>
|
|
<a href=""></a>
|
|
<a href=""></a>
|
|
|
|
</div>
|
|
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
[//]: # ()
|
|
|
|
|
|
Contributions are most welcome! Whether it's reporting a bug, proposing an enhancement, or helping
|
|
with code - any sort
|
|
of contribution is much appreciated.
|
|
|
|
### References
|
|
|
|
- [Ollama REST APIs](https://github.com/jmorganca/ollama/blob/main/docs/api.md)
|
|
|
|
### Credits
|
|
|
|
The nomenclature and the icon have been adopted from the incredible [Ollama](https://ollama.ai/)
|
|
project.
|
|
|
|
**Thanks to the amazing contributors**
|
|
|
|
<p align="center">
|
|
<a href="https://github.com/ollama4j/ollama4j/graphs/contributors">
|
|
<img src="https://contrib.rocks/image?repo=ollama4j/ollama4j" alt=""/>
|
|
</a>
|
|
</p>
|
|
|
|
### Appreciate my work?
|
|
|
|
<p align="center">
|
|
<a href="https://www.buymeacoffee.com/amithkoujalgi" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
|
|
</p>
|