# Llamatik：Kotlin多平台真端侧AI解决方案

> Llamatik是一个真正的Kotlin多平台AI库，支持在Android、iOS、桌面和WASM上本地运行LLM、语音识别和图像生成，无需Python、无需服务器。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-08T14:12:04.000Z
- 最近活动: 2026-04-08T14:25:51.429Z
- 热度: 159.8
- 关键词: Kotlin多平台, 端侧AI, 本地推理, llama.cpp, 语音识别, 图像生成, 移动AI, 隐私保护
- 页面链接: https://www.zingnex.cn/forum/thread/llamatik-kotlinai
- Canonical: https://www.zingnex.cn/forum/thread/llamatik-kotlinai
- Markdown 来源: ingested_event

---

# Llamatik：Kotlin多平台的真端侧AI解决方案

在移动AI应用开发领域，一个长期困扰开发者的问题是：如何在保持用户隐私的同时，在设备端高效运行大语言模型？**Llamatik**项目给出了一个优雅的答案——一个真正的Kotlin多平台AI库，让你能够在Android、iOS、桌面和WASM上本地运行LLM、语音识别和图像生成，无需Python、无需服务器。

## 项目定位：隐私优先的端侧AI

Llamatik的核心理念可以概括为一句话：**你的模型、你的数据、你的设备**。在云端AI服务日益普及的今天，数据隐私和离线可用性仍然是许多应用场景的硬性需求。

Llamatik通过以下设计原则实现这一目标：

- **完全离线推理**：所有计算在设备本地完成，无需网络连接
- **零数据外泄**：用户数据永远不会离开设备
- **统一Kotlin API**：一套代码，多端运行
- **无需Python**：纯Kotlin实现，无需Python运行时

## 技术架构：原生C++与Kotlin的完美融合

Llamatik的架构设计体现了工程上的深思熟虑。它不是简单的封装，而是深度的原生集成：

```
你的应用
│
▼
LlamaBridge (共享Kotlin API)
│
├─ llamatik-core → 原生llama.cpp、whisper.cpp、stablediffusion.cpp (端侧)
├─ llamatik-client → 远程HTTP推理
└─ llamatik-backend → llama.cpp兼容服务器
```

这种分层架构的最大优势在于**灵活性**：在本地推理和远程推理之间切换，只需要修改配置，无需改动API调用代码。

### 底层依赖版本

- **llama.cpp**: b7815
- **whisper.cpp**: v1.8.3
- **stablediffusion.cpp**: master-504-636d3cb

这些版本选择经过精心测试，确保稳定性和性能的平衡。

## 核心功能模块

### 1. 大语言模型（LLM）

通过`LlamaBridge`对象提供完整的文本生成能力：

#### 基础文本生成

```kotlin
// 解析模型路径（将GGUF放入assets/bundle）
val modelPath = LlamaBridge.getModelPath("phi-2.Q4_0.gguf")

// 加载模型
LlamaBridge.initGenerateModel(modelPath)

// 生成文本
val output = LlamaBridge.generate(
    "用一句话解释Kotlin多平台。"
)
```

#### 带上下文的对话生成

```kotlin
val output = LlamaBridge.generateWithContext(
    systemPrompt = "你是一个 helpful 的AI助手。",
    contextBlock = "用户：你好\n助手：你好！有什么可以帮助你的？",
    userPrompt = "Kotlin和Java有什么区别？"
)
```

#### 流式生成

对于需要实时显示生成内容的场景：

```kotlin
LlamaBridge.generateStream(
    prompt = "写一首关于编程的诗。",
    callback = object : GenStream {
        override fun onDelta(text: String) {
            // 实时接收token
            print(text)
        }
        override fun onComplete() {
            println("\n[完成]")
        }
        override fun onError(message: String) {
            println("错误: $message")
        }
    }
)
```

#### JSON结构化输出

支持通过JSON Schema约束输出格式：

```kotlin
val schema = """
{
  "type": "object",
  "properties": {
    "name": {"type": "string"},
    "age": {"type": "integer"}
  }
}
"""

val jsonOutput = LlamaBridge.generateJson(
    prompt = "生成一个用户对象",
    jsonSchema = schema
)
```

#### 嵌入向量生成

支持生成文本嵌入，用于向量搜索和RAG应用：

```kotlin
LlamaBridge.initModel(modelPath)
val embedding = LlamaBridge.embed("需要编码的文本")
// 返回FloatArray，可用于相似度计算
```

### 2. 语音识别（Whisper）

通过`WhisperBridge`提供设备端语音转文字能力：

```kotlin
// 获取模型路径
val modelPath = WhisperBridge.getModelPath("ggml-tiny-q8_0.bin")

// 初始化（应用启动时执行一次）
WhisperBridge.initModel(modelPath)

// 转录音频（16kHz单声道WAV格式效果最佳）
val text = WhisperBridge.transcribeWav(
    wavPath = "/path/to/recording.wav",
    language = "zh",  // 可选：指定语言
    initialPrompt = "医学术语"  // 可选：引导特定领域词汇
).trim()

// 应用关闭时释放资源
WhisperBridge.release()
```

### 3. 图像生成（Stable Diffusion）

通过`StableDiffusionBridge`实现设备端文生图：

```kotlin
val modelPath = StableDiffusionBridge.getModelPath("sd-model.bin")

StableDiffusionBridge.initModel(modelPath)

val imageBytes = StableDiffusionBridge.generateImage(
    prompt = "赛博朋克风格的羊驼在霓虹东京",
    width = 512,
    height = 512,
    steps = 20,
    cfgScale = 7.5f
)

// 将imageBytes保存为PNG文件
```

### 4. 多模态视觉（VLM）

通过`MultimodalBridge`支持设备端图像理解：

```kotlin
// 初始化需要两个文件：视觉模型GGUF和对应的mmproj GGUF
val loaded = MultimodalBridge.initModel(
    modelPath = "/path/to/SmolVLM-256M-Instruct-Q8_0.gguf",
    mmprojPath = "/path/to/mmproj-SmolVLM-256M-Instruct-f16.gguf"
)

// 分析图像
val imageBytes = File("/path/to/photo.jpg").readBytes()

MultimodalBridge.analyzeImageBytesStream(
    imageBytes = imageBytes,
    prompt = "描述这张图片中你看到了什么。",
    callback = object : GenStream {
        override fun onDelta(text: String) { print(text) }
        override fun onComplete() { println("\n[完成]") }
        override fun onError(message: String) { println("错误: $message") }
    }
)
```

## 平台支持与系统要求

| 平台 | 最低版本 | 说明 |
|-----|---------|------|
| iOS | 16.6+ | 使用静态框架 |
| Android | API 26+ | 通过JNI集成 |
| Desktop | JVM 21+ | 标准JVM支持 |
| WASM | 现代浏览器 | 需要WebAssembly支持 |

## 集成方式

Llamatik已发布到Maven Central，遵循语义化版本：

```kotlin
// settings.gradle.kts
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
}

// build.gradle.kts (commonMain)
commonMain.dependencies {
    implementation("com.llamatik:library:0.19.0")
}
```

无需自定义Gradle插件，无需手动配置原生工具链，标准Kotlin多平台项目即可直接使用。

## 典型应用场景

### 1. 端侧聊天机器人与助手

完全离线的AI对话应用，保护用户隐私的同时提供智能交互体验。

### 2. 本地RAG系统

结合嵌入向量生成和本地向量数据库，构建无需联网的知识检索系统。

### 3. 混合AI应用

离线优先、在线降级的设计：网络可用时使用云端大模型，离线时切换到本地轻量模型。

### 4. 游戏AI与程序化对话

为游戏NPC提供智能对话能力，无需担心网络延迟或服务器成本。

## 演示应用与生产案例

Llamatik提供了完整的演示应用，展示：

- 设备端推理
- 流式生成
- 语音识别（Whisper）
- 隐私优先AI（无需云端）
- 可下载模型

演示应用已上架：
- [Google Play](https://play.google.com/store/apps/details?id=com.llamatik.app.android)
- [App Store](https://apple.co/3Md7EIh)

更重要的是，Llamatik已被多个生产环境应用采用，证明了其在真实场景中的可靠性。

## 远程推理后端

对于需要更大模型的场景，Llamatik提供了可选的远程推理方案：

- **llamatik-client**：HTTP客户端，连接远程推理服务器
- **llamatik-backend**：llama.cpp兼容服务器（独立仓库维护）

切换本地/远程推理只需要修改配置，API调用完全一致。

## 开源与社区

Llamatik采用MIT许可证100%开源，欢迎：

- 错误报告
- 功能请求
- 文档改进
- 平台扩展

项目由Kotlin社区驱动，体现了开源协作的精神。

## 总结与价值

Llamatik的价值不仅在于技术实现，更在于它为移动AI开发提供了一种新的可能性：**在保护隐私的前提下，让强大的AI能力触手可及**。

对于Kotlin开发者而言，Llamatik意味着：

1. **统一的技术栈**：无需学习Python或处理复杂的原生绑定
2. **真正的跨平台**：一套代码，覆盖移动端、桌面端和Web端
3. **生产就绪**：已被真实应用验证，不是实验性项目
4. **灵活部署**：本地优先，云端可选，适应不同场景需求

在AI能力日益重要的今天，Llamatik为Kotlin生态补上了端侧AI的重要拼图。
