node-llama-cpp 3.0.0-beta.4 → 3.0.0-beta.6
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/{utils/getBin.d.ts → bindings/AddonTypes.d.ts} +2 -2
- package/dist/bindings/AddonTypes.js +2 -0
- package/dist/bindings/AddonTypes.js.map +1 -0
- package/dist/bindings/Llama.d.ts +21 -0
- package/dist/bindings/Llama.js +213 -0
- package/dist/bindings/Llama.js.map +1 -0
- package/dist/bindings/getLlama.d.ts +83 -0
- package/dist/bindings/getLlama.js +216 -0
- package/dist/bindings/getLlama.js.map +1 -0
- package/dist/bindings/types.d.ts +33 -0
- package/dist/bindings/types.js +30 -0
- package/dist/bindings/types.js.map +1 -0
- package/dist/bindings/utils/NoBinaryFoundError.d.ts +2 -0
- package/dist/bindings/utils/NoBinaryFoundError.js +7 -0
- package/dist/bindings/utils/NoBinaryFoundError.js.map +1 -0
- package/dist/{utils → bindings/utils}/binariesGithubRelease.js +1 -1
- package/dist/bindings/utils/binariesGithubRelease.js.map +1 -0
- package/dist/bindings/utils/clearAllLocalBuilds.d.ts +1 -0
- package/dist/bindings/utils/clearAllLocalBuilds.js +47 -0
- package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +11 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.js +151 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -0
- package/dist/bindings/utils/compileLLamaCpp.d.ts +12 -0
- package/dist/bindings/utils/compileLLamaCpp.js +157 -0
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.d.ts +5 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +85 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -0
- package/dist/bindings/utils/getCanUsePrebuiltBinaries.d.ts +1 -0
- package/dist/bindings/utils/getCanUsePrebuiltBinaries.js +8 -0
- package/dist/bindings/utils/getCanUsePrebuiltBinaries.js.map +1 -0
- package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.d.ts +2 -0
- package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js +21 -0
- package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -0
- package/dist/bindings/utils/getPlatform.d.ts +2 -0
- package/dist/bindings/utils/getPlatform.js +15 -0
- package/dist/bindings/utils/getPlatform.js.map +1 -0
- package/dist/bindings/utils/lastBuildInfo.d.ts +6 -0
- package/dist/bindings/utils/lastBuildInfo.js +17 -0
- package/dist/bindings/utils/lastBuildInfo.js.map +1 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +2 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +28 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.d.ts +1 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.js +43 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -0
- package/dist/chatWrappers/ChatMLChatWrapper.d.ts +5 -0
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +1 -1
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
- package/dist/cli/cli.js +2 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/BuildCommand.d.ts +2 -1
- package/dist/cli/commands/BuildCommand.js +43 -10
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +6 -2
- package/dist/cli/commands/ChatCommand.js +69 -15
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/ClearCommand.js +4 -6
- package/dist/cli/commands/ClearCommand.js.map +1 -1
- package/dist/cli/commands/DownloadCommand.d.ts +2 -1
- package/dist/cli/commands/DownloadCommand.js +47 -40
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/OnPostInstallCommand.js +4 -10
- package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
- package/dist/config.d.ts +9 -3
- package/dist/config.js +14 -6
- package/dist/config.js.map +1 -1
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/LlamaChat.js +5 -4
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/FunctionCallGrammar.d.ts +2 -1
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/FunctionCallGrammar.js +2 -1
- package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +18 -0
- package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/LlamaChatSession.js +2 -0
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.js +5 -2
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -0
- package/dist/evaluator/LlamaContext/types.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaEmbeddingContext.d.ts +2 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaEmbeddingContext.js +13 -8
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.d.ts +4 -2
- package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.js +8 -7
- package/dist/evaluator/LlamaGrammar.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.js +4 -4
- package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.d.ts +2 -1
- package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.js +2 -1
- package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaModel.d.ts +4 -3
- package/dist/{llamaEvaluator → evaluator}/LlamaModel.js +4 -6
- package/dist/evaluator/LlamaModel.js.map +1 -0
- package/dist/index.d.ts +16 -12
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.js +7 -0
- package/dist/state.js.map +1 -1
- package/dist/utils/cmake.js +16 -11
- package/dist/utils/cmake.js.map +1 -1
- package/dist/utils/getConsoleLogPrefix.d.ts +1 -0
- package/dist/utils/getConsoleLogPrefix.js +9 -0
- package/dist/utils/getConsoleLogPrefix.js.map +1 -0
- package/dist/utils/getGrammarsFolder.d.ts +2 -1
- package/dist/utils/getGrammarsFolder.js +8 -7
- package/dist/utils/getGrammarsFolder.js.map +1 -1
- package/dist/utils/getModuleVersion.d.ts +1 -0
- package/dist/utils/getModuleVersion.js +13 -0
- package/dist/utils/getModuleVersion.js.map +1 -0
- package/dist/utils/gitReleaseBundles.js +6 -5
- package/dist/utils/gitReleaseBundles.js.map +1 -1
- package/dist/utils/hashString.d.ts +1 -0
- package/dist/utils/hashString.js +8 -0
- package/dist/utils/hashString.js.map +1 -0
- package/dist/utils/isLockfileActive.d.ts +4 -0
- package/dist/utils/isLockfileActive.js +12 -0
- package/dist/utils/isLockfileActive.js.map +1 -0
- package/dist/utils/parseModelTypeDescription.d.ts +1 -1
- package/dist/utils/prettyPrintObject.d.ts +1 -0
- package/dist/utils/prettyPrintObject.js +38 -0
- package/dist/utils/prettyPrintObject.js.map +1 -0
- package/dist/utils/removeNullFields.d.ts +1 -0
- package/dist/utils/removeNullFields.js +8 -0
- package/dist/utils/removeNullFields.js.map +1 -1
- package/dist/utils/resolveChatWrapper.d.ts +1 -1
- package/dist/utils/resolveGithubRelease.d.ts +2 -0
- package/dist/utils/resolveGithubRelease.js +36 -0
- package/dist/utils/resolveGithubRelease.js.map +1 -0
- package/dist/utils/spawnCommand.d.ts +1 -1
- package/dist/utils/spawnCommand.js +4 -2
- package/dist/utils/spawnCommand.js.map +1 -1
- package/dist/utils/tokenizeInput.d.ts +3 -0
- package/dist/utils/tokenizeInput.js +9 -0
- package/dist/utils/tokenizeInput.js.map +1 -0
- package/dist/utils/waitForLockfileRelease.d.ts +5 -0
- package/dist/utils/waitForLockfileRelease.js +20 -0
- package/dist/utils/waitForLockfileRelease.js.map +1 -0
- package/dist/utils/withLockfile.d.ts +7 -0
- package/dist/utils/withLockfile.js +44 -0
- package/dist/utils/withLockfile.js.map +1 -0
- package/dist/utils/withStatusLogs.d.ts +2 -1
- package/dist/utils/withStatusLogs.js +11 -8
- package/dist/utils/withStatusLogs.js.map +1 -1
- package/llama/addon.cpp +102 -0
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/llama.cpp.info.json +4 -0
- package/llamaBins/linux-arm64/.buildMetadata.json +1 -0
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/.buildMetadata.json +1 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/.buildMetadata.json +1 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -0
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/mac-arm64/.buildMetadata.json +1 -0
- package/llamaBins/mac-arm64/llama-addon.node +0 -0
- package/llamaBins/mac-x64-metal/.buildMetadata.json +1 -0
- package/llamaBins/mac-x64-metal/ggml-metal.metal +6119 -0
- package/llamaBins/mac-x64-metal/llama-addon.node +0 -0
- package/llamaBins/win-x64/.buildMetadata.json +1 -0
- package/llamaBins/win-x64/llama-addon.exp +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/.buildMetadata.json +1 -0
- package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
- package/package.json +10 -4
- package/dist/llamaEvaluator/LlamaBins.d.ts +0 -18
- package/dist/llamaEvaluator/LlamaBins.js +0 -5
- package/dist/llamaEvaluator/LlamaBins.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChat/LlamaChat.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/types.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaEmbeddingContext.js.map +0 -1
- package/dist/llamaEvaluator/LlamaGrammar.js.map +0 -1
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +0 -1
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +0 -1
- package/dist/llamaEvaluator/LlamaModel.js.map +0 -1
- package/dist/utils/binariesGithubRelease.js.map +0 -1
- package/dist/utils/clearLlamaBuild.d.ts +0 -1
- package/dist/utils/clearLlamaBuild.js +0 -12
- package/dist/utils/clearLlamaBuild.js.map +0 -1
- package/dist/utils/cloneLlamaCppRepo.d.ts +0 -2
- package/dist/utils/cloneLlamaCppRepo.js +0 -102
- package/dist/utils/cloneLlamaCppRepo.js.map +0 -1
- package/dist/utils/compileLLamaCpp.d.ts +0 -8
- package/dist/utils/compileLLamaCpp.js +0 -132
- package/dist/utils/compileLLamaCpp.js.map +0 -1
- package/dist/utils/getBin.js +0 -78
- package/dist/utils/getBin.js.map +0 -1
- package/dist/utils/getReleaseInfo.d.ts +0 -7
- package/dist/utils/getReleaseInfo.js +0 -30
- package/dist/utils/getReleaseInfo.js.map +0 -1
- package/dist/utils/usedBinFlag.d.ts +0 -6
- package/dist/utils/usedBinFlag.js +0 -15
- package/dist/utils/usedBinFlag.js.map +0 -1
- package/llama/usedBin.json +0 -3
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- /package/dist/{utils → bindings/utils}/binariesGithubRelease.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChat/LlamaChat.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/LlamaChatSession.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/utils/defineChatSessionFunction.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/utils/defineChatSessionFunction.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.d.ts +0 -0
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Token } from "../types.js";
|
|
2
|
-
export declare function getPrebuildBinPath(): Promise<string | null>;
|
|
3
|
-
export declare function loadBin(): Promise<BindingModule>;
|
|
4
2
|
export type BindingModule = {
|
|
5
3
|
AddonModel: {
|
|
6
4
|
new (modelPath: string, params: {
|
|
@@ -29,6 +27,8 @@ export type BindingModule = {
|
|
|
29
27
|
new (grammar: AddonGrammar): AddonGrammarEvaluationState;
|
|
30
28
|
};
|
|
31
29
|
systemInfo(): string;
|
|
30
|
+
setLogger(logger: (level: number, message: string) => void): void;
|
|
31
|
+
setLoggerLogLevel(level: number): void;
|
|
32
32
|
};
|
|
33
33
|
export type AddonModel = {
|
|
34
34
|
dispose(): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddonTypes.js","sourceRoot":"","sources":["../../src/bindings/AddonTypes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LlamaLogLevel } from "./types.js";
|
|
2
|
+
export declare class Llama {
|
|
3
|
+
private constructor();
|
|
4
|
+
get metal(): boolean;
|
|
5
|
+
get cuda(): boolean;
|
|
6
|
+
get logLevel(): LlamaLogLevel;
|
|
7
|
+
set logLevel(value: LlamaLogLevel);
|
|
8
|
+
get logger(): (level: LlamaLogLevel, message: string) => void;
|
|
9
|
+
set logger(value: (level: LlamaLogLevel, message: string) => void);
|
|
10
|
+
get buildType(): "localBuild" | "prebuilt";
|
|
11
|
+
get cmakeOptions(): Readonly<Record<string, string>>;
|
|
12
|
+
get llamaCppRelease(): {
|
|
13
|
+
readonly repo: string;
|
|
14
|
+
readonly release: string;
|
|
15
|
+
};
|
|
16
|
+
get systemInfo(): string;
|
|
17
|
+
private _onAddonLog;
|
|
18
|
+
private _dispatchPendingLog;
|
|
19
|
+
private _callLogger;
|
|
20
|
+
static defaultConsoleLogger(level: LlamaLogLevel, message: string): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { getConsoleLogPrefix } from "../utils/getConsoleLogPrefix.js";
|
|
3
|
+
import { LlamaLogLevel } from "./types.js";
|
|
4
|
+
const LlamaLogLevelToAddonLogLevel = new Map([
|
|
5
|
+
[LlamaLogLevel.disabled, 0],
|
|
6
|
+
[LlamaLogLevel.fatal, 1],
|
|
7
|
+
[LlamaLogLevel.error, 2],
|
|
8
|
+
[LlamaLogLevel.warn, 3],
|
|
9
|
+
[LlamaLogLevel.info, 4],
|
|
10
|
+
[LlamaLogLevel.debug, 5]
|
|
11
|
+
]);
|
|
12
|
+
const addonLogLevelToLlamaLogLevel = new Map([...LlamaLogLevelToAddonLogLevel.entries()].map(([key, value]) => [value, key]));
|
|
13
|
+
const defaultLogLevel = 5;
|
|
14
|
+
export class Llama {
|
|
15
|
+
/** @internal */ _bindings;
|
|
16
|
+
/** @internal */ _metal;
|
|
17
|
+
/** @internal */ _cuda;
|
|
18
|
+
/** @internal */ _buildType;
|
|
19
|
+
/** @internal */ _cmakeOptions;
|
|
20
|
+
/** @internal */ _llamaCppRelease;
|
|
21
|
+
/** @internal */ _logger;
|
|
22
|
+
/** @internal */ _logLevel;
|
|
23
|
+
/** @internal */ _pendingLog = null;
|
|
24
|
+
/** @internal */ _pendingLogLevel = null;
|
|
25
|
+
/** @internal */ _logDispatchTimeout = undefined;
|
|
26
|
+
/** @internal */ _previousLog = null;
|
|
27
|
+
/** @internal */ _previousLogLevel = null;
|
|
28
|
+
/** @internal */ _nextLogNeedNewLine = false;
|
|
29
|
+
constructor({ bindings, metal, cuda, logLevel, logger, buildType, cmakeOptions, llamaCppRelease }) {
|
|
30
|
+
this._bindings = bindings;
|
|
31
|
+
this._metal = metal;
|
|
32
|
+
this._cuda = cuda;
|
|
33
|
+
this._logLevel = logLevel ?? LlamaLogLevel.debug;
|
|
34
|
+
this._logger = logger;
|
|
35
|
+
this._buildType = buildType;
|
|
36
|
+
this._cmakeOptions = Object.freeze({ ...cmakeOptions });
|
|
37
|
+
this._llamaCppRelease = Object.freeze({
|
|
38
|
+
repo: llamaCppRelease.repo,
|
|
39
|
+
release: llamaCppRelease.release
|
|
40
|
+
});
|
|
41
|
+
this._dispatchPendingLog = this._dispatchPendingLog.bind(this);
|
|
42
|
+
this._onAddonLog = this._onAddonLog.bind(this);
|
|
43
|
+
this._bindings.setLogger(this._onAddonLog);
|
|
44
|
+
this._bindings.setLoggerLogLevel(LlamaLogLevelToAddonLogLevel.get(this._logLevel) ?? defaultLogLevel);
|
|
45
|
+
}
|
|
46
|
+
/** @internal */
|
|
47
|
+
static async _create({ bindings, buildType, buildMetadata, logLevel, logger }) {
|
|
48
|
+
return new Llama({
|
|
49
|
+
bindings,
|
|
50
|
+
buildType,
|
|
51
|
+
metal: buildMetadata.buildOptions.computeLayers.metal,
|
|
52
|
+
cuda: buildMetadata.buildOptions.computeLayers.cuda,
|
|
53
|
+
cmakeOptions: buildMetadata.buildOptions.customCmakeOptions,
|
|
54
|
+
llamaCppRelease: {
|
|
55
|
+
repo: buildMetadata.buildOptions.llamaCpp.repo,
|
|
56
|
+
release: buildMetadata.buildOptions.llamaCpp.release
|
|
57
|
+
},
|
|
58
|
+
logLevel,
|
|
59
|
+
logger
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
get metal() {
|
|
63
|
+
return this._metal;
|
|
64
|
+
}
|
|
65
|
+
get cuda() {
|
|
66
|
+
return this._cuda;
|
|
67
|
+
}
|
|
68
|
+
get logLevel() {
|
|
69
|
+
return this._logLevel;
|
|
70
|
+
}
|
|
71
|
+
set logLevel(value) {
|
|
72
|
+
if (value === this._logLevel)
|
|
73
|
+
return;
|
|
74
|
+
this._bindings.setLoggerLogLevel(LlamaLogLevelToAddonLogLevel.get(value) ?? defaultLogLevel);
|
|
75
|
+
this._logLevel = value;
|
|
76
|
+
}
|
|
77
|
+
get logger() {
|
|
78
|
+
return this._logger;
|
|
79
|
+
}
|
|
80
|
+
set logger(value) {
|
|
81
|
+
this._logger = value;
|
|
82
|
+
if (value !== Llama.defaultConsoleLogger)
|
|
83
|
+
this._nextLogNeedNewLine = false;
|
|
84
|
+
}
|
|
85
|
+
get buildType() {
|
|
86
|
+
return this._buildType;
|
|
87
|
+
}
|
|
88
|
+
get cmakeOptions() {
|
|
89
|
+
return this._cmakeOptions;
|
|
90
|
+
}
|
|
91
|
+
get llamaCppRelease() {
|
|
92
|
+
return this._llamaCppRelease;
|
|
93
|
+
}
|
|
94
|
+
get systemInfo() {
|
|
95
|
+
return this._bindings.systemInfo();
|
|
96
|
+
}
|
|
97
|
+
_onAddonLog(level, message) {
|
|
98
|
+
const llamaLogLevel = addonLogLevelToLlamaLogLevel.get(level) ?? LlamaLogLevel.fatal;
|
|
99
|
+
clearTimeout(this._logDispatchTimeout);
|
|
100
|
+
if (this._pendingLog != null && this._pendingLogLevel != null && this._pendingLogLevel != llamaLogLevel) {
|
|
101
|
+
this._callLogger(this._pendingLogLevel, this._pendingLog);
|
|
102
|
+
this._pendingLog = null;
|
|
103
|
+
}
|
|
104
|
+
const sourceMessage = (this._pendingLog ?? "") + message;
|
|
105
|
+
const lastNewLineIndex = sourceMessage.lastIndexOf("\n");
|
|
106
|
+
const currentLog = lastNewLineIndex < 0
|
|
107
|
+
? sourceMessage
|
|
108
|
+
: sourceMessage.slice(0, lastNewLineIndex);
|
|
109
|
+
const nextLog = lastNewLineIndex < 0
|
|
110
|
+
? ""
|
|
111
|
+
: sourceMessage.slice(lastNewLineIndex + 1);
|
|
112
|
+
if (currentLog !== "")
|
|
113
|
+
this._callLogger(llamaLogLevel, currentLog);
|
|
114
|
+
if (nextLog !== "") {
|
|
115
|
+
this._pendingLog = nextLog;
|
|
116
|
+
this._pendingLogLevel = llamaLogLevel;
|
|
117
|
+
clearTimeout(this._logDispatchTimeout);
|
|
118
|
+
this._logDispatchTimeout = setTimeout(this._dispatchPendingLog, 0);
|
|
119
|
+
}
|
|
120
|
+
else
|
|
121
|
+
this._pendingLog = null;
|
|
122
|
+
}
|
|
123
|
+
_dispatchPendingLog() {
|
|
124
|
+
clearTimeout(this._logDispatchTimeout);
|
|
125
|
+
if (this._pendingLog != null && this._pendingLogLevel != null) {
|
|
126
|
+
this._callLogger(this._pendingLogLevel, this._pendingLog);
|
|
127
|
+
this._pendingLog = null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
_callLogger(level, message) {
|
|
131
|
+
// llama.cpp uses dots to indicate progress, so we don't want to print them as different lines,
|
|
132
|
+
// and instead, append to the same log line
|
|
133
|
+
if (logMessageIsOnlyDots(message) && this._logger === Llama.defaultConsoleLogger) {
|
|
134
|
+
if (logMessageIsOnlyDots(this._previousLog) && level === this._previousLogLevel) {
|
|
135
|
+
process.stdout.write(message);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this._nextLogNeedNewLine = true;
|
|
139
|
+
process.stdout.write(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
if (this._nextLogNeedNewLine) {
|
|
144
|
+
process.stdout.write("\n");
|
|
145
|
+
this._nextLogNeedNewLine = false;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
this._logger(level, message);
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
// the native addon code calls this function, so there's no use to throw an error here
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
this._previousLog = message;
|
|
155
|
+
this._previousLogLevel = level;
|
|
156
|
+
}
|
|
157
|
+
static defaultConsoleLogger(level, message) {
|
|
158
|
+
switch (level) {
|
|
159
|
+
case LlamaLogLevel.disabled:
|
|
160
|
+
break;
|
|
161
|
+
case LlamaLogLevel.fatal:
|
|
162
|
+
// we don't use console.error here because it prints the stack trace
|
|
163
|
+
console.warn(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
164
|
+
break;
|
|
165
|
+
case LlamaLogLevel.error:
|
|
166
|
+
// we don't use console.error here because it prints the stack trace
|
|
167
|
+
console.warn(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
168
|
+
break;
|
|
169
|
+
case LlamaLogLevel.warn:
|
|
170
|
+
console.warn(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
171
|
+
break;
|
|
172
|
+
case LlamaLogLevel.info:
|
|
173
|
+
console.info(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
174
|
+
break;
|
|
175
|
+
case LlamaLogLevel.debug:
|
|
176
|
+
console.debug(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
177
|
+
break;
|
|
178
|
+
default:
|
|
179
|
+
void (level);
|
|
180
|
+
console.warn(getConsoleLogPrefix() + getColorForLogLevel(LlamaLogLevel.warn)(`Unknown log level: ${level}`));
|
|
181
|
+
console.log(prefixAndColorMessage(message, getColorForLogLevel(level)));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function getColorForLogLevel(level) {
|
|
186
|
+
switch (level) {
|
|
187
|
+
case LlamaLogLevel.disabled: return chalk.whiteBright;
|
|
188
|
+
case LlamaLogLevel.fatal: return chalk.redBright;
|
|
189
|
+
case LlamaLogLevel.error: return chalk.red;
|
|
190
|
+
case LlamaLogLevel.warn: return chalk.yellow;
|
|
191
|
+
case LlamaLogLevel.info: return chalk.whiteBright;
|
|
192
|
+
case LlamaLogLevel.debug: return chalk.white;
|
|
193
|
+
default:
|
|
194
|
+
void (level);
|
|
195
|
+
return chalk.whiteBright;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
function prefixAndColorMessage(message, color) {
|
|
199
|
+
return getConsoleLogPrefix() + (message
|
|
200
|
+
.split("\n")
|
|
201
|
+
.map(line => color(line))
|
|
202
|
+
.join("\n" + getConsoleLogPrefix()));
|
|
203
|
+
}
|
|
204
|
+
function logMessageIsOnlyDots(message) {
|
|
205
|
+
if (message == null)
|
|
206
|
+
return false;
|
|
207
|
+
for (let i = 0; i < message.length; i++) {
|
|
208
|
+
if (message[i] !== ".")
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=Llama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Llama.js","sourceRoot":"","sources":["../../src/bindings/Llama.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { LlamaLogLevel } from "./types.js";
|
|
2
|
+
import { Llama } from "./Llama.js";
|
|
3
|
+
export type LlamaOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* Toggle Metal support in llama.cpp.
|
|
6
|
+
* Only supported on macOS.
|
|
7
|
+
* Enabled by default on Apple Silicon Macs.
|
|
8
|
+
*/
|
|
9
|
+
metal?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Toggle CUDA support on llama.cpp.
|
|
12
|
+
* Disabled by default.
|
|
13
|
+
*/
|
|
14
|
+
cuda?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Set the minimum log level for llama.cpp.
|
|
17
|
+
* Defaults to "debug".
|
|
18
|
+
*/
|
|
19
|
+
logLevel?: LlamaLogLevel;
|
|
20
|
+
/**
|
|
21
|
+
* Set a custom logger for llama.cpp logs.
|
|
22
|
+
*/
|
|
23
|
+
logger?: (level: LlamaLogLevel, message: string) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Set what build method to use.
|
|
26
|
+
* - **`"auto"`**: If a local build is found, use it.
|
|
27
|
+
* Otherwise, if a prebuilt binary is found, use it.
|
|
28
|
+
* Otherwise, build from source.
|
|
29
|
+
* - **`"never"`**: If a local build is found, use it.
|
|
30
|
+
* Otherwise, if a prebuilt binary is found, use it.
|
|
31
|
+
* Otherwise, throw a `NoBinaryFoundError` error.
|
|
32
|
+
* - **`"forceRebuild"`**: Always build from source.
|
|
33
|
+
* Be cautious with this option, as it will cause the build to fail on Windows when the binaries are in use by another process.
|
|
34
|
+
*
|
|
35
|
+
* Defaults to "auto".
|
|
36
|
+
*/
|
|
37
|
+
build?: "auto" | "never" | "forceRebuild";
|
|
38
|
+
/**
|
|
39
|
+
* Set custom CMake options for llama.cpp
|
|
40
|
+
*/
|
|
41
|
+
cmakeOptions?: Record<string, string>;
|
|
42
|
+
/**
|
|
43
|
+
* When a prebuilt binary is found, only use it if it was built with the same build options as the ones specified in `buildOptions`.
|
|
44
|
+
* Disabled by default.
|
|
45
|
+
*/
|
|
46
|
+
existingPrebuiltBinaryMustMatchBuildOptions?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Use prebuilt binaries if they match the build options.
|
|
49
|
+
* Enabled by default.
|
|
50
|
+
*/
|
|
51
|
+
usePrebuiltBinaries?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Print binary compilation progress logs.
|
|
54
|
+
* Enabled by default.
|
|
55
|
+
*/
|
|
56
|
+
progressLogs?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Don't download llama.cpp source if it's not found.
|
|
59
|
+
* When set to `true`, and llama.cpp source is not found, a `NoBinaryFoundError` error will be thrown.
|
|
60
|
+
* Disabled by default.
|
|
61
|
+
*/
|
|
62
|
+
skipDownload?: boolean;
|
|
63
|
+
};
|
|
64
|
+
export type LastBuildOptions = {
|
|
65
|
+
/**
|
|
66
|
+
* Set the minimum log level for llama.cpp.
|
|
67
|
+
* Defaults to "debug".
|
|
68
|
+
*/
|
|
69
|
+
logLevel?: LlamaLogLevel;
|
|
70
|
+
/**
|
|
71
|
+
* Set a custom logger for llama.cpp logs.
|
|
72
|
+
*/
|
|
73
|
+
logger?: (level: LlamaLogLevel, message: string) => void;
|
|
74
|
+
};
|
|
75
|
+
export declare const getLlamaFunctionName = "getLlama";
|
|
76
|
+
/**
|
|
77
|
+
* Get a llama.cpp binding.
|
|
78
|
+
* Defaults to prefer a prebuilt binary, and fallbacks to building from source if a prebuilt binary is not found.
|
|
79
|
+
* Pass `"lastCliBuild"` to default to use the last successful build created using the `download` or `build` CLI commands if one exists.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getLlama(): Promise<Llama>;
|
|
82
|
+
export declare function getLlama(options: LlamaOptions, lastBuildOptions?: never): Promise<Llama>;
|
|
83
|
+
export declare function getLlama(type: "lastBuild", lastBuildOptions?: LastBuildOptions): Promise<Llama>;
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import process from "process";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import console from "console";
|
|
4
|
+
import { createRequire } from "module";
|
|
5
|
+
import { builtinLlamaCppGitHubRepo, builtinLlamaCppRelease, defaultLlamaCppCudaSupport, defaultLlamaCppDebugLogs, defaultLlamaCppGitHubRepo, defaultLlamaCppMetalSupport, defaultLlamaCppRelease, defaultSkipDownload, llamaLocalBuildBinsDirectory } from "../config.js";
|
|
6
|
+
import { getConsoleLogPrefix } from "../utils/getConsoleLogPrefix.js";
|
|
7
|
+
import { waitForLockfileRelease } from "../utils/waitForLockfileRelease.js";
|
|
8
|
+
import { isGithubReleaseNeedsResolving, resolveGithubRelease } from "../utils/resolveGithubRelease.js";
|
|
9
|
+
import { compileLlamaCpp, getLocalBuildBinaryBuildMetadata, getLocalBuildBinaryPath, getPrebuiltBinaryBuildMetadata, getPrebuiltBinaryPath } from "./utils/compileLLamaCpp.js";
|
|
10
|
+
import { getLastBuildInfo } from "./utils/lastBuildInfo.js";
|
|
11
|
+
import { getClonedLlamaCppRepoReleaseInfo, isLlamaCppRepoCloned } from "./utils/cloneLlamaCppRepo.js";
|
|
12
|
+
import { getPlatform } from "./utils/getPlatform.js";
|
|
13
|
+
import { getBuildFolderNameForBuildOptions } from "./utils/getBuildFolderNameForBuildOptions.js";
|
|
14
|
+
import { resolveCustomCmakeOptions } from "./utils/resolveCustomCmakeOptions.js";
|
|
15
|
+
import { getCanUsePrebuiltBinaries } from "./utils/getCanUsePrebuiltBinaries.js";
|
|
16
|
+
import { NoBinaryFoundError } from "./utils/NoBinaryFoundError.js";
|
|
17
|
+
import { Llama } from "./Llama.js";
|
|
18
|
+
const require = createRequire(import.meta.url);
|
|
19
|
+
export const getLlamaFunctionName = "getLlama";
|
|
20
|
+
export async function getLlama(options, lastBuildOptions) {
|
|
21
|
+
if (options === "lastBuild") {
|
|
22
|
+
const lastBuildInfo = await getLastBuildInfo();
|
|
23
|
+
if (lastBuildInfo == null)
|
|
24
|
+
return getLlamaForOptions({});
|
|
25
|
+
const localBuildFolder = path.join(llamaLocalBuildBinsDirectory, lastBuildInfo.folderName);
|
|
26
|
+
const localBuildBinPath = await getLocalBuildBinaryPath(lastBuildInfo.folderName);
|
|
27
|
+
await waitForLockfileRelease({ resourcePath: localBuildFolder });
|
|
28
|
+
if (localBuildBinPath != null) {
|
|
29
|
+
try {
|
|
30
|
+
const binding = require(localBuildBinPath);
|
|
31
|
+
const buildMetadata = await getLocalBuildBinaryBuildMetadata(lastBuildInfo.folderName);
|
|
32
|
+
return await Llama._create({
|
|
33
|
+
bindings: binding,
|
|
34
|
+
buildType: "localBuild",
|
|
35
|
+
buildMetadata,
|
|
36
|
+
logger: lastBuildOptions?.logger ?? Llama.defaultConsoleLogger,
|
|
37
|
+
logLevel: lastBuildOptions?.logLevel ?? defaultLlamaCppDebugLogs
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.error(getConsoleLogPrefix() + "Failed to load last build. Error:", err);
|
|
42
|
+
console.info(getConsoleLogPrefix() + "Falling back to default binaries");
|
|
43
|
+
try {
|
|
44
|
+
delete require.cache[require.resolve(localBuildBinPath)];
|
|
45
|
+
}
|
|
46
|
+
catch (err) { }
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return getLlamaForOptions({});
|
|
50
|
+
}
|
|
51
|
+
return getLlamaForOptions(options ?? {});
|
|
52
|
+
}
|
|
53
|
+
async function getLlamaForOptions({ metal = defaultLlamaCppMetalSupport, cuda = defaultLlamaCppCudaSupport, logLevel = defaultLlamaCppDebugLogs, logger = Llama.defaultConsoleLogger, build = "auto", cmakeOptions = {}, existingPrebuiltBinaryMustMatchBuildOptions = false, usePrebuiltBinaries = true, progressLogs = true, skipDownload = defaultSkipDownload }) {
|
|
54
|
+
const platform = getPlatform();
|
|
55
|
+
const arch = process.arch;
|
|
56
|
+
if (platform !== "mac")
|
|
57
|
+
metal = false;
|
|
58
|
+
else if (platform === "mac" && arch === "arm64")
|
|
59
|
+
cuda = false;
|
|
60
|
+
if (logLevel == null)
|
|
61
|
+
logLevel = defaultLlamaCppDebugLogs;
|
|
62
|
+
if (logger == null)
|
|
63
|
+
logger = Llama.defaultConsoleLogger;
|
|
64
|
+
if (build == null)
|
|
65
|
+
build = "auto";
|
|
66
|
+
if (cmakeOptions == null)
|
|
67
|
+
cmakeOptions = {};
|
|
68
|
+
if (existingPrebuiltBinaryMustMatchBuildOptions == null)
|
|
69
|
+
existingPrebuiltBinaryMustMatchBuildOptions = false;
|
|
70
|
+
if (usePrebuiltBinaries == null)
|
|
71
|
+
usePrebuiltBinaries = true;
|
|
72
|
+
if (progressLogs == null)
|
|
73
|
+
progressLogs = true;
|
|
74
|
+
if (skipDownload == null)
|
|
75
|
+
skipDownload = defaultSkipDownload;
|
|
76
|
+
const clonedLlamaCppRepoReleaseInfo = await getClonedLlamaCppRepoReleaseInfo();
|
|
77
|
+
const buildOptions = {
|
|
78
|
+
customCmakeOptions: resolveCustomCmakeOptions(cmakeOptions),
|
|
79
|
+
progressLogs,
|
|
80
|
+
platform,
|
|
81
|
+
arch,
|
|
82
|
+
computeLayers: {
|
|
83
|
+
metal,
|
|
84
|
+
cuda
|
|
85
|
+
},
|
|
86
|
+
llamaCpp: {
|
|
87
|
+
repo: clonedLlamaCppRepoReleaseInfo?.llamaCppGithubRepo ?? builtinLlamaCppGitHubRepo,
|
|
88
|
+
release: clonedLlamaCppRepoReleaseInfo?.tag ?? builtinLlamaCppRelease
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
const canUsePrebuiltBinaries = (build === "forceRebuild" || !usePrebuiltBinaries)
|
|
92
|
+
? false
|
|
93
|
+
: await getCanUsePrebuiltBinaries();
|
|
94
|
+
let buildFolderName = await getBuildFolderNameForBuildOptions(buildOptions);
|
|
95
|
+
if (build === "auto" || build === "never") {
|
|
96
|
+
const localBuildFolder = path.join(llamaLocalBuildBinsDirectory, buildFolderName.withCustomCmakeOptions);
|
|
97
|
+
const localBuildBinPath = await getLocalBuildBinaryPath(buildFolderName.withCustomCmakeOptions);
|
|
98
|
+
await waitForLockfileRelease({ resourcePath: localBuildFolder });
|
|
99
|
+
if (localBuildBinPath != null) {
|
|
100
|
+
try {
|
|
101
|
+
const binding = require(localBuildBinPath);
|
|
102
|
+
const buildMetadata = await getLocalBuildBinaryBuildMetadata(buildFolderName.withCustomCmakeOptions);
|
|
103
|
+
return await Llama._create({
|
|
104
|
+
bindings: binding,
|
|
105
|
+
buildType: "localBuild",
|
|
106
|
+
buildMetadata,
|
|
107
|
+
logLevel,
|
|
108
|
+
logger
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
const binaryDescription = describeBinary(buildOptions);
|
|
113
|
+
console.error(getConsoleLogPrefix() + `Failed to load a local build ${binaryDescription}. Error:`, err);
|
|
114
|
+
console.info(getConsoleLogPrefix() + "Falling back to prebuilt binaries");
|
|
115
|
+
try {
|
|
116
|
+
delete require.cache[require.resolve(localBuildBinPath)];
|
|
117
|
+
}
|
|
118
|
+
catch (err) { }
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (canUsePrebuiltBinaries) {
|
|
122
|
+
const prebuiltBinPath = await getPrebuiltBinaryPath(existingPrebuiltBinaryMustMatchBuildOptions
|
|
123
|
+
? buildFolderName.withCustomCmakeOptions
|
|
124
|
+
: buildFolderName.withoutCustomCmakeOptions);
|
|
125
|
+
if (prebuiltBinPath != null) {
|
|
126
|
+
try {
|
|
127
|
+
const binding = require(prebuiltBinPath);
|
|
128
|
+
const buildMetadata = await getPrebuiltBinaryBuildMetadata(buildFolderName.withCustomCmakeOptions);
|
|
129
|
+
return await Llama._create({
|
|
130
|
+
bindings: binding,
|
|
131
|
+
buildType: "prebuilt",
|
|
132
|
+
buildMetadata,
|
|
133
|
+
logLevel,
|
|
134
|
+
logger
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
const binaryDescription = describeBinary({
|
|
139
|
+
...buildOptions,
|
|
140
|
+
customCmakeOptions: existingPrebuiltBinaryMustMatchBuildOptions
|
|
141
|
+
? buildOptions.customCmakeOptions
|
|
142
|
+
: new Map()
|
|
143
|
+
});
|
|
144
|
+
console.error(getConsoleLogPrefix() + `Failed to load a prebuilt ${binaryDescription}` + (build !== "never"
|
|
145
|
+
? ", falling back to building from source"
|
|
146
|
+
: "") + ". Error:", err);
|
|
147
|
+
try {
|
|
148
|
+
delete require.cache[require.resolve(prebuiltBinPath)];
|
|
149
|
+
}
|
|
150
|
+
catch (err) { }
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else if (progressLogs)
|
|
154
|
+
console.warn(getConsoleLogPrefix() + "A prebuilt binary was not found" + (build !== "never"
|
|
155
|
+
? ", falling back to building from source"
|
|
156
|
+
: ""));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (build === "never")
|
|
160
|
+
throw new NoBinaryFoundError();
|
|
161
|
+
const llamaCppRepoCloned = await isLlamaCppRepoCloned();
|
|
162
|
+
if (!llamaCppRepoCloned) {
|
|
163
|
+
if (skipDownload)
|
|
164
|
+
throw new NoBinaryFoundError("No prebuilt binaries found, no llama.cpp source found and `skipDownload` or NODE_LLAMA_CPP_SKIP_DOWNLOAD env var is set to true, so llama.cpp cannot be built from source");
|
|
165
|
+
buildOptions.llamaCpp.repo = defaultLlamaCppGitHubRepo;
|
|
166
|
+
buildOptions.llamaCpp.release = defaultLlamaCppRelease;
|
|
167
|
+
if (isGithubReleaseNeedsResolving(buildOptions.llamaCpp.release)) {
|
|
168
|
+
const [owner, name] = defaultLlamaCppGitHubRepo.split("/");
|
|
169
|
+
buildOptions.llamaCpp.release = await resolveGithubRelease(owner, name, buildOptions.llamaCpp.release);
|
|
170
|
+
buildFolderName = await getBuildFolderNameForBuildOptions(buildOptions);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
await compileLlamaCpp(buildOptions, {
|
|
174
|
+
ensureLlamaCppRepoIsCloned: !skipDownload,
|
|
175
|
+
downloadCmakeIfNeeded: true,
|
|
176
|
+
updateLastBuildInfo: false
|
|
177
|
+
});
|
|
178
|
+
const localBuildFolder = path.join(llamaLocalBuildBinsDirectory, buildFolderName.withCustomCmakeOptions);
|
|
179
|
+
await waitForLockfileRelease({ resourcePath: localBuildFolder });
|
|
180
|
+
const localBuildBinPath = await getLocalBuildBinaryPath(buildFolderName.withCustomCmakeOptions);
|
|
181
|
+
if (localBuildBinPath == null) {
|
|
182
|
+
throw new Error("Failed to build llama.cpp");
|
|
183
|
+
}
|
|
184
|
+
const binding = require(localBuildBinPath);
|
|
185
|
+
const buildMetadata = await getLocalBuildBinaryBuildMetadata(buildFolderName.withCustomCmakeOptions);
|
|
186
|
+
return await Llama._create({
|
|
187
|
+
bindings: binding,
|
|
188
|
+
buildType: "localBuild",
|
|
189
|
+
buildMetadata,
|
|
190
|
+
logLevel,
|
|
191
|
+
logger
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
function describeBinary(binaryOptions) {
|
|
195
|
+
let res = `binary for platform "${binaryOptions.platform}" "${binaryOptions.arch}"`;
|
|
196
|
+
const additions = [];
|
|
197
|
+
if (binaryOptions.computeLayers.metal)
|
|
198
|
+
additions.push("with Metal support");
|
|
199
|
+
if (binaryOptions.computeLayers.cuda)
|
|
200
|
+
additions.push("with CUDA support");
|
|
201
|
+
if (binaryOptions.customCmakeOptions.size > 0)
|
|
202
|
+
additions.push("with custom build options");
|
|
203
|
+
res += additions
|
|
204
|
+
.map((addition, index) => {
|
|
205
|
+
if (index === 0)
|
|
206
|
+
return " " + addition;
|
|
207
|
+
if (additions.length === 2)
|
|
208
|
+
return " and " + addition;
|
|
209
|
+
if (index === additions.length - 1)
|
|
210
|
+
return " and " + addition;
|
|
211
|
+
return ", " + addition;
|
|
212
|
+
})
|
|
213
|
+
.join("");
|
|
214
|
+
return res;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=getLlama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLlama.js","sourceRoot":"","sources":["../../src/bindings/getLlama.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import process from "process";
|
|
2
|
+
import { BinaryPlatform } from "./utils/getPlatform.js";
|
|
3
|
+
export type BuildOptions = {
|
|
4
|
+
customCmakeOptions: Map<string, string>;
|
|
5
|
+
progressLogs: boolean;
|
|
6
|
+
platform: BinaryPlatform;
|
|
7
|
+
arch: typeof process.arch;
|
|
8
|
+
computeLayers: {
|
|
9
|
+
metal: boolean;
|
|
10
|
+
cuda: boolean;
|
|
11
|
+
};
|
|
12
|
+
llamaCpp: {
|
|
13
|
+
repo: string;
|
|
14
|
+
release: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type BuildOptionsJSON = Omit<BuildOptions, "customCmakeOptions"> & {
|
|
18
|
+
customCmakeOptions: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
export declare function convertBuildOptionsJSONToBuildOptions(buildOptionsJSON: BuildOptionsJSON): BuildOptions;
|
|
21
|
+
export declare function convertBuildOptionsToBuildOptionsJSON(buildOptions: BuildOptions): BuildOptionsJSON;
|
|
22
|
+
export type BuildMetadataFile = {
|
|
23
|
+
buildOptions: BuildOptionsJSON;
|
|
24
|
+
};
|
|
25
|
+
export declare enum LlamaLogLevel {
|
|
26
|
+
disabled = "disabled",
|
|
27
|
+
fatal = "fatal",
|
|
28
|
+
error = "error",
|
|
29
|
+
warn = "warn",
|
|
30
|
+
info = "info",
|
|
31
|
+
debug = "debug"
|
|
32
|
+
}
|
|
33
|
+
export declare const LlamaLogLevelValues: readonly [LlamaLogLevel.disabled, LlamaLogLevel.fatal, LlamaLogLevel.error, LlamaLogLevel.warn, LlamaLogLevel.info, LlamaLogLevel.debug];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function convertBuildOptionsJSONToBuildOptions(buildOptionsJSON) {
|
|
2
|
+
return {
|
|
3
|
+
...buildOptionsJSON,
|
|
4
|
+
customCmakeOptions: new Map(Object.entries(buildOptionsJSON.customCmakeOptions))
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function convertBuildOptionsToBuildOptionsJSON(buildOptions) {
|
|
8
|
+
return {
|
|
9
|
+
...buildOptions,
|
|
10
|
+
customCmakeOptions: Object.fromEntries(buildOptions.customCmakeOptions)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export var LlamaLogLevel;
|
|
14
|
+
(function (LlamaLogLevel) {
|
|
15
|
+
LlamaLogLevel["disabled"] = "disabled";
|
|
16
|
+
LlamaLogLevel["fatal"] = "fatal";
|
|
17
|
+
LlamaLogLevel["error"] = "error";
|
|
18
|
+
LlamaLogLevel["warn"] = "warn";
|
|
19
|
+
LlamaLogLevel["info"] = "info";
|
|
20
|
+
LlamaLogLevel["debug"] = "debug";
|
|
21
|
+
})(LlamaLogLevel || (LlamaLogLevel = {}));
|
|
22
|
+
export const LlamaLogLevelValues = [
|
|
23
|
+
LlamaLogLevel.disabled,
|
|
24
|
+
LlamaLogLevel.fatal,
|
|
25
|
+
LlamaLogLevel.error,
|
|
26
|
+
LlamaLogLevel.warn,
|
|
27
|
+
LlamaLogLevel.info,
|
|
28
|
+
LlamaLogLevel.debug
|
|
29
|
+
];
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bindings/types.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,qCAAqC,CAAC,gBAAkC;IACpF,OAAO;QACH,GAAG,gBAAgB;QACnB,kBAAkB,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;KACnF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,YAA0B;IAC5E,OAAO;QACH,GAAG,YAAY;QACf,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC;KAC1E,CAAC;AACN,CAAC;AAMD,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,gCAAe,CAAA;AACnB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AACD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,aAAa,CAAC,QAAQ;IACtB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,IAAI;IAClB,aAAa,CAAC,IAAI;IAClB,aAAa,CAAC,KAAK;CACb,CAAC"}
|