llama.rn

在 React Native 应用里跑本地大模型,离线也能对话

llama.rn 是 llama.cpp 的 React Native 绑定库,让开发者能在 iOS 和 Android 原生应用里直接运行本地大语言模型,无需依赖云端 API。它把 llama.cpp 的 C/C++ 推理能力封装成 JavaScript/TypeScript 接口,支持加载 GGUF 格式模型、流式生成 token、多轮对话上下文管理,以及可调用的底层参数(如温度、top-k、线程数)。核心价值在于把端侧 LLM 推理带进跨平台移动开发流程,开发者用熟悉的 React Native 技术栈就能做出离线可用的 AI 聊天、文本补全、摘要等应用,避免网络延迟、隐私外泄和调用费用。项目以 C 语言实现核心,提供 Android 与 iOS 双端支持,适合需要本地推理、数据不出设备的移动场景。

开源 free 开发框架
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1040
维护状态 活跃
是否开源
定价模式 free

项目数据

分类开发框架
开发团队mybigday
所属国家
官网地址
定价模式free
价格说明开源免费,遵循 MIT 许可证
访问状态
是否开源
开源协议MIT
主要语言C
技术栈/模型android,ios,llama,llama-cpp,llm,react-native
GitHub 星标★ 1040
30天Star增速
HF 下载量
上线时间2023-08-02 00:00:00
最近更新2026-09-18 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-16
浏览次数0

使用教程

难度:进阶 约 15 分钟 部署方式:库/依赖 6 步

环境要求

  • 已创建的 React Native 项目(v0.10 起要求启用新架构)
  • Node.js 与 npm 环境(使用 Bun 时需将 llama.rn 标记为受信任包)
  • iOS/Android 原生构建环境(Xcode 或 Android 构建工具链)
  • 已准备好 GGUF 格式的模型文件,多模态还需对应 mmproj 文件

安装与启动步骤

  1. 1安装 llama.rn

    在 React Native 项目根目录执行。postinstall 会自动下载 iOS 与 Android 预编译产物并做 SHA-256 校验,已下载的会复用。

    npm install llama.rn
  2. 2确认新架构

    v0.10 起必须使用 React Native 新架构;若需旧架构支持或 v0.9.x 文档,请改用 v0.9 分支。

  3. 3准备 GGUF 模型

    把下载好的 GGUF 模型放到应用可访问的路径,代码中以 file:// 开头的完整路径引用。多模态场景还需额外准备 mmproj 投影文件。

  4. 4读取模型信息

    先用 loadLlamaModelInfo 验证模型文件路径正确、可被解析,控制台会打印出模型元信息。

    import { loadLlamaModelInfo } from 'llama.rn'
    
    const modelPath = 'file:///your/path/model.gguf'
    console.log('Model Info:', await loadLlamaModelInfo(modelPath))
  5. 5初始化上下文

    用 initLlama 加载模型创建上下文,首次加载耗时较长;n_gpu_layers 控制放入 GPU 的层数,可按设备调整。

    import { initLlama } from 'llama.rn'
    
    const context = await initLlama({
      model: modelPath,
      use_mlock: true,
      n_ctx: 2048,
      n_gpu_layers: 99,
    })
  6. 6发起对话补全

    向 context.completion 传入 messages 做聊天补全,或传 prompt 做文本补全;第二个参数是流式 token 回调。

    const stopWords = ['', '<|end|>', '<|eot_id|>', '<|end_of_text|>', '<|im_end|>']
    
    const msgResult = await context.completion(
      {
        messages: [
          { role: 'system', content: 'This is a conversation between user and assistant, a friendly chatbot.' },
          { role: 'user', content: 'Hello!' },
        ],
        n_predict: 100,
        stop: stopWords,
      },
      (data) => {
        const { token } = data
      },
    )
    console.log('Result:', msgResult.text)

关键配置

配置项必填说明示例
modelGGUF 模型文件的本地路径,以 file:// 开头file:///your/path/model.gguf
n_ctx上下文窗口长度,越大占用内存越多2048
n_gpu_layers放入 GPU 显存的层数(Metal/OpenCL)99
use_mlock是否锁定内存防止被换出true
embedding是否启用 embedding 输出,TTS 连续模型需要true
n_parallel并行槽最大数量,配合 parallel.enable 使用4

如何确认成功

调用 loadLlamaModelInfo 打印出模型信息,或 initLlama 成功返回 context 并输出 completion 的 text 与 timings,即表示推理链路可用。

常见问题

Q:安装后没有下载到 iOS/Android 预编译产物怎么办?

A:这些产物由 postinstall 从对应 GitHub release 下载并用 SHA-256 校验,已存在会复用。若因网络中断失败,删除后重新执行 npm install 即可。

Q:用 Bun 安装后提示找不到二进制文件?

A:Bun 默认不执行依赖的生命周期脚本。需要先把 llama.rn 标记为受信任包,再重新安装以触发 postinstall 下载。

Q:能用旧架构的 React Native 吗?

A:v0.10 起要求新架构。需要旧架构支持时,改用仓库的 v0.9 分支及其文档。

Q:如何让模型只输出指定结构的内容?

A:llama.rn 支持 GBNF 语法与 JSON schema 语法采样,可在生成时约束输出格式,适合工具调用等结构化场景。

Q:怎么支持图片或音频输入?

A:需要多模态模型并准备对应的 mmproj 投影文件,通过 mmproj 集成启用视觉/音频理解。

注意事项

  • 首次 initLlama 加载模型可能耗时较久,需耐心等待。
  • 模型必须放在应用可访问的路径,并以 file:// 形式传入。
  • Android 的 Hexagon NPU 加速目前为实验特性。
  • TTS 为实验功能,用完 vocoder 后应调用 releaseVocoder 释放资源。

核心亮点

  • 直接复用 llama.cpp 的推理内核,支持 GGUF 量化模型,端侧性能有保障
  • 提供 React Native 原生模块,JS/TS 调用简单,能流式返回 token 做打字机效果
  • 同时覆盖 Android 和 iOS,一套代码跨平台,适合已有 RN 技术栈的团队快速集成

不足之处

  • 模型文件需自行准备并打包或下载,体积大,对 App 包体和存储有压力
  • 端侧推理速度受手机芯片限制,大参数模型体验有限,文档和示例相对精简

适用场景

  • 离线 AI 聊天助手:在无网或弱网环境下用本地模型完成对话
  • 隐私敏感场景:医疗、法律等文本在设备内处理,不上传云端
  • 移动端文本工具:本地摘要、改写、翻译等轻量 AI 功能嵌入 App

替代项目

llama.cpp、mlc-llm、react-native-executorch

项目介绍

llama.rn 是一个开发框架领域的开源项目,官方简介:React Native binding of llama.cpp。项目使用 C 开发,在 GitHub 上获得 1039 星标。

上一篇:guardrails

下一篇:awesome-dsh-plugin

同类项目推荐

langchain 开源

组装 AI 应用的乐高积木,从想法到上线不换工具

The agent engineering platform.

★ 146451 2026-08-09
transformers 开源

全球最大的模型仓库全家桶,想用的模型一把抓

Transformers: the model-definition framework for state-of-the-art machine learning m···

★ 166251 2026-08-09
bruno 开源

把 API 测试当代码管理,用 Git 搞定协作与版本追踪

Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/I···

★ 46994 2026-08-12