node-llama-cpp 项目介绍
项目概述
node-llama-cpp
是一个让用户能够在本地计算机上运行 AI 模型的项目。这一工具的主要目标是让用户在不需要广泛配置和依赖的情况下,能够在多种硬件平台上使用大语言模型(LLMs)。不论是初学者还是专业的开发人员,都能方便地利用这个工具进行 AI 项目的开发。
主要特性
-
本地运行 LLMs:用户无需依赖云服务即可在自己的机器上运行大规模语言模型。
-
多种硬件支持:支持 Metal、CUDA 和 Vulkan 等多种 GPU 技术,自动适配硬件,无需手动配置。
-
预构建二进制文件:提供了预构建的二进制文件,用户可选择直接使用,或在缺少支持时从源代码构建,它不需要
node-gyp
或 Python。 -
强大的开发套件:提供了使用 LLMs 所需的全套工具和文档支持。
-
指令行界面 (CLI):用户无需编写代码,只需通过简单的命令行操作即可与模型进行聊天。
-
即时更新:始终与最新的
llama.cpp
保持同步,一行指令即可下载和编译最新版本。 -
格式化输出:强制模型以特定的格式输出结果,例如 JSON,甚至可以遵从特定的 JSON schema。
-
函数调用能力:模型具备按需求调用函数以检索信息或执行操作的能力。
-
内嵌支持:提供模型内嵌的功能,增强使用体验。
-
TypeScript 支持:为开发者提供了完整的 TypeScript 支持和完整的文档。
文档与支持
node-llama-cpp
提供了详尽的文档支持,包括入门指南、API 参考、指令行帮助、博客、变更日志和项目路线图。
试用与安装
用户可以不进行安装,即可使用如下命令直接在终端中与模型进行交流:
npx -y node-llama-cpp chat
若要永久安装,可以使用以下命令:
npm install node-llama-cpp
这个包提供了 macOS、Linux 和 Windows 的预构建二进制文件。如果某个平台没有预构建文件,它将回退到使用 cmake
从源码构建。
使用示例
node-llama-cpp
提供了简单的 TypeScript 示例代码,帮助用户快速上手。以下是一个简化的终端会话示例:
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);
想要查看更多示例和使用指南,请参阅入门指南。
贡献与致谢
node-llama-cpp
欢迎开发者贡献代码,可以通过查阅贡献指南来了解更多信息。
特别感谢 llama.cpp
项目,其代码库链接为 ggerganov/llama.cpp。
如果你喜欢这个项目,请记得在 GitHub 上给它点星。