node-llama-cpp 3.0.0-beta.15 → 3.0.0-beta.16
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/dist/bindings/AddonTypes.d.ts +2 -0
- package/dist/bindings/Llama.d.ts +7 -0
- package/dist/bindings/Llama.js +12 -1
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +2 -2
- package/dist/bindings/getLlama.js +1 -1
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/utils/cloneLlamaCppRepo.js +23 -23
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/chatWrappers/utils/resolveChatWrapper.js +3 -1
- package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
- package/dist/cli/commands/BuildCommand.js +1 -1
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +2 -1
- package/dist/cli/commands/ChatCommand.js +70 -75
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/CompleteCommand.d.ts +2 -1
- package/dist/cli/commands/CompleteCommand.js +61 -57
- package/dist/cli/commands/CompleteCommand.js.map +1 -1
- package/dist/cli/commands/DebugCommand.js +4 -4
- package/dist/cli/commands/DownloadCommand.js +3 -4
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/InfillCommand.d.ts +2 -1
- package/dist/cli/commands/InfillCommand.js +63 -61
- package/dist/cli/commands/InfillCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +2 -1
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +20 -7
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +42 -4
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +2 -1
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +29 -27
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
- package/dist/cli/recommendedModels.d.ts +2 -0
- package/dist/cli/recommendedModels.js +281 -0
- package/dist/cli/recommendedModels.js.map +1 -0
- package/dist/cli/utils/ConsoleInteraction.d.ts +23 -0
- package/dist/cli/utils/ConsoleInteraction.js +122 -0
- package/dist/cli/utils/ConsoleInteraction.js.map +1 -0
- package/dist/cli/utils/ConsoleTable.js +5 -5
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.d.ts +13 -0
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.js +111 -0
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.js.map +1 -0
- package/dist/cli/utils/consolePromptQuestion.d.ts +5 -0
- package/dist/cli/utils/consolePromptQuestion.js +80 -0
- package/dist/cli/utils/consolePromptQuestion.js.map +1 -0
- package/dist/cli/utils/getReadablePath.d.ts +1 -0
- package/dist/cli/utils/getReadablePath.js +14 -0
- package/dist/cli/utils/getReadablePath.js.map +1 -0
- package/dist/cli/utils/printCommonInfoLines.js +1 -1
- package/dist/cli/utils/printInfoLine.d.ts +4 -2
- package/dist/cli/utils/printInfoLine.js +15 -6
- package/dist/cli/utils/printInfoLine.js.map +1 -1
- package/dist/cli/utils/resolveCommandGgufPath.d.ts +2 -1
- package/dist/cli/utils/resolveCommandGgufPath.js +490 -2
- package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
- package/dist/cli/utils/resolveHeaderFlag.d.ts +1 -0
- package/dist/cli/utils/resolveHeaderFlag.js +21 -0
- package/dist/cli/utils/resolveHeaderFlag.js.map +1 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +19 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.js +7 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.js.map +1 -0
- package/dist/cli/utils/splitAnsiToLines.d.ts +1 -0
- package/dist/cli/utils/splitAnsiToLines.js +17 -0
- package/dist/cli/utils/splitAnsiToLines.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/consts.d.ts +2 -0
- package/dist/consts.js +8 -0
- package/dist/consts.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.d.ts +8 -1
- package/dist/evaluator/LlamaChat/LlamaChat.js +2 -1
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +9 -2
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +5 -3
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaCompletion.d.ts +9 -2
- package/dist/evaluator/LlamaCompletion.js +6 -3
- package/dist/evaluator/LlamaCompletion.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +9 -19
- package/dist/evaluator/LlamaContext/LlamaContext.js +35 -55
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaGrammar.d.ts +3 -2
- package/dist/evaluator/LlamaGrammar.js +3 -2
- package/dist/evaluator/LlamaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaModel.d.ts +7 -15
- package/dist/evaluator/LlamaModel.js +4 -201
- package/dist/evaluator/LlamaModel.js.map +1 -1
- package/dist/evaluator/TokenBias.d.ts +22 -0
- package/dist/evaluator/TokenBias.js +33 -0
- package/dist/evaluator/TokenBias.js.map +1 -0
- package/dist/gguf/{GgufInsights.d.ts → insights/GgufInsights.d.ts} +5 -3
- package/dist/gguf/{GgufInsights.js → insights/GgufInsights.js} +46 -35
- package/dist/gguf/insights/GgufInsights.js.map +1 -0
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +87 -0
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +136 -0
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -0
- package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +18 -0
- package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +52 -0
- package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -0
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +14 -0
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +177 -0
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -0
- package/dist/gguf/insights/utils/scoreLevels.d.ts +5 -0
- package/dist/gguf/insights/utils/scoreLevels.js +16 -0
- package/dist/gguf/insights/utils/scoreLevels.js.map +1 -0
- package/dist/gguf/readGgufFileInfo.js +2 -1
- package/dist/gguf/readGgufFileInfo.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/getConsoleLogPrefix.js +1 -1
- package/dist/utils/getReadableContextSize.d.ts +1 -0
- package/dist/utils/getReadableContextSize.js +7 -0
- package/dist/utils/getReadableContextSize.js.map +1 -0
- package/dist/utils/isToken.d.ts +2 -0
- package/dist/utils/isToken.js +4 -0
- package/dist/utils/isToken.js.map +1 -0
- package/dist/utils/isUrl.d.ts +1 -0
- package/dist/utils/isUrl.js +15 -0
- package/dist/utils/isUrl.js.map +1 -0
- package/dist/utils/tokenizeInput.d.ts +1 -1
- package/dist/utils/tokenizeInput.js +3 -0
- package/dist/utils/tokenizeInput.js.map +1 -1
- package/dist/utils/withOra.d.ts +1 -0
- package/dist/utils/withOra.js +13 -7
- package/dist/utils/withOra.js.map +1 -1
- package/dist/utils/withProgressLog.d.ts +23 -0
- package/dist/utils/withProgressLog.js +211 -0
- package/dist/utils/withProgressLog.js.map +1 -0
- package/dist/utils/withStatusLogs.js +1 -1
- package/dist/utils/withStatusLogs.js.map +1 -1
- package/llama/addon.cpp +43 -5
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/grammars/README.md +10 -0
- package/llama/llama.cpp.info.json +1 -1
- package/llamaBins/linux-arm64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
- package/llamaBins/mac-arm64-metal/_nlcBuildMetadata.json +1 -1
- package/llamaBins/mac-arm64-metal/default.metallib +0 -0
- package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
- package/llamaBins/mac-x64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-arm64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-arm64/llama-addon.node +0 -0
- package/llamaBins/win-x64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/win-x64-vulkan/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
- package/package.json +8 -7
- package/dist/gguf/GgufInsights.js.map +0 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import process from "process";
|
|
2
|
+
import UpdateManager from "stdout-update";
|
|
3
|
+
import sliceAnsi from "slice-ansi";
|
|
4
|
+
import stripAnsi from "strip-ansi";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
import logSymbols from "log-symbols";
|
|
7
|
+
import prettyMilliseconds from "pretty-ms";
|
|
8
|
+
import { useCiLogs } from "../config.js";
|
|
9
|
+
import { clockChar } from "../consts.js";
|
|
10
|
+
import { ConsoleInteraction, ConsoleInteractionKey } from "../cli/utils/ConsoleInteraction.js";
|
|
11
|
+
import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
|
|
12
|
+
import withOra from "./withOra.js";
|
|
13
|
+
export async function withProgressLog({ loadingText, successText, failText, liveUpdates = true, statusIcons = true, initialPercentage = 0, initialProgressBarText, progressBarLength = 40, minPercentageChangeForNonLiveUpdates = 0.1, eta = true, etaUpdateInterval = 1000, noProgress = false, progressFractionDigits = true, noSuccessLiveStatus = false, liveCtrlCSendsAbortSignal = false }, callback) {
|
|
14
|
+
const shouldLiveUpdate = !useCiLogs && liveUpdates;
|
|
15
|
+
const startTime = Date.now();
|
|
16
|
+
const abortController = new AbortController();
|
|
17
|
+
let currentProgress = initialPercentage;
|
|
18
|
+
let currentProgressBarText = initialProgressBarText;
|
|
19
|
+
let isAborted = false;
|
|
20
|
+
const getEta = () => {
|
|
21
|
+
const now = Date.now();
|
|
22
|
+
if (!eta || currentProgress === 1 || now - startTime < 1000)
|
|
23
|
+
return null;
|
|
24
|
+
const timeRemaining = ((now - startTime) / currentProgress) * (1 - currentProgress);
|
|
25
|
+
if (!Number.isFinite(timeRemaining) || typeof timeRemaining === "bigint")
|
|
26
|
+
return null;
|
|
27
|
+
if (timeRemaining < 1000)
|
|
28
|
+
return "0s left";
|
|
29
|
+
try {
|
|
30
|
+
return prettyMilliseconds(timeRemaining, {
|
|
31
|
+
keepDecimalsOnWholeSeconds: true,
|
|
32
|
+
secondsDecimalDigits: 2,
|
|
33
|
+
compact: true
|
|
34
|
+
}) + " left";
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
if (noProgress) {
|
|
41
|
+
return withOra({
|
|
42
|
+
loading: loadingText,
|
|
43
|
+
success: successText,
|
|
44
|
+
fail: failText,
|
|
45
|
+
useStatusLogs: !shouldLiveUpdate,
|
|
46
|
+
noSuccessLiveStatus
|
|
47
|
+
}, () => {
|
|
48
|
+
const progressUpdater = {
|
|
49
|
+
setProgress: () => progressUpdater
|
|
50
|
+
};
|
|
51
|
+
return callback(progressUpdater);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else if (!shouldLiveUpdate) {
|
|
55
|
+
const getLoadingText = () => {
|
|
56
|
+
const formattedProgress = (currentProgress * 100)
|
|
57
|
+
.toLocaleString("en-US", {
|
|
58
|
+
minimumIntegerDigits: 1,
|
|
59
|
+
minimumFractionDigits: 0,
|
|
60
|
+
maximumFractionDigits: progressFractionDigits ? 3 : 0
|
|
61
|
+
}) + "%";
|
|
62
|
+
const etaText = getEta();
|
|
63
|
+
return [
|
|
64
|
+
chalk.cyan(clockChar),
|
|
65
|
+
loadingText,
|
|
66
|
+
chalk.yellow(formattedProgress),
|
|
67
|
+
(currentProgressBarText != null && currentProgressBarText !== "")
|
|
68
|
+
? chalk.gray(currentProgressBarText + (etaText != null
|
|
69
|
+
? (" | " + etaText)
|
|
70
|
+
: ""))
|
|
71
|
+
: chalk.gray(etaText ?? "")
|
|
72
|
+
].join(" ");
|
|
73
|
+
};
|
|
74
|
+
let lastLogProgress = initialPercentage;
|
|
75
|
+
let lastLogProgressBarText = initialProgressBarText;
|
|
76
|
+
const progressUpdater = {
|
|
77
|
+
setProgress(progress, progressText) {
|
|
78
|
+
currentProgress = progress;
|
|
79
|
+
currentProgressBarText = progressText;
|
|
80
|
+
if (Math.abs(currentProgress - lastLogProgress) >= minPercentageChangeForNonLiveUpdates ||
|
|
81
|
+
currentProgressBarText !== lastLogProgressBarText ||
|
|
82
|
+
(progress === 1 && lastLogProgress !== 1)) {
|
|
83
|
+
console.log(getConsoleLogPrefix() + getLoadingText());
|
|
84
|
+
lastLogProgress = currentProgress;
|
|
85
|
+
lastLogProgressBarText = currentProgressBarText;
|
|
86
|
+
}
|
|
87
|
+
return progressUpdater;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
console.log(getConsoleLogPrefix() + getLoadingText());
|
|
91
|
+
try {
|
|
92
|
+
const res = await callback(progressUpdater);
|
|
93
|
+
console.log(getConsoleLogPrefix() + `${logSymbols.success} ${successText}`);
|
|
94
|
+
return res;
|
|
95
|
+
}
|
|
96
|
+
catch (er) {
|
|
97
|
+
console.log(getConsoleLogPrefix() + `${logSymbols.error} ${failText}`);
|
|
98
|
+
throw er;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const updateManager = UpdateManager.getInstance();
|
|
102
|
+
let etaUpdateTimeout = undefined;
|
|
103
|
+
function getProgressLine() {
|
|
104
|
+
const formattedProgress = (currentProgress * 100)
|
|
105
|
+
.toLocaleString("en-US", {
|
|
106
|
+
minimumIntegerDigits: 1,
|
|
107
|
+
minimumFractionDigits: progressFractionDigits ? 4 : 0,
|
|
108
|
+
maximumFractionDigits: progressFractionDigits ? 4 : 0
|
|
109
|
+
})
|
|
110
|
+
.slice(0, 5) + "%";
|
|
111
|
+
const addedText = (currentProgressBarText != null && currentProgressBarText !== "")
|
|
112
|
+
? currentProgressBarText
|
|
113
|
+
: "";
|
|
114
|
+
const leftPad = " ".repeat(Math.floor((progressBarLength - stripAnsi(formattedProgress + (addedText.length > 0
|
|
115
|
+
? (addedText + 1)
|
|
116
|
+
: 0)).length) / 2));
|
|
117
|
+
return [
|
|
118
|
+
loadingText,
|
|
119
|
+
renderProgressBar({
|
|
120
|
+
barText: leftPad + ` ${chalk.black.bgWhiteBright(formattedProgress)}${addedText.length === 0 ? "" : (" " + chalk.gray(addedText))} `,
|
|
121
|
+
backgroundText: leftPad + ` ${chalk.yellow.bgGray(formattedProgress)}${addedText.length === 0 ? "" : (" " + chalk.white(addedText))} `,
|
|
122
|
+
length: progressBarLength,
|
|
123
|
+
loadedPercentage: Math.max(0, Math.min(1, currentProgress)),
|
|
124
|
+
barStyle: chalk.black.bgWhiteBright,
|
|
125
|
+
backgroundStyle: chalk.bgGray
|
|
126
|
+
}),
|
|
127
|
+
isAborted
|
|
128
|
+
? chalk.red("Aborted")
|
|
129
|
+
: chalk.gray(getEta() ?? "")
|
|
130
|
+
].join(" ");
|
|
131
|
+
}
|
|
132
|
+
function updateProgressBar() {
|
|
133
|
+
updateManager.update([
|
|
134
|
+
getConsoleLogPrefix() + getProgressLine()
|
|
135
|
+
]);
|
|
136
|
+
clearTimeout(etaUpdateTimeout);
|
|
137
|
+
if (eta && currentProgress !== 1)
|
|
138
|
+
etaUpdateTimeout = setTimeout(updateProgressBar, etaUpdateInterval);
|
|
139
|
+
}
|
|
140
|
+
const progressUpdater = {
|
|
141
|
+
setProgress(progress, progressText) {
|
|
142
|
+
currentProgress = progress;
|
|
143
|
+
currentProgressBarText = progressText;
|
|
144
|
+
if (!isAborted)
|
|
145
|
+
updateProgressBar();
|
|
146
|
+
return progressUpdater;
|
|
147
|
+
},
|
|
148
|
+
abortSignal: liveCtrlCSendsAbortSignal
|
|
149
|
+
? abortController.signal
|
|
150
|
+
: undefined
|
|
151
|
+
};
|
|
152
|
+
updateManager.hook();
|
|
153
|
+
const consoleInteraction = new ConsoleInteraction();
|
|
154
|
+
let moveCursorUpAfterUnhook = false;
|
|
155
|
+
consoleInteraction.onKey(ConsoleInteractionKey.ctrlC, () => {
|
|
156
|
+
isAborted = true;
|
|
157
|
+
if (liveCtrlCSendsAbortSignal) {
|
|
158
|
+
abortController.abort();
|
|
159
|
+
consoleInteraction.stop();
|
|
160
|
+
updateProgressBar();
|
|
161
|
+
updateManager.unhook(true);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
consoleInteraction.stop();
|
|
165
|
+
updateManager.unhook(true);
|
|
166
|
+
updateProgressBar();
|
|
167
|
+
process.exit(0);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
try {
|
|
171
|
+
updateProgressBar();
|
|
172
|
+
consoleInteraction.start();
|
|
173
|
+
const res = await callback(progressUpdater);
|
|
174
|
+
clearTimeout(etaUpdateTimeout);
|
|
175
|
+
if (noSuccessLiveStatus) {
|
|
176
|
+
updateManager.update([""]);
|
|
177
|
+
moveCursorUpAfterUnhook = true;
|
|
178
|
+
}
|
|
179
|
+
else
|
|
180
|
+
updateManager.update([
|
|
181
|
+
getConsoleLogPrefix() + (statusIcons
|
|
182
|
+
? (logSymbols.success + " ")
|
|
183
|
+
: "") + successText
|
|
184
|
+
]);
|
|
185
|
+
return res;
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
updateManager.update([
|
|
189
|
+
getConsoleLogPrefix() + (statusIcons
|
|
190
|
+
? (logSymbols.error + " ")
|
|
191
|
+
: "") + failText
|
|
192
|
+
]);
|
|
193
|
+
throw err;
|
|
194
|
+
}
|
|
195
|
+
finally {
|
|
196
|
+
consoleInteraction.stop();
|
|
197
|
+
updateManager.unhook(true);
|
|
198
|
+
if (moveCursorUpAfterUnhook)
|
|
199
|
+
process.stdout.moveCursor(0, -1);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function renderProgressBar({ barText, backgroundText, length, loadedPercentage, barStyle, backgroundStyle }) {
|
|
203
|
+
const barChars = Math.floor(length * loadedPercentage);
|
|
204
|
+
const backgroundChars = length - barChars;
|
|
205
|
+
const slicedBarText = sliceAnsi(barText, 0, barChars);
|
|
206
|
+
const paddedBarText = slicedBarText + " ".repeat(barChars - stripAnsi(slicedBarText).length);
|
|
207
|
+
const slicedBackgroundText = sliceAnsi(backgroundText, barChars, barChars + backgroundChars);
|
|
208
|
+
const paddedBackgroundText = slicedBackgroundText + " ".repeat(backgroundChars - stripAnsi(slicedBackgroundText).length);
|
|
209
|
+
return barStyle(paddedBarText) + backgroundStyle(paddedBackgroundText);
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=withProgressLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withProgressLog.js","sourceRoot":"","sources":["../../src/utils/withProgressLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import logSymbols from "log-symbols";
|
|
3
|
+
import { clockChar } from "../consts.js";
|
|
3
4
|
import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
|
|
4
|
-
const clockChar = "\u25f7";
|
|
5
5
|
export default async function withStatusLogs(messageAndOptions, callback) {
|
|
6
6
|
if (typeof messageAndOptions !== "string" && messageAndOptions.disableLogs)
|
|
7
7
|
return await callback();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withStatusLogs.js","sourceRoot":"","sources":["../../src/utils/withStatusLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"withStatusLogs.js","sourceRoot":"","sources":["../../src/utils/withStatusLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAG7D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CACxC,iBAKC,EACD,QAA0B;IAE1B,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,WAAW;QACtE,OAAO,MAAM,QAAQ,EAAE,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzJ,IAAI;QACA,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;;YAE1F,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAEtF,OAAO,GAAG,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;;YAErF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAEpF,MAAM,EAAE,CAAC;KACZ;AACL,CAAC"}
|
package/llama/addon.cpp
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
#include <algorithm>
|
|
4
4
|
#include <sstream>
|
|
5
5
|
#include <vector>
|
|
6
|
+
#include <unordered_map>
|
|
6
7
|
|
|
7
8
|
#include "common.h"
|
|
8
9
|
#include "common/grammar-parser.h"
|
|
@@ -1091,7 +1092,7 @@ class AddonContext : public Napi::ObjectWrap<AddonContext> {
|
|
|
1091
1092
|
return info.Env().Undefined();
|
|
1092
1093
|
}
|
|
1093
1094
|
|
|
1094
|
-
return Napi::Number::From(info.Env(),
|
|
1095
|
+
return Napi::Number::From(info.Env(), llama_state_get_size(ctx));
|
|
1095
1096
|
}
|
|
1096
1097
|
|
|
1097
1098
|
Napi::Value PrintTimings(const Napi::CallbackInfo& info) {
|
|
@@ -1219,7 +1220,7 @@ class AddonContextLoadContextWorker : public Napi::AsyncWorker {
|
|
|
1219
1220
|
}
|
|
1220
1221
|
void OnOK() {
|
|
1221
1222
|
if (context->contextLoaded) {
|
|
1222
|
-
uint64_t contextMemorySize =
|
|
1223
|
+
uint64_t contextMemorySize = llama_state_get_size(context->ctx);
|
|
1223
1224
|
adjustNapiExternalMemoryAdd(Env(), contextMemorySize);
|
|
1224
1225
|
context->loadedContextMemorySize = contextMemorySize;
|
|
1225
1226
|
}
|
|
@@ -1334,6 +1335,8 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1334
1335
|
float repeat_penalty_presence_penalty = 0.00f; // 0.0 = disabled
|
|
1335
1336
|
float repeat_penalty_frequency_penalty = 0.00f; // 0.0 = disabled
|
|
1336
1337
|
std::vector<llama_token> repeat_penalty_tokens;
|
|
1338
|
+
std::unordered_map<llama_token, float> tokenBiases;
|
|
1339
|
+
bool useTokenBiases = false;
|
|
1337
1340
|
bool use_repeat_penalty = false;
|
|
1338
1341
|
|
|
1339
1342
|
AddonContextSampleTokenWorker(const Napi::CallbackInfo& info, AddonContext* ctx)
|
|
@@ -1378,6 +1381,19 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1378
1381
|
use_repeat_penalty = true;
|
|
1379
1382
|
}
|
|
1380
1383
|
|
|
1384
|
+
if (options.Has("tokenBiasKeys") && options.Has("tokenBiasValues")) {
|
|
1385
|
+
Napi::Uint32Array tokenBiasKeys = options.Get("tokenBiasKeys").As<Napi::Uint32Array>();
|
|
1386
|
+
Napi::Float32Array tokenBiasValues = options.Get("tokenBiasValues").As<Napi::Float32Array>();
|
|
1387
|
+
|
|
1388
|
+
if (tokenBiasKeys.ElementLength() == tokenBiasValues.ElementLength()) {
|
|
1389
|
+
for (size_t i = 0; i < tokenBiasKeys.ElementLength(); i++) {
|
|
1390
|
+
tokenBiases[static_cast<llama_token>(tokenBiasKeys[i])] = tokenBiasValues[i];
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
useTokenBiases = true;
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1381
1397
|
if (options.Has("repeatPenaltyPresencePenalty")) {
|
|
1382
1398
|
repeat_penalty_presence_penalty = options.Get("repeatPenaltyPresencePenalty").As<Napi::Number>().FloatValue();
|
|
1383
1399
|
}
|
|
@@ -1426,18 +1442,33 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1426
1442
|
// Select the best prediction.
|
|
1427
1443
|
auto logits = llama_get_logits_ith(ctx->ctx, batchLogitIndex);
|
|
1428
1444
|
auto n_vocab = llama_n_vocab(ctx->model->model);
|
|
1445
|
+
auto eos_token = llama_token_eos(ctx->model->model);
|
|
1429
1446
|
|
|
1430
1447
|
std::vector<llama_token_data> candidates;
|
|
1431
1448
|
candidates.reserve(n_vocab);
|
|
1432
1449
|
|
|
1433
1450
|
for (llama_token token_id = 0; token_id < n_vocab; token_id++) {
|
|
1434
|
-
|
|
1451
|
+
auto logit = logits[token_id];
|
|
1452
|
+
|
|
1453
|
+
if (useTokenBiases) {
|
|
1454
|
+
bool hasTokenBias = tokenBiases.find(token_id) != tokenBiases.end();
|
|
1455
|
+
if (hasTokenBias) {
|
|
1456
|
+
auto logitBias = tokenBiases.at(token_id);
|
|
1457
|
+
if (logitBias == -INFINITY || logitBias < -INFINITY) {
|
|
1458
|
+
if (token_id != eos_token) {
|
|
1459
|
+
logit = -INFINITY;
|
|
1460
|
+
}
|
|
1461
|
+
} else {
|
|
1462
|
+
logit += logitBias;
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
candidates.emplace_back(llama_token_data { token_id, logit, 0.0f });
|
|
1435
1468
|
}
|
|
1436
1469
|
|
|
1437
1470
|
llama_token_data_array candidates_p = { candidates.data(), candidates.size(), false };
|
|
1438
1471
|
|
|
1439
|
-
auto eos_token = llama_token_eos(ctx->model->model);
|
|
1440
|
-
|
|
1441
1472
|
if (use_repeat_penalty && !repeat_penalty_tokens.empty()) {
|
|
1442
1473
|
llama_sample_repetition_penalties(
|
|
1443
1474
|
ctx->ctx,
|
|
@@ -1452,6 +1483,13 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1452
1483
|
|
|
1453
1484
|
if (use_grammar && (grammar_evaluation_state)->grammar != nullptr) {
|
|
1454
1485
|
llama_sample_grammar(ctx->ctx, &candidates_p, (grammar_evaluation_state)->grammar);
|
|
1486
|
+
|
|
1487
|
+
if ((candidates_p.size == 0 || candidates_p.data[0].logit == -INFINITY) && useTokenBiases) {
|
|
1488
|
+
// logit biases caused grammar sampling to fail, so sampling again without logit biases
|
|
1489
|
+
useTokenBiases = false;
|
|
1490
|
+
SampleToken();
|
|
1491
|
+
return;
|
|
1492
|
+
}
|
|
1455
1493
|
}
|
|
1456
1494
|
|
|
1457
1495
|
if (temperature <= 0) {
|
package/llama/gitRelease.bundle
CHANGED
|
Binary file
|
package/llama/grammars/README.md
CHANGED
|
@@ -89,3 +89,13 @@ This guide provides a brief overview. Check out the GBNF files in this directory
|
|
|
89
89
|
```
|
|
90
90
|
./main -m <model> --grammar-file grammars/some-grammar.gbnf -p 'Some prompt'
|
|
91
91
|
```
|
|
92
|
+
|
|
93
|
+
## Troubleshooting
|
|
94
|
+
|
|
95
|
+
Grammars currently have performance gotchas (see https://github.com/ggerganov/llama.cpp/issues/4218).
|
|
96
|
+
|
|
97
|
+
### Efficient optional repetitions
|
|
98
|
+
|
|
99
|
+
A common pattern is to allow repetitions of a pattern `x` up to N times.
|
|
100
|
+
|
|
101
|
+
While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) will result in extremely slow inference. Instead, you can write `(x (x (x ... (x)?...)?)?)?` (w/ N-deep nesting)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"arm64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"arm64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"armv7l","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"armv7l","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"x64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"x64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"x64","gpu":"cuda","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"x64","gpu":"cuda","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"x64","gpu":"vulkan","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","platformInfo":{"name":"Ubuntu","version":"22.04"},"arch":"x64","gpu":"vulkan","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"mac","platformInfo":{"name":"macOS","version":"21.6.0"},"arch":"arm64","gpu":"metal","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"mac","platformInfo":{"name":"macOS","version":"21.6.0"},"arch":"arm64","gpu":"metal","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"mac","platformInfo":{"name":"macOS","version":"21.6.0"},"arch":"x64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"mac","platformInfo":{"name":"macOS","version":"21.6.0"},"arch":"x64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"arm64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"arm64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"x64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"x64","gpu":false,"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"x64","gpu":"cuda","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"x64","gpu":"cuda","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"x64","gpu":"vulkan","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"win","platformInfo":{"name":"Windows","version":"10.0.20348"},"arch":"x64","gpu":"vulkan","llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2665"}}}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-llama-cpp",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.16",
|
|
4
4
|
"description": "Run AI models locally on your machine with node.js bindings for llama.cpp. Force a JSON schema on the model output on the generation level",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -117,7 +117,6 @@
|
|
|
117
117
|
"@semantic-release/exec": "^6.0.3",
|
|
118
118
|
"@types/async-retry": "^1.4.8",
|
|
119
119
|
"@types/bytes": "^3.1.4",
|
|
120
|
-
"@types/cli-progress": "^3.11.0",
|
|
121
120
|
"@types/cross-spawn": "^6.0.2",
|
|
122
121
|
"@types/fs-extra": "^11.0.4",
|
|
123
122
|
"@types/node": "^20.11.29",
|
|
@@ -135,14 +134,13 @@
|
|
|
135
134
|
"eslint-plugin-jsdoc": "^46.9.0",
|
|
136
135
|
"eslint-plugin-n": "^16.3.1",
|
|
137
136
|
"husky": "^8.0.3",
|
|
138
|
-
"ipull": "^3.0.5",
|
|
139
137
|
"rimraf": "^5.0.1",
|
|
140
138
|
"semantic-release": "^22.0.8",
|
|
141
139
|
"tslib": "^2.6.1",
|
|
142
140
|
"typedoc": "^0.25.3",
|
|
143
|
-
"typedoc-plugin-markdown": "^4.0.0-next.
|
|
144
|
-
"typedoc-plugin-mdn-links": "^3.1.
|
|
145
|
-
"typedoc-vitepress-theme": "^1.0.0-next.
|
|
141
|
+
"typedoc-plugin-markdown": "^4.0.0-next.55",
|
|
142
|
+
"typedoc-plugin-mdn-links": "^3.1.19",
|
|
143
|
+
"typedoc-vitepress-theme": "^1.0.0-next.10",
|
|
146
144
|
"typescript": "^5.2.2",
|
|
147
145
|
"vite-node": "^1.4.0",
|
|
148
146
|
"vitepress": "1.0.0-rc.22",
|
|
@@ -155,21 +153,24 @@
|
|
|
155
153
|
"bytes": "^3.1.2",
|
|
156
154
|
"chalk": "^5.3.0",
|
|
157
155
|
"chmodrp": "^1.0.2",
|
|
158
|
-
"cli-progress": "^3.12.0",
|
|
159
156
|
"cmake-js": "^7.3.0",
|
|
160
157
|
"cross-env": "^7.0.3",
|
|
161
158
|
"cross-spawn": "^7.0.3",
|
|
162
159
|
"env-var": "^7.3.1",
|
|
163
160
|
"fs-extra": "^11.2.0",
|
|
161
|
+
"ipull": "^3.0.11",
|
|
162
|
+
"is-unicode-supported": "^2.0.0",
|
|
164
163
|
"lifecycle-utils": "^1.4.1",
|
|
165
164
|
"log-symbols": "^5.1.0",
|
|
166
165
|
"node-addon-api": "^7.0.0",
|
|
167
166
|
"octokit": "^3.1.0",
|
|
168
167
|
"ora": "^7.0.1",
|
|
168
|
+
"pretty-ms": "^9.0.0",
|
|
169
169
|
"proper-lockfile": "^4.1.2",
|
|
170
170
|
"semver": "^7.6.0",
|
|
171
171
|
"simple-git": "^3.19.1",
|
|
172
172
|
"slice-ansi": "^7.1.0",
|
|
173
|
+
"stdout-update": "^4.0.1",
|
|
173
174
|
"strip-ansi": "^7.1.0",
|
|
174
175
|
"uuid": "^9.0.0",
|
|
175
176
|
"which": "^4.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GgufInsights.js","sourceRoot":"","sources":["../../src/gguf/GgufInsights.ts"],"names":[],"mappings":"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"}
|