> ## Documentation Index
> Fetch the complete documentation index at: https://blog.pig4cloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 告别Ollama，Java开发者专属LLM引擎来了

> 随着大语言模型（LLM）的蓬勃发展，Java 开发者一直在寻找合适的工具来将 LLM 能力集成到自己的应用中。今天为大家介绍一个重量级开源项目 - Jlama，这是一个专为 Java 设计的现代化 LLM 推理引擎。

## Jlama 是什么？

Jlama 是一个开源的大型语言模型推理引擎，专门为 Java 生态系统打造。它允许开发者直接在 **Java 应用中运行 LLM 推理，无需依赖外部服务(比如 ollama 、vllm 等)。**

### 核心特点：

* 支持多种主流模型：Gemma、Llama、Mistral、Mixtral、Qwen2 等
* 基于 Java 20+ 构建，利用 Vector API 实现高性能推理

## 快速上手

### 1. 命令行使用

```bash theme={null}
# 安装 jbang
curl -Ls https://sh.jbang.dev | bash -s - app setup

# 安装 Jlama CLI
jbang app install --force jlama@tjake

# 运行模型（支持 Web UI）
jlama restapi tjake/Llama-3.2-1B-Instruct-JQ4 --auto-download
```

### 2. Java 项目集成

#### 在 `pom.xml` 中添加依赖

```xml theme={null}
<dependency>
  <groupId>com.github.tjake</groupId>
  <artifactId>jlama-core</artifactId>
  <version>${jlama.version}</version>
</dependency>

<dependency>
  <groupId>com.github.tjake</groupId>
  <artifactId>jlama-native</artifactId>
  <!-- 这里不需要改，自动获取OS 架构 -->
  <classifier>${os.detected.name}-${os.detected.arch}</classifier>
  <version>${jlama.version}</version>
</dependency>

<!-- 本文使用 langchain4j 作为调用框架，所以需要添加以下依赖 -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
    <version>1.0.0-beta1</version>
</dependency>

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-jlama</artifactId>
    <version>1.0.0-beta1</version>
</dependency>
```

#### 代码示例

```java theme={null}
ChatLanguageModel model = JlamaChatModel.builder()
        .modelName("tjake/Llama-3.2-1B-Instruct-JQ4")
        .temperature(0.7f)
        .build();

ChatResponse response = model.chat(
        UserMessage.from("Help me write a java version of the palindromic algorithm")
);

System.out.println("\n" + response.aiMessage().text());
```

#### 运行日志分享

```bash theme={null}
INFO  c.g.tjake.jlama.util.HttpSupport - Downloaded file: /Users/lengleng/.jlama/models/tjake_Llama-3.2-1B-Instruct-JQ4/config.json
INFO  c.g.tjake.jlama.util.HttpSupport - Downloading file: /Users/lengleng/.jlama/models/tjake_Llama-3.2-1B-Instruct-JQ4/model.safetensors

WARNING: Using incubator modules: jdk.incubator.vector
INFO  c.g.t.j.t.o.TensorOperationsProvider - Using Native SIMD Operations (OffHeap)
INFO  c.g.tjake.jlama.model.AbstractModel - Model type = Q4, Working memory type = F32, Quantized memory type = I8

Here's a Java implementation of the Palindromic Algorithm:
...
```

执行过程流程图

<img src="https://minio.pigx.vip/oss/202502/1740296961.png" alt="1740296961" />

## 特别说明

这里会实时去 [huggingface](https://huggingface.co/tjake) 的下载模型文件，如果下载失败，可以手动下载，然后放到 `~/.jlama/models` 目录下。

<img src="https://minio.pigx.vip/oss/202502/1740296175.png" alt="1740296175" />

因为需要 `jdk.incubator.vector` 模块，所以需要使用 JDK20 及以上版本，并显示启用 `jdk.incubator.vector` 模块。

```bash theme={null}
--add-modules=jdk.incubator.vector
--enable-native-access=ALL-UNNAMED
--enable-preview
```

<img src="https://minio.pigx.vip/oss/202502/1740297164.png" alt="1740297164" />

## 总结

目前 Jlama 虽然提供的都是些小模型，适用于边缘设备应用场景 ，但Jlama 的出现为 Java 开发者提供了一个强大的工具，让在 Java 生态中使用 LLM 变得更加简单和高效。无论是构建企业级应用还是开发创新项目，Jlama 都是一个值得关注的选择。
