node-llama-cpp 3.4.3 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +2 -2
  2. package/dist/ChatWrapper.js +45 -0
  3. package/dist/ChatWrapper.js.map +1 -1
  4. package/dist/bindings/utils/compileLLamaCpp.js +2 -0
  5. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  6. package/dist/chatWrappers/DeepSeekChatWrapper.d.ts +37 -0
  7. package/dist/chatWrappers/DeepSeekChatWrapper.js +294 -0
  8. package/dist/chatWrappers/DeepSeekChatWrapper.js.map +1 -0
  9. package/dist/chatWrappers/FunctionaryChatWrapper.js +39 -13
  10. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  11. package/dist/chatWrappers/Llama3_1ChatWrapper.d.ts +0 -3
  12. package/dist/chatWrappers/Llama3_1ChatWrapper.js +5 -4
  13. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
  14. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js +1 -1
  15. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js.map +1 -1
  16. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +10 -1
  17. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +8 -2
  18. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  19. package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +17 -1
  20. package/dist/chatWrappers/generic/TemplateChatWrapper.js +10 -2
  21. package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -1
  22. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.d.ts +22 -0
  23. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.js +28 -0
  24. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.js.map +1 -0
  25. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +46 -3
  26. package/dist/chatWrappers/utils/resolveChatWrapper.js +6 -2
  27. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  28. package/dist/cli/commands/ChatCommand.js +38 -7
  29. package/dist/cli/commands/ChatCommand.js.map +1 -1
  30. package/dist/cli/commands/PullCommand.js +2 -1
  31. package/dist/cli/commands/PullCommand.js.map +1 -1
  32. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +18 -5
  33. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -1
  34. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +16 -5
  35. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  36. package/dist/cli/recommendedModels.js +137 -67
  37. package/dist/cli/recommendedModels.js.map +1 -1
  38. package/dist/cli/utils/resolveCommandGgufPath.d.ts +8 -0
  39. package/dist/cli/utils/resolveCommandGgufPath.js +45 -1
  40. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  41. package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +2 -2
  42. package/dist/cli/utils/resolveModelRecommendationFileOptions.js.map +1 -1
  43. package/dist/config.d.ts +1 -1
  44. package/dist/config.js +1 -1
  45. package/dist/config.js.map +1 -1
  46. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +87 -5
  47. package/dist/evaluator/LlamaChat/LlamaChat.js +770 -194
  48. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  49. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +55 -1
  50. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  51. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +22 -7
  52. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +28 -8
  53. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  54. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +1 -1
  55. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -1
  56. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +9 -2
  57. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
  58. package/dist/evaluator/LlamaCompletion.js +61 -48
  59. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  60. package/dist/evaluator/LlamaGrammar.d.ts +2 -2
  61. package/dist/evaluator/LlamaGrammar.js +2 -2
  62. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +1 -1
  63. package/dist/evaluator/LlamaModel/LlamaModel.js +1 -1
  64. package/dist/gguf/readGgufFileInfo.js +7 -4
  65. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  66. package/dist/gguf/types/GgufMetadataTypes.d.ts +2 -2
  67. package/dist/gguf/types/GgufMetadataTypes.js +2 -2
  68. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  69. package/dist/gguf/utils/getGgufFileTypeName.d.ts +1 -1
  70. package/dist/gguf/utils/ggufQuantNames.d.ts +2 -0
  71. package/dist/gguf/utils/ggufQuantNames.js +40 -0
  72. package/dist/gguf/utils/ggufQuantNames.js.map +1 -0
  73. package/dist/gguf/utils/normalizeGgufDownloadUrl.js +1 -1
  74. package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -1
  75. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js +1 -2
  76. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js.map +1 -1
  77. package/dist/index.d.ts +7 -5
  78. package/dist/index.js +3 -2
  79. package/dist/index.js.map +1 -1
  80. package/dist/tsconfig.tsbuildinfo +1 -1
  81. package/dist/types.d.ts +32 -2
  82. package/dist/types.js +7 -1
  83. package/dist/types.js.map +1 -1
  84. package/dist/utils/LlamaText.js +8 -9
  85. package/dist/utils/LlamaText.js.map +1 -1
  86. package/dist/utils/TokenStreamRegulator.d.ts +2 -0
  87. package/dist/utils/TokenStreamRegulator.js +12 -0
  88. package/dist/utils/TokenStreamRegulator.js.map +1 -1
  89. package/dist/utils/createModelDownloader.d.ts +21 -4
  90. package/dist/utils/createModelDownloader.js +83 -36
  91. package/dist/utils/createModelDownloader.js.map +1 -1
  92. package/dist/utils/getChatWrapperSegmentDefinition.d.ts +2 -0
  93. package/dist/utils/getChatWrapperSegmentDefinition.js +7 -0
  94. package/dist/utils/getChatWrapperSegmentDefinition.js.map +1 -0
  95. package/dist/utils/modelFileAccesTokens.js +1 -1
  96. package/dist/utils/modelFileAccesTokens.js.map +1 -1
  97. package/dist/utils/parseModelFileName.d.ts +5 -0
  98. package/dist/utils/parseModelFileName.js +63 -4
  99. package/dist/utils/parseModelFileName.js.map +1 -1
  100. package/dist/utils/parseModelUri.d.ts +30 -2
  101. package/dist/utils/parseModelUri.js +199 -24
  102. package/dist/utils/parseModelUri.js.map +1 -1
  103. package/dist/utils/resolveModelDestination.d.ts +4 -3
  104. package/dist/utils/resolveModelDestination.js +25 -2
  105. package/dist/utils/resolveModelDestination.js.map +1 -1
  106. package/dist/utils/resolveModelFile.d.ts +1 -1
  107. package/dist/utils/resolveModelFile.js +61 -20
  108. package/dist/utils/resolveModelFile.js.map +1 -1
  109. package/llama/binariesGithubRelease.json +1 -1
  110. package/llama/gitRelease.bundle +0 -0
  111. package/llama/grammars/README.md +4 -4
  112. package/llama/llama.cpp.info.json +2 -2
  113. package/package.json +36 -35
  114. package/templates/packed/electron-typescript-react.json +1 -1
  115. package/templates/packed/node-typescript.json +1 -1
@@ -1,17 +1,43 @@
1
1
  import filenamify from "filenamify";
2
2
  import { normalizeGgufDownloadUrl } from "../gguf/utils/normalizeGgufDownloadUrl.js";
3
3
  import { getFilenameForBinarySplitGgufPartUrls, resolveBinarySplitGgufPartUrls } from "../gguf/utils/resolveBinarySplitGgufPartUrls.js";
4
- import { getGgufSplitPartsInfo } from "../gguf/utils/resolveSplitGgufParts.js";
4
+ import { createSplitPartFilename, getGgufSplitPartsInfo } from "../gguf/utils/resolveSplitGgufParts.js";
5
+ import { ggufQuantNames } from "../gguf/utils/ggufQuantNames.js";
5
6
  import { isUrl } from "./isUrl.js";
7
+ import { resolveModelFileAccessTokensTryHeaders } from "./modelFileAccesTokens.js";
8
+ import { parseModelFileName } from "./parseModelFileName.js";
6
9
  const defaultHuggingFaceBranch = "main";
10
+ const defaultHuggingFaceFileQuantization = "Q4_K_M";
11
+ export const genericFilePartNumber = "{:\n{number}\n:}";
7
12
  export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
8
- if (urlOrUri.startsWith("hf:"))
9
- return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length));
13
+ if (urlOrUri.startsWith("hf://"))
14
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf://".length), urlOrUri);
15
+ else if (urlOrUri.startsWith("huggingface://"))
16
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface://".length), urlOrUri);
17
+ else if (urlOrUri.startsWith("hf:"))
18
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length), urlOrUri);
10
19
  else if (urlOrUri.startsWith("huggingface:"))
11
- return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length));
20
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length), urlOrUri);
21
+ else if (urlOrUri.startsWith("hf.co/"))
22
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf.co/".length), urlOrUri);
23
+ else if (urlOrUri.startsWith("huggingface.co/"))
24
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface.co/".length), urlOrUri);
25
+ if (isUrl(urlOrUri)) {
26
+ const parsedUrl = new URL(urlOrUri);
27
+ if (parsedUrl.hostname === "huggingface.co" || parsedUrl.hostname === "hf.co") {
28
+ const pathnameParts = parsedUrl.pathname.split("/");
29
+ const slashes = pathnameParts.length - 1;
30
+ const [, user, model] = pathnameParts;
31
+ if (slashes === 2 && user != null && model != null) {
32
+ return parseHuggingFaceUriContent([
33
+ decodeURIComponent(user), "/", decodeURIComponent(model)
34
+ ].join(""), urlOrUri);
35
+ }
36
+ }
37
+ }
12
38
  if (convertUrlToSupportedUri && isUrl(urlOrUri)) {
13
39
  const parsedUrl = new URL(normalizeGgufDownloadUrl(urlOrUri));
14
- if (parsedUrl.hostname === "huggingface.co") {
40
+ if (parsedUrl.hostname === "huggingface.co" || parsedUrl.hostname === "hf.co") {
15
41
  const pathnameParts = parsedUrl.pathname.split("/");
16
42
  const [, user, model, resolve, branch, ...pathParts] = pathnameParts;
17
43
  const filePath = pathParts.join("/");
@@ -26,7 +52,7 @@ export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
26
52
  branch !== defaultHuggingFaceBranch
27
53
  ? `#${decodeURIComponent(branch)}`
28
54
  : ""
29
- ].join(""));
55
+ ].join(""), urlOrUri);
30
56
  }
31
57
  }
32
58
  }
@@ -40,9 +66,157 @@ export function isModelUri(modelUri) {
40
66
  return false;
41
67
  }
42
68
  }
43
- function parseHuggingFaceUriContent(uri) {
69
+ export async function resolveParsedModelUri(modelUri, { tokens, signal, authorizationHeader } = {}) {
70
+ if (modelUri == null)
71
+ return modelUri;
72
+ if (modelUri.type === "resolved")
73
+ return modelUri;
74
+ if (modelUri.resolveDetails.type !== "hf")
75
+ throw new Error(`Unsupported model URI type: ${modelUri.resolveDetails.type}`);
76
+ const modelTag = modelUri.resolveDetails.tag || "latest";
77
+ const manifest = await fetchHuggingFaceModelManifest({
78
+ user: modelUri.resolveDetails.user,
79
+ model: modelUri.resolveDetails.model,
80
+ modelTag,
81
+ fullUri: modelUri.uri,
82
+ tokens,
83
+ signal,
84
+ authorizationHeader
85
+ });
86
+ const filename = manifest.rfilename;
87
+ const splitPartsInfo = getGgufSplitPartsInfo(filename);
88
+ function resolveQuantizationText() {
89
+ if (modelTag.toLowerCase() !== "latest")
90
+ return modelTag.toUpperCase();
91
+ if (filename.toLowerCase().includes(defaultHuggingFaceFileQuantization.toLowerCase()))
92
+ return defaultHuggingFaceFileQuantization;
93
+ const quantizationText = parseModelFileName(filename).quantization;
94
+ if (quantizationText != null && ggufQuantNames.has(quantizationText))
95
+ return quantizationText;
96
+ return "";
97
+ }
98
+ const quantizationText = resolveQuantizationText();
99
+ const resolvedBaseFilename = modelUri.baseFilename + (quantizationText !== "" ? ("." + quantizationText) : "") + ".gguf";
100
+ const resolvedFilename = splitPartsInfo != null
101
+ ? createSplitPartFilename(resolvedBaseFilename, splitPartsInfo.part, splitPartsInfo.parts)
102
+ : resolvedBaseFilename;
103
+ const resolvedUrl = normalizeGgufDownloadUrl([
104
+ "https://huggingface.co/", encodeURIComponent(modelUri.resolveDetails.user),
105
+ "/", encodeURIComponent(modelUri.resolveDetails.model),
106
+ "/resolve/", encodeURIComponent(defaultHuggingFaceBranch), "/",
107
+ filename
108
+ .split("/")
109
+ .map((item) => encodeURIComponent(item))
110
+ .join("/"),
111
+ "?download=true"
112
+ ].join(""));
113
+ return {
114
+ type: "resolved",
115
+ uri: modelUri.uri,
116
+ filePrefix: modelUri.filePrefix,
117
+ filename: resolvedFilename,
118
+ fullFilename: `${modelUri.filePrefix}${resolvedFilename}`,
119
+ resolvedUrl
120
+ };
121
+ }
122
+ export function getAuthorizationHeader(headers) {
123
+ return headers?.["Authorization"] || headers?.["authorization"];
124
+ }
125
+ async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, tokens, signal, authorizationHeader }) {
126
+ const manifestUrl = [
127
+ "https://huggingface.co/v2/", encodeURIComponent(user),
128
+ "/", encodeURIComponent(model),
129
+ "/manifests/", encodeURIComponent(modelTag)
130
+ ].join("");
131
+ const headersToTry = [
132
+ {},
133
+ await resolveModelFileAccessTokensTryHeaders(manifestUrl, tokens)
134
+ ];
135
+ while (headersToTry.length > 0) {
136
+ const headers = headersToTry.shift();
137
+ let response;
138
+ try {
139
+ response = await fetch(manifestUrl, {
140
+ headers: {
141
+ ...(authorizationHeader != null ? { "Authorization": authorizationHeader } : {}),
142
+ ...headers,
143
+ // we need this to get the `ggufFile` field in the response
144
+ // https://github.com/ggml-org/llama.cpp/pull/11195
145
+ "User-Agent": "llama-cpp"
146
+ },
147
+ signal
148
+ });
149
+ }
150
+ catch (err) {
151
+ throw new Error(`Failed to fetch manifest for resolving URI ${JSON.stringify(fullUri)}: ${err}`);
152
+ }
153
+ if ((response.status >= 500 || response.status === 429 || response.status === 401) && headersToTry.length > 0)
154
+ continue;
155
+ if (response.status === 400 || response.status === 404)
156
+ throw new Error(`Cannot get quantization "${modelTag}" for model "hf:${user}/${model}" or it does not exist`);
157
+ if (!response.ok)
158
+ throw new Error(`Failed to fetch manifest for ${JSON.stringify(fullUri)}: ${response.status} ${response.statusText}`);
159
+ try {
160
+ const json = await response.json();
161
+ if (json?.ggufFile?.rfilename == null)
162
+ throw new Error(`Invalid manifest for ${JSON.stringify(fullUri)}`);
163
+ return json.ggufFile;
164
+ }
165
+ catch (err) {
166
+ throw new Error(`Invalid manifest response for ${JSON.stringify(fullUri)}`);
167
+ }
168
+ }
169
+ throw new Error(`Failed to fetch manifest for ${JSON.stringify(fullUri)}: no more headers to try`);
170
+ }
171
+ function parseHuggingFaceUriContent(uri, fullUri) {
44
172
  const [user, model, ...pathParts] = uri.split("/");
45
173
  let rest = pathParts.join("/");
174
+ if (user != null && model != null && (rest === "" || model.includes(":"))) {
175
+ const [actualModel, tag, ...tagParts] = model.split(":");
176
+ const actualTag = tagParts.length > 0
177
+ ? [tag, ...tagParts].join(":").trimEnd()
178
+ : (tag ?? "").trimEnd();
179
+ const assumedQuant = ggufQuantNames.has(actualTag.toUpperCase())
180
+ ? actualTag.toUpperCase()
181
+ : undefined;
182
+ const resolvedTag = assumedQuant != null
183
+ ? assumedQuant
184
+ : actualTag;
185
+ if (actualModel == null || actualModel === "" || user === "")
186
+ throw new Error(`Invalid Hugging Face URI: ${fullUri}`);
187
+ const baseFilename = actualModel.toLowerCase().endsWith("-gguf")
188
+ ? filenamify(actualModel.slice(0, -"-gguf".length))
189
+ : filenamify(actualModel);
190
+ const filePrefix = buildHuggingFaceFilePrefix(user, actualModel, defaultHuggingFaceBranch, [], baseFilename + ".gguf");
191
+ return {
192
+ type: "unresolved",
193
+ uri: `hf:${user}/${actualModel}${resolvedTag !== "" ? `:${resolvedTag}` : ""}`,
194
+ filePrefix,
195
+ baseFilename,
196
+ possibleFullFilenames: assumedQuant != null
197
+ ? [
198
+ `${filePrefix}${baseFilename}.${assumedQuant}.gguf`,
199
+ `${filePrefix}${baseFilename}.${assumedQuant}-00001-of-${genericFilePartNumber}.gguf`
200
+ ]
201
+ : (resolvedTag != null && resolvedTag !== "" && resolvedTag !== "latest")
202
+ ? [
203
+ `${filePrefix}${baseFilename}.${resolvedTag.toUpperCase()}.gguf`,
204
+ `${filePrefix}${baseFilename}.${resolvedTag.toUpperCase()}-00001-of-${genericFilePartNumber}.gguf`
205
+ ]
206
+ : [
207
+ `${filePrefix}${baseFilename}.${defaultHuggingFaceFileQuantization}.gguf`,
208
+ `${filePrefix}${baseFilename}.${defaultHuggingFaceFileQuantization}-00001-of-${genericFilePartNumber}.gguf`,
209
+ `${filePrefix}${baseFilename}.gguf`,
210
+ `${filePrefix}${baseFilename}-00001-of-${genericFilePartNumber}.gguf`
211
+ ],
212
+ resolveDetails: {
213
+ type: "hf",
214
+ user,
215
+ model: actualModel,
216
+ tag: resolvedTag
217
+ }
218
+ };
219
+ }
46
220
  const hashIndex = rest.indexOf("#");
47
221
  let branch = defaultHuggingFaceBranch;
48
222
  if (hashIndex >= 0) {
@@ -56,31 +230,17 @@ function parseHuggingFaceUriContent(uri) {
56
230
  .map((part) => encodeURIComponent(part))
57
231
  .join("/");
58
232
  if (!user || !model || filePath === "")
59
- throw new Error(`Invalid Hugging Face URI: ${uri}`);
233
+ throw new Error(`Invalid Hugging Face URI: ${fullUri}`);
60
234
  const resolvedUrl = normalizeGgufDownloadUrl([
61
235
  "https://huggingface.co/", encodeURIComponent(user),
62
236
  "/", encodeURIComponent(model),
63
237
  "/resolve/", encodeURIComponent(branch),
64
238
  "/", filePath, "?download=true"
65
239
  ].join(""));
66
- function buildFilePrefix(user, model, branch, pathParts, filename) {
67
- const res = ["hf"];
68
- res.push(filenamify(user));
69
- if (!doesFilenameMatchExactModelName(filename, model) || branch !== defaultHuggingFaceBranch)
70
- res.push(filenamify(model));
71
- if (branch !== defaultHuggingFaceBranch)
72
- res.push(filenamify(branch));
73
- if (pathParts.length > 0) {
74
- if (doesFilenameMatchExactFolderName(filename, pathParts.at(-1)))
75
- pathParts = pathParts.slice(0, -1);
76
- if (pathParts.length > 0)
77
- res.push(filenamify(pathParts.join("__")));
78
- }
79
- return res.join("_") + "_";
80
- }
81
240
  const filename = resolveModelFilenameFromUrl(resolvedUrl);
82
- const filePrefix = buildFilePrefix(user, model, branch, filePathParts.slice(0, -1), filename);
241
+ const filePrefix = buildHuggingFaceFilePrefix(user, model, branch, filePathParts.slice(0, -1), filename);
83
242
  return {
243
+ type: "resolved",
84
244
  uri: `hf:${user}/${model}/${filePathParts.join("/")}${branch !== defaultHuggingFaceBranch ? `#${branch}` : ""}`,
85
245
  resolvedUrl,
86
246
  filePrefix,
@@ -88,6 +248,21 @@ function parseHuggingFaceUriContent(uri) {
88
248
  fullFilename: `${filePrefix}${filename}`
89
249
  };
90
250
  }
251
+ function buildHuggingFaceFilePrefix(user, model, branch, pathParts, filename) {
252
+ const res = ["hf"];
253
+ res.push(filenamify(user));
254
+ if (!doesFilenameMatchExactModelName(filename, model) || branch !== defaultHuggingFaceBranch)
255
+ res.push(filenamify(model));
256
+ if (branch !== defaultHuggingFaceBranch)
257
+ res.push(filenamify(branch));
258
+ if (pathParts.length > 0) {
259
+ if (doesFilenameMatchExactFolderName(filename, pathParts.at(-1)))
260
+ pathParts = pathParts.slice(0, -1);
261
+ if (pathParts.length > 0)
262
+ res.push(filenamify(pathParts.join("__")));
263
+ }
264
+ return res.join("_") + "_";
265
+ }
91
266
  function resolveModelFilenameFromUrl(modelUrl) {
92
267
  const binarySplitPartUrls = resolveBinarySplitGgufPartUrls(modelUrl);
93
268
  if (binarySplitPartUrls instanceof Array)
@@ -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,14 +1,15 @@
1
- import { ParseModelUri } from "./parseModelUri.js";
1
+ import { ParsedModelUri } from "./parseModelUri.js";
2
2
  export type ResolveModelDestination = {
3
3
  type: "url";
4
4
  url: string;
5
5
  } | {
6
6
  type: "uri";
7
- url: string;
7
+ url?: string;
8
8
  uri: string;
9
- parsedUri: ParseModelUri;
9
+ parsedUri: ParsedModelUri;
10
10
  } | {
11
11
  type: "file";
12
12
  path: string;
13
13
  };
14
14
  export declare function resolveModelDestination(modelDestination: string, convertUrlToUri?: boolean): ResolveModelDestination;
15
+ export declare function resolveModelArgToFilePathOrUrl(modelDestination: string, optionHeaders?: Record<string, string>): Promise<[resolvedModelDestination: ResolveModelDestination, filePathOrUrl: string]>;
@@ -1,13 +1,15 @@
1
1
  import path from "path";
2
2
  import { normalizeGgufDownloadUrl } from "../gguf/utils/normalizeGgufDownloadUrl.js";
3
- import { parseModelUri } from "./parseModelUri.js";
3
+ import { parseModelUri, resolveParsedModelUri, getAuthorizationHeader } from "./parseModelUri.js";
4
4
  import { isUrl } from "./isUrl.js";
5
5
  export function resolveModelDestination(modelDestination, convertUrlToUri = false) {
6
6
  const parsedUri = parseModelUri(modelDestination, convertUrlToUri);
7
7
  if (parsedUri != null) {
8
8
  return {
9
9
  type: "uri",
10
- url: parsedUri.resolvedUrl,
10
+ url: parsedUri.type === "resolved"
11
+ ? parsedUri.resolvedUrl
12
+ : undefined,
11
13
  uri: parsedUri.uri,
12
14
  parsedUri
13
15
  };
@@ -28,4 +30,25 @@ export function resolveModelDestination(modelDestination, convertUrlToUri = fals
28
30
  throw new Error(`Invalid path: ${modelDestination}`);
29
31
  }
30
32
  }
33
+ export async function resolveModelArgToFilePathOrUrl(modelDestination, optionHeaders) {
34
+ const resolvedModelDestination = resolveModelDestination(modelDestination);
35
+ if (resolvedModelDestination.type == "file")
36
+ return [resolvedModelDestination, resolvedModelDestination.path];
37
+ else if (resolvedModelDestination.type === "url")
38
+ return [resolvedModelDestination, resolvedModelDestination.url];
39
+ else if (resolvedModelDestination.parsedUri.type === "resolved")
40
+ return [resolvedModelDestination, resolvedModelDestination.parsedUri.resolvedUrl];
41
+ const resolvedModelUri = await resolveParsedModelUri(resolvedModelDestination.parsedUri, {
42
+ authorizationHeader: getAuthorizationHeader(optionHeaders)
43
+ });
44
+ return [
45
+ {
46
+ type: "uri",
47
+ url: resolvedModelUri.resolvedUrl,
48
+ uri: resolvedModelUri.uri,
49
+ parsedUri: resolvedModelUri
50
+ },
51
+ resolvedModelUri.resolvedUrl
52
+ ];
53
+ }
31
54
  //# sourceMappingURL=resolveModelDestination.js.map
@@ -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,EAAgB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAejC,MAAM,UAAU,uBAAuB,CAAC,gBAAwB,EAAE,kBAA2B,KAAK;IAC9F,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAEnE,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,SAAS,CAAC,WAAW;YAC1B,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,CAAC;SAClD,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"}
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;AAejC,MAAM,UAAU,uBAAuB,CAAC,gBAAwB,EAAE,kBAA2B,KAAK;IAC9F,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAEnE,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,CAAC;SAClD,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"}
@@ -90,7 +90,7 @@ export type ResolveModelFileOptions = {
90
90
  *
91
91
  * // resolve a model from Hugging Face to the models directory
92
92
  * const modelPath = await resolveModelFile(
93
- * "hf:user/model/model-file.gguf",
93
+ * "hf:user/model:quant",
94
94
  * path.join(__dirname, "models")
95
95
  * );
96
96
  *
@@ -6,6 +6,9 @@ import { getReadablePath } from "../cli/utils/getReadablePath.js";
6
6
  import { resolveSplitGgufParts } from "../gguf/utils/resolveSplitGgufParts.js";
7
7
  import { resolveModelDestination } from "./resolveModelDestination.js";
8
8
  import { createModelDownloader } from "./createModelDownloader.js";
9
+ import { genericFilePartNumber } from "./parseModelUri.js";
10
+ import { isFilePartText } from "./parseModelFileName.js";
11
+ import { pushAll } from "./pushAll.js";
9
12
  /**
10
13
  * Resolves a local model file path from a URI or file path, and downloads the necessary files first if needed.
11
14
  *
@@ -28,7 +31,7 @@ import { createModelDownloader } from "./createModelDownloader.js";
28
31
  *
29
32
  * // resolve a model from Hugging Face to the models directory
30
33
  * const modelPath = await resolveModelFile(
31
- * "hf:user/model/model-file.gguf",
34
+ * "hf:user/model:quant",
32
35
  * path.join(__dirname, "models")
33
36
  * );
34
37
  *
@@ -87,20 +90,29 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
87
90
  return resolvedFilePath;
88
91
  throw new Error(`No model file found at "${resolvedFilePath}"`);
89
92
  }
90
- let expectedFilePath = fileName != null
91
- ? path.join(resolvedDirectory, fileName)
92
- : undefined;
93
- if (expectedFilePath == null && resolvedModelDestination.type === "uri")
94
- expectedFilePath = path.join(resolvedDirectory, resolvedModelDestination.parsedUri.fullFilename);
95
- else if (expectedFilePath == null && resolvedModelDestination.type === "url") {
93
+ const expectedFileNames = fileName != null
94
+ ? [fileName]
95
+ : [];
96
+ if (expectedFileNames.length === 0 && resolvedModelDestination.type === "uri") {
97
+ if (resolvedModelDestination.parsedUri.type === "resolved")
98
+ expectedFileNames.push(resolvedModelDestination.parsedUri.fullFilename);
99
+ else
100
+ pushAll(expectedFileNames, resolvedModelDestination.parsedUri.possibleFullFilenames);
101
+ }
102
+ else if (expectedFileNames.length === 0 && resolvedModelDestination.type === "url") {
96
103
  const enforcedParsedUrl = resolveModelDestination(uriOrPath, true);
97
- if (enforcedParsedUrl != null && enforcedParsedUrl.type === "uri")
98
- expectedFilePath = path.join(resolvedDirectory, enforcedParsedUrl.parsedUri.filename);
104
+ if (enforcedParsedUrl != null && enforcedParsedUrl.type === "uri") {
105
+ if (enforcedParsedUrl.parsedUri.type === "resolved")
106
+ expectedFileNames.push(enforcedParsedUrl.parsedUri.fullFilename);
107
+ else
108
+ pushAll(expectedFileNames, enforcedParsedUrl.parsedUri.possibleFullFilenames);
109
+ }
99
110
  }
100
- if (expectedFilePath != null && !resolvedVerify && await fs.pathExists(expectedFilePath)) {
101
- const allGgufParts = resolveSplitGgufParts(expectedFilePath);
102
- if (allGgufParts.length === 1 && allGgufParts[0] === expectedFilePath)
103
- return expectedFilePath;
111
+ const foundExpectedFilePath = await findMatchingFilesInDirectory(resolvedDirectory, expectedFileNames);
112
+ if (foundExpectedFilePath != null && !resolvedVerify) {
113
+ const allGgufParts = resolveSplitGgufParts(foundExpectedFilePath);
114
+ if (allGgufParts.length === 1 && allGgufParts[0] === foundExpectedFilePath)
115
+ return foundExpectedFilePath;
104
116
  const allPartsExist = await Promise.all(allGgufParts.map((part) => fs.pathExists(part)));
105
117
  if (allGgufParts.length > 0) {
106
118
  if (allPartsExist.every((exists) => exists))
@@ -110,10 +122,12 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
110
122
  }
111
123
  }
112
124
  if (download === false) {
113
- if (expectedFilePath != null)
114
- throw new Error(`No model file found at "${expectedFilePath}" and download is disabled`);
115
- throw new Error(`No model file found for "${uriOrPath}" and download is disabled`);
125
+ if (expectedFileNames.length === 1)
126
+ throw new Error(`No model file found at "${path.join(resolvedDirectory, expectedFileNames[0])}" and download is disabled`);
127
+ throw new Error(`No model file found for "${uriOrPath}" at "${resolvedDirectory}" and download is disabled`);
116
128
  }
129
+ if (signal?.aborted)
130
+ throw signal.reason;
117
131
  const downloader = await createModelDownloader({
118
132
  modelUri: resolvedModelDestination.type === "uri"
119
133
  ? resolvedModelDestination.uri
@@ -128,12 +142,11 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
128
142
  onProgress,
129
143
  tokens
130
144
  });
131
- if (expectedFilePath != null && downloader.totalFiles === 1 && await fs.pathExists(downloader.entrypointFilePath)) {
132
- const fileStats = await fs.stat(expectedFilePath);
145
+ if (foundExpectedFilePath != null && downloader.totalFiles === 1 && await fs.pathExists(downloader.entrypointFilePath)) {
146
+ const fileStats = await fs.stat(foundExpectedFilePath);
133
147
  if (downloader.totalSize === fileStats.size) {
134
148
  await downloader.cancel({ deleteTempFile: false });
135
- console.log("download canceled");
136
- return expectedFilePath;
149
+ return foundExpectedFilePath;
137
150
  }
138
151
  }
139
152
  if (resolvedCli)
@@ -145,4 +158,32 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
145
158
  console.info(`Downloaded to ${chalk.yellow(getReadablePath(downloader.entrypointFilePath))}`);
146
159
  return downloader.entrypointFilePath;
147
160
  }
161
+ async function findMatchingFilesInDirectory(dirPath, fileNames) {
162
+ let directoryFileNames = undefined;
163
+ if (!(await fs.pathExists(dirPath)) || !(await fs.stat(dirPath)).isDirectory())
164
+ return undefined;
165
+ for (const expectedFileName of fileNames) {
166
+ if (expectedFileName.includes(genericFilePartNumber)) {
167
+ const [firstPart, ...restParts] = expectedFileName.split(genericFilePartNumber);
168
+ const resolvedFirstPart = firstPart || "";
169
+ const resolvedLastParts = restParts.join(genericFilePartNumber);
170
+ if (directoryFileNames == null)
171
+ directoryFileNames = (await fs.readdir(dirPath, { withFileTypes: true }))
172
+ .filter((item) => item.isFile())
173
+ .map((item) => item.name);
174
+ for (const directoryFileName of directoryFileNames) {
175
+ if (directoryFileName.startsWith(resolvedFirstPart) && directoryFileName.endsWith(resolvedLastParts)) {
176
+ const numberPart = directoryFileName.slice(resolvedFirstPart.length, -resolvedLastParts.length);
177
+ if (isFilePartText(numberPart))
178
+ return path.join(dirPath, directoryFileName);
179
+ }
180
+ }
181
+ continue;
182
+ }
183
+ const testPath = path.join(dirPath, expectedFileName);
184
+ if (await fs.pathExists(testPath))
185
+ return testPath;
186
+ }
187
+ return undefined;
188
+ }
148
189
  //# sourceMappingURL=resolveModelFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b4599"
2
+ "release": "b4753"
3
3
  }
Binary file
@@ -98,7 +98,7 @@ This guide provides a brief overview. Check out the GBNF files in this directory
98
98
 
99
99
  ## Troubleshooting
100
100
 
101
- Grammars currently have performance gotchas (see https://github.com/ggerganov/llama.cpp/issues/4218).
101
+ Grammars currently have performance gotchas (see https://github.com/ggml-org/llama.cpp/issues/4218).
102
102
 
103
103
  ### Efficient optional repetitions
104
104
 
@@ -126,7 +126,7 @@ You can use GBNF grammars:
126
126
  - in CLI, with [examples/json_schema_to_grammar.py](../examples/json_schema_to_grammar.py)
127
127
  - in JavaScript with [json-schema-to-grammar.mjs](../examples/server/public_legacy/json-schema-to-grammar.mjs) (this is used by the [server](../examples/server)'s Web UI)
128
128
 
129
- Take a look at [tests](../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggerganov/llama.cpp/pull/5978, https://github.com/ggerganov/llama.cpp/pull/6659 & https://github.com/ggerganov/llama.cpp/pull/6555).
129
+ Take a look at [tests](../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggml-org/llama.cpp/pull/5978, https://github.com/ggml-org/llama.cpp/pull/6659 & https://github.com/ggml-org/llama.cpp/pull/6555).
130
130
 
131
131
  ```bash
132
132
  llama-cli \
@@ -185,10 +185,10 @@ Here is also a list of known limitations (contributions welcome):
185
185
  - `additionalProperties` defaults to `false` (produces faster grammars + reduces hallucinations).
186
186
  - `"additionalProperties": true` may produce keys that contain unescaped newlines.
187
187
  - Unsupported features are skipped silently. It is currently advised to use the command-line Python converter (see above) to see any warnings, and to inspect the resulting grammar / test it w/ [llama-gbnf-validator](../examples/gbnf-validator/gbnf-validator.cpp).
188
- - Can't mix `properties` w/ `anyOf` / `oneOf` in the same type (https://github.com/ggerganov/llama.cpp/issues/7703)
188
+ - Can't mix `properties` w/ `anyOf` / `oneOf` in the same type (https://github.com/ggml-org/llama.cpp/issues/7703)
189
189
  - [prefixItems](https://json-schema.org/draft/2020-12/json-schema-core#name-prefixitems) is broken (but [items](https://json-schema.org/draft/2020-12/json-schema-core#name-items) works)
190
190
  - `minimum`, `exclusiveMinimum`, `maximum`, `exclusiveMaximum`: only supported for `"type": "integer"` for now, not `number`
191
- - Nested `$ref`s are broken (https://github.com/ggerganov/llama.cpp/issues/8073)
191
+ - Nested `$ref`s are broken (https://github.com/ggml-org/llama.cpp/issues/8073)
192
192
  - [pattern](https://json-schema.org/draft/2020-12/json-schema-validation#name-pattern)s must start with `^` and end with `$`
193
193
  - Remote `$ref`s not supported in the C++ version (Python & JavaScript versions fetch https refs)
194
194
  - `string` [formats](https://json-schema.org/draft/2020-12/json-schema-validation#name-defined-formats) lack `uri`, `email`
@@ -1,4 +1,4 @@
1
1
  {
2
- "tag": "b4599",
3
- "llamaCppGithubRepo": "ggerganov/llama.cpp"
2
+ "tag": "b4753",
3
+ "llamaCppGithubRepo": "ggml-org/llama.cpp"
4
4
  }