node-llama-cpp

在 Node.js 里直接跑本地大模型,还能强制输出合法 JSON

node-llama-cpp 是一个将 llama.cpp 绑定到 Node.js 的库,让你能在本地机器上直接运行 AI 模型(如 Llama、Mistral 等)。它解决了 JavaScript 生态中调用本地大模型困难的问题,无需启动独立的 Python 服务或子进程,即可在 Node.js 应用中加载 GGUF 格式模型并进行文本生成。核心能力包括:高性能的本地推理(基于 llama.cpp 的 C++ 后端)、支持流式输出、多模型管理、以及一个非常独特的功能——在生成层面强制输出符合 JSON Schema 的结构化结果,避免手动解析和重试。它还提供了类型安全的 API(TypeScript 编写)和简单的安装方式(自动下载预编译二进制),适合需要离线、隐私保护或低延迟推理的 Node.js 应用。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2186
维护状态 较活跃
是否开源
定价模式 free

项目数据

分类开源模型
开发团队withcatai
所属国家
定价模式free
价格说明完全开源免费,MIT许可证,本地部署使用,无付费版本。
访问状态
是否开源
开源协议MIT
主要语言TypeScript
技术栈/模型ai,bindings,catai,cmake,cmake-js,cuda,embedding,function-calling,gguf,gpu,grammar,json-schema,llama,llama-cpp,llm,metal,nodejs,prebuilt-binaries,self-hosted,vulkan
GitHub 星标★ 2186
30天Star增速
HF 下载量
上线时间2023-08-12 00:00:00
最近更新2026-09-22 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Node.js 环境(需能使用 npm / npx)
  • 支持 macOS、Linux 或 Windows 系统
  • 模型需为 GGUF 格式文件
  • 若平台无预编译二进制,需要 cmake 以便从源码构建(不需要 node-gyp 或 Python)

安装与启动步骤

  1. 1免安装试用

    不写任何代码,直接在终端用 npx 启动内置 CLI 与模型对话,适合先验证环境是否可用。首次执行会联网拉取包。

    npx -y node-llama-cpp chat
  2. 2安装依赖包

    在项目目录中把 node-llama-cpp 安装为依赖。包内自带 macOS、Linux、Windows 的预编译二进制。

    npm install node-llama-cpp
  3. 3准备 GGUF 模型

    在项目下建 models 目录并放入 GGUF 模型文件。README 示例使用的是 Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf,路径需与代码一致。

  4. 4编写调用脚本

    创建入口文件,用 getLlama 加载模型、创建上下文与 LlamaChatSession,再调用 session.prompt 提问。

    import {fileURLToPath} from "url";
    import path from "path";
    import {getLlama, LlamaChatSession} from "node-llama-cpp";
    
    const __dirname = path.dirname(fileURLToPath(import.meta.url));
    
    const llama = await getLlama();
    const model = await llama.loadModel({
        modelPath: path.join(__dirname, "models", "Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf")
    });
    const context = await model.createContext();
    const session = new LlamaChatSession({
        contextSequence: context.getSequence()
    });
    
    const q1 = "Hi there, how are you?";
    console.log("User: " + q1);
    
    const a1 = await session.prompt(q1);
    console.log("AI: " + a1);
    
    const q2 = "Summarize what you said";
    console.log("User: " + q2);
    
    const a2 = await session.prompt(q2);
    console.log("AI: " + a2);
  5. 5运行脚本验证

    用 Node.js 执行你的入口文件,终端会先打印用户提问、再打印模型回答;首次加载模型会稍慢。

    node index.js

关键配置

配置项必填说明示例
NODE_LLAMA_CPP_SKIP_DOWNLOAD设为 true 时禁止自动下载 llama.cpp release 并从源码构建true
modelPathloadModel 时的 GGUF 模型文件完整路径./models/Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf

如何确认成功

执行 npx -y node-llama-cpp chat 能进入终端对话,或脚本成功打印出 AI 的回复内容。

常见问题

Q:我的平台没有预编译二进制怎么办?

A:会自动回退:下载 llama.cpp 的 release 并用 cmake 从源码构建,此过程不需要 node-gyp 或 Python。若想禁用该行为,把环境变量 NODE_LLAMA_CPP_SKIP_DOWNLOAD 设为 true。

Q:需要手动配置 GPU 吗?

A:不需要。库会自动适配你的硬件,支持 Metal、CUDA 和 Vulkan 加速。

Q:必须安装 Python 或 node-gyp 吗?

A:不必须。README 明确说明回退到源码构建时也不需要 node-gyp 或 Python。

Q:模型文件从哪里获取?

A:README 示例使用 models 目录下的 Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf,但未给出下载地址,需自行准备 GGUF 格式模型并保持路径一致。

注意事项

  • 模型必须是 GGUF 格式,示例路径为 models/Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf。
  • 示例代码使用 ESM 的 import 语法,node-llama-cpp 为 TypeScript 编写的库,提供类型安全 API。
  • CLI 还支持更新 llama.cpp:用单条 CLI 命令下载并编译最新 release(详见官方构建文档)。

核心亮点

  • 生成时强制 JSON Schema,保证输出结构合法,省去解析重试
  • 基于 llama.cpp,推理性能接近原生 C++,且支持 GPU 加速
  • 安装简单,自动下载预编译二进制,无需手动编译 C++ 依赖

不足之处

  • 仅支持 Node.js 环境,无法在浏览器或 Deno 中使用
  • 模型加载后占用内存较高,且大模型首次加载耗时较长
  • 文档/社区待观察

适用场景

  • 在 Node.js 后端服务中集成本地 AI 助手,避免外部 API 依赖
  • 需要结构化输出的场景,如从文本抽取信息并生成 JSON 数据
  • 离线或内网环境下的文本生成应用,如本地知识库问答

替代项目

llama-node、llamaindex-js、transformers.js

项目介绍

node-llama-cpp 是基础设施领域的开源项目,由 withcatai 开发,2023 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(2,186)位列前 30%,在基础设施分类中处于中上游。

近 42 天,它的 GitHub 星标从 2,153 增加到 2,186,净增 33。

项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-22。完全开源免费,MIT许可证,本地部署使用,无付费版本。

它主要面向的使用场景是:在Node.js后端服务中集成本地AI助手,避免外部API依赖。同类可对比的替代方案包括 llama-node、llamaindex-js、transformers.js。

上一篇:pgvecto.rs

下一篇:beelzebub

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09