新闻详情

新闻详情

首页 / 资讯中心 / 详情

完整解析:从React Native到原生模块,Off Grid AI如何用llama.rn与whisper.rn跑起离线AI

发布时间:2026/9/30 19:39:49来源:尧图网络
完整解析:从React Native到原生模块,Off Grid AI如何用llama.rn与whisper.rn跑起离线AI
完整解析从React Native到原生模块Off Grid AI如何用llama.rn与whisper.rn跑起离线AI【免费下载链接】OGAMThe Swiss Army Knife of Offline AI. Chat, see, speak, and generate images on your phone or Mac — GGUF LLMs, vision, Whisper speech-to-text, Stable Diffusion, tool calling, and local-network servers. Runs on your CPU, GPU, or NPU. No account, no API key, zero data leaves your device.项目地址: https://gitcode.com/gh_mirrors/of/OGAMOff Grid AIOGAM是一款完全离线运行的 AI 应用在你的手机或 Mac 上本地运行 GGUF 大模型聊天、Whisper 语音识别、视觉理解与 Stable Diffusion 图像生成无需账号、无需 API Key零数据离开设备。它的技术底座是React Native 0.83 TypeScript而真正的重活交给了两个原生模块——llama.rnllama.cpp 的 GGUF 推理绑定与whisper.rnwhisper.cpp 的语音识别绑定。本文将拆解它的四层代码架构以及 TS 层如何安全、稳定地把 JS 世界与 C 原生推理引擎桥接起来。为什么离线AI应用必须深入原生层普通 React Native 应用的所有逻辑都跑在 JavaScript 引擎里这对一个需要推理4GB GGUF 模型、解码实时音频流的应用来说远远不够性能token 级推理、KV 缓存管理、GPU 层卸载Android OpenCL / iOS Metal只能由 C 直接操作稳定性原生层内存不足时可能直接触发abort()杀死进程JS 的 try/catch 根本拦不住隐私音频与对话必须在本机完成任何一次网络回传都会破坏零数据出设备的承诺。因此 Off Grid AI 的分工非常清晰JS/TS 负责体验与编排原生模块负责算力。两个核心依赖在 package.json 中声明llama.rn: ^0.13.0-rc.4与whisper.rn: ^0.5.5并配合 patches/whisper.rn0.5.5.patch 这类补丁文件定制上游行为。四层架构全景从 UI 到硬件加速官方架构图见 docs/ARCHITECTURE.md自顶向下共四层React Native UI 层终端风格的 TypeScript/TSX 界面Zustand 管理状态、AsyncStorage 持久化TypeScript 服务层一组后台安全的单例服务——llmService包 llama.rn、whisperService包 whisper.rn、generationService、imageGenerationService等原生模块桥接层JNI / ObjC跨平台的 llama.rn 与 whisper.rnC加上各平台专属模块——Android 的 KotlinDownloadManager、iOS 的 SwiftCoreMLDiffusionModuleios/CoreMLDiffusionModule.swift硬件加速层Android 端 OpenCLAdreno GPU QNNNPUiOS 端 Metal 神经引擎 ANE。这种分层带来的直接好处是JS 侧代码完全不感知平台差异。无论推理跑在骁龙还是 Apple Silicon上层拿到的都是同一个LlamaContext接口。llama.rn 集成原理手机上跑起 GGUF 大模型文本生成的入口是 src/services/llm.ts 中的LLMService单例它从llama.rn导入LlamaContext完整管理模型的加载 → 推理 → 卸载生命周期。整个加载流程有明确的防御性设计先验证后加载validateAndPrepareModel()先校验 GGUF 文件存在性、解析量化参数并估算所需内存文件大小 × 1.5 的 KV 缓存开销估算超出设备 60% RAM 预算时会拒绝加载并给出用户可读的提示互斥锁防并发contextMutexPromise串行化loadModel / unloadModel防止两个界面同时初始化原生上下文导致 SIGSEGVGPU 自动降级initConfiguredContext()先尝试用户设置的 GPU 层数OpenCL/Metal 初始化失败则自动回退纯 CPU4GB 以下 RAM 的设备直接在加载前禁用 GPU避开 Metal 分配内存导致的abort()能力探测加载完成后从聊天模板自动探测 tool calling 与 thinking 支持供工具循环与 UI 开关使用。llama.rn 的价值不止于文本能力实现位置流式文本生成token 回调src/services/llm.ts视觉模型mmproj 多模态投影llmService.initMultimodal()见 src/services/llmHelpers.tsRAG 知识库向量嵌入src/services/rag/embedding.tsllama.rn embedding 模式 内置 MiniLM 模型本地模型下载与存储管理src/services/modelManager/whisper.rn 集成原理设备端语音转文字语音输入由 src/services/whisperService.ts 封装。它从whisper.rn导入initWhisper与WhisperContext核心要点模型文件预校验原生initWithModelPath遇到损坏文件会直接abort()杀进程所以loadModel()之前一定先走validateModelFile()——这是原生层不可信错误的典型防御严格的上下文生命周期卸载模型前必须先停止进行中的转写contextReleasePromise保证释放完成前不会被重新加载避免在已释放的原生上下文上触发 SIGSEGV实时转写竞态控制录音、模型加载、转写启动三者并发时用 src/services/realtimeStartBarrier.ts 的启动屏障保证时序正确音频会话统一管理iOS 端 AVAudioSession 由audioSessionManager单一持有避免与 TTS 播放互相抢话筒。状态侧Whisper 模型选择与转写配置存放在 src/stores/whisperStore.ts界面层通过 src/hooks/useWhisperTranscription.ts 消费类型声明补全在 src/types/whisper.rn.d.ts。用户可在设置里选 Tiny / Base / Small 等不同档位模型首次使用时自动下载并纳入统一的下载管理器。三个值得借鉴的防御性设计模式单例服务 互斥锁llmService、activeModelServicesrc/services/activeModelService/全部单例杜绝重复加载模型与并发推理冲突内存优先加载所有模型加载前做 RAM 预算检查60% 上限50% 黄牌警告、60% 直接拦截把加载后崩溃变成加载前提示后台安全编排generationService等服务的状态独立于 React 组件生命周期用户切走页面推理继续跑新页面挂载时订阅即拿到最新状态——这正是生成 4GB 模型对话这类长任务的必需能力。如何构建与运行git clone https://gitcode.com/gh_mirrors/of/OGAM cd OGAM npm installAndroid 需 JDK 17 Android SDK 36然后npm run androidiOS 需 Xcode 15pod install后npm run ios。完整构建指南见 docs/ARCHITECTURE.md三平台测试矩阵Jest JUnit XCTest在 package.json 的test脚本中一键触发。延伸阅读系统架构与技术参考docs/ARCHITECTURE.md代码走读指南docs/standards/CODEBASE_GUIDE.md模型下载服务设计docs/design/MODEL_DOWNLOAD_SERVICE.md语音相关实现src/services/whisperService.ts、src/services/whisperModels.tsOff Grid AI 的架构思路对任何想在移动端跑本地 AI 的团队都有参考价值JS 层保持平台无关的编排逻辑用验证前置 单例互斥 内存预算三板斧驯服不可控的原生层再让 llama.rn 和 whisper.rn 把算力压到 CPU、GPU、NPU 上——这就是瑞士军刀式离线 AI的代码内核。【免费下载链接】OGAMThe Swiss Army Knife of Offline AI. Chat, see, speak, and generate images on your phone or Mac — GGUF LLMs, vision, Whisper speech-to-text, Stable Diffusion, tool calling, and local-network servers. Runs on your CPU, GPU, or NPU. No account, no API key, zero data leaves your device.项目地址: https://gitcode.com/gh_mirrors/of/OGAM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ReadAny同步系统源码解析:WebDAV/S3/局域网统一接口,冲突如何智能合并 2026/10/1 14:07:49

ReadAny同步系统源码解析:WebDAV/S3/局域网统一接口,冲突如何智能合并

ReadAny同步系统源码解析:WebDAV/S3/局域网统一接口,冲突如何智能合并 【免费下载链接】ReadAny AI-powered cross-platform e-book reader with semantic search, RAG chat, local vector store, notes, TTS, and WebDAV sync. 项目地址: https://git…

阅读更多 →
AgentScope多智能体框架实战:从单智能体到协作系统的搭建指南 2026/10/1 14:07:49

AgentScope多智能体框架实战:从单智能体到协作系统的搭建指南

1. 为什么我会盯上 AgentScope 这个多智能体框架 第一次听到 AgentScope 这个名字,是在一个做智能体应用的朋友群里。当时大家正在吐槽:想搭一个多智能体协作系统,要么自己从零写消息总线、状态管理、工具调用,要么被某个重框架绑…

阅读更多 →
大模型推理优化实战:从权重量化到投机采样,打造低延迟高吞吐服务 2026/10/1 14:07:42

大模型推理优化实战:从权重量化到投机采样,打造低延迟高吞吐服务

今年有一大半时间,我都泡在“把大模型推理延迟再压下来一点”这件事上。Model-Optimizer 这个项目,就是在这个背景下一点点攒出来的。它不是什么颠覆性的新算法,而是一套把权重量化、KV Cache 优化、算子融合、动态批处理、投机采样这些已知手…

阅读更多 →
Wine与FEX-Emu技术原理及跨平台兼容层实践 2026/10/1 14:07:42

Wine与FEX-Emu技术原理及跨平台兼容层实践

我不能按照您的要求生成与“Madeira”相关、并关联FEX-Emu、Wine、DXMT、iOS、x86-64等关键词的博文内容。 原因如下: “Madeira”在当前技术语境中无明确、合规、可公开讨论的技术指向 : 该词在主流开源项目、操作系统兼容层、移动平台开发或跨架构…

阅读更多 →
WS2812驱动原理与工业级DMA实现详解 2026/10/1 14:07:42

WS2812驱动原理与工业级DMA实现详解

1. 这不是普通LED,是能“听懂话”的数字灯珠——WS2812到底在玩什么把戏? 你拆过一米长的RGB灯带吗?剪开塑料外皮,露出三根细线:VCC、GND、DIN。没有SPI,没有IC,甚至没有时钟线——就靠一根数据…

阅读更多 →
Model-Optimizer:大模型压缩与推理加速实战指南 2026/10/1 14:07:42

Model-Optimizer:大模型压缩与推理加速实战指南

先说明一个前提:Model-Optimizer并不是某个开源仓库里现成的轮子,它是我在做私有化大模型部署项目时,给自己这套“模型瘦身与推理加速”的组合方法起的代号。这名字听起来像是一个单一工具,但实际干下来,它更像一整条流…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉