尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
完整解析:从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

相关推荐

思科路由器配置实战:从基础管理到策略路由的完整闭环

思科路由器配置实战:从基础管理到策略路由的完整闭环

简介:本资源是一份面向网络工程初学者与思科认证备考人员的实用型技术文档,系统讲解思科路由器核心配置命令及典型应用场景,解决实际设备配置中命令不熟、协议混淆、排错无头绪等常见问题。文档为单个90KB的Word文件(.docx&#x…

📅 2026/9/30 19:40:57
SSR并非万能药:详解优缺点与技术选型,避免简历驱动开发

SSR并非万能药:详解优缺点与技术选型,避免简历驱动开发

前两天一个做前端的朋友找我聊技术选型,说新项目在纠结要不要上SSR。我照例先问一句:你现在遇到了什么真实问题,是SEO没收录,还是首屏太慢?他想了半天,挤出一句:"好像都没有,但…

📅 2026/9/30 19:40:57
Qwen-Image-2.1信息图提示词模板与ComfyUI本地部署实战

Qwen-Image-2.1信息图提示词模板与ComfyUI本地部署实战

信息图这活儿,看着简单,做过的人都懂:排版难、配色难、中英文混排更难,最崩溃的是好不容易生成一张,放大一看,标题文字要么缺胳膊少腿,要么直接变成了谁也看不懂的“咒文”。这阵子我一直在折腾…

📅 2026/9/30 19:35:56
MORE NEWS

更多资讯

📰

Node.js 连 MongoDB 3.4 报 Access control is not enabled:用 TaoToken 统一 Key 排查鉴权链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

智谱 GLM-5.1 开源上线 AtomGit AI:TaoToken 统一 Key 接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

真实项目验证:Ensenso 3D相机用户使用体验与反馈汇总

一、3D视觉选型中用户最常遇到的三个问题在与多个已部署3D视觉系统的集成商交流后,我们发现用户在选型阶段和项目落地后,反馈的问题往往高度集中。第一,精度与速度难以兼得。 3D视觉面临的核心工程矛盾是精度与速度的权衡。结构光方案可以达到…

📰

【2026年最新】英文论文发表避坑指南:市面主流5家英文论文辅导机构真实测评

面对毕业截稿与高标准审稿意见,许多同学常感到力不从心。写好英文论文不仅要有扎实的数据支撑,更考验学术表达的严谨性。不管是日常留学作业辅导,还是冲击核心期刊,选对合规、正规的英文人工辅导至关重要。 市面机构鱼龙混杂&…

📰

OpenClaw语音控制实战:从语音指令到执行命令的完整链路拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

亚远景-ASPICE 评估实践:分清 BP 基本实践与 GP 通用实践,避开 ASPICE 评估常见概念误区

在 ASPICE 评估模型当中,BP 基本实践属于过程专属活动,用来达成该过程本身的过程成果,服务于 CL1 已执行的过程;GP 通用实践是跨所有过程的通用活动,用来达成过程属性,是 CL2 及以上能力等级的评估重点。不…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬