### Ollama4j
   
A Java library (wrapper/binding) for Ollama server.
Find more details on the [website](https://ollama4j.github.io/ollama4j/).





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

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

[//]: # ()
[//]: # ()
## 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

   
| Local Installation | Docker Installation | 
| Download for macOS
Download for Windows
Install on Linux
```shell 
curl -fsSL https://ollama.com/install.sh | sh
``` | 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
``` | 
## 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
    io.github.ollama4j
    ollama4j
    1.0.79
```
#### 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
    
        github
        GitHub Apache Maven Packages
        https://maven.pkg.github.com/ollama4j/ollama4j
        
            true
        
        
            true
        
    
```
2. Add `GitHub` server to settings.xml. (Usually available at ~/.m2/settings.xml)
```xml
    
        
            github
            YOUR-USERNAME
            YOUR-TOKEN
        
    
```
3. In your Maven project, add this dependency:
```xml
    io.github.ollama4j
    ollama4j
    1.0.79
```
### 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
    - https://www.reddit.com/r/fabricmc/comments/1e65x5s/comment/ldr2vcf/
- `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
- `JnsCLI`: A command-line tool for Jenkins that manages jobs, builds, and configurations directly from the terminal while offering AI-powered error analysis for quick troubleshooting.
    -  https://github.com/mirum8/jnscli
- `Katie Backend`: https://github.com/wyona/katie-backend
#### Traction
[](https://star-history.com/#ollama4j/ollama4j&Date)
### Get Involved
[//]: # ()
[//]: # ()
[//]: # ()
[//]: # ()
[//]: # ()
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**
  
     
  
### Appreciate my work?
  