### Ollama4j <p align="center"> <img src='https://raw.githubusercontent.com/ollama4j/ollama4j/65a9d526150da8fcd98e2af6a164f055572bf722/ollama4j.jpeg' width='100' alt="ollama4j-icon"> </p> <div align="center"> 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)  </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 - 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 <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>