node-llama-cpp

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开源模型 🍴 复刻 229 🐛 待处理 48 👀 关注 22
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 2200
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 完全开源免费,MIT许可证,本地部署使用,无付费版本。

项目预览

node-llama-cpp 项目界面预览图
图片来源:项目官网

项目数据

分类开源模型
开发团队withcatai
定价模式🏷️完全免费
价格说明完全开源免费,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 星标★ 2200
上线时间2023-08-12 00:00:00
代码更新2026-11-05
仓库体积24.4 MB
本站数据更新2026-11-07
维护状态活跃
收录时间2026-08-09
浏览次数4

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2200

使用教程

难度:入门 约 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
modelPath是loadModel 时的 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

上一篇:pgvecto.rs

下一篇:beelzebub

同类项目推荐

Uncensored-Local-Studio 开源

零配置本地运行无审查 AI,图像、对话、语音一站式搞定

Portable local AI studio for Windows, Linux, and macOS. Zero-setup GUI for Image Gen···

★ 1947 2026-08-09
MegaParse 开源

解析文档零丢失,直接喂给大模型

File Parser optimised for LLM Ingestion with no loss Parse PDFs, Docx, PPTx in a fo···

★ 7417 2026-08-09
awesome-agent-apis 开源

一站式查找660+AI代理API,按能力快速筛选集成

660+ muapi-hosted generative-media models plus community-submitted third-party API t···

★ 1067 2026-09-03
gateway 开源

给大模型装个防火墙,安全可控地接入 AI 应用

The Open Source Firewall for LLMs. A self-hosted gateway to secure and control AI ap···

★ 180 2026-08-09
VectorRAG.Net 开源

在 .NET 中快速实现语义搜索和 RAG,无需外部向量数据库。

VectorRAG.Net is a .NET-native high-performance vector database library for semantic···

★ 163 2026-08-09
tokenmaxxing 开源

同步你的 token 用量,让团队消耗一目了然

A local CLI, built on ccusage, that syncs your token usage with everyone else.

★ 88 2026-08-09
agent-vibes 开源

让 Claude Code 和 Cursor 免费接入更多 AI 后端

Unified Agent Gateway — Enables Claude Code CLI and Cursor IDE to use free AI backe···

★ 359 2026-08-09
Orion 开源

在苹果 ANE 上直接跑小 LLM,离线微调不联网

Local AI runtime for training & running small LLMs directly on Apple Neural Engine (···

★ 133 2026-09-16