node-llama-cpp 3.7.0 → 3.8.1
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/getLlama.d.ts +30 -1
- package/dist/bindings/getLlama.js +32 -8
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.js +7 -0
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/getLlamaGpuTypes.d.ts +13 -0
- package/dist/bindings/utils/getLlamaGpuTypes.js +34 -0
- package/dist/bindings/utils/getLlamaGpuTypes.js.map +1 -0
- package/dist/bindings/utils/testBindingBinary.js +26 -2
- package/dist/bindings/utils/testBindingBinary.js.map +1 -1
- package/dist/chatWrappers/QwenChatWrapper.d.ts +7 -0
- package/dist/chatWrappers/QwenChatWrapper.js +76 -37
- package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +1 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
- package/dist/cli/recommendedModels.js +79 -4
- package/dist/cli/recommendedModels.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.d.ts +44 -0
- package/dist/evaluator/LlamaChat/LlamaChat.js +20 -4
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +19 -2
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +24 -5
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +25 -1
- package/dist/evaluator/LlamaContext/LlamaContext.js +59 -1
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +5 -2
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +5 -3
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
- package/dist/gguf/insights/GgufInsights.js +24 -10
- package/dist/gguf/insights/GgufInsights.js.map +1 -1
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +57 -13
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -1
- package/dist/gguf/parser/GgufV2Parser.js +24 -17
- package/dist/gguf/parser/GgufV2Parser.js.map +1 -1
- package/dist/gguf/readGgufFileInfo.d.ts +11 -2
- package/dist/gguf/readGgufFileInfo.js +6 -5
- package/dist/gguf/readGgufFileInfo.js.map +1 -1
- package/dist/gguf/types/GgufMetadataTypes.d.ts +23 -2
- package/dist/gguf/types/GgufMetadataTypes.js +17 -0
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
- package/dist/gguf/utils/normalizeGgufDownloadUrl.d.ts +2 -1
- package/dist/gguf/utils/normalizeGgufDownloadUrl.js +4 -2
- package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/createModelDownloader.d.ts +12 -3
- package/dist/utils/createModelDownloader.js +9 -5
- package/dist/utils/createModelDownloader.js.map +1 -1
- package/dist/utils/modelDownloadEndpoints.d.ts +13 -0
- package/dist/utils/modelDownloadEndpoints.js +27 -0
- package/dist/utils/modelDownloadEndpoints.js.map +1 -0
- package/dist/utils/modelFileAccessTokens.d.ts +5 -0
- package/dist/utils/{modelFileAccesTokens.js → modelFileAccessTokens.js} +4 -4
- package/dist/utils/modelFileAccessTokens.js.map +1 -0
- package/dist/utils/parseModelUri.d.ts +5 -2
- package/dist/utils/parseModelUri.js +24 -22
- package/dist/utils/parseModelUri.js.map +1 -1
- package/dist/utils/resolveModelDestination.d.ts +2 -1
- package/dist/utils/resolveModelDestination.js +3 -3
- package/dist/utils/resolveModelDestination.js.map +1 -1
- package/dist/utils/resolveModelFile.d.ts +7 -1
- package/dist/utils/resolveModelFile.js +5 -4
- package/dist/utils/resolveModelFile.js.map +1 -1
- package/dist/utils/transformPromisable.d.ts +14 -0
- package/dist/utils/transformPromisable.js +32 -0
- package/dist/utils/transformPromisable.js.map +1 -1
- package/llama/CMakeLists.txt +12 -1
- package/llama/addon/AddonContext.cpp +139 -1
- package/llama/addon/AddonContext.h +3 -0
- package/llama/addon/AddonSampler.cpp +0 -1
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/gpuInfo/vulkan-gpu-info.cpp +0 -1
- package/llama/grammars/README.md +7 -7
- package/llama/llama.cpp.info.json +1 -1
- package/package.json +43 -43
- package/templates/packed/electron-typescript-react.json +1 -1
- package/templates/packed/node-typescript.json +1 -1
- package/dist/utils/modelFileAccesTokens.d.ts +0 -4
- package/dist/utils/modelFileAccesTokens.js.map +0 -1
|
@@ -4,40 +4,41 @@ import { getFilenameForBinarySplitGgufPartUrls, resolveBinarySplitGgufPartUrls }
|
|
|
4
4
|
import { createSplitPartFilename, getGgufSplitPartsInfo } from "../gguf/utils/resolveSplitGgufParts.js";
|
|
5
5
|
import { ggufQuantNames } from "../gguf/utils/ggufQuantNames.js";
|
|
6
6
|
import { isUrl } from "./isUrl.js";
|
|
7
|
-
import { resolveModelFileAccessTokensTryHeaders } from "./
|
|
7
|
+
import { resolveModelFileAccessTokensTryHeaders } from "./modelFileAccessTokens.js";
|
|
8
|
+
import { isHuggingFaceUrl, resolveHuggingFaceEndpoint } from "./modelDownloadEndpoints.js";
|
|
8
9
|
import { parseModelFileName } from "./parseModelFileName.js";
|
|
9
10
|
const defaultHuggingFaceBranch = "main";
|
|
10
11
|
const defaultHuggingFaceFileQuantization = "Q4_K_M";
|
|
11
12
|
export const genericFilePartNumber = "{:\n{number}\n:}";
|
|
12
|
-
export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
|
|
13
|
+
export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false, endpoints) {
|
|
13
14
|
if (urlOrUri.startsWith("hf://"))
|
|
14
|
-
return parseHuggingFaceUriContent(urlOrUri.slice("hf://".length), urlOrUri);
|
|
15
|
+
return parseHuggingFaceUriContent(urlOrUri.slice("hf://".length), urlOrUri, endpoints);
|
|
15
16
|
else if (urlOrUri.startsWith("huggingface://"))
|
|
16
|
-
return parseHuggingFaceUriContent(urlOrUri.slice("huggingface://".length), urlOrUri);
|
|
17
|
+
return parseHuggingFaceUriContent(urlOrUri.slice("huggingface://".length), urlOrUri, endpoints);
|
|
17
18
|
else if (urlOrUri.startsWith("hf:"))
|
|
18
|
-
return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length), urlOrUri);
|
|
19
|
+
return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length), urlOrUri, endpoints);
|
|
19
20
|
else if (urlOrUri.startsWith("huggingface:"))
|
|
20
|
-
return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length), urlOrUri);
|
|
21
|
+
return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length), urlOrUri, endpoints);
|
|
21
22
|
else if (urlOrUri.startsWith("hf.co/"))
|
|
22
|
-
return parseHuggingFaceUriContent(urlOrUri.slice("hf.co/".length), urlOrUri);
|
|
23
|
+
return parseHuggingFaceUriContent(urlOrUri.slice("hf.co/".length), urlOrUri, endpoints);
|
|
23
24
|
else if (urlOrUri.startsWith("huggingface.co/"))
|
|
24
|
-
return parseHuggingFaceUriContent(urlOrUri.slice("huggingface.co/".length), urlOrUri);
|
|
25
|
+
return parseHuggingFaceUriContent(urlOrUri.slice("huggingface.co/".length), urlOrUri, endpoints);
|
|
25
26
|
if (isUrl(urlOrUri)) {
|
|
26
27
|
const parsedUrl = new URL(urlOrUri);
|
|
27
|
-
if (parsedUrl.
|
|
28
|
+
if (isHuggingFaceUrl(parsedUrl.href, endpoints)) {
|
|
28
29
|
const pathnameParts = parsedUrl.pathname.split("/");
|
|
29
30
|
const slashes = pathnameParts.length - 1;
|
|
30
31
|
const [, user, model] = pathnameParts;
|
|
31
32
|
if (slashes === 2 && user != null && model != null) {
|
|
32
33
|
return parseHuggingFaceUriContent([
|
|
33
34
|
decodeURIComponent(user), "/", decodeURIComponent(model)
|
|
34
|
-
].join(""), urlOrUri);
|
|
35
|
+
].join(""), urlOrUri, endpoints);
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
if (convertUrlToSupportedUri && isUrl(urlOrUri)) {
|
|
39
|
-
const parsedUrl = new URL(normalizeGgufDownloadUrl(urlOrUri));
|
|
40
|
-
if (parsedUrl.
|
|
40
|
+
const parsedUrl = new URL(normalizeGgufDownloadUrl(urlOrUri, endpoints));
|
|
41
|
+
if (isHuggingFaceUrl(parsedUrl.href, endpoints)) {
|
|
41
42
|
const pathnameParts = parsedUrl.pathname.split("/");
|
|
42
43
|
const [, user, model, resolve, branch, ...pathParts] = pathnameParts;
|
|
43
44
|
const filePath = pathParts.join("/");
|
|
@@ -52,7 +53,7 @@ export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
|
|
|
52
53
|
branch !== defaultHuggingFaceBranch
|
|
53
54
|
? `#${decodeURIComponent(branch)}`
|
|
54
55
|
: ""
|
|
55
|
-
].join(""), urlOrUri);
|
|
56
|
+
].join(""), urlOrUri, endpoints);
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
59
|
}
|
|
@@ -66,7 +67,7 @@ export function isModelUri(modelUri) {
|
|
|
66
67
|
return false;
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
|
-
export async function resolveParsedModelUri(modelUri, { tokens, signal, authorizationHeader } = {}) {
|
|
70
|
+
export async function resolveParsedModelUri(modelUri, { tokens, endpoints, signal, authorizationHeader } = {}) {
|
|
70
71
|
if (modelUri == null)
|
|
71
72
|
return modelUri;
|
|
72
73
|
if (modelUri.type === "resolved")
|
|
@@ -80,6 +81,7 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
|
|
|
80
81
|
modelTag,
|
|
81
82
|
fullUri: modelUri.uri,
|
|
82
83
|
tokens,
|
|
84
|
+
endpoints,
|
|
83
85
|
signal,
|
|
84
86
|
authorizationHeader
|
|
85
87
|
});
|
|
@@ -101,7 +103,7 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
|
|
|
101
103
|
? createSplitPartFilename(resolvedBaseFilename, splitPartsInfo.part, splitPartsInfo.parts)
|
|
102
104
|
: resolvedBaseFilename;
|
|
103
105
|
const resolvedUrl = normalizeGgufDownloadUrl([
|
|
104
|
-
|
|
106
|
+
resolveHuggingFaceEndpoint(endpoints), encodeURIComponent(modelUri.resolveDetails.user),
|
|
105
107
|
"/", encodeURIComponent(modelUri.resolveDetails.model),
|
|
106
108
|
"/resolve/", encodeURIComponent(defaultHuggingFaceBranch), "/",
|
|
107
109
|
filename
|
|
@@ -109,7 +111,7 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
|
|
|
109
111
|
.map((item) => encodeURIComponent(item))
|
|
110
112
|
.join("/"),
|
|
111
113
|
"?download=true"
|
|
112
|
-
].join(""));
|
|
114
|
+
].join(""), endpoints);
|
|
113
115
|
return {
|
|
114
116
|
type: "resolved",
|
|
115
117
|
uri: modelUri.uri,
|
|
@@ -122,15 +124,15 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
|
|
|
122
124
|
export function getAuthorizationHeader(headers) {
|
|
123
125
|
return headers?.["Authorization"] || headers?.["authorization"];
|
|
124
126
|
}
|
|
125
|
-
async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, tokens, signal, authorizationHeader }) {
|
|
127
|
+
async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, tokens, endpoints, signal, authorizationHeader }) {
|
|
126
128
|
const manifestUrl = [
|
|
127
|
-
"
|
|
129
|
+
resolveHuggingFaceEndpoint(endpoints), "v2/", encodeURIComponent(user),
|
|
128
130
|
"/", encodeURIComponent(model),
|
|
129
131
|
"/manifests/", encodeURIComponent(modelTag)
|
|
130
132
|
].join("");
|
|
131
133
|
const headersToTry = [
|
|
132
134
|
{},
|
|
133
|
-
await resolveModelFileAccessTokensTryHeaders(manifestUrl, tokens)
|
|
135
|
+
await resolveModelFileAccessTokensTryHeaders(manifestUrl, tokens, endpoints)
|
|
134
136
|
];
|
|
135
137
|
while (headersToTry.length > 0) {
|
|
136
138
|
const headers = headersToTry.shift();
|
|
@@ -168,7 +170,7 @@ async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, t
|
|
|
168
170
|
}
|
|
169
171
|
throw new Error(`Failed to fetch manifest for ${JSON.stringify(fullUri)}: no more headers to try`);
|
|
170
172
|
}
|
|
171
|
-
function parseHuggingFaceUriContent(uri, fullUri) {
|
|
173
|
+
function parseHuggingFaceUriContent(uri, fullUri, endpoints) {
|
|
172
174
|
const [user, model, ...pathParts] = uri.split("/");
|
|
173
175
|
let rest = pathParts.join("/");
|
|
174
176
|
if (user != null && model != null && (rest === "" || model.includes(":"))) {
|
|
@@ -232,11 +234,11 @@ function parseHuggingFaceUriContent(uri, fullUri) {
|
|
|
232
234
|
if (!user || !model || filePath === "")
|
|
233
235
|
throw new Error(`Invalid Hugging Face URI: ${fullUri}`);
|
|
234
236
|
const resolvedUrl = normalizeGgufDownloadUrl([
|
|
235
|
-
|
|
237
|
+
resolveHuggingFaceEndpoint(endpoints), encodeURIComponent(user),
|
|
236
238
|
"/", encodeURIComponent(model),
|
|
237
239
|
"/resolve/", encodeURIComponent(branch),
|
|
238
240
|
"/", filePath, "?download=true"
|
|
239
|
-
].join(""));
|
|
241
|
+
].join(""), endpoints);
|
|
240
242
|
const filename = resolveModelFilenameFromUrl(resolvedUrl);
|
|
241
243
|
const filePrefix = buildHuggingFaceFilePrefix(user, model, branch, filePathParts.slice(0, -1), filename);
|
|
242
244
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseModelUri.js","sourceRoot":"","sources":["../../src/utils/parseModelUri.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parseModelUri.js","sourceRoot":"","sources":["../../src/utils/parseModelUri.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ParsedModelUri } from "./parseModelUri.js";
|
|
2
|
+
import { ModelDownloadEndpoints } from "./modelDownloadEndpoints.js";
|
|
2
3
|
export type ResolveModelDestination = {
|
|
3
4
|
type: "url";
|
|
4
5
|
url: string;
|
|
@@ -11,5 +12,5 @@ export type ResolveModelDestination = {
|
|
|
11
12
|
type: "file";
|
|
12
13
|
path: string;
|
|
13
14
|
};
|
|
14
|
-
export declare function resolveModelDestination(modelDestination: string, convertUrlToUri?: boolean): ResolveModelDestination;
|
|
15
|
+
export declare function resolveModelDestination(modelDestination: string, convertUrlToUri?: boolean, endpoints?: ModelDownloadEndpoints): ResolveModelDestination;
|
|
15
16
|
export declare function resolveModelArgToFilePathOrUrl(modelDestination: string, optionHeaders?: Record<string, string>): Promise<[resolvedModelDestination: ResolveModelDestination, filePathOrUrl: string]>;
|
|
@@ -2,8 +2,8 @@ import path from "path";
|
|
|
2
2
|
import { normalizeGgufDownloadUrl } from "../gguf/utils/normalizeGgufDownloadUrl.js";
|
|
3
3
|
import { parseModelUri, resolveParsedModelUri, getAuthorizationHeader } from "./parseModelUri.js";
|
|
4
4
|
import { isUrl } from "./isUrl.js";
|
|
5
|
-
export function resolveModelDestination(modelDestination, convertUrlToUri = false) {
|
|
6
|
-
const parsedUri = parseModelUri(modelDestination, convertUrlToUri);
|
|
5
|
+
export function resolveModelDestination(modelDestination, convertUrlToUri = false, endpoints) {
|
|
6
|
+
const parsedUri = parseModelUri(modelDestination, convertUrlToUri, endpoints);
|
|
7
7
|
if (parsedUri != null) {
|
|
8
8
|
return {
|
|
9
9
|
type: "uri",
|
|
@@ -17,7 +17,7 @@ export function resolveModelDestination(modelDestination, convertUrlToUri = fals
|
|
|
17
17
|
else if (isUrl(modelDestination)) {
|
|
18
18
|
return {
|
|
19
19
|
type: "url",
|
|
20
|
-
url: normalizeGgufDownloadUrl(modelDestination)
|
|
20
|
+
url: normalizeGgufDownloadUrl(modelDestination, endpoints)
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveModelDestination.js","sourceRoot":"","sources":["../../src/utils/resolveModelDestination.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,wBAAwB,EAAC,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAC,aAAa,EAAkB,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveModelDestination.js","sourceRoot":"","sources":["../../src/utils/resolveModelDestination.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,wBAAwB,EAAC,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAC,aAAa,EAAkB,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAgBjC,MAAM,UAAU,uBAAuB,CACnC,gBAAwB,EAAE,kBAA2B,KAAK,EAAE,SAAkC;IAE9F,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAE9E,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,SAAS,CAAC,IAAI,KAAK,UAAU;gBAC9B,CAAC,CAAC,SAAS,CAAC,WAAW;gBACvB,CAAC,CAAC,SAAS;YACf,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS;SACZ,CAAC;IACN,CAAC;SAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,wBAAwB,CAAC,gBAAgB,EAAE,SAAS,CAAC;SAC7D,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;SACtD,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,gBAAwB,EAAE,aAAsC;IAEhE,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAE3E,IAAI,wBAAwB,CAAC,IAAI,IAAI,MAAM;QACvC,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;SAChE,IAAI,wBAAwB,CAAC,IAAI,KAAK,KAAK;QAC5C,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC;SAC/D,IAAI,wBAAwB,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;QAC3D,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEtF,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,wBAAwB,CAAC,SAAS,EAAE;QACrF,mBAAmB,EAAE,sBAAsB,CAAC,aAAa,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO;QACH;YACI,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,gBAAgB,CAAC,WAAW;YACjC,GAAG,EAAE,gBAAgB,CAAC,GAAG;YACzB,SAAS,EAAE,gBAAgB;SAC9B;QACD,gBAAgB,CAAC,WAAW;KAC/B,CAAC;AACN,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ModelFileAccessTokens } from "./
|
|
1
|
+
import { ModelFileAccessTokens } from "./modelFileAccessTokens.js";
|
|
2
|
+
import { ModelDownloadEndpoints } from "./modelDownloadEndpoints.js";
|
|
2
3
|
export type ResolveModelFileOptions = {
|
|
3
4
|
/**
|
|
4
5
|
* The directory to resolve models from, and download models to.
|
|
@@ -63,6 +64,11 @@ export type ResolveModelFileOptions = {
|
|
|
63
64
|
* Tokens to use to access the remote model file when downloading.
|
|
64
65
|
*/
|
|
65
66
|
tokens?: ModelFileAccessTokens;
|
|
67
|
+
/**
|
|
68
|
+
* Configure the URLs used for resolving model URIs.
|
|
69
|
+
* @see [Model URIs](https://node-llama-cpp.withcat.ai/guide/downloading-models#model-uris)
|
|
70
|
+
*/
|
|
71
|
+
endpoints?: ModelDownloadEndpoints;
|
|
66
72
|
/**
|
|
67
73
|
* The signal to use to cancel a download.
|
|
68
74
|
*/
|
|
@@ -75,7 +75,7 @@ import { pushAll } from "./pushAll.js";
|
|
|
75
75
|
* @returns The resolved model file path
|
|
76
76
|
*/
|
|
77
77
|
export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
|
|
78
|
-
const { directory, download = "auto", verify = false, fileName, headers, cli = true, onProgress, deleteTempFileOnCancel = true, parallel = 4, tokens, signal } = typeof optionsOrDirectory === "string"
|
|
78
|
+
const { directory, download = "auto", verify = false, fileName, headers, cli = true, onProgress, deleteTempFileOnCancel = true, parallel = 4, tokens, endpoints, signal } = typeof optionsOrDirectory === "string"
|
|
79
79
|
? { directory: optionsOrDirectory }
|
|
80
80
|
: (optionsOrDirectory ?? {});
|
|
81
81
|
const resolvedDirectory = directory || cliModelsDirectory;
|
|
@@ -83,7 +83,7 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
|
|
|
83
83
|
let resolvedVerify = verify ?? false;
|
|
84
84
|
if (download === false)
|
|
85
85
|
resolvedVerify = false;
|
|
86
|
-
const resolvedModelDestination = resolveModelDestination(uriOrPath);
|
|
86
|
+
const resolvedModelDestination = resolveModelDestination(uriOrPath, undefined, endpoints);
|
|
87
87
|
if (resolvedModelDestination.type === "file") {
|
|
88
88
|
const resolvedFilePath = path.resolve(resolvedDirectory, uriOrPath);
|
|
89
89
|
if (await fs.pathExists(resolvedFilePath))
|
|
@@ -100,7 +100,7 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
|
|
|
100
100
|
pushAll(expectedFileNames, resolvedModelDestination.parsedUri.possibleFullFilenames);
|
|
101
101
|
}
|
|
102
102
|
else if (expectedFileNames.length === 0 && resolvedModelDestination.type === "url") {
|
|
103
|
-
const enforcedParsedUrl = resolveModelDestination(uriOrPath, true);
|
|
103
|
+
const enforcedParsedUrl = resolveModelDestination(uriOrPath, true, endpoints);
|
|
104
104
|
if (enforcedParsedUrl != null && enforcedParsedUrl.type === "uri") {
|
|
105
105
|
if (enforcedParsedUrl.parsedUri.type === "resolved")
|
|
106
106
|
expectedFileNames.push(enforcedParsedUrl.parsedUri.fullFilename);
|
|
@@ -140,7 +140,8 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
|
|
|
140
140
|
fileName: fileName || undefined,
|
|
141
141
|
parallelDownloads: parallel,
|
|
142
142
|
onProgress,
|
|
143
|
-
tokens
|
|
143
|
+
tokens,
|
|
144
|
+
endpoints
|
|
144
145
|
});
|
|
145
146
|
if (foundExpectedFilePath != null && downloader.totalFiles === 1 && await fs.pathExists(downloader.entrypointFilePath)) {
|
|
146
147
|
const fileStats = await fs.stat(foundExpectedFilePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,4 +37,18 @@ export declare function promisableLoop<R>({ condition, callback, afterthought, r
|
|
|
37
37
|
/** The value to return when the loop is done */
|
|
38
38
|
returnValue: () => Promisable<R>;
|
|
39
39
|
}): Promisable<R>;
|
|
40
|
+
/**
|
|
41
|
+
* Calls the given getters in order, and when a promise is encountered, waits for it to resolve before continuing.
|
|
42
|
+
* The result is transformed using the transformer function.
|
|
43
|
+
*
|
|
44
|
+
* This is used as a performance optimization to avoid adding many microtasks to the event loop,
|
|
45
|
+
* which makes reading from buffers significantly faster.
|
|
46
|
+
* @param getters - An array of functions that return values or promises
|
|
47
|
+
* @param transformer - The transformer function that takes the promisable values and transforms them into the result of this function
|
|
48
|
+
*/
|
|
49
|
+
export declare function transformPromisablesInOrder<const T extends (() => Promisable<any>)[], const R = {
|
|
50
|
+
readonly [Index in keyof T]: Awaited<ReturnType<T[Index]>>;
|
|
51
|
+
}>(getters: T, transformer?: (values: {
|
|
52
|
+
readonly [Index in keyof T]: Awaited<ReturnType<T[Index]>>;
|
|
53
|
+
}) => Promisable<R>): Promisable<R>;
|
|
40
54
|
export type Promisable<T> = T | Promise<T>;
|
|
@@ -60,4 +60,36 @@ export function promisableLoop({ condition, callback, afterthought = () => void
|
|
|
60
60
|
}
|
|
61
61
|
return iterate();
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Calls the given getters in order, and when a promise is encountered, waits for it to resolve before continuing.
|
|
65
|
+
* The result is transformed using the transformer function.
|
|
66
|
+
*
|
|
67
|
+
* This is used as a performance optimization to avoid adding many microtasks to the event loop,
|
|
68
|
+
* which makes reading from buffers significantly faster.
|
|
69
|
+
* @param getters - An array of functions that return values or promises
|
|
70
|
+
* @param transformer - The transformer function that takes the promisable values and transforms them into the result of this function
|
|
71
|
+
*/
|
|
72
|
+
export function transformPromisablesInOrder(getters, transformer = ((values) => values)) {
|
|
73
|
+
let i = 0;
|
|
74
|
+
const res = [];
|
|
75
|
+
let skipPushingValue = true;
|
|
76
|
+
function iterate(currentValue) {
|
|
77
|
+
if (skipPushingValue)
|
|
78
|
+
skipPushingValue = false;
|
|
79
|
+
else
|
|
80
|
+
res.push(currentValue);
|
|
81
|
+
while (i < getters.length) {
|
|
82
|
+
const getter = getters[i];
|
|
83
|
+
if (getter == null)
|
|
84
|
+
break;
|
|
85
|
+
i++;
|
|
86
|
+
const value = getter();
|
|
87
|
+
if (value instanceof Promise)
|
|
88
|
+
return value.then(iterate);
|
|
89
|
+
res.push(value);
|
|
90
|
+
}
|
|
91
|
+
return transformer(res);
|
|
92
|
+
}
|
|
93
|
+
return iterate(undefined);
|
|
94
|
+
}
|
|
63
95
|
//# sourceMappingURL=transformPromisable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformPromisable.js","sourceRoot":"","sources":["../../src/utils/transformPromisable.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAO,KAAoB,EAAE,WAAwC;IACpG,IAAI,KAAK,YAAY,OAAO;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAChC,MAA0D,EAC1D,WAA8E;IAE9E,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC;QAChD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,EAC9B,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAC3B,WAAW,EAad;IACG,SAAS,OAAO;QACZ,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC;YAEnC,IAAI,cAAc,YAAY,OAAO;gBACjC,OAAO,cAAc;qBAChB,IAAI,CAAC,CAAC,cAAc,EAAiB,EAAE;oBACpC,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;wBACzB,IAAI,KAAK,YAAY,OAAO;4BACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;wBAE1E,OAAO,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;oBAED,OAAO,WAAW,EAAE,CAAC;gBACzB,CAAC,CAAC,CAAC;YAEX,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,IAAI,KAAK,YAAY,OAAO;oBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBAE1E,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;gBACzC,IAAI,iBAAiB,YAAY,OAAO;oBACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE3C,SAAS;YACb,CAAC;YAED,OAAO,WAAW,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"transformPromisable.js","sourceRoot":"","sources":["../../src/utils/transformPromisable.ts"],"names":[],"mappings":"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"}
|
package/llama/CMakeLists.txt
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
cmake_minimum_required(VERSION 3.
|
|
1
|
+
cmake_minimum_required(VERSION 3.19)
|
|
2
2
|
|
|
3
3
|
if (NLC_CURRENT_PLATFORM STREQUAL "win-x64" OR NLC_CURRENT_PLATFORM STREQUAL "win-arm64")
|
|
4
4
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|
5
5
|
endif()
|
|
6
6
|
|
|
7
|
+
if (NLC_CURRENT_PLATFORM STREQUAL "win-x64")
|
|
8
|
+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
9
|
+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL" CACHE STRING "" FORCE)
|
|
10
|
+
else()
|
|
11
|
+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" CACHE STRING "" FORCE)
|
|
12
|
+
endif()
|
|
13
|
+
endif()
|
|
14
|
+
|
|
7
15
|
if (NLC_TARGET_PLATFORM STREQUAL "win-arm64" AND (CMAKE_GENERATOR STREQUAL "Ninja" OR CMAKE_GENERATOR STREQUAL "Ninja Multi-Config") AND NOT MINGW)
|
|
8
16
|
if(NLC_CURRENT_PLATFORM STREQUAL "win-x64")
|
|
9
17
|
include("./profiles/llvm.win32.host-x64.target-arm64.cmake")
|
|
@@ -70,6 +78,9 @@ add_subdirectory("llama.cpp")
|
|
|
70
78
|
include_directories("llama.cpp")
|
|
71
79
|
include_directories("./llama.cpp/common")
|
|
72
80
|
|
|
81
|
+
# This is needed to use methods in "llama-grammar.h" and "unicode.h"
|
|
82
|
+
target_include_directories(llama PUBLIC "./llama.cpp/src")
|
|
83
|
+
|
|
73
84
|
unset(GPU_INFO_HEADERS)
|
|
74
85
|
unset(GPU_INFO_SOURCES)
|
|
75
86
|
unset(GPU_INFO_EXTRA_LIBS)
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
#include <algorithm>
|
|
3
3
|
#include <cmath>
|
|
4
4
|
#include "common/common.h"
|
|
5
|
-
#include "llama-grammar.h"
|
|
6
5
|
#include "llama.h"
|
|
7
6
|
|
|
8
7
|
#include "addonGlobals.h"
|
|
@@ -703,6 +702,143 @@ Napi::Value AddonContext::SetThreads(const Napi::CallbackInfo& info) {
|
|
|
703
702
|
return info.Env().Undefined();
|
|
704
703
|
}
|
|
705
704
|
|
|
705
|
+
class AddonContextSaveSequenceStateToFileWorker : public Napi::AsyncWorker {
|
|
706
|
+
public:
|
|
707
|
+
AddonContext* context;
|
|
708
|
+
std::string filepath;
|
|
709
|
+
llama_seq_id sequenceId;
|
|
710
|
+
std::vector<llama_token> tokens;
|
|
711
|
+
size_t savedFileSize = 0;
|
|
712
|
+
|
|
713
|
+
AddonContextSaveSequenceStateToFileWorker(const Napi::CallbackInfo& info, AddonContext* context)
|
|
714
|
+
: Napi::AsyncWorker(info.Env(), "AddonContextSaveSequenceStateToFileWorker"),
|
|
715
|
+
context(context),
|
|
716
|
+
deferred(Napi::Promise::Deferred::New(info.Env())) {
|
|
717
|
+
context->Ref();
|
|
718
|
+
|
|
719
|
+
filepath = info[0].As<Napi::String>().Utf8Value();
|
|
720
|
+
sequenceId = info[1].As<Napi::Number>().Int32Value();
|
|
721
|
+
Napi::Uint32Array inputTokens = info[2].As<Napi::Uint32Array>();
|
|
722
|
+
|
|
723
|
+
tokens.resize(inputTokens.ElementLength());
|
|
724
|
+
for (size_t i = 0; i < tokens.size(); i++) {
|
|
725
|
+
tokens[i] = inputTokens[i];
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
~AddonContextSaveSequenceStateToFileWorker() {
|
|
729
|
+
context->Unref();
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
Napi::Promise GetPromise() {
|
|
733
|
+
return deferred.Promise();
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
protected:
|
|
737
|
+
Napi::Promise::Deferred deferred;
|
|
738
|
+
|
|
739
|
+
void Execute() {
|
|
740
|
+
try {
|
|
741
|
+
savedFileSize = llama_state_seq_save_file(context->ctx, filepath.c_str(), sequenceId, tokens.data(), tokens.size());
|
|
742
|
+
if (savedFileSize == 0) {
|
|
743
|
+
SetError("Failed to save state to file");
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
} catch (const std::exception& e) {
|
|
747
|
+
SetError(e.what());
|
|
748
|
+
} catch(...) {
|
|
749
|
+
SetError("Unknown error when calling \"llama_state_seq_save_file\"");
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
void OnOK() {
|
|
753
|
+
deferred.Resolve(Napi::Number::New(Env(), savedFileSize));
|
|
754
|
+
}
|
|
755
|
+
void OnError(const Napi::Error& err) {
|
|
756
|
+
deferred.Reject(err.Value());
|
|
757
|
+
}
|
|
758
|
+
};
|
|
759
|
+
Napi::Value AddonContext::SaveSequenceStateToFile(const Napi::CallbackInfo& info) {
|
|
760
|
+
if (disposed) {
|
|
761
|
+
Napi::Error::New(info.Env(), "Context is disposed").ThrowAsJavaScriptException();
|
|
762
|
+
return info.Env().Undefined();
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
AddonContextSaveSequenceStateToFileWorker* worker = new AddonContextSaveSequenceStateToFileWorker(info, this);
|
|
766
|
+
worker->Queue();
|
|
767
|
+
return worker->GetPromise();
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
class AddonContextLoadSequenceStateFromFileWorker : public Napi::AsyncWorker {
|
|
771
|
+
public:
|
|
772
|
+
AddonContext* context;
|
|
773
|
+
std::string filepath;
|
|
774
|
+
llama_seq_id sequenceId;
|
|
775
|
+
size_t maxContextSize;
|
|
776
|
+
std::vector<llama_token> tokens;
|
|
777
|
+
|
|
778
|
+
AddonContextLoadSequenceStateFromFileWorker(const Napi::CallbackInfo& info, AddonContext* context)
|
|
779
|
+
: Napi::AsyncWorker(info.Env(), "AddonContextLoadSequenceStateFromFileWorker"),
|
|
780
|
+
context(context),
|
|
781
|
+
deferred(Napi::Promise::Deferred::New(info.Env())) {
|
|
782
|
+
context->Ref();
|
|
783
|
+
|
|
784
|
+
filepath = info[0].As<Napi::String>().Utf8Value();
|
|
785
|
+
sequenceId = info[1].As<Napi::Number>().Int32Value();
|
|
786
|
+
maxContextSize = info[2].As<Napi::Number>().Uint32Value();
|
|
787
|
+
|
|
788
|
+
tokens.resize(maxContextSize);
|
|
789
|
+
}
|
|
790
|
+
~AddonContextLoadSequenceStateFromFileWorker() {
|
|
791
|
+
context->Unref();
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
Napi::Promise GetPromise() {
|
|
795
|
+
return deferred.Promise();
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
protected:
|
|
799
|
+
Napi::Promise::Deferred deferred;
|
|
800
|
+
|
|
801
|
+
void Execute() {
|
|
802
|
+
try {
|
|
803
|
+
size_t tokenCount = 0;
|
|
804
|
+
const size_t fileSize = llama_state_seq_load_file(context->ctx, filepath.c_str(), sequenceId, tokens.data(), tokens.size(), &tokenCount);
|
|
805
|
+
if (fileSize == 0) {
|
|
806
|
+
SetError("Failed to load state from file. Current context sequence size may be smaller that the state of the file");
|
|
807
|
+
return;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
tokens.resize(tokenCount);
|
|
811
|
+
} catch (const std::exception& e) {
|
|
812
|
+
SetError(e.what());
|
|
813
|
+
} catch(...) {
|
|
814
|
+
SetError("Unknown error when calling \"llama_state_seq_load_file\"");
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
void OnOK() {
|
|
818
|
+
size_t tokenCount = tokens.size();
|
|
819
|
+
Napi::Uint32Array result = Napi::Uint32Array::New(Env(), tokenCount);
|
|
820
|
+
|
|
821
|
+
for (size_t i = 0; i < tokenCount; i++) {
|
|
822
|
+
result[i] = tokens[i];
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
deferred.Resolve(result);
|
|
826
|
+
}
|
|
827
|
+
void OnError(const Napi::Error& err) {
|
|
828
|
+
deferred.Reject(err.Value());
|
|
829
|
+
}
|
|
830
|
+
};
|
|
831
|
+
Napi::Value AddonContext::LoadSequenceStateFromFile(const Napi::CallbackInfo& info) {
|
|
832
|
+
if (disposed) {
|
|
833
|
+
Napi::Error::New(info.Env(), "Context is disposed").ThrowAsJavaScriptException();
|
|
834
|
+
return info.Env().Undefined();
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
AddonContextLoadSequenceStateFromFileWorker* worker = new AddonContextLoadSequenceStateFromFileWorker(info, this);
|
|
838
|
+
worker->Queue();
|
|
839
|
+
return worker->GetPromise();
|
|
840
|
+
}
|
|
841
|
+
|
|
706
842
|
Napi::Value AddonContext::PrintTimings(const Napi::CallbackInfo& info) {
|
|
707
843
|
llama_perf_context_print(ctx);
|
|
708
844
|
llama_perf_context_reset(ctx);
|
|
@@ -798,6 +934,8 @@ void AddonContext::init(Napi::Object exports) {
|
|
|
798
934
|
InstanceMethod("setThreads", &AddonContext::SetThreads),
|
|
799
935
|
InstanceMethod("printTimings", &AddonContext::PrintTimings),
|
|
800
936
|
InstanceMethod("ensureDraftContextIsCompatibleForSpeculative", &AddonContext::EnsureDraftContextIsCompatibleForSpeculative),
|
|
937
|
+
InstanceMethod("saveSequenceStateToFile", &AddonContext::SaveSequenceStateToFile),
|
|
938
|
+
InstanceMethod("loadSequenceStateFromFile", &AddonContext::LoadSequenceStateFromFile),
|
|
801
939
|
InstanceMethod("setLora", &AddonContext::SetLora),
|
|
802
940
|
InstanceMethod("dispose", &AddonContext::Dispose),
|
|
803
941
|
}
|
|
@@ -44,6 +44,9 @@ class AddonContext : public Napi::ObjectWrap<AddonContext> {
|
|
|
44
44
|
Napi::Value GetThreads(const Napi::CallbackInfo& info);
|
|
45
45
|
Napi::Value SetThreads(const Napi::CallbackInfo& info);
|
|
46
46
|
|
|
47
|
+
Napi::Value SaveSequenceStateToFile(const Napi::CallbackInfo& info);
|
|
48
|
+
Napi::Value LoadSequenceStateFromFile(const Napi::CallbackInfo& info);
|
|
49
|
+
|
|
47
50
|
Napi::Value PrintTimings(const Napi::CallbackInfo& info);
|
|
48
51
|
Napi::Value EnsureDraftContextIsCompatibleForSpeculative(const Napi::CallbackInfo& info);
|
|
49
52
|
|
package/llama/gitRelease.bundle
CHANGED
|
Binary file
|
|
@@ -66,7 +66,6 @@ static bool enumerateVulkanDevices(size_t* total, size_t* used, size_t* unifiedM
|
|
|
66
66
|
features2.pNext = &vk11Features;
|
|
67
67
|
|
|
68
68
|
vkGetPhysicalDeviceFeatures2(physicalDevice, &features2);
|
|
69
|
-
VkPhysicalDeviceFeatures2 device_features2;
|
|
70
69
|
|
|
71
70
|
if (!vk11Features.storageBuffer16BitAccess) {
|
|
72
71
|
*checkSupported = false;
|