RunanywhereAI/runanywhere-sdks
Production ready toolkit to run AI locally
RunAnywhere SDK – 适用于每个平台的设备端 AI
它是什么 – RunAnywhere 提供单一 C++ 核心,可以在设备上完全运行多种 AI 能力(LLM、视觉语言模型、语音转文本、文本转语音、嵌入、RAG、图像生成、工具调用等)。八种语言特定 SDK(Swift、Kotlin、Flutter、React-Native、Web、Electron、Python 和 wally CLI)暴露相同的高级 API,而 能力注册表 为当前设备选择最佳的硬件加速引擎(Snapdragon Hexagon NPU、Apple MLX、llama.cpp、ONNX、Core ML、CUDA、WebGPU 或纯 CPU)。
核心概念
| 概念 | 说明 |
|---|---|
| 一个 API,多个后端 | 调用 RunAnywhere.capabilities() 查看当前设备能做什么。运行时自动将每个请求路由到支持它的最高优先级引擎。 |
| 设备端,默认私密 | 模型在首次使用时下载并在本地运行;除非您故意启动可选的 OpenAI 兼容服务器,否则不需要网络流量。 |
| 硬件感知加速 | • QHexRT – Snapdragon Hexagon NPU • MLX – Apple silicon (Metal/MLX) • llama.cpp – CPU、Metal、CUDA、WebGPU/WASM • sherpa + ONNX – 语音、嵌入等 • Core ML – iOS/macOS 上的扩散 |
| 跨平台 SDK | Swift (iOS/macOS)、Kotlin (Android)、Flutter、React-Native、Web (TS + WASM)、Electron (Windows)、Python 和 wally 终端工具。所有 SDK 共享相同的版本线(例如 0.20.29)。 |
| 连接(LAN 主机/客户端) | macOS 可以托管已加载的模型;iOS、iPadOS 和 Android 可以通过可信的本地网络(Bonjour 发现、纯 TCP)流式传输生成。 |
您可以构建什么(设备端)
- LLM 聊天 – 数十种模型(Llama、Qwen、Gemma、Phi、SmolLM 等),支持流式、多轮历史、LoRA 适配器。
- 结构化 JSON 输出 – 模式验证的生成、受限解码。
- 工具调用 – 本地函数调用,具有稳定 ID,支持并行执行(如果支持)。
- 视觉语言(VLM) – 图像字幕、实时摄像头描述、照片问答。
- 计算机使用动作解析器 – 将 Fara 风格的动作字符串解析为屏幕缩放坐标。
- 语音转文本 – Whisper、Moonshine、批量或实时流。
- 文本转语音 – 神经语音(Piper、Kokoro、Kitten、MeloTTS、Magpie)。
- 语音代理 – VAD → STT → LLM → TTS 管道(无唤醒词检测)。
- 嵌入与 RAG – 本地文档摄取、向量搜索、流式答案。
- 图像生成 – Core ML 上的 Stable Diffusion,Hexagon NPU 上的修复。
快速入门示例
Python (pip)
pip install runanywhere==0.20.11
import runanywhere as ra
from runanywhere import LlmOptions
ra.initialize() # 首次调用时下载模型
for ev in ra.llm.generate_stream("用一句话解释设备端 AI。",
LlmOptions(model="qwen2.5-0.5b")):
if ev.is_token:
print(ev.text, end="")
Swift (iOS/macOS)
import RunAnywhere
import LlamaCPPRuntime
LlamaCPP.register()
try RunAnywhere.initialize()
var load = RAModelLoadRequest()
load.modelID = "smollm2-360m"
load.category = .language
load.framework = .llamaCpp
await RunAnywhere.loadModel(load)
var req = RALLMGenerateRequest()
req.prompt = "法国的首都是什么?"
let result = try await RunAnywhere.generate(req)
print(result.text) // → 巴黎
Web (TypeScript, WASM + WebGPU)
npm i @runanywhere/web@0.20.11 @runanywhere/web-llamacpp@0.20.11
import { RunAnywhere } from "@runanywhere/web";
import { LlamaCPP } from "@runanywhere/web-llamacpp";
await RunAnywhere.initialize({ environment: "DEV" });
await LlamaCPP.register({ acceleration: "auto" });
await RunAnywhere.loadModel({ modelId: "qwen2.5-0.5b" });
const out = await RunAnywhere.generate({ prompt: "法国的首都?" });
console.log(out.text); // 巴黎
(为 Kotlin、Flutter、React-Native、Electron 和 wally CLI 提供了类似的代码片段。)
SDK 矩阵(状态与安装)
| SDK | 平台 | 状态 | 安装命令 |
|---|---|---|---|
| Swift | iOS 17.5+、macOS 14.5+ | 稳定 | Swift Package Manager (https://github.com/RunanywhereAI/runanywhere-sdks) |
| Kotlin | Android API 24+ | 稳定 | Gradle: implementation("io.github.sanchitmonga22:runanywhere-sdk:0.20.11") |
| Flutter | iOS、Android | Beta | pub add runanywhere(加上后端包) |
| React Native | iOS、Android | Beta | npm i @runanywhere/core @runanywhere/llamacpp |
| Web | Chromium、Safari、Firefox | Beta | npm i @runanywhere/web @runanywhere/web-llamacpp |
| Electron | Windows x64 | 预览 | 从源码构建(参见 bindings/electron/) |
| Python | Windows/macOS/Linux | Alpha | pip install runanywhere |
| wally (CLI) | macOS、Linux、Windows | 稳定 | `curl … |
运行时如何选择引擎
- 每个引擎注册它可以运行的模态和目标硬件。
- 当请求到达时,能力注册表查看设备的可用硬件,并选择满足请求的最高优先级引擎。
- 如果没有引擎匹配,调用失败并显示清晰的错误;您可以查询
capabilities()查看实际安装的内容。
典型优先级顺序(高 → 低):
- QHexRT (Snapdragon NPU) → MLX (Apple silicon) → llama.cpp (GPU/CPU) → sherpa + ONNX → Core ML → 回退 CPU。
了解更多
- 文档: https://docs.runanywhere.ai (平台特定指南)
- 模型目录: https://huggingface.co/runanywhere/models
- Discord 社区: https://discord.gg/N359FBbDVd
- GitHub 发布: https://github.com/RunanywhereAI/runanywhere-sdks/releases
总结
RunAnywhere 是一个真正的、生产级 SDK 套件,让开发者编写一段代码,即可在手机、浏览器、桌面或服务器上本地运行各种 AI 模型,自动利用最佳硬件加速器。它涵盖 LLM 聊天、视觉语言、语音、嵌入、RAG 和扩散,为 Swift、Kotlin、Flutter、React-Native、Web、Electron、Python 和 CLI 提供稳定的 API。
相关
- 项目
- 项目
- 项目
- 项目
- 项目