node-llama-cpp 3.3.2 → 3.4.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.
Files changed (199) hide show
  1. package/README.md +3 -2
  2. package/dist/bindings/AddonTypes.d.ts +12 -4
  3. package/dist/bindings/Llama.d.ts +9 -0
  4. package/dist/bindings/Llama.js +52 -28
  5. package/dist/bindings/Llama.js.map +1 -1
  6. package/dist/bindings/getLlama.d.ts +2 -1
  7. package/dist/bindings/getLlama.js +19 -9
  8. package/dist/bindings/getLlama.js.map +1 -1
  9. package/dist/bindings/utils/asyncSome.js +2 -0
  10. package/dist/bindings/utils/asyncSome.js.map +1 -1
  11. package/dist/bindings/utils/compileLLamaCpp.d.ts +1 -1
  12. package/dist/bindings/utils/compileLLamaCpp.js +115 -34
  13. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  14. package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +1 -0
  15. package/dist/bindings/utils/detectAvailableComputeLayers.js +4 -4
  16. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -1
  17. package/dist/bindings/utils/detectBuildTools.d.ts +14 -0
  18. package/dist/bindings/utils/detectBuildTools.js +149 -0
  19. package/dist/bindings/utils/detectBuildTools.js.map +1 -0
  20. package/dist/bindings/utils/resolveActualBindingBinaryPath.d.ts +1 -0
  21. package/dist/bindings/utils/resolveActualBindingBinaryPath.js +18 -0
  22. package/dist/bindings/utils/resolveActualBindingBinaryPath.js.map +1 -0
  23. package/dist/bindings/utils/testBindingBinary.d.ts +1 -1
  24. package/dist/bindings/utils/testBindingBinary.js +58 -5
  25. package/dist/bindings/utils/testBindingBinary.js.map +1 -1
  26. package/dist/chatWrappers/AlpacaChatWrapper.d.ts +4 -0
  27. package/dist/chatWrappers/AlpacaChatWrapper.js +4 -0
  28. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -1
  29. package/dist/chatWrappers/FalconChatWrapper.d.ts +4 -0
  30. package/dist/chatWrappers/FalconChatWrapper.js +4 -0
  31. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
  32. package/dist/chatWrappers/GeneralChatWrapper.d.ts +4 -0
  33. package/dist/chatWrappers/GeneralChatWrapper.js +4 -0
  34. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
  35. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +2 -0
  36. package/dist/chatWrappers/utils/resolveChatWrapper.js +8 -27
  37. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  38. package/dist/cli/commands/ChatCommand.d.ts +4 -0
  39. package/dist/cli/commands/ChatCommand.js +158 -13
  40. package/dist/cli/commands/ChatCommand.js.map +1 -1
  41. package/dist/cli/commands/CompleteCommand.d.ts +4 -0
  42. package/dist/cli/commands/CompleteCommand.js +143 -10
  43. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  44. package/dist/cli/commands/DebugCommand.js +5 -5
  45. package/dist/cli/commands/DebugCommand.js.map +1 -1
  46. package/dist/cli/commands/InfillCommand.d.ts +4 -0
  47. package/dist/cli/commands/InfillCommand.js +142 -10
  48. package/dist/cli/commands/InfillCommand.js.map +1 -1
  49. package/dist/cli/commands/OnPostInstallCommand.js +12 -2
  50. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  51. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.d.ts +1 -0
  52. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +14 -7
  53. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -1
  54. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +13 -3
  55. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  56. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +20 -10
  57. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  58. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +2 -0
  59. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +234 -77
  60. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
  61. package/dist/cli/recommendedModels.js +11 -1
  62. package/dist/cli/recommendedModels.js.map +1 -1
  63. package/dist/cli/utils/ConsoleTable.d.ts +1 -0
  64. package/dist/cli/utils/ConsoleTable.js +5 -1
  65. package/dist/cli/utils/ConsoleTable.js.map +1 -1
  66. package/dist/cli/utils/interactivelyAskForModel.d.ts +2 -1
  67. package/dist/cli/utils/interactivelyAskForModel.js +16 -13
  68. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  69. package/dist/cli/utils/isRunningUnderRosetta.d.ts +1 -0
  70. package/dist/cli/utils/isRunningUnderRosetta.js +20 -0
  71. package/dist/cli/utils/isRunningUnderRosetta.js.map +1 -0
  72. package/dist/cli/utils/printCommonInfoLines.d.ts +4 -2
  73. package/dist/cli/utils/printCommonInfoLines.js +67 -5
  74. package/dist/cli/utils/printCommonInfoLines.js.map +1 -1
  75. package/dist/cli/utils/resolveCommandGgufPath.d.ts +3 -1
  76. package/dist/cli/utils/resolveCommandGgufPath.js +6 -5
  77. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  78. package/dist/cli/utils/toBytes.d.ts +1 -0
  79. package/dist/cli/utils/toBytes.js +5 -0
  80. package/dist/cli/utils/toBytes.js.map +1 -0
  81. package/dist/config.d.ts +3 -0
  82. package/dist/config.js +3 -0
  83. package/dist/config.js.map +1 -1
  84. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +12 -3
  85. package/dist/evaluator/LlamaChat/LlamaChat.js +21 -7
  86. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  87. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +6 -2
  88. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +3 -0
  89. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  90. package/dist/evaluator/LlamaCompletion.d.ts +3 -0
  91. package/dist/evaluator/LlamaCompletion.js +5 -0
  92. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  93. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +81 -38
  94. package/dist/evaluator/LlamaContext/LlamaContext.js +678 -132
  95. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  96. package/dist/evaluator/LlamaContext/TokenPredictor.d.ts +55 -0
  97. package/dist/evaluator/LlamaContext/TokenPredictor.js +20 -0
  98. package/dist/evaluator/LlamaContext/TokenPredictor.js.map +1 -0
  99. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.d.ts +56 -0
  100. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js +266 -0
  101. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js.map +1 -0
  102. package/dist/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.d.ts +58 -0
  103. package/dist/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.js +138 -0
  104. package/dist/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.js.map +1 -0
  105. package/dist/evaluator/LlamaContext/types.d.ts +198 -5
  106. package/dist/evaluator/LlamaEmbeddingContext.d.ts +3 -0
  107. package/dist/evaluator/LlamaEmbeddingContext.js +3 -0
  108. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
  109. package/dist/evaluator/LlamaGrammar.d.ts +7 -1
  110. package/dist/evaluator/LlamaGrammar.js +6 -0
  111. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  112. package/dist/evaluator/LlamaGrammarEvaluationState.d.ts +4 -4
  113. package/dist/evaluator/LlamaGrammarEvaluationState.js +16 -8
  114. package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -1
  115. package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +5 -0
  116. package/dist/evaluator/LlamaJsonSchemaGrammar.js +7 -0
  117. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
  118. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +19 -11
  119. package/dist/evaluator/LlamaModel/LlamaModel.js +23 -29
  120. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  121. package/dist/evaluator/LlamaRankingContext.d.ts +76 -0
  122. package/dist/evaluator/LlamaRankingContext.js +158 -0
  123. package/dist/evaluator/LlamaRankingContext.js.map +1 -0
  124. package/dist/evaluator/TokenBias.d.ts +3 -0
  125. package/dist/evaluator/TokenBias.js +3 -0
  126. package/dist/evaluator/TokenBias.js.map +1 -1
  127. package/dist/evaluator/utils/chunkDocument.d.ts +86 -0
  128. package/dist/evaluator/utils/chunkDocument.js +212 -0
  129. package/dist/evaluator/utils/chunkDocument.js.map +1 -0
  130. package/dist/gguf/insights/GgufInsights.d.ts +3 -1
  131. package/dist/gguf/insights/GgufInsights.js +114 -8
  132. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  133. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +6 -3
  134. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +11 -7
  135. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
  136. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +2 -1
  137. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +13 -7
  138. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -1
  139. package/dist/gguf/parser/GgufV2Parser.js +29 -8
  140. package/dist/gguf/parser/GgufV2Parser.js.map +1 -1
  141. package/dist/gguf/parser/parseGguf.js +11 -11
  142. package/dist/gguf/parser/parseGguf.js.map +1 -1
  143. package/dist/gguf/readGgufFileInfo.js +8 -3
  144. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  145. package/dist/gguf/types/GgufFileInfoTypes.d.ts +1 -0
  146. package/dist/gguf/types/GgufMetadataTypes.d.ts +9 -9
  147. package/dist/gguf/types/GgufMetadataTypes.js +1 -1
  148. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  149. package/dist/gguf/types/GgufTensorInfoTypes.d.ts +13 -0
  150. package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -1
  151. package/dist/index.d.ts +7 -2
  152. package/dist/index.js +6 -1
  153. package/dist/index.js.map +1 -1
  154. package/dist/tsconfig.tsbuildinfo +1 -1
  155. package/dist/utils/LlamaText.d.ts +4 -1
  156. package/dist/utils/LlamaText.js +4 -1
  157. package/dist/utils/LlamaText.js.map +1 -1
  158. package/dist/utils/cmake.js +23 -0
  159. package/dist/utils/cmake.js.map +1 -1
  160. package/dist/utils/pushAll.d.ts +1 -1
  161. package/dist/utils/pushAll.js.map +1 -1
  162. package/dist/utils/tokenizerUtils.js +1 -1
  163. package/dist/utils/utilTypes.d.ts +5 -0
  164. package/llama/CMakeLists.txt +25 -8
  165. package/llama/addon/AddonContext.cpp +196 -22
  166. package/llama/addon/AddonContext.h +1 -0
  167. package/llama/addon/AddonGrammar.cpp +1 -4
  168. package/llama/addon/AddonGrammarEvaluationState.cpp +16 -5
  169. package/llama/addon/AddonModel.cpp +31 -39
  170. package/llama/addon/AddonModel.h +1 -1
  171. package/llama/addon/AddonModelLora.cpp +2 -2
  172. package/llama/addon/AddonModelLora.h +1 -1
  173. package/llama/addon/AddonSampler.cpp +7 -12
  174. package/llama/addon/addon.cpp +26 -7
  175. package/llama/addon/globals/getGpuInfo.cpp +30 -5
  176. package/llama/addon/globals/getGpuInfo.h +6 -1
  177. package/llama/addon/globals/getMemoryInfo.cpp +63 -0
  178. package/llama/addon/globals/getMemoryInfo.h +4 -0
  179. package/llama/binariesGithubRelease.json +1 -1
  180. package/llama/cmake/win32.ensureNinjaPath.cmake +68 -0
  181. package/llama/cmake/win32.ensureNodeLib.cmake +34 -0
  182. package/llama/cmake/win32.llvmApplyGnuModeAdaptations.cmake +12 -0
  183. package/llama/cmake/win32.llvmEnsureCmakeAr.cmake +37 -0
  184. package/llama/cmake/win32.llvmUseGnuModeCompilers.cmake +87 -0
  185. package/llama/cmake/win32.programFilesPaths.cmake +35 -0
  186. package/llama/gitRelease.bundle +0 -0
  187. package/llama/gpuInfo/vulkan-gpu-info.cpp +29 -2
  188. package/llama/gpuInfo/vulkan-gpu-info.h +1 -0
  189. package/llama/llama.cpp.info.json +1 -1
  190. package/llama/profiles/llvm.win32.host-arm64.target-arm64.cmake +14 -0
  191. package/llama/profiles/llvm.win32.host-x64.target-arm64.cmake +14 -0
  192. package/llama/profiles/llvm.win32.host-x64.target-x64.cmake +14 -0
  193. package/llama/toolchains/llvm.win32.host-x64.target-x64.cmake +20 -0
  194. package/llama/toolchains/win32.host-arm64.target-arm64.cmake +21 -0
  195. package/llama/toolchains/win32.host-x64.target-arm64.cmake +14 -34
  196. package/package.json +47 -44
  197. package/templates/README.md +1 -1
  198. package/templates/packed/electron-typescript-react.json +1 -1
  199. package/templates/packed/node-typescript.json +1 -1
@@ -0,0 +1,58 @@
1
+ import { Token } from "../../../types.js";
2
+ import { TokenPredictor } from "../TokenPredictor.js";
3
+ /**
4
+ * Attempts to find the last few generated tokens in the input (prompt) tokens to predict the next tokens.
5
+ *
6
+ * This is useful in input-grounded tasks (when the model frequently repeats some of the input tokens in the output,
7
+ * such as in text summarization or modifying code).
8
+ *
9
+ * This works in all completion classes, including `LlamaChatSession`, `LlamaChat`, and `LlamaCompletion`.
10
+ *
11
+ * Based on https://github.com/apoorvumang/prompt-lookup-decoding.
12
+ * @see [Using Token Predictors: Input Lookup Token Predictor](https://node-llama-cpp.withcat.ai/guide/token-prediction#input-lookup)
13
+ */
14
+ export declare class InputLookupTokenPredictor extends TokenPredictor {
15
+ constructor(options?: {
16
+ patternLength?: {
17
+ /**
18
+ * Min pattern length to look for in the input tokens.
19
+ *
20
+ * Defaults to `1`.
21
+ */
22
+ min?: number;
23
+ /**
24
+ * Max pattern length to look for in the input tokens.
25
+ *
26
+ * Set to `0` to disable the max pattern size.
27
+ *
28
+ * Defaults to `0`.
29
+ */
30
+ max?: number;
31
+ };
32
+ predictionLength?: {
33
+ /**
34
+ * Minimum number of tokens to predict.
35
+ *
36
+ * Defaults to `1`.
37
+ */
38
+ min?: number;
39
+ /**
40
+ * Maximum number of tokens to predict.
41
+ *
42
+ * Defaults to `3`.
43
+ */
44
+ max?: number;
45
+ };
46
+ });
47
+ get patternMinLength(): number;
48
+ get patternMaxLength(): number;
49
+ get predictionMinLength(): number;
50
+ get predictionMaxLength(): number;
51
+ reset({ stateTokens }: {
52
+ stateTokens: Token[];
53
+ }): void;
54
+ updateInputTokens(tokens: Token[]): void;
55
+ pushTokens(tokens: Token[]): void;
56
+ predictTokens(): Token[];
57
+ dispose(): void;
58
+ }
@@ -0,0 +1,138 @@
1
+ import { DisposedError } from "lifecycle-utils";
2
+ import { pushAll } from "../../../utils/pushAll.js";
3
+ import { TokenPredictor } from "../TokenPredictor.js";
4
+ const defaultPatternMinLength = 1;
5
+ const defaultPatternMaxLength = 0;
6
+ const defaultPredictionMinLength = 1;
7
+ const defaultPredictionMaxLength = 3;
8
+ /**
9
+ * Attempts to find the last few generated tokens in the input (prompt) tokens to predict the next tokens.
10
+ *
11
+ * This is useful in input-grounded tasks (when the model frequently repeats some of the input tokens in the output,
12
+ * such as in text summarization or modifying code).
13
+ *
14
+ * This works in all completion classes, including `LlamaChatSession`, `LlamaChat`, and `LlamaCompletion`.
15
+ *
16
+ * Based on https://github.com/apoorvumang/prompt-lookup-decoding.
17
+ * @see [Using Token Predictors: Input Lookup Token Predictor](https://node-llama-cpp.withcat.ai/guide/token-prediction#input-lookup)
18
+ */
19
+ export class InputLookupTokenPredictor extends TokenPredictor {
20
+ /** @internal */ _patternMinLength;
21
+ /** @internal */ _patternMaxLength;
22
+ /** @internal */ _predictionMinLength;
23
+ /** @internal */ _predictionMaxLength;
24
+ /** @internal */ _lastPredictionMatchStartIndex = undefined;
25
+ /** @internal */ _lastPredictionMatchLength = undefined;
26
+ /** @internal */ _stateTokens = [];
27
+ /** @internal */ _inputTokens = [];
28
+ /** @internal */ _disposed = false;
29
+ constructor(options = {}) {
30
+ super();
31
+ this._patternMinLength = Math.floor(Math.max(1, options?.patternLength?.min ?? defaultPatternMinLength));
32
+ this._patternMaxLength = Math.floor(Math.max(0, Math.max(this._patternMinLength, options?.patternLength?.max ?? defaultPatternMaxLength)));
33
+ this._predictionMinLength = Math.floor(Math.max(1, options.predictionLength?.min ?? defaultPredictionMinLength));
34
+ this._predictionMaxLength = Math.floor(Math.max(this._patternMinLength, options.predictionLength?.max ?? defaultPredictionMaxLength));
35
+ }
36
+ get patternMinLength() {
37
+ return this._patternMinLength;
38
+ }
39
+ get patternMaxLength() {
40
+ return this._patternMaxLength;
41
+ }
42
+ get predictionMinLength() {
43
+ return this._predictionMinLength;
44
+ }
45
+ get predictionMaxLength() {
46
+ return this._predictionMaxLength;
47
+ }
48
+ reset({ stateTokens }) {
49
+ this._stateTokens = stateTokens.slice();
50
+ delete this._lastPredictionMatchStartIndex;
51
+ delete this._lastPredictionMatchLength;
52
+ }
53
+ updateInputTokens(tokens) {
54
+ this._inputTokens = tokens.slice();
55
+ delete this._lastPredictionMatchStartIndex;
56
+ delete this._lastPredictionMatchLength;
57
+ }
58
+ pushTokens(tokens) {
59
+ pushAll(this._stateTokens, tokens);
60
+ if (this._lastPredictionMatchStartIndex != null && this._lastPredictionMatchLength != null) {
61
+ this._lastPredictionMatchLength += tokens.length;
62
+ }
63
+ }
64
+ predictTokens() {
65
+ if (this._disposed)
66
+ throw new DisposedError();
67
+ if (this._inputTokens.length === 0 || this._stateTokens.length === 0)
68
+ return [];
69
+ if (this._lastPredictionMatchStartIndex != null && this._lastPredictionMatchLength != null) {
70
+ for (let p = this._lastPredictionMatchStartIndex + this._lastPredictionMatchLength - 1, s = this._stateTokens.length - 1; p >= this._lastPredictionMatchStartIndex && s >= 0; p--, s--) {
71
+ if (this._inputTokens[p] !== this._stateTokens[s]) {
72
+ delete this._lastPredictionMatchStartIndex;
73
+ delete this._lastPredictionMatchLength;
74
+ break;
75
+ }
76
+ }
77
+ if (this._lastPredictionMatchStartIndex != null && this._lastPredictionMatchLength != null) {
78
+ const predictionEndIndex = this._lastPredictionMatchStartIndex + this._lastPredictionMatchLength;
79
+ if (predictionEndIndex < this._inputTokens.length) {
80
+ return this._inputTokens.slice(predictionEndIndex, predictionEndIndex + this._predictionMaxLength);
81
+ }
82
+ }
83
+ }
84
+ const [matchStartIndex, matchLength] = this._findLongestPatternIndex(this._inputTokens, this._stateTokens);
85
+ if (matchStartIndex == null || matchLength == null)
86
+ return [];
87
+ const predictionEndIndex = matchStartIndex + matchLength;
88
+ const res = this._inputTokens.slice(predictionEndIndex, predictionEndIndex + this._predictionMaxLength);
89
+ if (res.length >= this._predictionMinLength) {
90
+ this._lastPredictionMatchStartIndex = matchStartIndex;
91
+ this._lastPredictionMatchLength = matchLength;
92
+ return res;
93
+ }
94
+ return [];
95
+ }
96
+ dispose() {
97
+ this._disposed = true;
98
+ this._stateTokens = [];
99
+ this._inputTokens = [];
100
+ delete this._lastPredictionMatchStartIndex;
101
+ delete this._lastPredictionMatchLength;
102
+ }
103
+ /** @internal */
104
+ _findLongestPatternIndex(findIn, lookupPattern) {
105
+ const checkIndexes = [];
106
+ let bestIndex = -1;
107
+ let bestIndexDiff = -1;
108
+ for (let i = findIn.length - this._predictionMinLength; i >= 0; i--) {
109
+ const token = findIn[i];
110
+ for (let j = checkIndexes.length - 1; j >= 0; j--) {
111
+ const startIndex = checkIndexes[j];
112
+ const indexDiff = startIndex - i;
113
+ if (lookupPattern[lookupPattern.length - 1 - indexDiff] !== token || (this._patternMaxLength > 0 && indexDiff >= this._patternMaxLength)) {
114
+ checkIndexes.splice(j, 1);
115
+ if (indexDiff >= this._patternMinLength && indexDiff >= bestIndexDiff) {
116
+ bestIndex = startIndex;
117
+ bestIndexDiff = indexDiff;
118
+ }
119
+ }
120
+ }
121
+ if (token === lookupPattern[lookupPattern.length - 1])
122
+ checkIndexes.unshift(i);
123
+ }
124
+ for (let j = checkIndexes.length - 1; j >= 0; j--) {
125
+ const startIndex = checkIndexes[j];
126
+ const indexDiff = startIndex + 1;
127
+ checkIndexes.splice(j, 1);
128
+ if (indexDiff >= this._patternMinLength && indexDiff >= bestIndexDiff) {
129
+ bestIndex = startIndex;
130
+ bestIndexDiff = indexDiff;
131
+ }
132
+ }
133
+ if (bestIndex >= 0)
134
+ return [bestIndex - (bestIndexDiff - 1), bestIndexDiff];
135
+ return [];
136
+ }
137
+ }
138
+ //# sourceMappingURL=InputLookupTokenPredictor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputLookupTokenPredictor.js","sourceRoot":"","sources":["../../../../src/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import { PickOptions } from "../../utils/utilTypes.js";
2
+ import type { LlamaGrammarEvaluationState } from "../LlamaGrammarEvaluationState.js";
3
+ import type { TokenBias } from "../TokenBias.js";
1
4
  import type { Token } from "../../types.js";
2
5
  import type { LlamaContextSequence } from "./LlamaContext.js";
3
6
  export type LlamaContextOptions = {
@@ -81,7 +84,11 @@ export type LlamaContextOptions = {
81
84
  */
82
85
  min?: number;
83
86
  };
84
- /** control the parallel sequences processing behavior */
87
+ /**
88
+ * Control the parallel sequences processing behavior.
89
+ *
90
+ * See {@link BatchingOptions} for more information.
91
+ */
85
92
  batching?: BatchingOptions;
86
93
  /**
87
94
  * Load the provided LoRA adapters onto the context.
@@ -182,18 +189,18 @@ export type LlamaContextSequenceRepeatPenalty = {
182
189
  export type BatchingOptions = {
183
190
  /**
184
191
  * The strategy used to dispatch items to be processed when there are items pending to be processed.
185
- * - **`"nextTick"`** - dispatch the items on the next even loop tick.
192
+ * - **`"nextCycle"`** - dispatch the items on the next event loop cycle.
186
193
  * You can provide a custom function to define a custom dispatch schedule.
187
194
  *
188
- * Defaults to `"nextTick"`.
195
+ * Defaults to `"nextCycle"`.
189
196
  */
190
- dispatchSchedule?: "nextTick" | CustomBatchingDispatchSchedule;
197
+ dispatchSchedule?: "nextCycle" | CustomBatchingDispatchSchedule;
191
198
  /**
192
199
  * The strategy used to prioritize pending items to be processed.
193
200
  * - **`"maximumParallelism"`** - process as many different sequences in parallel as possible.
194
201
  * - **`"firstInFirstOut"`** - process items in the order they were added.
195
202
  * - **Custom prioritization function** - a custom function that prioritizes the items to be processed.
196
- * See the `CustomBatchingPrioritizationStrategy` type for more information.
203
+ * See the {@link CustomBatchingPrioritizationStrategy} type for more information.
197
204
  *
198
205
  * Defaults to `"maximumParallelism"`.
199
206
  */
@@ -227,6 +234,191 @@ export type ContextTokensDeleteRange = {
227
234
  start: number;
228
235
  end: number;
229
236
  };
237
+ export type SequenceEvaluateOptions = {
238
+ temperature?: number;
239
+ minP?: number;
240
+ topK?: number;
241
+ topP?: number;
242
+ /**
243
+ * Used to control the randomness of the generated text.
244
+ *
245
+ * Change the seed to get different results.
246
+ *
247
+ * Defaults to the current epoch time.
248
+ *
249
+ * Only relevant when using `temperature`.
250
+ */
251
+ seed?: number;
252
+ grammarEvaluationState?: LlamaGrammarEvaluationState | (() => LlamaGrammarEvaluationState | undefined);
253
+ repeatPenalty?: LlamaContextSequenceRepeatPenalty;
254
+ /**
255
+ * Adjust the probability of tokens being generated.
256
+ * Can be used to bias the model to generate tokens that you want it to lean towards,
257
+ * or to avoid generating tokens that you want it to avoid.
258
+ */
259
+ tokenBias?: TokenBias | (() => TokenBias);
260
+ /**
261
+ * When a lot of tokens are queued for the next batch, more than the configured `batchSize`, the tokens for each sequence will be
262
+ * evaluated based on the strategy chosen for the context.
263
+ * By default, the `"maximumParallelism"` strategy is used, which will try to evaluate as many sequences in parallel as possible,
264
+ * but at some point, it'll have to choose which sequences to evaluate more tokens of, so it'll prioritize the sequences with the
265
+ * highest evaluation priority.
266
+ * Also, a custom strategy can be used to prioritize the sequences differently, but generally, the higher the evaluation priority
267
+ * is, the more likely and more tokens will be evaluated for that sequence in the next queued batch.
268
+ */
269
+ evaluationPriority?: EvaluationPriority;
270
+ /**
271
+ * Override the sequence context shift options for this evaluation
272
+ *
273
+ * See {@link ContextShiftOptions} for more information.
274
+ */
275
+ contextShift?: ContextShiftOptions;
276
+ /**
277
+ * Yield an EOG (End Of Generation) token (like EOS and EOT) when it's generated.
278
+ * When `false` the generation will stop when an EOG token is generated and the token won't be yielded.
279
+ * Defaults to `false`.
280
+ */
281
+ yieldEogToken?: boolean;
282
+ };
283
+ export type SequenceEvaluateMetadataOptions = {
284
+ /**
285
+ * Get the confidence (probability) of the selected token.
286
+ *
287
+ * Same as `probabilities.get(token)` from the output.
288
+ *
289
+ * If you need only this value, you can skip getting the full probabilities list to improve performance.
290
+ *
291
+ * This value might be slightly different when evaluated on different GPUs and configurations.
292
+ */
293
+ readonly confidence?: boolean;
294
+ /**
295
+ * Get the full probabilities list of tokens from the vocabulary to be the next token, after applying the given options.
296
+ *
297
+ * Only enable when needed, as it impacts the performance.
298
+ *
299
+ * Defaults to `false`.
300
+ */
301
+ readonly probabilities?: boolean;
302
+ };
303
+ export type SequenceEvaluateOutput<Options extends {
304
+ readonly confidence?: boolean;
305
+ readonly probabilities?: boolean;
306
+ } = {
307
+ readonly confidence: true;
308
+ readonly probabilities: true;
309
+ }> = PickOptions<{
310
+ /**
311
+ * The next token generated by the model and selected using the given options (such a temperature).
312
+ */
313
+ token: Token;
314
+ /**
315
+ * The confidence (probability) of the selected token.
316
+ *
317
+ * Same as `probabilities.get(token)`.
318
+ *
319
+ * If you need only this value, you can skip getting the full probabilities list to improve performance.
320
+ *
321
+ * This value might be slightly different when evaluated on different GPUs and configurations.
322
+ */
323
+ confidence: number;
324
+ /**
325
+ * The probabilities of the tokens from the vocabulary to be the next token.
326
+ *
327
+ * A probability is a number from `0` to `1`.
328
+ *
329
+ * The probabilities might be slightly different when evaluated on different GPUs and configurations.
330
+ *
331
+ * The map is sorted by the probability of the tokens from the highest to the lowest,
332
+ * and is reflected in the order of the entries when iterating over the map.
333
+ * Use `.entries().next().value` to get the top probability pair
334
+ * ([learn more](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries)).
335
+ */
336
+ probabilities: Map<Token, number>;
337
+ }, Options & {
338
+ token: true;
339
+ }>;
340
+ export type ControlledEvaluateInputItem = Token | [
341
+ token: Token,
342
+ options: {
343
+ generateNext?: {
344
+ /**
345
+ * Get the full probabilities list of tokens from the vocabulary to be the next token, after applying the given options.
346
+ *
347
+ * Only enable when needed, as it impacts the performance.
348
+ *
349
+ * Defaults to `false`.
350
+ */
351
+ probabilities?: boolean;
352
+ /**
353
+ * Get the confidence (probability) of the selected token.
354
+ *
355
+ * Same as `next.probabilities.get(next.token)` from the output.
356
+ *
357
+ * If you need only this value, you can skip getting the full probabilities list to improve performance.
358
+ *
359
+ * This value might be slightly different when evaluated on different GPUs and configurations.
360
+ */
361
+ confidence?: boolean;
362
+ /**
363
+ * Generate the next token with the provided options using sampling.
364
+ *
365
+ * Setting this to `true` will generate probabilities for the next token and sample it.
366
+ */
367
+ token?: boolean;
368
+ options?: {
369
+ temperature?: number;
370
+ minP?: number;
371
+ topK?: number;
372
+ topP?: number;
373
+ /**
374
+ * Used to control the randomness of the generated text.
375
+ *
376
+ * Change the seed to get different results.
377
+ *
378
+ * Defaults to the current epoch time.
379
+ *
380
+ * Only relevant when using `temperature`.
381
+ */
382
+ seed?: number;
383
+ repeatPenalty?: LlamaContextSequenceRepeatPenalty;
384
+ /**
385
+ * Adjust the probability of tokens being generated.
386
+ * Can be used to bias the model to generate tokens that you want it to lean towards,
387
+ * or to avoid generating tokens that you want it to avoid.
388
+ */
389
+ tokenBias?: TokenBias | (() => TokenBias);
390
+ };
391
+ };
392
+ }
393
+ ];
394
+ export type ControlledEvaluateIndexOutput = {
395
+ next: {
396
+ token?: Token | null;
397
+ /**
398
+ * The confidence (probability) of the selected token (the `token` field in this object).
399
+ *
400
+ * Same as `next.probabilities.get(next.token)`.
401
+ *
402
+ * If you need only this value, you can skip getting the full probabilities list to improve performance.
403
+ *
404
+ * This value might be slightly different when evaluated on different GPUs and configurations.
405
+ */
406
+ confidence?: number;
407
+ /**
408
+ * The probabilities of the tokens from the vocabulary to be the next token.
409
+ *
410
+ * A probability is a number from `0` to `1`.
411
+ *
412
+ * The probabilities might be slightly different when evaluated on different GPUs and configurations.
413
+ *
414
+ * The map is sorted by the probability of the tokens from the highest to the lowest,
415
+ * and is reflected in the order of the entries when iterating over the map.
416
+ * Use `.entries().next().value` to get the top probability pair
417
+ * ([learn more](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries)).
418
+ */
419
+ probabilities?: Map<Token, number>;
420
+ };
421
+ };
230
422
  /**
231
423
  * 1 - low
232
424
  *
@@ -235,6 +427,7 @@ export type ContextTokensDeleteRange = {
235
427
  export type EvaluationPriority = 1 | 2 | 3 | 4 | 5;
236
428
  export type BatchItem = {
237
429
  readonly tokens: readonly Token[];
430
+ readonly logits: readonly (true | undefined)[];
238
431
  readonly evaluationPriority: EvaluationPriority;
239
432
  };
240
433
  export type PrioritizedBatchItem = {
@@ -37,6 +37,9 @@ export type LlamaEmbeddingContextOptions = {
37
37
  */
38
38
  ignoreMemorySafetyChecks?: boolean;
39
39
  };
40
+ /**
41
+ * @see [Using Embedding](https://node-llama-cpp.withcat.ai/guide/embedding) tutorial
42
+ */
40
43
  export declare class LlamaEmbeddingContext {
41
44
  readonly onDispose: EventRelay<void>;
42
45
  private constructor();
@@ -2,6 +2,9 @@ import { AsyncDisposeAggregator, EventRelay, withLock } from "lifecycle-utils";
2
2
  import { tokenizeInput } from "../utils/tokenizeInput.js";
3
3
  import { resolveBeginningTokenToPrepend, resolveEndTokenToAppend } from "../utils/tokenizerUtils.js";
4
4
  import { LlamaEmbedding } from "./LlamaEmbedding.js";
5
+ /**
6
+ * @see [Using Embedding](https://node-llama-cpp.withcat.ai/guide/embedding) tutorial
7
+ */
5
8
  export class LlamaEmbeddingContext {
6
9
  /** @internal */ _llamaContext;
7
10
  /** @internal */ _sequence;
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaEmbeddingContext.js","sourceRoot":"","sources":["../../src/evaluator/LlamaEmbeddingContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlamaEmbeddingContext.js","sourceRoot":"","sources":["../../src/evaluator/LlamaEmbeddingContext.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,18 @@ export type LlamaGrammarOptions = {
15
15
  */
16
16
  rootRuleName?: string;
17
17
  };
18
+ /**
19
+ * @see [Using Grammar](https://node-llama-cpp.withcat.ai/guide/grammar) tutorial
20
+ */
18
21
  export declare class LlamaGrammar {
19
22
  /**
20
23
  * > GBNF files are supported.
21
24
  * > More info here: [
22
25
  * github:ggerganov/llama.cpp:grammars/README.md
23
26
  * ](https://github.com/ggerganov/llama.cpp/blob/f5fe98d11bdf9e7797bcfb05c0c3601ffc4b9d26/grammars/README.md)
27
+ *
28
+ * Prefer to create a new instance of this class by using `llama.createGrammar(...)`.
29
+ * @deprecated Use `llama.createGrammar(...)` instead.
24
30
  * @param llama
25
31
  * @param options
26
32
  */
@@ -29,5 +35,5 @@ export declare class LlamaGrammar {
29
35
  get rootRuleName(): string;
30
36
  get stopGenerationTriggers(): readonly (string | import("../utils/LlamaText.js")._LlamaText | readonly (string | Token)[])[];
31
37
  get trimWhitespaceSuffix(): boolean;
32
- static getFor(llama: Llama, type: "json" | "json_arr" | "list" | "c" | "arithmetic" | "japanese" | "chess"): Promise<LlamaGrammar>;
38
+ static getFor(llama: Llama, type: "json" | "json_arr" | "english" | "list" | "c" | "arithmetic" | "japanese" | "chess"): Promise<LlamaGrammar>;
33
39
  }
@@ -2,6 +2,9 @@ import path from "path";
2
2
  import fs from "fs-extra";
3
3
  import { getGrammarsFolder } from "../utils/getGrammarsFolder.js";
4
4
  import { LlamaText } from "../utils/LlamaText.js";
5
+ /**
6
+ * @see [Using Grammar](https://node-llama-cpp.withcat.ai/guide/grammar) tutorial
7
+ */
5
8
  export class LlamaGrammar {
6
9
  /** @internal */ _llama;
7
10
  /** @internal */ _grammar;
@@ -14,6 +17,9 @@ export class LlamaGrammar {
14
17
  * > More info here: [
15
18
  * github:ggerganov/llama.cpp:grammars/README.md
16
19
  * ](https://github.com/ggerganov/llama.cpp/blob/f5fe98d11bdf9e7797bcfb05c0c3601ffc4b9d26/grammars/README.md)
20
+ *
21
+ * Prefer to create a new instance of this class by using `llama.createGrammar(...)`.
22
+ * @deprecated Use `llama.createGrammar(...)` instead.
17
23
  * @param llama
18
24
  * @param options
19
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaGrammar.js","sourceRoot":"","sources":["../../src/evaluator/LlamaGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAwBhD,MAAM,OAAO,YAAY;IACrB,gBAAgB,CAAiB,MAAM,CAAQ;IAC/C,gBAAgB,CAAiB,QAAQ,CAAe;IACxD,gBAAgB,CAAkB,uBAAuB,CAAgE;IACzH,gBAAgB,CAAkB,qBAAqB,CAAU;IACjE,gBAAgB,CAAkB,YAAY,CAAS;IACvD,gBAAgB,CAAkB,aAAa,CAAS;IAExD;;;;;;;OAOG;IACH,YAAmB,KAAY,EAAE,EAC7B,OAAO,EAAE,sBAAsB,GAAG,EAAE,EAAE,oBAAoB,GAAG,KAAK,EAAE,YAAY,GAAG,MAAM,EACvE;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE;YAC5D,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YACnC,YAAY;SACf,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,IAA8E;QACnH,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;QAE9D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE;gBAC3B,OAAO;gBACP,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,oEAAoE;gBAC5H,oBAAoB,EAAE,IAAI;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,uBAAuB,cAAc,GAAG,CAAC,CAAC;IAC5F,CAAC;CACJ"}
1
+ {"version":3,"file":"LlamaGrammar.js","sourceRoot":"","sources":["../../src/evaluator/LlamaGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAwBhD;;GAEG;AACH,MAAM,OAAO,YAAY;IACrB,gBAAgB,CAAiB,MAAM,CAAQ;IAC/C,gBAAgB,CAAiB,QAAQ,CAAe;IACxD,gBAAgB,CAAkB,uBAAuB,CAAgE;IACzH,gBAAgB,CAAkB,qBAAqB,CAAU;IACjE,gBAAgB,CAAkB,YAAY,CAAS;IACvD,gBAAgB,CAAkB,aAAa,CAAS;IAExD;;;;;;;;;;OAUG;IACH,YAAmB,KAAY,EAAE,EAC7B,OAAO,EAAE,sBAAsB,GAAG,EAAE,EAAE,oBAAoB,GAAG,KAAK,EAAE,YAAY,GAAG,MAAM,EACvE;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE;YAC5D,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YACnC,YAAY;SACf,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,IAA0F;QAC/H,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;QAE9D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE;gBAC3B,OAAO;gBACP,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,oEAAoE;gBAC5H,oBAAoB,EAAE,IAAI;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,uBAAuB,cAAc,GAAG,CAAC,CAAC;IAC5F,CAAC;CACJ"}
@@ -12,8 +12,8 @@ export type LlamaGrammarEvaluationStateOptions = {
12
12
  * This is only needed when using the `LlamaContext` class directly, since `LlamaChatSession` already handles this for you.
13
13
  */
14
14
  export declare class LlamaGrammarEvaluationState {
15
- /**
16
- * @param options
17
- */
18
- constructor({ model, grammar }: LlamaGrammarEvaluationStateOptions);
15
+ constructor(options: LlamaGrammarEvaluationStateOptions);
16
+ constructor(existingState: LlamaGrammarEvaluationState);
17
+ /** Clone the grammar evaluation state */
18
+ clone(): LlamaGrammarEvaluationState;
19
19
  }
@@ -8,14 +8,22 @@
8
8
  export class LlamaGrammarEvaluationState {
9
9
  /** @internal */ _llama;
10
10
  /** @internal */ _state;
11
- /**
12
- * @param options
13
- */
14
- constructor({ model, grammar }) {
15
- this._llama = model._llama;
16
- if (model._llama !== grammar._llama)
17
- throw new Error("The given LlamaModel and LlamaGrammar must be from the same Llama instance");
18
- this._state = new model._llama._bindings.AddonGrammarEvaluationState(model._model, grammar._grammar);
11
+ constructor(existingStateOrOptions) {
12
+ if (existingStateOrOptions instanceof LlamaGrammarEvaluationState) {
13
+ this._llama = existingStateOrOptions._llama;
14
+ this._state = new this._llama._bindings.AddonGrammarEvaluationState(existingStateOrOptions._state);
15
+ }
16
+ else {
17
+ const { model, grammar } = existingStateOrOptions;
18
+ this._llama = model._llama;
19
+ if (model._llama !== grammar._llama)
20
+ throw new Error("The given LlamaModel and LlamaGrammar must be from the same Llama instance");
21
+ this._state = new model._llama._bindings.AddonGrammarEvaluationState(model._model, grammar._grammar);
22
+ }
23
+ }
24
+ /** Clone the grammar evaluation state */
25
+ clone() {
26
+ return new LlamaGrammarEvaluationState(this);
19
27
  }
20
28
  }
21
29
  //# sourceMappingURL=LlamaGrammarEvaluationState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaGrammarEvaluationState.js","sourceRoot":"","sources":["../../src/evaluator/LlamaGrammarEvaluationState.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IACpC,gBAAgB,CAAiB,MAAM,CAAQ;IAC/C,gBAAgB,CAAiB,MAAM,CAA8B;IAErE;;OAEG;IACH,YAAmB,EAAC,KAAK,EAAE,OAAO,EAAqC;QACnE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAC/B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAElG,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzG,CAAC;CACJ"}
1
+ {"version":3,"file":"LlamaGrammarEvaluationState.js","sourceRoot":"","sources":["../../src/evaluator/LlamaGrammarEvaluationState.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IACpC,gBAAgB,CAAiB,MAAM,CAAQ;IAC/C,gBAAgB,CAAiB,MAAM,CAA8B;IAIrE,YAAmB,sBAAwF;QACvG,IAAI,sBAAsB,YAAY,2BAA2B,EAAE,CAAC;YAChE,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACJ,MAAM,EAAC,KAAK,EAAE,OAAO,EAAC,GAAG,sBAAsB,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;gBAC/B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;YAElG,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzG,CAAC;IACL,CAAC;IAED,yCAAyC;IAClC,KAAK;QACR,OAAO,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACJ"}
@@ -1,10 +1,15 @@
1
1
  import { GbnfJsonSchema, GbnfJsonSchemaToType } from "../utils/gbnfJson/types.js";
2
2
  import { Llama } from "../bindings/Llama.js";
3
3
  import { LlamaGrammar } from "./LlamaGrammar.js";
4
+ /**
5
+ * @see [Using a JSON Schema Grammar](https://node-llama-cpp.withcat.ai/guide/grammar#json-schema) tutorial
6
+ * @see [Reducing Hallucinations When Using JSON Schema Grammar](https://node-llama-cpp.withcat.ai/guide/grammar#reducing-json-schema-hallucinations) tutorial
7
+ */
4
8
  export declare class LlamaJsonSchemaGrammar<const T extends GbnfJsonSchema> extends LlamaGrammar {
5
9
  private readonly _schema;
6
10
  /**
7
11
  * Prefer to create a new instance of this class by using `llama.createGrammarForJsonSchema(...)`.
12
+ * @deprecated Use `llama.createGrammarForJsonSchema(...)` instead.
8
13
  */
9
14
  constructor(llama: Llama, schema: Readonly<T>);
10
15
  get schema(): Readonly<T>;
@@ -2,10 +2,16 @@ import { getGbnfGrammarForGbnfJsonSchema } from "../utils/gbnfJson/getGbnfGramma
2
2
  import { validateObjectAgainstGbnfSchema } from "../utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js";
3
3
  import { LlamaText } from "../utils/LlamaText.js";
4
4
  import { LlamaGrammar } from "./LlamaGrammar.js";
5
+ /* eslint-disable @stylistic/max-len */
6
+ /**
7
+ * @see [Using a JSON Schema Grammar](https://node-llama-cpp.withcat.ai/guide/grammar#json-schema) tutorial
8
+ * @see [Reducing Hallucinations When Using JSON Schema Grammar](https://node-llama-cpp.withcat.ai/guide/grammar#reducing-json-schema-hallucinations) tutorial
9
+ */
5
10
  export class LlamaJsonSchemaGrammar extends LlamaGrammar {
6
11
  _schema;
7
12
  /**
8
13
  * Prefer to create a new instance of this class by using `llama.createGrammarForJsonSchema(...)`.
14
+ * @deprecated Use `llama.createGrammarForJsonSchema(...)` instead.
9
15
  */
10
16
  constructor(llama, schema) {
11
17
  const grammar = getGbnfGrammarForGbnfJsonSchema(schema);
@@ -25,4 +31,5 @@ export class LlamaJsonSchemaGrammar extends LlamaGrammar {
25
31
  return parsedJson;
26
32
  }
27
33
  }
34
+ /* eslint-enable @stylistic/max-len */
28
35
  //# sourceMappingURL=LlamaJsonSchemaGrammar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaJsonSchemaGrammar.js","sourceRoot":"","sources":["../../src/evaluator/LlamaJsonSchemaGrammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,+BAA+B,EAAC,MAAM,sDAAsD,CAAC;AACrG,OAAO,EAAC,+BAA+B,EAAC,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,sBAAuD,SAAQ,YAAY;IACnE,OAAO,CAAI;IAE5B;;OAEG;IACH,YAAmB,KAAY,EAAE,MAAmB;QAChD,MAAM,OAAO,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAExD,KAAK,CAAC,KAAK,EAAE;YACT,OAAO;YACP,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,oBAAoB,EAAE,IAAI;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,IAAY;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,+BAA+B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1D,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"LlamaJsonSchemaGrammar.js","sourceRoot":"","sources":["../../src/evaluator/LlamaJsonSchemaGrammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,+BAA+B,EAAC,MAAM,sDAAsD,CAAC;AACrG,OAAO,EAAC,+BAA+B,EAAC,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,uCAAuC;AACvC;;;GAGG;AACH,MAAM,OAAO,sBAAuD,SAAQ,YAAY;IACnE,OAAO,CAAI;IAE5B;;;OAGG;IACH,YAAmB,KAAY,EAAE,MAAmB;QAChD,MAAM,OAAO,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAExD,KAAK,CAAC,KAAK,EAAE;YACT,OAAO;YACP,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,oBAAoB,EAAE,IAAI;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,IAAY;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,+BAA+B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1D,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AACD,sCAAsC"}