node-llama-cpp 2.1.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cli/commands/BuildCommand.js +7 -2
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +1 -0
- package/dist/cli/commands/ChatCommand.js +10 -3
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/DownloadCommand.js +1 -1
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaChatSession.d.ts +7 -6
- package/dist/llamaEvaluator/LlamaChatSession.js +19 -8
- package/dist/llamaEvaluator/LlamaChatSession.js.map +1 -1
- package/dist/llamaEvaluator/LlamaContext.d.ts +7 -6
- package/dist/llamaEvaluator/LlamaContext.js +3 -1
- package/dist/llamaEvaluator/LlamaContext.js.map +1 -1
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +7 -4
- package/dist/llamaEvaluator/LlamaGrammar.js +1 -1
- package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -1
- package/dist/llamaEvaluator/LlamaModel.d.ts +58 -54
- package/dist/llamaEvaluator/LlamaModel.js +3 -1
- package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
- package/dist/utils/compileLLamaCpp.d.ts +2 -2
- package/dist/utils/compileLLamaCpp.js +7 -7
- package/dist/utils/compileLLamaCpp.js.map +1 -1
- package/dist/utils/getBin.d.ts +1 -0
- package/dist/utils/getBin.js +3 -3
- package/dist/utils/getBin.js.map +1 -1
- package/dist/utils/getGrammarsFolder.js +6 -6
- package/dist/utils/getGrammarsFolder.js.map +1 -1
- package/llama/addon.cpp +7 -1
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/grammars/c.gbnf +42 -0
- package/llamaBins/linux-arm64-16.node +0 -0
- package/llamaBins/linux-arm64-17.node +0 -0
- package/llamaBins/linux-arm64-18.node +0 -0
- package/llamaBins/linux-arm64-19.node +0 -0
- package/llamaBins/linux-arm64-20.node +0 -0
- package/llamaBins/linux-armv7l-16.node +0 -0
- package/llamaBins/linux-armv7l-17.node +0 -0
- package/llamaBins/linux-armv7l-18.node +0 -0
- package/llamaBins/linux-armv7l-19.node +0 -0
- package/llamaBins/linux-armv7l-20.node +0 -0
- package/llamaBins/linux-ppc64le-16.node +0 -0
- package/llamaBins/linux-ppc64le-17.node +0 -0
- package/llamaBins/linux-ppc64le-18.node +0 -0
- package/llamaBins/linux-ppc64le-19.node +0 -0
- package/llamaBins/linux-ppc64le-20.node +0 -0
- package/llamaBins/linux-x64-16.node +0 -0
- package/llamaBins/linux-x64-17.node +0 -0
- package/llamaBins/linux-x64-18.node +0 -0
- package/llamaBins/linux-x64-19.node +0 -0
- package/llamaBins/linux-x64-20.node +0 -0
- package/llamaBins/mac-arm64-16.node +0 -0
- package/llamaBins/mac-arm64-17.node +0 -0
- package/llamaBins/mac-arm64-18.node +0 -0
- package/llamaBins/mac-arm64-19.node +0 -0
- package/llamaBins/mac-arm64-20.node +0 -0
- package/llamaBins/mac-x64-16.node +0 -0
- package/llamaBins/mac-x64-17.node +0 -0
- package/llamaBins/mac-x64-18.node +0 -0
- package/llamaBins/mac-x64-19.node +0 -0
- package/llamaBins/mac-x64-20.node +0 -0
- package/llamaBins/win-x64-16.node +0 -0
- package/llamaBins/win-x64-17.node +0 -0
- package/llamaBins/win-x64-18.node +0 -0
- package/llamaBins/win-x64-19.node +0 -0
- package/llamaBins/win-x64-20.node +0 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -287,6 +287,7 @@ Optional:
|
|
|
287
287
|
-c, --contextSize Context size to use for the model [number] [default: 4096]
|
|
288
288
|
-g, --grammar Restrict the model response to a specific grammar, like JSON for example
|
|
289
289
|
[string] [choices: "text", "json", "list", "arithmetic", "japanese", "chess"] [default: "text"]
|
|
290
|
+
--threads Number of threads to use for the evaluation of tokens [number] [default: 6]
|
|
290
291
|
-t, --temperature Temperature is a hyperparameter that controls the randomness of the generat
|
|
291
292
|
ed text. It affects the probability distribution of the model's output toke
|
|
292
293
|
ns. A higher temperature (e.g., 1.5) makes the output more random and creat
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import process from "process";
|
|
2
2
|
import chalk from "chalk";
|
|
3
|
+
import fs from "fs-extra";
|
|
3
4
|
import { compileLlamaCpp } from "../../utils/compileLLamaCpp.js";
|
|
4
5
|
import withOra from "../../utils/withOra.js";
|
|
5
6
|
import { clearTempFolder } from "../../utils/clearTempFolder.js";
|
|
6
|
-
import { defaultLlamaCppCudaSupport, defaultLlamaCppMetalSupport } from "../../config.js";
|
|
7
|
+
import { defaultLlamaCppCudaSupport, defaultLlamaCppMetalSupport, llamaCppDirectory } from "../../config.js";
|
|
7
8
|
export const BuildCommand = {
|
|
8
9
|
command: "build",
|
|
9
10
|
describe: "Compile the currently downloaded llama.cpp",
|
|
@@ -33,6 +34,10 @@ export const BuildCommand = {
|
|
|
33
34
|
handler: BuildLlamaCppCommand
|
|
34
35
|
};
|
|
35
36
|
export async function BuildLlamaCppCommand({ arch, nodeTarget, metal, cuda }) {
|
|
37
|
+
if (!(await fs.pathExists(llamaCppDirectory))) {
|
|
38
|
+
console.log(chalk.red('llama.cpp is not downloaded. Please run "node-llama-cpp download" first'));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
36
41
|
if (metal && process.platform === "darwin") {
|
|
37
42
|
console.log(`${chalk.yellow("Metal:")} enabled`);
|
|
38
43
|
}
|
|
@@ -47,7 +52,7 @@ export async function BuildLlamaCppCommand({ arch, nodeTarget, metal, cuda }) {
|
|
|
47
52
|
await compileLlamaCpp({
|
|
48
53
|
arch: arch ? arch : undefined,
|
|
49
54
|
nodeTarget: nodeTarget ? nodeTarget : undefined,
|
|
50
|
-
|
|
55
|
+
setUsedBinFlag: true,
|
|
51
56
|
metal,
|
|
52
57
|
cuda
|
|
53
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAS3G,MAAM,CAAC,MAAM,YAAY,GAAwC;IAC7D,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,4CAA4C;IACtD,OAAO,CAAC,KAAK;QACT,OAAO,KAAK;aACP,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2CAA2C;SAC3D,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gEAAgE;SAChF,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,2BAA2B;YACpC,WAAW,EAAE,yGAAyG;SACzH,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B;YACnC,WAAW,EAAE,uGAAuG;SACvH,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,oBAAoB;CAChC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAe;IACpF,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,IAAI,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACpD;IAED,IAAI,IAAI,EAAE;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACnD;IAED,MAAM,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAC1C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC;KAClD,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,eAAe,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC/C,cAAc,EAAE,IAAI;YACpB,KAAK;YACL,IAAI;SACP,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC;KACvD,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,eAAe,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -57,6 +57,12 @@ export const ChatCommand = {
|
|
|
57
57
|
choices: ["text", "json", "list", "arithmetic", "japanese", "chess"],
|
|
58
58
|
description: "Restrict the model response to a specific grammar, like JSON for example",
|
|
59
59
|
group: "Optional:"
|
|
60
|
+
})
|
|
61
|
+
.option("threads", {
|
|
62
|
+
type: "number",
|
|
63
|
+
default: 6,
|
|
64
|
+
description: "Number of threads to use for the evaluation of tokens",
|
|
65
|
+
group: "Optional:"
|
|
60
66
|
})
|
|
61
67
|
.option("temperature", {
|
|
62
68
|
alias: "t",
|
|
@@ -87,9 +93,9 @@ export const ChatCommand = {
|
|
|
87
93
|
group: "Optional:"
|
|
88
94
|
});
|
|
89
95
|
},
|
|
90
|
-
async handler({ model, systemInfo, systemPrompt, wrapper, contextSize, grammar, temperature, topK, topP, maxTokens }) {
|
|
96
|
+
async handler({ model, systemInfo, systemPrompt, wrapper, contextSize, grammar, threads, temperature, topK, topP, maxTokens }) {
|
|
91
97
|
try {
|
|
92
|
-
await RunChat({ model, systemInfo, systemPrompt, wrapper, contextSize, grammar, temperature, topK, topP, maxTokens });
|
|
98
|
+
await RunChat({ model, systemInfo, systemPrompt, wrapper, contextSize, grammar, threads, temperature, topK, topP, maxTokens });
|
|
93
99
|
}
|
|
94
100
|
catch (err) {
|
|
95
101
|
console.error(err);
|
|
@@ -97,7 +103,7 @@ export const ChatCommand = {
|
|
|
97
103
|
}
|
|
98
104
|
}
|
|
99
105
|
};
|
|
100
|
-
async function RunChat({ model: modelArg, systemInfo, systemPrompt, wrapper, contextSize, grammar: grammarArg, temperature, topK, topP, maxTokens }) {
|
|
106
|
+
async function RunChat({ model: modelArg, systemInfo, systemPrompt, wrapper, contextSize, grammar: grammarArg, threads, temperature, topK, topP, maxTokens }) {
|
|
101
107
|
const { LlamaChatSession } = await import("../../llamaEvaluator/LlamaChatSession.js");
|
|
102
108
|
const { LlamaModel } = await import("../../llamaEvaluator/LlamaModel.js");
|
|
103
109
|
const { LlamaContext } = await import("../../llamaEvaluator/LlamaContext.js");
|
|
@@ -105,6 +111,7 @@ async function RunChat({ model: modelArg, systemInfo, systemPrompt, wrapper, con
|
|
|
105
111
|
const model = new LlamaModel({
|
|
106
112
|
modelPath: modelArg,
|
|
107
113
|
contextSize,
|
|
114
|
+
threads,
|
|
108
115
|
temperature,
|
|
109
116
|
topK,
|
|
110
117
|
topP
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ChatCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAC,mBAAmB,EAAC,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ChatCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -134,7 +134,7 @@ export async function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget,
|
|
|
134
134
|
await compileLlamaCpp({
|
|
135
135
|
arch: arch ? arch : undefined,
|
|
136
136
|
nodeTarget: nodeTarget ? nodeTarget : undefined,
|
|
137
|
-
|
|
137
|
+
setUsedBinFlag: true,
|
|
138
138
|
metal,
|
|
139
139
|
cuda
|
|
140
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DownloadCommand.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DownloadCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DownloadCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { LlamaModel, type LlamaModelOptions } from "./llamaEvaluator/LlamaModel.js";
|
|
2
|
+
import { LlamaGrammar, type LlamaGrammarOptions } from "./llamaEvaluator/LlamaGrammar.js";
|
|
3
|
+
import { LlamaContext, type LlamaContextOptions } from "./llamaEvaluator/LlamaContext.js";
|
|
4
|
+
import { LlamaChatSession, type LlamaChatSessionOptions } from "./llamaEvaluator/LlamaChatSession.js";
|
|
4
5
|
import { AbortError } from "./AbortError.js";
|
|
5
6
|
import { ChatPromptWrapper } from "./ChatPromptWrapper.js";
|
|
6
7
|
import { EmptyChatPromptWrapper } from "./chatWrappers/EmptyChatPromptWrapper.js";
|
|
7
8
|
import { LlamaChatPromptWrapper } from "./chatWrappers/LlamaChatPromptWrapper.js";
|
|
8
9
|
import { GeneralChatPromptWrapper } from "./chatWrappers/GeneralChatPromptWrapper.js";
|
|
9
|
-
import { LlamaContext } from "./llamaEvaluator/LlamaContext.js";
|
|
10
10
|
import { ChatMLPromptWrapper } from "./chatWrappers/ChatMLPromptWrapper.js";
|
|
11
11
|
import { getChatWrapperByBos } from "./chatWrappers/createChatWrapperByBos.js";
|
|
12
12
|
import { type Token } from "./types.js";
|
|
13
|
-
export { LlamaModel, LlamaGrammar, LlamaContext, LlamaChatSession, AbortError, ChatPromptWrapper, EmptyChatPromptWrapper, LlamaChatPromptWrapper, GeneralChatPromptWrapper, ChatMLPromptWrapper, getChatWrapperByBos, type Token };
|
|
13
|
+
export { LlamaModel, type LlamaModelOptions, LlamaGrammar, type LlamaGrammarOptions, LlamaContext, type LlamaContextOptions, LlamaChatSession, type LlamaChatSessionOptions, AbortError, ChatPromptWrapper, EmptyChatPromptWrapper, LlamaChatPromptWrapper, GeneralChatPromptWrapper, ChatMLPromptWrapper, getChatWrapperByBos, type Token };
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { LlamaModel } from "./llamaEvaluator/LlamaModel.js";
|
|
1
2
|
import { LlamaGrammar } from "./llamaEvaluator/LlamaGrammar.js";
|
|
3
|
+
import { LlamaContext } from "./llamaEvaluator/LlamaContext.js";
|
|
2
4
|
import { LlamaChatSession } from "./llamaEvaluator/LlamaChatSession.js";
|
|
3
|
-
import { LlamaModel } from "./llamaEvaluator/LlamaModel.js";
|
|
4
5
|
import { AbortError } from "./AbortError.js";
|
|
5
6
|
import { ChatPromptWrapper } from "./ChatPromptWrapper.js";
|
|
6
7
|
import { EmptyChatPromptWrapper } from "./chatWrappers/EmptyChatPromptWrapper.js";
|
|
7
8
|
import { LlamaChatPromptWrapper } from "./chatWrappers/LlamaChatPromptWrapper.js";
|
|
8
9
|
import { GeneralChatPromptWrapper } from "./chatWrappers/GeneralChatPromptWrapper.js";
|
|
9
|
-
import { LlamaContext } from "./llamaEvaluator/LlamaContext.js";
|
|
10
10
|
import { ChatMLPromptWrapper } from "./chatWrappers/ChatMLPromptWrapper.js";
|
|
11
11
|
import { getChatWrapperByBos } from "./chatWrappers/createChatWrapperByBos.js";
|
|
12
12
|
export { LlamaModel, LlamaGrammar, LlamaContext, LlamaChatSession, AbortError, ChatPromptWrapper, EmptyChatPromptWrapper, LlamaChatPromptWrapper, GeneralChatPromptWrapper, ChatMLPromptWrapper, getChatWrapperByBos };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAyB,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAC,YAAY,EAA2B,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAC,YAAY,EAA2B,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAA+B,MAAM,sCAAsC,CAAC;AACpG,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,mBAAmB,EAAC,MAAM,0CAA0C,CAAC;AAK7E,OAAO,EACH,UAAU,EAEV,YAAY,EAEZ,YAAY,EAEZ,gBAAgB,EAEhB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EAEtB,CAAC"}
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
3
3
|
import { Token } from "../types.js";
|
|
4
4
|
import { LlamaContext } from "./LlamaContext.js";
|
|
5
|
+
export type LlamaChatSessionOptions = {
|
|
6
|
+
context: LlamaContext;
|
|
7
|
+
printLLamaSystemInfo?: boolean;
|
|
8
|
+
promptWrapper?: ChatPromptWrapper | "auto";
|
|
9
|
+
systemPrompt?: string;
|
|
10
|
+
};
|
|
5
11
|
export declare class LlamaChatSession {
|
|
6
12
|
private readonly _systemPrompt;
|
|
7
13
|
private readonly _printLLamaSystemInfo;
|
|
@@ -11,12 +17,7 @@ export declare class LlamaChatSession {
|
|
|
11
17
|
private _lastStopString;
|
|
12
18
|
private _lastStopStringSuffix;
|
|
13
19
|
private readonly _ctx;
|
|
14
|
-
constructor({ context, printLLamaSystemInfo, promptWrapper, systemPrompt }:
|
|
15
|
-
context: LlamaContext;
|
|
16
|
-
printLLamaSystemInfo?: boolean;
|
|
17
|
-
promptWrapper?: ChatPromptWrapper | "auto";
|
|
18
|
-
systemPrompt?: string;
|
|
19
|
-
});
|
|
20
|
+
constructor({ context, printLLamaSystemInfo, promptWrapper, systemPrompt }: LlamaChatSessionOptions);
|
|
20
21
|
get initialized(): boolean;
|
|
21
22
|
get context(): LlamaContext;
|
|
22
23
|
init(): Promise<void>;
|
|
@@ -75,13 +75,25 @@ export class LlamaChatSession {
|
|
|
75
75
|
if (signal?.aborted)
|
|
76
76
|
throw new AbortError();
|
|
77
77
|
const tokenStr = this._ctx.decode(Uint32Array.from([chunk]));
|
|
78
|
-
const { shouldReturn, skipTokenEvent, stopString, stopStringSuffix } = this._checkStopString(tokenStr, stopStringIndexes);
|
|
79
|
-
if (shouldReturn)
|
|
78
|
+
const { shouldReturn, skipTokenEvent, stopString, stopStringSuffix } = this._checkStopString(tokenStr, stopStrings, stopStringIndexes);
|
|
79
|
+
if (shouldReturn) {
|
|
80
|
+
skippedChunksQueue.push(chunk);
|
|
81
|
+
const skippedChunksText = skippedChunksQueue.length > 0
|
|
82
|
+
? this._ctx.decode(Uint32Array.from(skippedChunksQueue))
|
|
83
|
+
: "";
|
|
84
|
+
const [queuedTextBeforeStopString] = skippedChunksText.split(stopString);
|
|
85
|
+
if (queuedTextBeforeStopString.length > 0) {
|
|
86
|
+
const beforeStopStringTokens = Array.from(this._ctx.encode(queuedTextBeforeStopString));
|
|
87
|
+
res.push(...beforeStopStringTokens);
|
|
88
|
+
onToken?.(beforeStopStringTokens);
|
|
89
|
+
skippedChunksQueue.length = 0;
|
|
90
|
+
}
|
|
80
91
|
return {
|
|
81
92
|
text: this._ctx.decode(Uint32Array.from(res)),
|
|
82
93
|
stopString,
|
|
83
94
|
stopStringSuffix
|
|
84
95
|
};
|
|
96
|
+
}
|
|
85
97
|
// if the token is unknown, it means it's not complete character
|
|
86
98
|
if (tokenStr === UNKNOWN_UNICODE_CHAR || skipTokenEvent) {
|
|
87
99
|
skippedChunksQueue.push(chunk);
|
|
@@ -103,13 +115,13 @@ export class LlamaChatSession {
|
|
|
103
115
|
stopStringSuffix: null
|
|
104
116
|
};
|
|
105
117
|
}
|
|
106
|
-
_checkStopString(tokenStr, stopStringIndexes) {
|
|
107
|
-
const stopStrings = this._promptWrapper.getStopStrings();
|
|
118
|
+
_checkStopString(tokenStr, stopStrings, stopStringIndexes) {
|
|
108
119
|
let skipTokenEvent = false;
|
|
109
120
|
for (let stopStringIndex = 0; stopStringIndex < stopStrings.length; stopStringIndex++) {
|
|
110
121
|
const stopString = stopStrings[stopStringIndex];
|
|
111
122
|
let localShouldSkipTokenEvent = false;
|
|
112
|
-
|
|
123
|
+
let i = 0;
|
|
124
|
+
for (; i < tokenStr.length && stopStringIndexes[stopStringIndex] !== stopString.length; i++) {
|
|
113
125
|
if (tokenStr[i] === stopString[stopStringIndexes[stopStringIndex]]) {
|
|
114
126
|
stopStringIndexes[stopStringIndex]++;
|
|
115
127
|
localShouldSkipTokenEvent = true;
|
|
@@ -117,16 +129,15 @@ export class LlamaChatSession {
|
|
|
117
129
|
else {
|
|
118
130
|
stopStringIndexes[stopStringIndex] = 0;
|
|
119
131
|
localShouldSkipTokenEvent = false;
|
|
120
|
-
break;
|
|
121
132
|
}
|
|
122
133
|
}
|
|
123
134
|
if (stopStringIndexes[stopStringIndex] === stopString.length) {
|
|
124
135
|
return {
|
|
125
136
|
shouldReturn: true,
|
|
126
137
|
stopString,
|
|
127
|
-
stopStringSuffix: tokenStr.length ===
|
|
138
|
+
stopStringSuffix: tokenStr.length === i
|
|
128
139
|
? null
|
|
129
|
-
: tokenStr.slice(
|
|
140
|
+
: tokenStr.slice(i)
|
|
130
141
|
};
|
|
131
142
|
}
|
|
132
143
|
skipTokenEvent ||= localShouldSkipTokenEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,wBAAwB,EAAC,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAC,mBAAmB,EAAC,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Token } from "../types.js";
|
|
2
2
|
import { LlamaModel } from "./LlamaModel.js";
|
|
3
3
|
import { LlamaGrammar } from "./LlamaGrammar.js";
|
|
4
|
+
export type LlamaContextOptions = {
|
|
5
|
+
model: LlamaModel;
|
|
6
|
+
grammar?: LlamaGrammar;
|
|
7
|
+
prependBos?: boolean;
|
|
8
|
+
};
|
|
4
9
|
export declare class LlamaContext {
|
|
5
10
|
private readonly _ctx;
|
|
6
11
|
private _prependBos;
|
|
7
|
-
constructor({ model, grammar, prependBos }:
|
|
8
|
-
model: LlamaModel;
|
|
9
|
-
grammar?: LlamaGrammar;
|
|
10
|
-
prependBos?: boolean;
|
|
11
|
-
});
|
|
12
|
+
constructor({ model, grammar, prependBos }: LlamaContextOptions);
|
|
12
13
|
encode(text: string): Uint32Array;
|
|
13
|
-
decode(tokens: Uint32Array): string;
|
|
14
|
+
decode(tokens: Uint32Array | Token[]): string;
|
|
14
15
|
get prependBos(): boolean;
|
|
15
16
|
/**
|
|
16
17
|
* @returns {Token | null} The BOS (Beginning Of Sequence) token.
|
|
@@ -17,7 +17,9 @@ export class LlamaContext {
|
|
|
17
17
|
decode(tokens) {
|
|
18
18
|
if (tokens.length === 0)
|
|
19
19
|
return "";
|
|
20
|
-
|
|
20
|
+
if (tokens instanceof Uint32Array)
|
|
21
|
+
return this._ctx.decode(tokens);
|
|
22
|
+
return this._ctx.decode(Uint32Array.from(tokens));
|
|
21
23
|
}
|
|
22
24
|
get prependBos() {
|
|
23
25
|
return this._prependBos;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaContext.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"LlamaContext.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
export type LlamaGrammarOptions = {
|
|
2
|
+
/** GBNF grammar */
|
|
3
|
+
grammar: string;
|
|
4
|
+
/** print the grammar to stdout */
|
|
5
|
+
printGrammar?: boolean;
|
|
6
|
+
};
|
|
1
7
|
export declare class LlamaGrammar {
|
|
2
8
|
/**
|
|
3
9
|
* GBNF files are supported.
|
|
@@ -6,9 +12,6 @@ export declare class LlamaGrammar {
|
|
|
6
12
|
* @param {string} options.grammar - GBNF grammar
|
|
7
13
|
* @param {boolean} [options.printGrammar] - print the grammar to stdout
|
|
8
14
|
*/
|
|
9
|
-
constructor({ grammar, printGrammar }:
|
|
10
|
-
grammar: string;
|
|
11
|
-
printGrammar?: boolean;
|
|
12
|
-
});
|
|
15
|
+
constructor({ grammar, printGrammar }: LlamaGrammarOptions);
|
|
13
16
|
static getFor(type: "json" | "list" | "arithmetic" | "japanese" | "chess"): Promise<LlamaGrammar>;
|
|
14
17
|
}
|
|
@@ -20,7 +20,7 @@ export class LlamaGrammar {
|
|
|
20
20
|
static async getFor(type) {
|
|
21
21
|
const grammarsFolder = await getGrammarsFolder();
|
|
22
22
|
const grammarFile = path.join(grammarsFolder, type + ".gbnf");
|
|
23
|
-
if (await fs.
|
|
23
|
+
if (await fs.pathExists(grammarFile)) {
|
|
24
24
|
const grammar = await fs.readFile(grammarFile, "utf8");
|
|
25
25
|
return new LlamaGrammar({ grammar });
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaGrammar.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"LlamaGrammar.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAW5C,MAAM,OAAO,YAAY;IACrB,gBAAgB;IACA,QAAQ,CAAe;IAEvC;;;;;;OAMG;IACH,YAAmB,EAAC,OAAO,EAAE,YAAY,GAAG,KAAK,EAAsB;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE;YACtC,YAAY;SACf,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAA2D;QAClF,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;QAE9D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAClC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,IAAI,YAAY,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC;SACtC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,uBAAuB,cAAc,GAAG,CAAC,CAAC;IAC5F,CAAC;CACJ"}
|
|
@@ -1,3 +1,59 @@
|
|
|
1
|
+
export type LlamaModelOptions = {
|
|
2
|
+
/** path to the model on the filesystem */
|
|
3
|
+
modelPath: string;
|
|
4
|
+
/** If null, a random seed will be used */
|
|
5
|
+
seed?: number | null;
|
|
6
|
+
/** text context size */
|
|
7
|
+
contextSize?: number;
|
|
8
|
+
/** prompt processing batch size */
|
|
9
|
+
batchSize?: number;
|
|
10
|
+
/** number of layers to store in VRAM */
|
|
11
|
+
gpuLayers?: number;
|
|
12
|
+
/** if true, reduce VRAM usage at the cost of performance */
|
|
13
|
+
lowVram?: boolean;
|
|
14
|
+
/** number of threads to use to evaluate tokens */
|
|
15
|
+
threads?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Temperature is a hyperparameter that controls the randomness of the generated text.
|
|
18
|
+
* It affects the probability distribution of the model's output tokens.
|
|
19
|
+
* A higher temperature (e.g., 1.5) makes the output more random and creative,
|
|
20
|
+
* while a lower temperature (e.g., 0.5) makes the output more focused, deterministic, and conservative.
|
|
21
|
+
* The suggested temperature is 0.8, which provides a balance between randomness and determinism.
|
|
22
|
+
* At the extreme, a temperature of 0 will always pick the most likely next token, leading to identical outputs in each run.
|
|
23
|
+
*
|
|
24
|
+
* Set to `0` to disable.
|
|
25
|
+
*/
|
|
26
|
+
temperature?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Limits the model to consider only the K most likely next tokens for sampling at each step of sequence generation.
|
|
29
|
+
* An integer number between `1` and the size of the vocabulary.
|
|
30
|
+
* Set to `0` to disable (which uses the full vocabulary).
|
|
31
|
+
*
|
|
32
|
+
* Only relevant when `temperature` is set to a value greater than 0.
|
|
33
|
+
* */
|
|
34
|
+
topK?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P,
|
|
37
|
+
* and samples the next token only from this set.
|
|
38
|
+
* A float number between `0` and `1`.
|
|
39
|
+
* Set to `1` to disable.
|
|
40
|
+
*
|
|
41
|
+
* Only relevant when `temperature` is set to a value greater than `0`.
|
|
42
|
+
* */
|
|
43
|
+
topP?: number;
|
|
44
|
+
/** use fp16 for KV cache */
|
|
45
|
+
f16Kv?: boolean;
|
|
46
|
+
/** the llama_eval() call computes all logits, not just the last one */
|
|
47
|
+
logitsAll?: boolean;
|
|
48
|
+
/** only load the vocabulary, no weights */
|
|
49
|
+
vocabOnly?: boolean;
|
|
50
|
+
/** use mmap if possible */
|
|
51
|
+
useMmap?: boolean;
|
|
52
|
+
/** force system to keep model in RAM */
|
|
53
|
+
useMlock?: boolean;
|
|
54
|
+
/** embedding mode only */
|
|
55
|
+
embedding?: boolean;
|
|
56
|
+
};
|
|
1
57
|
export declare class LlamaModel {
|
|
2
58
|
/**
|
|
3
59
|
* options source:
|
|
@@ -9,6 +65,7 @@ export declare class LlamaModel {
|
|
|
9
65
|
* @param {number} [options.batchSize] - prompt processing batch size
|
|
10
66
|
* @param {number} [options.gpuLayers] - number of layers to store in VRAM
|
|
11
67
|
* @param {boolean} [options.lowVram] - if true, reduce VRAM usage at the cost of performance
|
|
68
|
+
* @param {number} [options.threads] - number of threads to use to evaluate tokens
|
|
12
69
|
* @param {number} [options.temperature] - Temperature is a hyperparameter that controls the randomness of the generated text.
|
|
13
70
|
* It affects the probability distribution of the model's output tokens.
|
|
14
71
|
* A higher temperature (e.g., 1.5) makes the output more random and creative,
|
|
@@ -36,59 +93,6 @@ export declare class LlamaModel {
|
|
|
36
93
|
* @param {boolean} [options.useMlock] - force system to keep model in RAM
|
|
37
94
|
* @param {boolean} [options.embedding] - embedding mode only
|
|
38
95
|
*/
|
|
39
|
-
constructor({ modelPath, seed, contextSize, batchSize, gpuLayers, lowVram, temperature, topK, topP, f16Kv, logitsAll, vocabOnly, useMmap, useMlock, embedding }:
|
|
40
|
-
/** path to the model on the filesystem */
|
|
41
|
-
modelPath: string;
|
|
42
|
-
/** If null, a random seed will be used */
|
|
43
|
-
seed?: number | null;
|
|
44
|
-
/** text context size */
|
|
45
|
-
contextSize?: number;
|
|
46
|
-
/** prompt processing batch size */
|
|
47
|
-
batchSize?: number;
|
|
48
|
-
/** number of layers to store in VRAM */
|
|
49
|
-
gpuLayers?: number;
|
|
50
|
-
/** if true, reduce VRAM usage at the cost of performance */
|
|
51
|
-
lowVram?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Temperature is a hyperparameter that controls the randomness of the generated text.
|
|
54
|
-
* It affects the probability distribution of the model's output tokens.
|
|
55
|
-
* A higher temperature (e.g., 1.5) makes the output more random and creative,
|
|
56
|
-
* while a lower temperature (e.g., 0.5) makes the output more focused, deterministic, and conservative.
|
|
57
|
-
* The suggested temperature is 0.8, which provides a balance between randomness and determinism.
|
|
58
|
-
* At the extreme, a temperature of 0 will always pick the most likely next token, leading to identical outputs in each run.
|
|
59
|
-
*
|
|
60
|
-
* Set to `0` to disable.
|
|
61
|
-
*/
|
|
62
|
-
temperature?: number;
|
|
63
|
-
/**
|
|
64
|
-
* Limits the model to consider only the K most likely next tokens for sampling at each step of sequence generation.
|
|
65
|
-
* An integer number between `1` and the size of the vocabulary.
|
|
66
|
-
* Set to `0` to disable (which uses the full vocabulary).
|
|
67
|
-
*
|
|
68
|
-
* Only relevant when `temperature` is set to a value greater than 0.
|
|
69
|
-
* */
|
|
70
|
-
topK?: number;
|
|
71
|
-
/**
|
|
72
|
-
* Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P,
|
|
73
|
-
* and samples the next token only from this set.
|
|
74
|
-
* A float number between `0` and `1`.
|
|
75
|
-
* Set to `1` to disable.
|
|
76
|
-
*
|
|
77
|
-
* Only relevant when `temperature` is set to a value greater than `0`.
|
|
78
|
-
* */
|
|
79
|
-
topP?: number;
|
|
80
|
-
/** use fp16 for KV cache */
|
|
81
|
-
f16Kv?: boolean;
|
|
82
|
-
/** the llama_eval() call computes all logits, not just the last one */
|
|
83
|
-
logitsAll?: boolean;
|
|
84
|
-
/** only load the vocabulary, no weights */
|
|
85
|
-
vocabOnly?: boolean;
|
|
86
|
-
/** use mmap if possible */
|
|
87
|
-
useMmap?: boolean;
|
|
88
|
-
/** force system to keep model in RAM */
|
|
89
|
-
useMlock?: boolean;
|
|
90
|
-
/** embedding mode only */
|
|
91
|
-
embedding?: boolean;
|
|
92
|
-
});
|
|
96
|
+
constructor({ modelPath, seed, contextSize, batchSize, gpuLayers, lowVram, threads, temperature, topK, topP, f16Kv, logitsAll, vocabOnly, useMmap, useMlock, embedding }: LlamaModelOptions);
|
|
93
97
|
static get systemInfo(): string;
|
|
94
98
|
}
|
|
@@ -13,6 +13,7 @@ export class LlamaModel {
|
|
|
13
13
|
* @param {number} [options.batchSize] - prompt processing batch size
|
|
14
14
|
* @param {number} [options.gpuLayers] - number of layers to store in VRAM
|
|
15
15
|
* @param {boolean} [options.lowVram] - if true, reduce VRAM usage at the cost of performance
|
|
16
|
+
* @param {number} [options.threads] - number of threads to use to evaluate tokens
|
|
16
17
|
* @param {number} [options.temperature] - Temperature is a hyperparameter that controls the randomness of the generated text.
|
|
17
18
|
* It affects the probability distribution of the model's output tokens.
|
|
18
19
|
* A higher temperature (e.g., 1.5) makes the output more random and creative,
|
|
@@ -40,13 +41,14 @@ export class LlamaModel {
|
|
|
40
41
|
* @param {boolean} [options.useMlock] - force system to keep model in RAM
|
|
41
42
|
* @param {boolean} [options.embedding] - embedding mode only
|
|
42
43
|
*/
|
|
43
|
-
constructor({ modelPath, seed = null, contextSize = 1024 * 4, batchSize, gpuLayers, lowVram, temperature = 0, topK = 40, topP = 0.95, f16Kv, logitsAll, vocabOnly, useMmap, useMlock, embedding }) {
|
|
44
|
+
constructor({ modelPath, seed = null, contextSize = 1024 * 4, batchSize, gpuLayers, lowVram, threads = 6, temperature = 0, topK = 40, topP = 0.95, f16Kv, logitsAll, vocabOnly, useMmap, useMlock, embedding }) {
|
|
44
45
|
this._model = new LLAMAModel(modelPath, removeNullFields({
|
|
45
46
|
seed: seed != null ? Math.max(-1, seed) : undefined,
|
|
46
47
|
contextSize,
|
|
47
48
|
batchSize,
|
|
48
49
|
gpuLayers,
|
|
49
50
|
lowVram,
|
|
51
|
+
threads,
|
|
50
52
|
temperature,
|
|
51
53
|
topK,
|
|
52
54
|
topP,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaModel.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"LlamaModel.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AA2ExD,MAAM,OAAO,UAAU;IACnB,gBAAgB;IACA,MAAM,CAAa;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,YAAmB,EACf,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EACpE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EACxG;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC;YACrD,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACnD,WAAW;YACX,SAAS;YACT,SAAS;YACT,OAAO;YACP,OAAO;YACP,WAAW;YACX,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,SAAS;YACT,SAAS;YACT,OAAO;YACP,QAAQ;YACR,SAAS;SACZ,CAAC,CAAC,CAAC;IACR,CAAC;IAEM,MAAM,KAAK,UAAU;QACxB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare function compileLlamaCpp({ arch, nodeTarget,
|
|
1
|
+
export declare function compileLlamaCpp({ arch, nodeTarget, setUsedBinFlag: setUsedBinFlagArg, metal, cuda }: {
|
|
2
2
|
arch?: string;
|
|
3
3
|
nodeTarget?: string;
|
|
4
|
-
|
|
4
|
+
setUsedBinFlag?: boolean;
|
|
5
5
|
metal?: boolean;
|
|
6
6
|
cuda?: boolean;
|
|
7
7
|
}): Promise<void>;
|
|
@@ -7,9 +7,9 @@ import { clearLlamaBuild } from "./clearLlamaBuild.js";
|
|
|
7
7
|
import { setUsedBinFlag } from "./usedBinFlag.js";
|
|
8
8
|
import { spawnCommand } from "./spawnCommand.js";
|
|
9
9
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
-
export async function compileLlamaCpp({ arch = process.arch, nodeTarget = process.version,
|
|
10
|
+
export async function compileLlamaCpp({ arch = process.arch, nodeTarget = process.version, setUsedBinFlag: setUsedBinFlagArg = true, metal = false, cuda = false }) {
|
|
11
11
|
try {
|
|
12
|
-
if (!(await fs.
|
|
12
|
+
if (!(await fs.pathExists(llamaCppDirectory))) {
|
|
13
13
|
throw new Error(`"${llamaCppDirectory}" directory does not exist`);
|
|
14
14
|
}
|
|
15
15
|
const gypDefines = ["GGML_USE_K_QUANTS", "NAPI_CPP_EXCEPTIONS"];
|
|
@@ -45,28 +45,28 @@ export async function compileLlamaCpp({ arch = process.arch, nodeTarget = proces
|
|
|
45
45
|
await clearLlamaBuild();
|
|
46
46
|
await spawnCommand("npm", ["run", "-s", "node-gyp-llama", "--", "configure", "--arch=" + arch, "--target=" + nodeTarget], __dirname, nodeGypEnv);
|
|
47
47
|
await spawnCommand("npm", ["run", "-s", "node-gyp-llama", "--", "configure", "--arch=" + arch, "--target=" + nodeTarget, "--", "-f", "compile_commands_json"], __dirname, nodeGypEnv);
|
|
48
|
-
if (await fs.
|
|
48
|
+
if (await fs.pathExists(path.join(llamaDirectory, "Release", "compile_commands.json"))) {
|
|
49
49
|
await fs.move(path.join(llamaDirectory, "Release", "compile_commands.json"), path.join(llamaDirectory, "compile_commands.json"));
|
|
50
50
|
}
|
|
51
|
-
else if (await fs.
|
|
51
|
+
else if (await fs.pathExists(path.join(llamaDirectory, "Debug", "compile_commands.json"))) {
|
|
52
52
|
await fs.move(path.join(llamaDirectory, "Debug", "compile_commands.json"), path.join(llamaDirectory, "compile_commands.json"));
|
|
53
53
|
}
|
|
54
54
|
await fs.remove(path.join(llamaDirectory, "Release"));
|
|
55
55
|
await fs.remove(path.join(llamaDirectory, "Debug"));
|
|
56
56
|
await spawnCommand("npm", ["run", "-s", "node-gyp-llama-build", "--", "--arch=" + arch, "--target=" + nodeTarget], __dirname, nodeGypEnv);
|
|
57
|
-
if (
|
|
57
|
+
if (setUsedBinFlagArg) {
|
|
58
58
|
await setUsedBinFlag("localBuildFromSource");
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
catch (err) {
|
|
62
|
-
if (
|
|
62
|
+
if (setUsedBinFlagArg)
|
|
63
63
|
await setUsedBinFlag("prebuiltBinaries");
|
|
64
64
|
throw err;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
export async function getCompiledLlamaCppBinaryPath() {
|
|
68
68
|
const modulePath = path.join(__dirname, "..", "..", "llama", "build", "Release", "llama.node");
|
|
69
|
-
if (await fs.
|
|
69
|
+
if (await fs.pathExists(modulePath))
|
|
70
70
|
return modulePath;
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileLLamaCpp.js","sourceRoot":"","sources":["../../src/utils/compileLLamaCpp.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAClC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compileLLamaCpp.js","sourceRoot":"","sources":["../../src/utils/compileLLamaCpp.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/getBin.d.ts
CHANGED
package/dist/utils/getBin.js
CHANGED
|
@@ -17,7 +17,7 @@ export async function getPrebuildBinPath() {
|
|
|
17
17
|
async function resolvePath(platform, arch, nodeVersions) {
|
|
18
18
|
for (const nodeVersion of nodeVersions) {
|
|
19
19
|
const binPath = createPath(platform, arch, nodeVersion);
|
|
20
|
-
if (await fs.
|
|
20
|
+
if (await fs.pathExists(binPath))
|
|
21
21
|
return binPath;
|
|
22
22
|
}
|
|
23
23
|
return null;
|
|
@@ -38,8 +38,8 @@ export async function getPrebuildBinPath() {
|
|
|
38
38
|
return await getPath();
|
|
39
39
|
}
|
|
40
40
|
export async function loadBin() {
|
|
41
|
-
const
|
|
42
|
-
if (
|
|
41
|
+
const usedBinFlag = await getUsedBinFlag();
|
|
42
|
+
if (usedBinFlag === "prebuiltBinaries") {
|
|
43
43
|
const prebuildBinPath = await getPrebuildBinPath();
|
|
44
44
|
if (prebuildBinPath == null) {
|
|
45
45
|
console.warn("Prebuild binaries not found, falling back to to locally built binaries");
|
package/dist/utils/getBin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBin.js","sourceRoot":"","sources":["../../src/utils/getBin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EACH,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,mBAAmB,EAC/H,kBAAkB,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,6BAA6B,EAAC,MAAM,sBAAsB,CAAC;AAEnE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAEnE,SAAS,UAAU,CAAC,QAAgB,EAAE,IAAY,EAAE,WAAmB;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,QAAQ,IAAI,IAAI,IAAI,WAAW,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,IAAY,EAAE,YAAsB;QAC7E,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACpC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAExD,IAAI,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"getBin.js","sourceRoot":"","sources":["../../src/utils/getBin.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,15 @@ import fs from "fs-extra";
|
|
|
2
2
|
import { llamaBinsGrammarsDirectory, llamaCppGrammarsDirectory } from "../config.js";
|
|
3
3
|
import { getUsedBinFlag } from "./usedBinFlag.js";
|
|
4
4
|
export async function getGrammarsFolder() {
|
|
5
|
-
const
|
|
6
|
-
if (
|
|
7
|
-
if (await fs.
|
|
5
|
+
const usedBinFlag = await getUsedBinFlag();
|
|
6
|
+
if (usedBinFlag === "localBuildFromSource") {
|
|
7
|
+
if (await fs.pathExists(llamaCppGrammarsDirectory))
|
|
8
8
|
return llamaCppGrammarsDirectory;
|
|
9
9
|
}
|
|
10
|
-
else if (
|
|
11
|
-
if (await fs.
|
|
10
|
+
else if (usedBinFlag === "prebuiltBinaries") {
|
|
11
|
+
if (await fs.pathExists(llamaBinsGrammarsDirectory))
|
|
12
12
|
return llamaBinsGrammarsDirectory;
|
|
13
|
-
else if (await fs.
|
|
13
|
+
else if (await fs.pathExists(llamaCppGrammarsDirectory))
|
|
14
14
|
return llamaCppGrammarsDirectory;
|
|
15
15
|
}
|
|
16
16
|
throw new Error("Grammars folder not found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGrammarsFolder.js","sourceRoot":"","sources":["../../src/utils/getGrammarsFolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,0BAA0B,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AACnF,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"getGrammarsFolder.js","sourceRoot":"","sources":["../../src/utils/getGrammarsFolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,0BAA0B,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AACnF,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAE3C,IAAI,WAAW,KAAK,sBAAsB,EAAE;QACxC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC;YAC9C,OAAO,yBAAyB,CAAC;KACxC;SAAM,IAAI,WAAW,KAAK,kBAAkB,EAAE;QAC3C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC;YAC/C,OAAO,0BAA0B,CAAC;aACjC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC;YACnD,OAAO,yBAAyB,CAAC;KACxC;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACjD,CAAC"}
|
package/llama/addon.cpp
CHANGED
|
@@ -13,6 +13,7 @@ class LLAMAModel : public Napi::ObjectWrap<LLAMAModel> {
|
|
|
13
13
|
llama_context_params params;
|
|
14
14
|
llama_model* model;
|
|
15
15
|
float temperature;
|
|
16
|
+
int threads;
|
|
16
17
|
int32_t top_k;
|
|
17
18
|
float top_p;
|
|
18
19
|
|
|
@@ -21,6 +22,7 @@ class LLAMAModel : public Napi::ObjectWrap<LLAMAModel> {
|
|
|
21
22
|
params.seed = -1;
|
|
22
23
|
params.n_ctx = 4096;
|
|
23
24
|
temperature = 0.0f;
|
|
25
|
+
threads = 6;
|
|
24
26
|
top_k = 40;
|
|
25
27
|
top_p = 0.95f;
|
|
26
28
|
|
|
@@ -74,6 +76,10 @@ class LLAMAModel : public Napi::ObjectWrap<LLAMAModel> {
|
|
|
74
76
|
params.embedding = options.Get("embedding").As<Napi::Boolean>().Value();
|
|
75
77
|
}
|
|
76
78
|
|
|
79
|
+
if (options.Has("threads")) {
|
|
80
|
+
threads = options.Get("threads").As<Napi::Number>().Int32Value();
|
|
81
|
+
}
|
|
82
|
+
|
|
77
83
|
if (options.Has("temperature")) {
|
|
78
84
|
temperature = options.Get("temperature").As<Napi::Number>().FloatValue();
|
|
79
85
|
}
|
|
@@ -283,7 +289,7 @@ class LLAMAContextEvalWorker : Napi::AsyncWorker, Napi::Promise::Deferred {
|
|
|
283
289
|
protected:
|
|
284
290
|
void Execute() {
|
|
285
291
|
// Perform the evaluation using llama_eval.
|
|
286
|
-
int r = llama_eval(ctx->ctx, tokens.data(), int(tokens.size()), llama_get_kv_cache_token_count(ctx->ctx),
|
|
292
|
+
int r = llama_eval(ctx->ctx, tokens.data(), int(tokens.size()), llama_get_kv_cache_token_count(ctx->ctx), (ctx->model)->threads);
|
|
287
293
|
if (r != 0) {
|
|
288
294
|
SetError("Eval has failed");
|
|
289
295
|
return;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
root ::= (declaration)*
|
|
2
|
+
|
|
3
|
+
declaration ::= dataType identifier "(" parameter? ")" "{" statement* "}"
|
|
4
|
+
|
|
5
|
+
dataType ::= "int" ws | "float" ws | "char" ws
|
|
6
|
+
identifier ::= [a-zA-Z_] [a-zA-Z_0-9]*
|
|
7
|
+
|
|
8
|
+
parameter ::= dataType identifier
|
|
9
|
+
|
|
10
|
+
statement ::=
|
|
11
|
+
( dataType identifier ws "=" ws expression ";" ) |
|
|
12
|
+
( identifier ws "=" ws expression ";" ) |
|
|
13
|
+
( identifier ws "(" argList? ")" ";" ) |
|
|
14
|
+
( "return" ws expression ";" ) |
|
|
15
|
+
( "while" "(" condition ")" "{" statement* "}" ) |
|
|
16
|
+
( "for" "(" forInit ";" ws condition ";" ws forUpdate ")" "{" statement* "}" ) |
|
|
17
|
+
( "if" "(" condition ")" "{" statement* "}" ("else" "{" statement* "}")? ) |
|
|
18
|
+
( singleLineComment ) |
|
|
19
|
+
( multiLineComment )
|
|
20
|
+
|
|
21
|
+
forInit ::= dataType identifier ws "=" ws expression | identifier ws "=" ws expression
|
|
22
|
+
forUpdate ::= identifier ws "=" ws expression
|
|
23
|
+
|
|
24
|
+
condition ::= expression relationOperator expression
|
|
25
|
+
relationOperator ::= ("<=" | "<" | "==" | "!=" | ">=" | ">")
|
|
26
|
+
|
|
27
|
+
expression ::= term (("+" | "-") term)*
|
|
28
|
+
term ::= factor(("*" | "/") factor)*
|
|
29
|
+
|
|
30
|
+
factor ::= identifier | number | unaryTerm | funcCall | parenExpression
|
|
31
|
+
unaryTerm ::= "-" factor
|
|
32
|
+
funcCall ::= identifier "(" argList? ")"
|
|
33
|
+
parenExpression ::= "(" ws expression ws ")"
|
|
34
|
+
|
|
35
|
+
argList ::= expression ("," ws expression)*
|
|
36
|
+
|
|
37
|
+
number ::= [0-9]+
|
|
38
|
+
|
|
39
|
+
singleLineComment ::= "//" [^\n]* "\n"
|
|
40
|
+
multiLineComment ::= "/*" ( [^*] | ("*" [^/]) )* "*/"
|
|
41
|
+
|
|
42
|
+
ws ::= ([ \t\n]+)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-llama-cpp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "node.js bindings for llama.cpp",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -18,22 +18,22 @@
|
|
|
18
18
|
],
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
21
|
-
"default": "./dist/index.js",
|
|
22
21
|
"import": "./dist/index.js",
|
|
23
22
|
"node": "./dist/index.js",
|
|
24
|
-
"types": "./dist/index.d.ts"
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
25
|
},
|
|
26
26
|
"./commands": {
|
|
27
|
-
"default": "./dist/commands.js",
|
|
28
27
|
"import": "./dist/commands.js",
|
|
29
28
|
"node": "./dist/commands.js",
|
|
30
|
-
"types": "./dist/commands.d.ts"
|
|
29
|
+
"types": "./dist/commands.d.ts",
|
|
30
|
+
"default": "./dist/commands.js"
|
|
31
31
|
},
|
|
32
32
|
"./commands.js": {
|
|
33
|
-
"default": "./dist/commands.js",
|
|
34
33
|
"import": "./dist/commands.js",
|
|
35
34
|
"node": "./dist/commands.js",
|
|
36
|
-
"types": "./dist/commands.d.ts"
|
|
35
|
+
"types": "./dist/commands.d.ts",
|
|
36
|
+
"default": "./dist/commands.js"
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"engines": {
|