node-llama-cpp 3.0.0-beta.15 → 3.0.0-beta.17
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/ChatWrapper.d.ts +1 -15
- package/dist/ChatWrapper.js +19 -29
- package/dist/ChatWrapper.js.map +1 -1
- package/dist/bindings/AddonTypes.d.ts +5 -1
- 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/FunctionaryChatWrapper.js +39 -40
- package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
- package/dist/chatWrappers/{LlamaChatWrapper.d.ts → Llama2ChatWrapper.d.ts} +1 -1
- package/dist/chatWrappers/{LlamaChatWrapper.js → Llama2ChatWrapper.js} +3 -3
- package/dist/chatWrappers/Llama2ChatWrapper.js.map +1 -0
- package/dist/chatWrappers/Llama3ChatWrapper.d.ts +31 -0
- package/dist/chatWrappers/Llama3ChatWrapper.js +129 -0
- package/dist/chatWrappers/Llama3ChatWrapper.js.map +1 -0
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +2 -2
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +6 -2
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +2 -2
- package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -1
- package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +42 -0
- package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +82 -0
- package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +1 -1
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -1
- package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +6 -4
- package/dist/chatWrappers/utils/resolveChatWrapper.js +26 -18
- 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 +4 -1
- package/dist/cli/commands/ChatCommand.js +93 -81
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/CompleteCommand.d.ts +4 -1
- package/dist/cli/commands/CompleteCommand.js +82 -61
- 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 +4 -1
- package/dist/cli/commands/InfillCommand.js +84 -65
- 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 +4 -1
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +69 -36
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
- package/dist/cli/recommendedModels.d.ts +2 -0
- package/dist/cli/recommendedModels.js +350 -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 +5 -4
- package/dist/cli/utils/printCommonInfoLines.js.map +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 +551 -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 +10 -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 +9 -2
- package/dist/evaluator/LlamaChat/LlamaChat.js +58 -22
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js +3 -1
- package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +10 -3
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +5 -3
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaCompletion.d.ts +11 -4
- package/dist/evaluator/LlamaCompletion.js +16 -15
- package/dist/evaluator/LlamaCompletion.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +13 -23
- package/dist/evaluator/LlamaContext/LlamaContext.js +47 -60
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaEmbeddingContext.js +1 -1
- package/dist/evaluator/LlamaEmbeddingContext.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 +21 -18
- package/dist/evaluator/LlamaModel.js +34 -205
- 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/gguf/types/GgufMetadataTypes.d.ts +4 -0
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +21 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/LlamaText.d.ts +2 -1
- package/dist/utils/LlamaText.js +20 -0
- package/dist/utils/LlamaText.js.map +1 -1
- package/dist/utils/StopGenerationDetector.js +19 -18
- package/dist/utils/StopGenerationDetector.js.map +1 -1
- package/dist/utils/TokenStreamRegulator.d.ts +4 -2
- package/dist/utils/TokenStreamRegulator.js +22 -4
- package/dist/utils/TokenStreamRegulator.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/getTypeScriptTypeStringForGbnfJsonSchema.js +15 -11
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
- 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/utilTypes.d.ts +3 -0
- package/dist/utils/utilTypes.js +2 -0
- package/dist/utils/utilTypes.js.map +1 -0
- 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 +90 -10
- 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 +9 -7
- package/dist/chatWrappers/LlamaChatWrapper.js.map +0 -1
- 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"
|
|
@@ -107,12 +108,12 @@ static void adjustNapiExternalMemorySubtract(Napi::Env env, uint64_t size) {
|
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
std::string addon_model_token_to_piece(const struct llama_model* model, llama_token token) {
|
|
111
|
+
std::string addon_model_token_to_piece(const struct llama_model* model, llama_token token, bool specialTokens) {
|
|
111
112
|
std::vector<char> result(8, 0);
|
|
112
|
-
const int n_tokens = llama_token_to_piece(model, token, result.data(), result.size());
|
|
113
|
+
const int n_tokens = llama_token_to_piece(model, token, result.data(), result.size(), specialTokens);
|
|
113
114
|
if (n_tokens < 0) {
|
|
114
115
|
result.resize(-n_tokens);
|
|
115
|
-
int check = llama_token_to_piece(model, token, result.data(), result.size());
|
|
116
|
+
int check = llama_token_to_piece(model, token, result.data(), result.size(), specialTokens);
|
|
116
117
|
GGML_ASSERT(check == -n_tokens);
|
|
117
118
|
} else {
|
|
118
119
|
result.resize(n_tokens);
|
|
@@ -377,13 +378,16 @@ class AddonModel : public Napi::ObjectWrap<AddonModel> {
|
|
|
377
378
|
}
|
|
378
379
|
|
|
379
380
|
Napi::Uint32Array tokens = info[0].As<Napi::Uint32Array>();
|
|
381
|
+
bool decodeSpecialTokens = info.Length() > 0
|
|
382
|
+
? info[1].As<Napi::Boolean>().Value()
|
|
383
|
+
: false;
|
|
380
384
|
|
|
381
385
|
// Create a stringstream for accumulating the decoded string.
|
|
382
386
|
std::stringstream ss;
|
|
383
387
|
|
|
384
388
|
// Decode each token and accumulate the result.
|
|
385
389
|
for (size_t i = 0; i < tokens.ElementLength(); i++) {
|
|
386
|
-
const std::string piece = addon_model_token_to_piece(model, (llama_token)tokens[i]);
|
|
390
|
+
const std::string piece = addon_model_token_to_piece(model, (llama_token)tokens[i], decodeSpecialTokens);
|
|
387
391
|
|
|
388
392
|
if (piece.empty()) {
|
|
389
393
|
continue;
|
|
@@ -533,6 +537,20 @@ class AddonModel : public Napi::ObjectWrap<AddonModel> {
|
|
|
533
537
|
|
|
534
538
|
return Napi::Number::From(info.Env(), int32_t(tokenType));
|
|
535
539
|
}
|
|
540
|
+
Napi::Value IsEogToken(const Napi::CallbackInfo& info) {
|
|
541
|
+
if (disposed) {
|
|
542
|
+
Napi::Error::New(info.Env(), "Model is disposed").ThrowAsJavaScriptException();
|
|
543
|
+
return info.Env().Undefined();
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
if (info[0].IsNumber() == false) {
|
|
547
|
+
return Napi::Boolean::New(info.Env(), false);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
int token = info[0].As<Napi::Number>().Int32Value();
|
|
551
|
+
|
|
552
|
+
return Napi::Boolean::New(info.Env(), llama_token_is_eog(model, token));
|
|
553
|
+
}
|
|
536
554
|
Napi::Value GetVocabularyType(const Napi::CallbackInfo& info) {
|
|
537
555
|
if (disposed) {
|
|
538
556
|
Napi::Error::New(info.Env(), "Model is disposed").ThrowAsJavaScriptException();
|
|
@@ -580,6 +598,7 @@ class AddonModel : public Napi::ObjectWrap<AddonModel> {
|
|
|
580
598
|
InstanceMethod("eotToken", &AddonModel::EotToken),
|
|
581
599
|
InstanceMethod("getTokenString", &AddonModel::GetTokenString),
|
|
582
600
|
InstanceMethod("getTokenType", &AddonModel::GetTokenType),
|
|
601
|
+
InstanceMethod("isEogToken", &AddonModel::IsEogToken),
|
|
583
602
|
InstanceMethod("getVocabularyType", &AddonModel::GetVocabularyType),
|
|
584
603
|
InstanceMethod("shouldPrependBosToken", &AddonModel::ShouldPrependBosToken),
|
|
585
604
|
InstanceMethod("getModelSize", &AddonModel::GetModelSize),
|
|
@@ -1053,6 +1072,30 @@ class AddonContext : public Napi::ObjectWrap<AddonContext> {
|
|
|
1053
1072
|
return info.Env().Undefined();
|
|
1054
1073
|
}
|
|
1055
1074
|
|
|
1075
|
+
Napi::Value CanBeNextTokenForGrammarEvaluationState(const Napi::CallbackInfo& info) {
|
|
1076
|
+
AddonGrammarEvaluationState* grammar_evaluation_state =
|
|
1077
|
+
Napi::ObjectWrap<AddonGrammarEvaluationState>::Unwrap(info[0].As<Napi::Object>());
|
|
1078
|
+
llama_token tokenId = info[1].As<Napi::Number>().Int32Value();
|
|
1079
|
+
|
|
1080
|
+
if ((grammar_evaluation_state)->grammar != nullptr) {
|
|
1081
|
+
std::vector<llama_token_data> candidates;
|
|
1082
|
+
candidates.reserve(1);
|
|
1083
|
+
candidates.emplace_back(llama_token_data { tokenId, 1, 0.0f });
|
|
1084
|
+
|
|
1085
|
+
llama_token_data_array candidates_p = { candidates.data(), candidates.size(), false };
|
|
1086
|
+
|
|
1087
|
+
llama_sample_grammar(ctx, &candidates_p, (grammar_evaluation_state)->grammar);
|
|
1088
|
+
|
|
1089
|
+
if (candidates_p.size == 0 || candidates_p.data[0].logit == -INFINITY) {
|
|
1090
|
+
return Napi::Boolean::New(info.Env(), false);
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
return Napi::Boolean::New(info.Env(), true);
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
return Napi::Boolean::New(info.Env(), false);
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1056
1099
|
Napi::Value GetEmbedding(const Napi::CallbackInfo& info) {
|
|
1057
1100
|
if (disposed) {
|
|
1058
1101
|
Napi::Error::New(info.Env(), "Context is disposed").ThrowAsJavaScriptException();
|
|
@@ -1091,7 +1134,7 @@ class AddonContext : public Napi::ObjectWrap<AddonContext> {
|
|
|
1091
1134
|
return info.Env().Undefined();
|
|
1092
1135
|
}
|
|
1093
1136
|
|
|
1094
|
-
return Napi::Number::From(info.Env(),
|
|
1137
|
+
return Napi::Number::From(info.Env(), llama_state_get_size(ctx));
|
|
1095
1138
|
}
|
|
1096
1139
|
|
|
1097
1140
|
Napi::Value PrintTimings(const Napi::CallbackInfo& info) {
|
|
@@ -1117,6 +1160,7 @@ class AddonContext : public Napi::ObjectWrap<AddonContext> {
|
|
|
1117
1160
|
InstanceMethod("decodeBatch", &AddonContext::DecodeBatch),
|
|
1118
1161
|
InstanceMethod("sampleToken", &AddonContext::SampleToken),
|
|
1119
1162
|
InstanceMethod("acceptGrammarEvaluationStateToken", &AddonContext::AcceptGrammarEvaluationStateToken),
|
|
1163
|
+
InstanceMethod("canBeNextTokenForGrammarEvaluationState", &AddonContext::CanBeNextTokenForGrammarEvaluationState),
|
|
1120
1164
|
InstanceMethod("getEmbedding", &AddonContext::GetEmbedding),
|
|
1121
1165
|
InstanceMethod("getStateSize", &AddonContext::GetStateSize),
|
|
1122
1166
|
InstanceMethod("printTimings", &AddonContext::PrintTimings),
|
|
@@ -1219,7 +1263,7 @@ class AddonContextLoadContextWorker : public Napi::AsyncWorker {
|
|
|
1219
1263
|
}
|
|
1220
1264
|
void OnOK() {
|
|
1221
1265
|
if (context->contextLoaded) {
|
|
1222
|
-
uint64_t contextMemorySize =
|
|
1266
|
+
uint64_t contextMemorySize = llama_state_get_size(context->ctx);
|
|
1223
1267
|
adjustNapiExternalMemoryAdd(Env(), contextMemorySize);
|
|
1224
1268
|
context->loadedContextMemorySize = contextMemorySize;
|
|
1225
1269
|
}
|
|
@@ -1334,6 +1378,8 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1334
1378
|
float repeat_penalty_presence_penalty = 0.00f; // 0.0 = disabled
|
|
1335
1379
|
float repeat_penalty_frequency_penalty = 0.00f; // 0.0 = disabled
|
|
1336
1380
|
std::vector<llama_token> repeat_penalty_tokens;
|
|
1381
|
+
std::unordered_map<llama_token, float> tokenBiases;
|
|
1382
|
+
bool useTokenBiases = false;
|
|
1337
1383
|
bool use_repeat_penalty = false;
|
|
1338
1384
|
|
|
1339
1385
|
AddonContextSampleTokenWorker(const Napi::CallbackInfo& info, AddonContext* ctx)
|
|
@@ -1378,6 +1424,19 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1378
1424
|
use_repeat_penalty = true;
|
|
1379
1425
|
}
|
|
1380
1426
|
|
|
1427
|
+
if (options.Has("tokenBiasKeys") && options.Has("tokenBiasValues")) {
|
|
1428
|
+
Napi::Uint32Array tokenBiasKeys = options.Get("tokenBiasKeys").As<Napi::Uint32Array>();
|
|
1429
|
+
Napi::Float32Array tokenBiasValues = options.Get("tokenBiasValues").As<Napi::Float32Array>();
|
|
1430
|
+
|
|
1431
|
+
if (tokenBiasKeys.ElementLength() == tokenBiasValues.ElementLength()) {
|
|
1432
|
+
for (size_t i = 0; i < tokenBiasKeys.ElementLength(); i++) {
|
|
1433
|
+
tokenBiases[static_cast<llama_token>(tokenBiasKeys[i])] = tokenBiasValues[i];
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
useTokenBiases = true;
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1381
1440
|
if (options.Has("repeatPenaltyPresencePenalty")) {
|
|
1382
1441
|
repeat_penalty_presence_penalty = options.Get("repeatPenaltyPresencePenalty").As<Napi::Number>().FloatValue();
|
|
1383
1442
|
}
|
|
@@ -1431,13 +1490,27 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1431
1490
|
candidates.reserve(n_vocab);
|
|
1432
1491
|
|
|
1433
1492
|
for (llama_token token_id = 0; token_id < n_vocab; token_id++) {
|
|
1434
|
-
|
|
1493
|
+
auto logit = logits[token_id];
|
|
1494
|
+
|
|
1495
|
+
if (useTokenBiases) {
|
|
1496
|
+
bool hasTokenBias = tokenBiases.find(token_id) != tokenBiases.end();
|
|
1497
|
+
if (hasTokenBias) {
|
|
1498
|
+
auto logitBias = tokenBiases.at(token_id);
|
|
1499
|
+
if (logitBias == -INFINITY || logitBias < -INFINITY) {
|
|
1500
|
+
if (!llama_token_is_eog(ctx->model->model, token_id)) {
|
|
1501
|
+
logit = -INFINITY;
|
|
1502
|
+
}
|
|
1503
|
+
} else {
|
|
1504
|
+
logit += logitBias;
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
candidates.emplace_back(llama_token_data { token_id, logit, 0.0f });
|
|
1435
1510
|
}
|
|
1436
1511
|
|
|
1437
1512
|
llama_token_data_array candidates_p = { candidates.data(), candidates.size(), false };
|
|
1438
1513
|
|
|
1439
|
-
auto eos_token = llama_token_eos(ctx->model->model);
|
|
1440
|
-
|
|
1441
1514
|
if (use_repeat_penalty && !repeat_penalty_tokens.empty()) {
|
|
1442
1515
|
llama_sample_repetition_penalties(
|
|
1443
1516
|
ctx->ctx,
|
|
@@ -1452,6 +1525,13 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1452
1525
|
|
|
1453
1526
|
if (use_grammar && (grammar_evaluation_state)->grammar != nullptr) {
|
|
1454
1527
|
llama_sample_grammar(ctx->ctx, &candidates_p, (grammar_evaluation_state)->grammar);
|
|
1528
|
+
|
|
1529
|
+
if ((candidates_p.size == 0 || candidates_p.data[0].logit == -INFINITY) && useTokenBiases) {
|
|
1530
|
+
// logit biases caused grammar sampling to fail, so sampling again without logit biases
|
|
1531
|
+
useTokenBiases = false;
|
|
1532
|
+
SampleToken();
|
|
1533
|
+
return;
|
|
1534
|
+
}
|
|
1455
1535
|
}
|
|
1456
1536
|
|
|
1457
1537
|
if (temperature <= 0) {
|
|
@@ -1475,7 +1555,7 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
|
|
|
1475
1555
|
new_token_id = llama_sample_token(ctx->ctx, &candidates_p);
|
|
1476
1556
|
}
|
|
1477
1557
|
|
|
1478
|
-
if (new_token_id
|
|
1558
|
+
if (!llama_token_is_eog(ctx->model->model, new_token_id) && use_grammar && (grammar_evaluation_state)->grammar != nullptr) {
|
|
1479
1559
|
llama_grammar_accept_token(ctx->ctx, (grammar_evaluation_state)->grammar, new_token_id);
|
|
1480
1560
|
}
|
|
1481
1561
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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":"b2717"}}}
|
|
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.17",
|
|
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,25 @@
|
|
|
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",
|
|
160
|
+
"filenamify": "^6.0.0",
|
|
163
161
|
"fs-extra": "^11.2.0",
|
|
162
|
+
"ipull": "^3.0.11",
|
|
163
|
+
"is-unicode-supported": "^2.0.0",
|
|
164
164
|
"lifecycle-utils": "^1.4.1",
|
|
165
165
|
"log-symbols": "^5.1.0",
|
|
166
166
|
"node-addon-api": "^7.0.0",
|
|
167
167
|
"octokit": "^3.1.0",
|
|
168
168
|
"ora": "^7.0.1",
|
|
169
|
+
"pretty-ms": "^9.0.0",
|
|
169
170
|
"proper-lockfile": "^4.1.2",
|
|
170
171
|
"semver": "^7.6.0",
|
|
171
172
|
"simple-git": "^3.19.1",
|
|
172
173
|
"slice-ansi": "^7.1.0",
|
|
174
|
+
"stdout-update": "^4.0.1",
|
|
173
175
|
"strip-ansi": "^7.1.0",
|
|
174
176
|
"uuid": "^9.0.0",
|
|
175
177
|
"which": "^4.0.0",
|