QVAC
QVAC 可使用开放模型,在 Linux、macOS、Windows、Android 和 iOS 上于本地运行 AI 工作负载。
核验日期
核心信息
以下信息由程序从官方接口读取,不经模型改写。
- 许可证
- Apache-2.0
- 语言
- TypeScript
- 维护方
- tetherto
- 核验日期
它是什么
QVAC 可使用开放模型,在 Linux、macOS、Windows、Android 和 iOS 上于本地运行 AI 工作负载。QVAC 提供 SDK,用于以 JavaScript/TypeScript 和 Python 构建本地优先的 AI 应用和系统。QVAC 还提供 HTTP 服务器,用于把 QVAC 作为本地模型提供方。该 HTTP 服务器的 OpenAI 兼容 API 可连接 OpenCode 和 OpenClaw 等 AI 工具。
主要能力
文本生成:通过 Fabric LLM 提供用于文本生成和聊天的 LLM 推理。
文本嵌入:提供用于语义搜索、聚类和检索的向量嵌入生成。
微调:通过 LoRA 使 LLM 适应特定领域的任务。
图像生成:通过 Diffusion 后端提供文生图和图生图。
视频生成:通过 Diffusion 后端提供文生视频和图生视频。
翻译:通过 Fabric LLM 和 Bergamot 提供神经机器翻译。
怎么上手
可以使用 JS/TS SDK 运行第一个示例。
也可以使用 Python SDK 运行第一个示例。
Python SDK 的安装包是自包含的:它捆绑了 QVAC worker 和 Bare 运行时,不需要 Node.js。
使用 HTTP 服务器时,先用 CLI 启动服务器,再把 QVAC 作为 OpenCode 和 OpenClaw 等 OpenAI 兼容工具的模型提供方。
各工具的设置方式不同,项目为部分工具(如 OpenCode 和 OpenClaw)提供专用插件,由插件替你运行服务器。
在 HTTP 服务器的快速入门中,模型在首次启动时下载,并预加载到内存中。
npm i @qvac/sdkimport { loadModel, LLAMA_3_2_1B_INST_Q4_0, completion, unloadModel } from '@qvac/sdk';
try {
const modelId = await loadModel({
modelSrc: LLAMA_3_2_1B_INST_Q4_0,
onProgress: (p) => {
const mb = (n) => (n / 1e6).toFixed(1);
const line = `▸ Downloading ${p.percentage.toFixed(0)}% (${mb(p.downloaded)}/${mb(p.total)} MB)`;
process.stderr.write(process.stderr.isTTY ? `\r${line}` : `${line}\n`);
if (p.percentage >= 100) process.stderr.write('\n');
},
});
const history = [{ role: 'user', content: 'Explain quantum computing in one sentence' }];
const result = completion({ modelId, history, stream: true });
for await (const token of result.tokenStream) {
process.stdout.write(token);
}
await unloadModel({ modelId });
} catch (error) {
console.error('✖', error);
process.exit(1);
}QVAC_CONFIG_PATH=./qvac.config.json node quickstart.js# Replace <version> with the release you want, e.g. sdk-v0.17.0:
pip install tetherto-qvac-sdk \
-f https://github.com/tetherto/qvac/releases/expanded_assets/sdk-v<version>import asyncio
import sys
from tetherto.qvac_sdk import Client, completion, load_model, unload_model
from tetherto.qvac_sdk.models import LLAMA_3_2_1B_INST_Q4_0
def print_progress(p):
line = f"▸ Downloading {p.percentage:.0f}% ({p.downloaded / 1e6:.1f}/{p.total / 1e6:.1f} MB)"
print(line, end="\r" if sys.stderr.isatty() else "\n", file=sys.stderr)
if p.percentage >= 100:
print(file=sys.stderr)
async def main():
async with Client() as client:
t = client.transport
try:
model_id = await load_model(
t, model_src=LLAMA_3_2_1B_INST_Q4_0, on_progress=print_progress
)
run = completion(
t,
model_id=model_id,
history=[
{"role": "user", "content": "Explain quantum computing in one sentence"},
],
)
async for event in run.events:
if event.type == "contentDelta":
sys.stdout.write(event.text)
sys.stdout.flush()
print()
await unload_model(t, model_id)
except Exception as error:
print(f"✖ {error}", file=sys.stderr)
return 1
return 0
if __name__ == "__main__":
sys.exit(asyncio.run(main()))python quickstart.py适合谁
在 JavaScript 和 Python 的快速入门示例中,QVAC 会流式输出响应 token,并打印到终端。在 HTTP 服务器快速入门的 curl 示例中,响应以单个 JSON 负载返回,内含模型的回答。多模态:提供对文本、图像和其他媒体在同一上下文中的 LLM 推理。
VLA:通过 GGML 后端提供用于机器人控制的视觉-语言-动作。OCR:通过 ONNX Runtime 或 GGML 后端从图像中提取文本。BCI:通过 Whisper 后端提供脑机接口转录。
FFmpeg 音频解码器提供流式 PCM 输出,以及默认 64 MiB 的解码输出限制。图像分类与嵌入:通过 GGML/Fabric 后端,用 MobileNet 对图像分类,或生成用于图像检索的 MegaLoc 描述符。QVAC 的模型获取功能通过分布式模型注册表直接从对等节点下载 AI 模型,从而无需集中式的模型托管和分发。
该模型注册表还提供不含权重的模型描述、模型设置和张量列表,因此可在下载前评估模型能否装入内存。盲中继在设备无法跨 NAT 和防火墙直接连接时,通过中继节点路由流量,无需集中式基础设施即可保持网络连通。项目将本地优先描述为:离线运行 AI,推理针对通用硬件优化,范围从消费级应用、嵌入式系统到本地部署。
项目将跨平台列为:Linux、macOS、Windows、Android 和 iOS 共用一套代码库,使用 JavaScript/TypeScript 或 Python。示例资源提供用 QVAC SDK 构建的示例应用和概念验证。博客资源提供教程、深度解析、工程笔记和公告。
来源
本页内容整理自以下官方来源,点击可核对原文。
- GitHub READMEhttps://github.com/tetherto/qvac抓取于
核验日期 ·
本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。
