node-llama-cpp 3.1.1 → 3.3.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 (234) hide show
  1. package/README.md +1 -1
  2. package/dist/ChatWrapper.js +1 -1
  3. package/dist/ChatWrapper.js.map +1 -1
  4. package/dist/bindings/AddonTypes.d.ts +10 -3
  5. package/dist/bindings/Llama.d.ts +31 -1
  6. package/dist/bindings/Llama.js +95 -10
  7. package/dist/bindings/Llama.js.map +1 -1
  8. package/dist/bindings/getLlama.d.ts +26 -2
  9. package/dist/bindings/getLlama.js +60 -5
  10. package/dist/bindings/getLlama.js.map +1 -1
  11. package/dist/bindings/utils/MemoryOrchestrator.d.ts +2 -0
  12. package/dist/bindings/utils/MemoryOrchestrator.js +3 -2
  13. package/dist/bindings/utils/MemoryOrchestrator.js.map +1 -1
  14. package/dist/bindings/utils/clearAllLocalBuilds.js +2 -2
  15. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -1
  16. package/dist/bindings/utils/compileLLamaCpp.d.ts +1 -1
  17. package/dist/bindings/utils/compileLLamaCpp.js +54 -1
  18. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  19. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -1
  20. package/dist/bindings/utils/getGpuTypesToUseForOption.js +1 -1
  21. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -1
  22. package/dist/bindings/utils/getLinuxDistroInfo.js +1 -1
  23. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -1
  24. package/dist/bindings/utils/testBindingBinary.d.ts +2 -1
  25. package/dist/bindings/utils/testBindingBinary.js +122 -37
  26. package/dist/bindings/utils/testBindingBinary.js.map +1 -1
  27. package/dist/bindings/utils/testCmakeBinary.js +1 -1
  28. package/dist/bindings/utils/testCmakeBinary.js.map +1 -1
  29. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  30. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
  31. package/dist/chatWrappers/Llama3_1ChatWrapper.js +3 -2
  32. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
  33. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.d.ts +35 -0
  34. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js +253 -0
  35. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js.map +1 -0
  36. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +13 -0
  37. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +31 -1
  38. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -1
  39. package/dist/chatWrappers/utils/chunkChatItems.js +1 -1
  40. package/dist/chatWrappers/utils/chunkChatItems.js.map +1 -1
  41. package/dist/chatWrappers/utils/getModelLinageNames.d.ts +2 -0
  42. package/dist/chatWrappers/utils/getModelLinageNames.js +18 -0
  43. package/dist/chatWrappers/utils/getModelLinageNames.js.map +1 -0
  44. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -1
  45. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.d.ts +2 -0
  46. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js +9 -0
  47. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js.map +1 -0
  48. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +4 -2
  49. package/dist/chatWrappers/utils/resolveChatWrapper.js +10 -32
  50. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  51. package/dist/cli/commands/ChatCommand.js +2 -3
  52. package/dist/cli/commands/ChatCommand.js.map +1 -1
  53. package/dist/cli/commands/CompleteCommand.js +1 -2
  54. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  55. package/dist/cli/commands/InfillCommand.js +1 -2
  56. package/dist/cli/commands/InfillCommand.js.map +1 -1
  57. package/dist/cli/commands/InitCommand.d.ts +2 -1
  58. package/dist/cli/commands/InitCommand.js +32 -13
  59. package/dist/cli/commands/InitCommand.js.map +1 -1
  60. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +0 -1
  61. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -1
  62. package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +1 -0
  63. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +47 -11
  64. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  65. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +14 -3
  66. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  67. package/dist/cli/recommendedModels.js +11 -0
  68. package/dist/cli/recommendedModels.js.map +1 -1
  69. package/dist/cli/utils/consolePromptQuestion.js +0 -1
  70. package/dist/cli/utils/consolePromptQuestion.js.map +1 -1
  71. package/dist/cli/utils/interactivelyAskForModel.js +3 -1
  72. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  73. package/dist/evaluator/LlamaChat/LlamaChat.js +37 -24
  74. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  75. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +63 -8
  76. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  77. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +8 -1
  78. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +156 -138
  79. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  80. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +1 -1
  81. package/dist/evaluator/LlamaCompletion.js +11 -9
  82. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  83. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +11 -0
  84. package/dist/evaluator/LlamaContext/LlamaContext.js +66 -8
  85. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  86. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -1
  87. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -1
  88. package/dist/evaluator/LlamaGrammar.js +7 -0
  89. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  90. package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +3 -2
  91. package/dist/evaluator/LlamaJsonSchemaGrammar.js +3 -0
  92. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
  93. package/dist/evaluator/LlamaModel/LlamaModel.js +8 -4
  94. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  95. package/dist/gguf/fileReaders/GgufFileReader.d.ts +1 -1
  96. package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +1 -1
  97. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +1 -1
  98. package/dist/gguf/insights/GgufInsights.d.ts +1 -0
  99. package/dist/gguf/insights/GgufInsights.js +8 -0
  100. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  101. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +40 -4
  102. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +116 -93
  103. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
  104. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.d.ts +5 -0
  105. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.js +7 -0
  106. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.js.map +1 -0
  107. package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +11 -1
  108. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +47 -17
  109. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -1
  110. package/dist/gguf/insights/utils/scoreLevels.js.map +1 -1
  111. package/dist/gguf/readGgufFileInfo.js +1 -1
  112. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  113. package/dist/gguf/utils/getGgufMetadataKeyValue.d.ts +1 -0
  114. package/dist/gguf/utils/getGgufMetadataKeyValue.js +27 -0
  115. package/dist/gguf/utils/getGgufMetadataKeyValue.js.map +1 -0
  116. package/dist/index.d.ts +3 -2
  117. package/dist/index.js +2 -1
  118. package/dist/index.js.map +1 -1
  119. package/dist/tsconfig.tsbuildinfo +1 -1
  120. package/dist/types.d.ts +2 -2
  121. package/dist/utils/StopGenerationDetector.js +1 -1
  122. package/dist/utils/StopGenerationDetector.js.map +1 -1
  123. package/dist/utils/ThreadsSplitter.js +2 -2
  124. package/dist/utils/ThreadsSplitter.js.map +1 -1
  125. package/dist/utils/createModelDownloader.js.map +1 -1
  126. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +2 -1
  127. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +14 -1
  128. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -1
  129. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +5 -0
  130. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +15 -0
  131. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  132. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +3 -0
  133. package/dist/utils/gbnfJson/GbnfTerminal.js +25 -3
  134. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  135. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.d.ts +1 -1
  136. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  137. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.d.ts +9 -0
  138. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js +53 -0
  139. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js.map +1 -0
  140. package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +11 -2
  141. package/dist/utils/gbnfJson/terminals/GbnfArray.js +64 -15
  142. package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -1
  143. package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +3 -2
  144. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js +13 -7
  145. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -1
  146. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.d.ts +11 -0
  147. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js +28 -0
  148. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js.map +1 -0
  149. package/dist/utils/gbnfJson/terminals/GbnfFormatString.d.ts +11 -0
  150. package/dist/utils/gbnfJson/terminals/GbnfFormatString.js +90 -0
  151. package/dist/utils/gbnfJson/terminals/GbnfFormatString.js.map +1 -0
  152. package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +4 -1
  153. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +8 -1
  154. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
  155. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.d.ts +5 -0
  156. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js +24 -0
  157. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js.map +1 -0
  158. package/dist/utils/gbnfJson/terminals/GbnfNumber.js +4 -3
  159. package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
  160. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +3 -1
  161. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +8 -2
  162. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
  163. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +14 -5
  164. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +67 -9
  165. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
  166. package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +2 -1
  167. package/dist/utils/gbnfJson/terminals/GbnfOr.js +9 -5
  168. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
  169. package/dist/utils/gbnfJson/terminals/GbnfRepetition.d.ts +7 -1
  170. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js +69 -20
  171. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js.map +1 -1
  172. package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +8 -1
  173. package/dist/utils/gbnfJson/terminals/GbnfString.js +31 -21
  174. package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -1
  175. package/dist/utils/gbnfJson/terminals/GbnfStringValue.d.ts +2 -0
  176. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js +7 -4
  177. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -1
  178. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +2 -1
  179. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +24 -5
  180. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
  181. package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +16 -1
  182. package/dist/utils/gbnfJson/terminals/gbnfConsts.js +47 -1
  183. package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -1
  184. package/dist/utils/gbnfJson/types.d.ts +164 -17
  185. package/dist/utils/gbnfJson/types.js +6 -0
  186. package/dist/utils/gbnfJson/types.js.map +1 -1
  187. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +61 -9
  188. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
  189. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +99 -8
  190. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  191. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +125 -16
  192. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
  193. package/dist/utils/hashString.js +1 -1
  194. package/dist/utils/hashString.js.map +1 -1
  195. package/dist/utils/includesText.d.ts +1 -0
  196. package/dist/utils/includesText.js +12 -0
  197. package/dist/utils/includesText.js.map +1 -0
  198. package/dist/utils/spawnCommand.js +1 -1
  199. package/dist/utils/spawnCommand.js.map +1 -1
  200. package/dist/utils/transformPromisable.js +1 -2
  201. package/dist/utils/transformPromisable.js.map +1 -1
  202. package/dist/utils/truncateTextAndRoundToWords.d.ts +4 -3
  203. package/dist/utils/truncateTextAndRoundToWords.js +90 -39
  204. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -1
  205. package/dist/utils/waitForLockfileRelease.js +0 -1
  206. package/dist/utils/waitForLockfileRelease.js.map +1 -1
  207. package/dist/utils/wrapAbortSignal.d.ts +1 -1
  208. package/dist/utils/wrapAbortSignal.js +9 -4
  209. package/dist/utils/wrapAbortSignal.js.map +1 -1
  210. package/llama/CMakeLists.txt +16 -90
  211. package/llama/addon/AddonContext.cpp +1 -1
  212. package/llama/addon/AddonGrammar.cpp +49 -1
  213. package/llama/addon/AddonGrammar.h +3 -0
  214. package/llama/addon/AddonModel.cpp +4 -4
  215. package/llama/addon/AddonSampler.cpp +0 -13
  216. package/llama/addon/AddonSampler.h +0 -2
  217. package/llama/addon/addon.cpp +19 -0
  218. package/llama/addon/globals/getGpuInfo.cpp +61 -53
  219. package/llama/addon/globals/getSwapInfo.cpp +69 -0
  220. package/llama/addon/globals/getSwapInfo.h +4 -0
  221. package/llama/binariesGithubRelease.json +1 -1
  222. package/llama/gitRelease.bundle +0 -0
  223. package/llama/gpuInfo/vulkan-gpu-info.cpp +15 -16
  224. package/llama/gpuInfo/vulkan-gpu-info.h +1 -2
  225. package/llama/grammars/README.md +1 -1
  226. package/llama/llama.cpp.info.json +1 -1
  227. package/package.json +57 -51
  228. package/templates/README.md +6 -0
  229. package/templates/packed/electron-typescript-react.json +1 -1
  230. package/templates/packed/node-typescript.json +1 -1
  231. package/llama/gpuInfo/cuda-gpu-info.cu +0 -120
  232. package/llama/gpuInfo/cuda-gpu-info.h +0 -10
  233. package/llama/gpuInfo/metal-gpu-info.h +0 -8
  234. package/llama/gpuInfo/metal-gpu-info.mm +0 -30
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <img alt="node-llama-cpp Logo" src="https://raw.githubusercontent.com/withcatai/node-llama-cpp/master/assets/logo.v3.roundEdges.avif" width="360px" />
2
+ <a href="https://node-llama-cpp.withcat.ai" target="_blank"><img alt="node-llama-cpp Logo" src="https://raw.githubusercontent.com/withcatai/node-llama-cpp/master/assets/logo.v3.roundEdges.avif" width="360px" /></a>
3
3
  <h1>node-llama-cpp</h1>
4
4
  <p>Run AI models locally on your machine</p>
5
5
  <sub>Pre-built bindings are provided with a fallback to building from source with cmake</sub>
@@ -169,7 +169,7 @@ export class ChatWrapper {
169
169
  static _getOptionConfigurationsToTestIfCanSupersedeJinjaTemplate() {
170
170
  return [{}];
171
171
  }
172
- /** @internal */ // eslint-disable-next-line @typescript-eslint/no-unused-vars
172
+ /** @internal */
173
173
  static _checkModelCompatibility(options) {
174
174
  return true;
175
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWrapper.js","sourceRoot":"","sources":["../src/ChatWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatWrapper.js","sourceRoot":"","sources":["../src/ChatWrapper.ts"],"names":[],"mappings":"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"}
@@ -62,12 +62,19 @@ export type BindingModule = {
62
62
  getGpuVramInfo(): {
63
63
  total: number;
64
64
  used: number;
65
+ unifiedSize: number;
65
66
  };
66
67
  getGpuDeviceInfo(): {
67
68
  deviceNames: string[];
68
69
  };
69
- getGpuType(): "cuda" | "vulkan" | "metal" | undefined;
70
+ getGpuType(): "cuda" | "vulkan" | "metal" | false | undefined;
71
+ getSwapInfo(): {
72
+ total: number;
73
+ maxSize: number;
74
+ free: number;
75
+ };
70
76
  init(): Promise<void>;
77
+ loadBackends(forceLoadLibraries?: boolean): void;
71
78
  dispose(): Promise<void>;
72
79
  };
73
80
  export type AddonModel = {
@@ -117,8 +124,8 @@ export type AddonContext = {
117
124
  export type BatchLogitIndex = number & {
118
125
  __batchLogitIndex: never;
119
126
  };
120
- export type AddonGrammar = "AddonGrammar" & {
121
- __brand: never;
127
+ export type AddonGrammar = {
128
+ isTextCompatible(testText: string): boolean;
122
129
  };
123
130
  export type AddonGrammarEvaluationState = "AddonGrammarEvaluationState" & {
124
131
  __brand: never;
@@ -47,14 +47,44 @@ export declare class Llama {
47
47
  * See `vramPadding` on `getLlama` for more information.
48
48
  */
49
49
  get vramPaddingSize(): number;
50
+ /**
51
+ * The total amount of VRAM that is currently being used.
52
+ *
53
+ * `unifiedSize` represents the amount of VRAM that is shared between the CPU and GPU.
54
+ * On SoC devices, this is usually the same as `total`.
55
+ */
50
56
  getVramState(): Promise<{
51
57
  total: number;
52
58
  used: number;
53
59
  free: number;
60
+ unifiedSize: number;
61
+ }>;
62
+ /**
63
+ * Get the state of the swap memory.
64
+ *
65
+ * **`maxSize`** - The maximum size of the swap memory that the system can allocate.
66
+ * If the swap size is dynamic (like on macOS), this will be `Infinity`.
67
+ *
68
+ * **`allocated`** - The total size allocated by the system for swap memory.
69
+ *
70
+ * **`used`** - The amount of swap memory that is currently being used from the `allocated` size.
71
+ *
72
+ * On Windows, this will return the info for the page file.
73
+ */
74
+ getSwapState(): Promise<{
75
+ /**
76
+ * The maximum size of the swap memory that the system can allocate.
77
+ * If the swap size is dynamic (like on macOS), this will be `Infinity`
78
+ */
79
+ maxSize: number;
80
+ /** The total size allocated by the system for swap memory */
81
+ allocated: number;
82
+ /** The amount of swap memory that is currently being used from the `allocated` size */
83
+ used: number;
54
84
  }>;
55
85
  getGpuDeviceNames(): Promise<string[]>;
56
86
  loadModel(options: LlamaModelOptions): Promise<LlamaModel>;
57
- createGrammarForJsonSchema<const T extends Readonly<GbnfJsonSchema>>(schema: T): Promise<LlamaJsonSchemaGrammar<T>>;
87
+ createGrammarForJsonSchema<const T extends GbnfJsonSchema>(schema: Readonly<T>): Promise<LlamaJsonSchemaGrammar<T>>;
58
88
  getGrammarFor(type: Parameters<typeof LlamaGrammar.getFor>[1]): Promise<LlamaGrammar>;
59
89
  createGrammar(options: LlamaGrammarOptions): Promise<LlamaGrammar>;
60
90
  static defaultConsoleLogger(level: LlamaLogLevel, message: string): void;
@@ -1,3 +1,4 @@
1
+ import os from "os";
1
2
  import chalk from "chalk";
2
3
  import { DisposedError, EventRelay, withLock } from "lifecycle-utils";
3
4
  import { getConsoleLogPrefix } from "../utils/getConsoleLogPrefix.js";
@@ -7,7 +8,7 @@ import { LlamaJsonSchemaGrammar } from "../evaluator/LlamaJsonSchemaGrammar.js";
7
8
  import { LlamaGrammar } from "../evaluator/LlamaGrammar.js";
8
9
  import { ThreadsSplitter } from "../utils/ThreadsSplitter.js";
9
10
  import { getLlamaClasses } from "../utils/getLlamaClasses.js";
10
- import { LlamaLocks, LlamaLogLevel } from "./types.js";
11
+ import { LlamaLocks, LlamaLogLevel, LlamaLogLevelGreaterThanOrEqual } from "./types.js";
11
12
  import { MemoryOrchestrator } from "./utils/MemoryOrchestrator.js";
12
13
  const LlamaLogLevelToAddonLogLevel = new Map([
13
14
  [LlamaLogLevel.disabled, 0],
@@ -28,6 +29,9 @@ export class Llama {
28
29
  /** @internal */ _consts;
29
30
  /** @internal */ _vramOrchestrator;
30
31
  /** @internal */ _vramPadding;
32
+ /** @internal */ _ramOrchestrator;
33
+ /** @internal */ _ramPadding;
34
+ /** @internal */ _swapOrchestrator;
31
35
  /** @internal */ _debug;
32
36
  /** @internal */ _threadsSplitter;
33
37
  /** @internal */ _gpu;
@@ -49,7 +53,7 @@ export class Llama {
49
53
  /** @internal */ _disposed = false;
50
54
  _classes;
51
55
  onDispose = new EventRelay();
52
- constructor({ bindings, logLevel, logger, buildType, cmakeOptions, llamaCppRelease, debug, gpu, maxThreads, vramOrchestrator, vramPadding }) {
56
+ constructor({ bindings, logLevel, logger, buildType, cmakeOptions, llamaCppRelease, debug, gpu, maxThreads, vramOrchestrator, vramPadding, ramOrchestrator, ramPadding, swapOrchestrator }) {
53
57
  this._bindings = bindings;
54
58
  this._gpu = gpu;
55
59
  this._supportsGpuOffloading = bindings.getSupportsGpuOffloading();
@@ -60,6 +64,9 @@ export class Llama {
60
64
  this._debug = debug;
61
65
  this._vramOrchestrator = vramOrchestrator;
62
66
  this._vramPadding = vramPadding;
67
+ this._ramOrchestrator = ramOrchestrator;
68
+ this._ramPadding = ramPadding;
69
+ this._swapOrchestrator = swapOrchestrator;
63
70
  this._threadsSplitter = new ThreadsSplitter(maxThreads ?? (this._gpu === false
64
71
  ? Math.max(defaultCPUMinThreadSplitterThreads, this._mathCores)
65
72
  : 0));
@@ -79,6 +86,10 @@ export class Llama {
79
86
  this._bindings.setLogger(this._onAddonLog);
80
87
  this._bindings.setLoggerLogLevel(LlamaLogLevelToAddonLogLevel.get(this._logLevel) ?? defaultLogLevel);
81
88
  }
89
+ this._bindings.loadBackends();
90
+ const loadedGpu = bindings.getGpuType();
91
+ if (loadedGpu == null || (loadedGpu === false && gpu !== false))
92
+ this._bindings.loadBackends(true);
82
93
  this._onExit = this._onExit.bind(this);
83
94
  process.on("exit", this._onExit);
84
95
  }
@@ -171,13 +182,43 @@ export class Llama {
171
182
  get vramPaddingSize() {
172
183
  return this._vramPadding.size;
173
184
  }
185
+ /**
186
+ * The total amount of VRAM that is currently being used.
187
+ *
188
+ * `unifiedSize` represents the amount of VRAM that is shared between the CPU and GPU.
189
+ * On SoC devices, this is usually the same as `total`.
190
+ */
174
191
  async getVramState() {
175
192
  this._ensureNotDisposed();
176
- const { total, used } = this._bindings.getGpuVramInfo();
193
+ const { total, used, unifiedSize } = this._bindings.getGpuVramInfo();
177
194
  return {
178
195
  total,
179
196
  used,
180
- free: Math.max(0, total - used)
197
+ free: Math.max(0, total - used),
198
+ unifiedSize
199
+ };
200
+ }
201
+ /**
202
+ * Get the state of the swap memory.
203
+ *
204
+ * **`maxSize`** - The maximum size of the swap memory that the system can allocate.
205
+ * If the swap size is dynamic (like on macOS), this will be `Infinity`.
206
+ *
207
+ * **`allocated`** - The total size allocated by the system for swap memory.
208
+ *
209
+ * **`used`** - The amount of swap memory that is currently being used from the `allocated` size.
210
+ *
211
+ * On Windows, this will return the info for the page file.
212
+ */
213
+ async getSwapState() {
214
+ this._ensureNotDisposed();
215
+ const { total, maxSize, free } = this._bindings.getSwapInfo();
216
+ return {
217
+ maxSize: maxSize === -1
218
+ ? Infinity
219
+ : maxSize,
220
+ allocated: total,
221
+ used: total - free
181
222
  };
182
223
  }
183
224
  async getGpuDeviceNames() {
@@ -273,7 +314,9 @@ export class Llama {
273
314
  this._nextLogNeedNewLine = false;
274
315
  }
275
316
  try {
276
- this._logger(level, message);
317
+ const transformedLogLevel = getTransformedLogLevel(level, message);
318
+ if (LlamaLogLevelGreaterThanOrEqual(transformedLogLevel, this._logLevel))
319
+ this._logger(transformedLogLevel, message);
277
320
  }
278
321
  catch (err) {
279
322
  // the native addon code calls this function, so there's no use to throw an error here
@@ -295,13 +338,38 @@ export class Llama {
295
338
  throw new DisposedError();
296
339
  }
297
340
  /** @internal */
298
- static async _create({ bindings, buildType, buildMetadata, logLevel, logger, vramPadding, maxThreads, skipLlamaInit = false, debug }) {
341
+ static async _create({ bindings, buildType, buildMetadata, logLevel, logger, vramPadding, ramPadding, maxThreads, skipLlamaInit = false, debug }) {
299
342
  const gpu = bindings.getGpuType() ?? false;
300
343
  const vramOrchestrator = new MemoryOrchestrator(() => {
301
- const { total, used } = bindings.getGpuVramInfo();
344
+ const { total, used, unifiedSize } = bindings.getGpuVramInfo();
345
+ return {
346
+ total,
347
+ free: Math.max(0, total - used),
348
+ unifiedSize
349
+ };
350
+ });
351
+ const ramOrchestrator = new MemoryOrchestrator(() => {
352
+ const used = process.memoryUsage().rss;
353
+ const total = os.totalmem();
302
354
  return {
303
355
  total,
304
- free: Math.max(0, total - used)
356
+ free: Math.max(0, total - used),
357
+ unifiedSize: total
358
+ };
359
+ });
360
+ const swapOrchestrator = new MemoryOrchestrator(() => {
361
+ const { total, maxSize, free } = bindings.getSwapInfo();
362
+ const used = total - free;
363
+ if (maxSize === -1)
364
+ return {
365
+ total: Infinity,
366
+ free: Infinity,
367
+ unifiedSize: Infinity
368
+ };
369
+ return {
370
+ total: maxSize,
371
+ free: maxSize - used,
372
+ unifiedSize: maxSize
305
373
  };
306
374
  });
307
375
  let resolvedVramPadding;
@@ -311,6 +379,11 @@ export class Llama {
311
379
  resolvedVramPadding = vramOrchestrator.reserveMemory(vramPadding((await vramOrchestrator.getMemoryState()).total));
312
380
  else
313
381
  resolvedVramPadding = vramOrchestrator.reserveMemory(vramPadding);
382
+ let resolvedRamPadding;
383
+ if (ramPadding instanceof Function)
384
+ resolvedRamPadding = ramOrchestrator.reserveMemory(ramPadding((await ramOrchestrator.getMemoryState()).total));
385
+ else
386
+ resolvedRamPadding = ramOrchestrator.reserveMemory(ramPadding);
314
387
  const llama = new Llama({
315
388
  bindings,
316
389
  buildType,
@@ -325,7 +398,10 @@ export class Llama {
325
398
  gpu,
326
399
  vramOrchestrator,
327
400
  maxThreads,
328
- vramPadding: resolvedVramPadding
401
+ vramPadding: resolvedVramPadding,
402
+ ramOrchestrator,
403
+ ramPadding: resolvedRamPadding,
404
+ swapOrchestrator
329
405
  });
330
406
  if (!skipLlamaInit)
331
407
  await llama._init();
@@ -379,7 +455,7 @@ function getColorForLogLevel(level) {
379
455
  function prefixAndColorMessage(message, color) {
380
456
  return getConsoleLogPrefix() + (message
381
457
  .split("\n")
382
- .map(line => color(line))
458
+ .map((line) => color(line))
383
459
  .join("\n" + getConsoleLogPrefix()));
384
460
  }
385
461
  function logMessageIsOnlyDots(message) {
@@ -391,4 +467,13 @@ function logMessageIsOnlyDots(message) {
391
467
  }
392
468
  return true;
393
469
  }
470
+ function getTransformedLogLevel(level, message) {
471
+ if (level === LlamaLogLevel.warn && message.endsWith("the full capacity of the model will not be utilized"))
472
+ return LlamaLogLevel.info;
473
+ else if (level === LlamaLogLevel.warn && message.startsWith("ggml_metal_init: skipping kernel_") && message.endsWith("(not supported)"))
474
+ return LlamaLogLevel.log;
475
+ else if (level === LlamaLogLevel.warn && message.startsWith("ggml_cuda_init: GGML_CUDA_FORCE_") && message.endsWith(" no"))
476
+ return LlamaLogLevel.log;
477
+ return level;
478
+ }
394
479
  //# sourceMappingURL=Llama.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Llama.js","sourceRoot":"","sources":["../../src/bindings/Llama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Llama.js","sourceRoot":"","sources":["../../src/bindings/Llama.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAC,UAAU,EAAoB,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAC,YAAY,EAAsB,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAe,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAA4C,UAAU,EAAE,aAAa,EAAE,+BAA+B,EAAC,MAAM,YAAY,CAAC;AACjI,OAAO,EAAC,kBAAkB,EAAoB,MAAM,+BAA+B,CAAC;AAEpF,MAAM,4BAA4B,GAAuC,IAAI,GAAG,CAAC;IAC7E,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3B,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IACxB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IACxB,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACvB,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACvB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACtB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;CAC3B,CAAC,CAAC;AACH,MAAM,4BAA4B,GAAuC,IAAI,GAAG,CAC5E,CAAC,GAAG,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAClF,CAAC;AACF,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAE7C,MAAM,OAAO,KAAK;IACd,gBAAgB,CAAiB,SAAS,CAAgB;IAC1D,gBAAgB,CAAiB,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;IAC3E,gBAAgB,CAAiB,WAAW,GAAG,EAAE,CAAC;IAClD,gBAAgB,CAAiB,OAAO,CAAyC;IACjF,gBAAgB,CAAiB,iBAAiB,CAAqB;IACvE,gBAAgB,CAAiB,YAAY,CAAoB;IACjE,gBAAgB,CAAiB,gBAAgB,CAAqB;IACtE,gBAAgB,CAAiB,WAAW,CAAoB;IAChE,gBAAgB,CAAiB,iBAAiB,CAAqB;IACvE,gBAAgB,CAAiB,MAAM,CAAU;IACjD,gBAAgB,CAAiB,gBAAgB,CAAkB;IACnE,gBAAgB,CAAkB,IAAI,CAAe;IACrD,gBAAgB,CAAkB,UAAU,CAA4B;IACxE,gBAAgB,CAAkB,aAAa,CAAmC;IAClF,gBAAgB,CAAkB,sBAAsB,CAAU;IAClE,gBAAgB,CAAkB,aAAa,CAAU;IACzD,gBAAgB,CAAkB,cAAc,CAAU;IAC1D,gBAAgB,CAAkB,UAAU,CAAS;IACrD,gBAAgB,CAAkB,gBAAgB,CAGhD;IACF,gBAAgB,CAAS,OAAO,CAAoD;IACpF,gBAAgB,CAAS,SAAS,CAAgB;IAClD,gBAAgB,CAAS,WAAW,GAAkB,IAAI,CAAC;IAC3D,gBAAgB,CAAS,gBAAgB,GAAyB,IAAI,CAAC;IACvE,gBAAgB,CAAS,4BAA4B,GAAW,CAAC,CAAC;IAClE,gBAAgB,CAAS,YAAY,GAAkB,IAAI,CAAC;IAC5D,gBAAgB,CAAS,iBAAiB,GAAyB,IAAI,CAAC;IACxE,gBAAgB,CAAS,mBAAmB,GAAY,KAAK,CAAC;IAC9D,gBAAgB,CAAS,SAAS,GAAY,KAAK,CAAC;IAE5C,QAAQ,CAAgB;IAChB,SAAS,GAAG,IAAI,UAAU,EAAQ,CAAC;IAEnD,YAAoB,EAChB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAC3H,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAmBhD;QACG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QAClE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CACvC,UAAU,IAAI,CACV,IAAI,CAAC,IAAI,KAAK,KAAK;YACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,UAAU,CAAC;YAC/D,CAAC,CAAC,CAAC,CACV,CACJ,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,aAAa,CAAC,KAAK;YACrB,CAAC,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,GAAG,YAAY,EAAC,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;YAClC,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,OAAO,EAAE,eAAe,CAAC,OAAO;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,CAAC;QAC1G,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC;YAC3D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,IAAI,IAAI,CAAC,SAAS;YACd,OAAO;QAEX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,cAAc;IACP,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,OAAO;QACd,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YACrB,IAAI,CAAC,QAAQ,GAAG,eAAe,EAAE,CAAC;QAEtC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,GAAG;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,uDAAuD;IACvD,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;IAC5C,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAC/B,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,QAAQ,CAAC,KAAoB;QACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM;YACvC,OAAO;QAEX,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAW,MAAM,CAAC,KAAsD;QACpE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,KAAK,KAAK,KAAK,CAAC,oBAAoB;YACpC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAW,UAAU;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAEnE,OAAO;YACH,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;YAC/B,WAAW;SACd,CAAC;IACN,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,YAAY;QAarB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAE5D,OAAO;YACH,OAAO,EAAE,OAAO,KAAK,CAAC,CAAC;gBACnB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO;YACb,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,KAAK,GAAG,IAAI;SACrB,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAExD,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAA0B;QAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YAC5F,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,EAAE,CAAC;YACtF,IAAI,CAAC;gBACD,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;YAC7D,CAAC;oBAAS,CAAC;gBACP,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAiC,MAAmB;QACvF,OAAO,IAAI,sBAAsB,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAA+C;QACtE,OAAO,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAA4B;QACnD,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,IAAI,CAAC,KAAoB,EAAE,OAAe;QAC7C,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IACjG,CAAC;IAED,gBAAgB;IACR,WAAW,CAAC,KAAa,EAAE,OAAe;QAC9C,MAAM,aAAa,GAAG,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC;QAErF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,aAAa,EAAE,CAAC;YACtG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;QAEzD,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,gBAAgB,GAAG,CAAC;YACnC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,gBAAgB,GAAG,CAAC;YAChC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAEhD,IAAI,UAAU,KAAK,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEhD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;YAEtC,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAClD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACxC,CAAC;;YACG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,gBAAgB;IACR,4BAA4B;QAChC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,4BAA4B,KAAK,CAAC;YACvC,OAAO;QAEX,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,gBAAgB;IACR,WAAW,CAAC,KAAoB,EAAE,OAAe;QACrD,+FAA+F;QAC/F,2CAA2C;QAC3C,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/E,IAAI,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACrC,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,+BAA+B,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC;oBACpE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,sFAAsF;YAC1F,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,gBAAgB;IACR,OAAO;QACX,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,gBAAgB;IACR,kBAAkB;QACtB,IAAI,IAAI,CAAC,SAAS;YACd,MAAM,IAAI,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EACxB,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,GAAG,KAAK,EAAE,KAAK,EAY1H;QACG,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC;QAC3C,MAAM,gBAAgB,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE;YACjD,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAC,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;YAE7D,OAAO;gBACH,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;gBAC/B,WAAW;aACd,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;YACvC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YAE5B,OAAO;gBACH,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;gBAC/B,WAAW,EAAE,KAAK;aACrB,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE;YACjD,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;YAE1B,IAAI,OAAO,KAAK,CAAC,CAAC;gBACd,OAAO;oBACH,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,QAAQ;iBACxB,CAAC;YAEN,OAAO;gBACH,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,OAAO,GAAG,IAAI;gBACpB,WAAW,EAAE,OAAO;aACvB,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,mBAAsC,CAAC;QAC3C,IAAI,GAAG,KAAK,KAAK,IAAI,WAAW,KAAK,CAAC;YAClC,mBAAmB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACvD,IAAI,WAAW,YAAY,QAAQ;YACpC,mBAAmB,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,MAAM,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;YAEnH,mBAAmB,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEtE,IAAI,kBAAqC,CAAC;QAC1C,IAAI,UAAU,YAAY,QAAQ;YAC9B,kBAAkB,GAAG,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;YAE/G,kBAAkB,GAAG,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACpB,QAAQ;YACR,SAAS;YACT,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,kBAAkB;YAC3D,eAAe,EAAE;gBACb,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI;gBAC9C,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO;aACvD;YACD,QAAQ;YACR,MAAM;YACN,KAAK;YACL,GAAG;YACH,gBAAgB;YAChB,UAAU;YACV,WAAW,EAAE,mBAAmB;YAChC,eAAe;YACf,UAAU,EAAE,kBAAkB;YAC9B,gBAAgB;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa;YACd,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAExB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,KAAoB,EAAE,OAAe;QACpE,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,aAAa,CAAC,QAAQ;gBACvB,MAAM;YACV,KAAK,aAAa,CAAC,KAAK;gBACpB,oEAAoE;gBACpE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,aAAa,CAAC,KAAK;gBACpB,oEAAoE;gBACpE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,aAAa,CAAC,IAAI;gBACnB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,aAAa,CAAC,IAAI;gBACnB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,aAAa,CAAC,GAAG;gBAClB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,aAAa,CAAC,KAAK;gBACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1E,MAAM;YACV;gBACI,KAAM,KAAsB,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7G,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;CACJ;AAED,SAAS,mBAAmB,CAAC,KAAoB;IAC7C,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,WAAW,CAAC;QACtD,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC;QACjD,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC;QAC3C,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC;QAC7C,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,WAAW,CAAC;QAClD,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC;QAC3C,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;QAC5C;YACI,KAAM,KAAsB,CAAC;YAC7B,OAAO,KAAK,CAAC,WAAW,CAAC;IACjC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,KAAkC;IAC9E,OAAO,mBAAmB,EAAE,GAAG,CAC3B,OAAO;SACF,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1B,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC,CAC1C,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAsB;IAChD,IAAI,OAAO,IAAI,IAAI;QACf,OAAO,KAAK,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAClB,OAAO,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAoB,EAAE,OAAe;IACjE,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACvG,OAAO,aAAa,CAAC,IAAI,CAAC;SACzB,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,mCAAmC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnI,OAAO,aAAa,CAAC,GAAG,CAAC;SACxB,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,kCAAkC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtH,OAAO,aAAa,CAAC,GAAG,CAAC;IAE7B,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -36,6 +36,9 @@ export type LlamaOptions = {
36
36
  * Otherwise, throw a `NoBinaryFoundError` error.
37
37
  * - **`"forceRebuild"`**: Always build from source.
38
38
  * Be cautious with this option, as it will cause the build to fail on Windows when the binaries are in use by another process.
39
+ * - **`"try"`**: If a local build is found, use it.
40
+ * Otherwise, try to build from source and use the resulting binary.
41
+ * If building from source fails, use a prebuilt binary if found.
39
42
  *
40
43
  * When running from inside an Asar archive in Electron, building from source is not possible, so it'll never build from source.
41
44
  * To allow building from source in Electron apps, make sure you ship `node-llama-cpp` as an unpacked module.
@@ -43,7 +46,7 @@ export type LlamaOptions = {
43
46
  * Defaults to `"auto"`.
44
47
  * On Electron, defaults to `"never"`.
45
48
  */
46
- build?: "auto" | "never" | "forceRebuild";
49
+ build?: "auto" | "never" | "forceRebuild" | "try";
47
50
  /**
48
51
  * Set custom CMake options for llama.cpp
49
52
  */
@@ -88,6 +91,16 @@ export type LlamaOptions = {
88
91
  * Set to `0` to disable.
89
92
  */
90
93
  vramPadding?: number | ((totalVram: number) => number);
94
+ /**
95
+ * Pad the available RAM for the memory size calculations, as these calculations are not always accurate.
96
+ * Recommended to ensure stability.
97
+ *
98
+ * Defaults to `25%` of the total RAM or 6GB (1GB on Linux), whichever is lower.
99
+ * Set to `0` to disable.
100
+ *
101
+ * > Since the OS also needs RAM to function, the default value can get up to 6GB on Windows and macOS, and 1GB on Linux.
102
+ */
103
+ ramPadding?: number | ((totalRam: number) => number);
91
104
  /**
92
105
  * Enable debug mode to find issues with llama.cpp.
93
106
  * Makes logs print directly to the console from `llama.cpp` and not through the provided logger.
@@ -144,6 +157,16 @@ export type LastBuildOptions = {
144
157
  * Set to `0` to disable.
145
158
  */
146
159
  vramPadding?: number | ((totalVram: number) => number);
160
+ /**
161
+ * Pad the available RAM for the memory size calculations, as these calculations are not always accurate.
162
+ * Recommended to ensure stability.
163
+ *
164
+ * Defaults to `25%` of the total RAM or 6GB (1GB on Linux), whichever is lower.
165
+ * Set to `0` to disable.
166
+ *
167
+ * > Since the OS also needs RAM to function, the default value can get up to 6GB on Windows and macOS, and 1GB on Linux.
168
+ */
169
+ ramPadding?: number | ((totalRam: number) => number);
147
170
  /**
148
171
  * Enable debug mode to find issues with llama.cpp.
149
172
  * Makes logs print directly to the console from `llama.cpp` and not through the provided logger.
@@ -156,6 +179,7 @@ export type LastBuildOptions = {
156
179
  };
157
180
  export declare const getLlamaFunctionName = "getLlama";
158
181
  export declare const defaultLlamaVramPadding: (totalVram: number) => number;
182
+ export declare const defaultLlamaRamPadding: (totalRam: number) => number;
159
183
  /**
160
184
  * Get a `llama.cpp` binding.
161
185
  *
@@ -182,7 +206,7 @@ export declare const defaultLlamaVramPadding: (totalVram: number) => number;
182
206
  */
183
207
  export declare function getLlama(options?: LlamaOptions): Promise<Llama>;
184
208
  export declare function getLlama(type: "lastBuild", lastBuildOptions?: LastBuildOptions): Promise<Llama>;
185
- export declare function getLlamaForOptions({ gpu, logLevel, logger, build, cmakeOptions, existingPrebuiltBinaryMustMatchBuildOptions, usePrebuiltBinaries, progressLogs, skipDownload, maxThreads, vramPadding, debug }: LlamaOptions, { updateLastBuildInfoOnCompile, skipLlamaInit }?: {
209
+ export declare function getLlamaForOptions({ gpu, logLevel, logger, build, cmakeOptions, existingPrebuiltBinaryMustMatchBuildOptions, usePrebuiltBinaries, progressLogs, skipDownload, maxThreads, vramPadding, ramPadding, debug }: LlamaOptions, { updateLastBuildInfoOnCompile, skipLlamaInit }?: {
186
210
  updateLastBuildInfoOnCompile?: boolean;
187
211
  skipLlamaInit?: boolean;
188
212
  }): Promise<Llama>;
@@ -26,6 +26,12 @@ import { hasBuildingFromSourceDependenciesInstalled } from "./utils/hasBuildingF
26
26
  const require = createRequire(import.meta.url);
27
27
  export const getLlamaFunctionName = "getLlama";
28
28
  export const defaultLlamaVramPadding = (totalVram) => Math.floor(Math.min(totalVram * 0.06, 1024 * 1024 * 1024));
29
+ export const defaultLlamaRamPadding = (totalRam) => {
30
+ const platform = getPlatform();
31
+ if (platform === "linux")
32
+ return Math.floor(Math.min(totalRam * 0.25, 1024 * 1024 * 1024));
33
+ return Math.floor(Math.min(totalRam * 0.25, 1024 * 1024 * 1024 * 6));
34
+ };
29
35
  const defaultBuildOption = runningInElectron
30
36
  ? "never"
31
37
  : "auto";
@@ -40,6 +46,7 @@ export async function getLlama(options, lastBuildOptions) {
40
46
  skipDownload: lastBuildOptions?.skipDownload ?? defaultSkipDownload,
41
47
  maxThreads: lastBuildOptions?.maxThreads,
42
48
  vramPadding: lastBuildOptions?.vramPadding ?? defaultLlamaVramPadding,
49
+ ramPadding: lastBuildOptions?.ramPadding ?? defaultLlamaRamPadding,
43
50
  debug: lastBuildOptions?.debug ?? defaultLlamaCppDebugMode
44
51
  };
45
52
  if (lastBuildInfo == null)
@@ -59,6 +66,7 @@ export async function getLlama(options, lastBuildOptions) {
59
66
  logLevel: lastBuildOptions?.logLevel ?? defaultLlamaCppLogLevel,
60
67
  maxThreads: lastBuildOptions?.maxThreads,
61
68
  vramPadding: lastBuildOptions?.vramPadding ?? defaultLlamaVramPadding,
69
+ ramPadding: lastBuildOptions?.ramPadding ?? defaultLlamaRamPadding,
62
70
  debug: lastBuildOptions?.debug ?? defaultLlamaCppDebugMode
63
71
  });
64
72
  }
@@ -71,7 +79,7 @@ export async function getLlama(options, lastBuildOptions) {
71
79
  }
72
80
  return getLlamaForOptions(options ?? {});
73
81
  }
74
- export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logLevel = defaultLlamaCppLogLevel, logger = Llama.defaultConsoleLogger, build = defaultBuildOption, cmakeOptions = {}, existingPrebuiltBinaryMustMatchBuildOptions = false, usePrebuiltBinaries = true, progressLogs = true, skipDownload = defaultSkipDownload, maxThreads, vramPadding = defaultLlamaVramPadding, debug = defaultLlamaCppDebugMode }, { updateLastBuildInfoOnCompile = false, skipLlamaInit = false } = {}) {
82
+ export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logLevel = defaultLlamaCppLogLevel, logger = Llama.defaultConsoleLogger, build = defaultBuildOption, cmakeOptions = {}, existingPrebuiltBinaryMustMatchBuildOptions = false, usePrebuiltBinaries = true, progressLogs = true, skipDownload = defaultSkipDownload, maxThreads, vramPadding = defaultLlamaVramPadding, ramPadding = defaultLlamaRamPadding, debug = defaultLlamaCppDebugMode }, { updateLastBuildInfoOnCompile = false, skipLlamaInit = false } = {}) {
75
83
  const platform = getPlatform();
76
84
  const arch = process.arch;
77
85
  if (logLevel == null)
@@ -92,6 +100,8 @@ export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logL
92
100
  skipDownload = defaultSkipDownload;
93
101
  if (vramPadding == null)
94
102
  vramPadding = defaultLlamaVramPadding;
103
+ if (ramPadding == null)
104
+ ramPadding = defaultLlamaRamPadding;
95
105
  if (debug == null)
96
106
  debug = defaultLlamaCppDebugMode;
97
107
  const clonedLlamaCppRepoReleaseInfo = await getClonedLlamaCppRepoReleaseInfo();
@@ -115,6 +125,46 @@ export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logL
115
125
  }
116
126
  if (buildGpusToTry.length === 0)
117
127
  throw new Error("No GPU types available to try building with");
128
+ if (build === "try") {
129
+ if (canUsePrebuiltBinaries) {
130
+ try {
131
+ return await getLlamaForOptions({
132
+ gpu,
133
+ logLevel,
134
+ logger,
135
+ build: "auto",
136
+ cmakeOptions,
137
+ existingPrebuiltBinaryMustMatchBuildOptions,
138
+ usePrebuiltBinaries: false,
139
+ progressLogs,
140
+ skipDownload,
141
+ maxThreads,
142
+ vramPadding,
143
+ ramPadding,
144
+ debug
145
+ });
146
+ }
147
+ catch (err) {
148
+ return await getLlamaForOptions({
149
+ gpu,
150
+ logLevel,
151
+ logger,
152
+ build: "never",
153
+ cmakeOptions,
154
+ existingPrebuiltBinaryMustMatchBuildOptions,
155
+ usePrebuiltBinaries,
156
+ progressLogs,
157
+ skipDownload,
158
+ maxThreads,
159
+ vramPadding,
160
+ ramPadding,
161
+ debug
162
+ });
163
+ }
164
+ }
165
+ else
166
+ build = "auto";
167
+ }
118
168
  if (build === "auto" || build === "never") {
119
169
  for (let i = 0; i < buildGpusToTry.length; i++) {
120
170
  const gpu = buildGpusToTry[i];
@@ -142,6 +192,7 @@ export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logL
142
192
  skipLlamaInit,
143
193
  maxThreads,
144
194
  vramPadding,
195
+ ramPadding,
145
196
  fallbackMessage: !isLastItem
146
197
  ? `falling back to using ${getPrettyBuildGpuName(buildGpusToTry[i + 1])}`
147
198
  : (canBuild
@@ -191,6 +242,7 @@ export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logL
191
242
  updateLastBuildInfoOnCompile,
192
243
  maxThreads,
193
244
  vramPadding,
245
+ ramPadding,
194
246
  skipLlamaInit,
195
247
  debug
196
248
  });
@@ -208,7 +260,7 @@ export async function getLlamaForOptions({ gpu = defaultLlamaCppGpuSupport, logL
208
260
  }
209
261
  throw new Error("Failed to build llama.cpp");
210
262
  }
211
- async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, logLevel, logger, existingPrebuiltBinaryMustMatchBuildOptions, progressLogs, platform, platformInfo, skipLlamaInit, maxThreads, vramPadding, fallbackMessage, debug }) {
263
+ async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, logLevel, logger, existingPrebuiltBinaryMustMatchBuildOptions, progressLogs, platform, platformInfo, skipLlamaInit, maxThreads, vramPadding, ramPadding, fallbackMessage, debug }) {
212
264
  const buildFolderName = await getBuildFolderNameForBuildOptions(buildOptions);
213
265
  const localBuildFolder = path.join(llamaLocalBuildBinsDirectory, buildFolderName.withCustomCmakeOptions);
214
266
  const localBuildBinPath = await getLocalBuildBinaryPath(buildFolderName.withCustomCmakeOptions);
@@ -223,7 +275,7 @@ async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, l
223
275
  buildMetadata
224
276
  });
225
277
  const binaryCompatible = shouldTestBinaryBeforeLoading
226
- ? await testBindingBinary(localBuildBinPath)
278
+ ? await testBindingBinary(localBuildBinPath, buildOptions.gpu)
227
279
  : true;
228
280
  if (binaryCompatible) {
229
281
  const binding = loadBindingModule(localBuildBinPath);
@@ -235,6 +287,7 @@ async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, l
235
287
  logger,
236
288
  maxThreads,
237
289
  vramPadding,
290
+ ramPadding,
238
291
  skipLlamaInit,
239
292
  debug
240
293
  });
@@ -270,7 +323,7 @@ async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, l
270
323
  buildMetadata
271
324
  });
272
325
  const binaryCompatible = shouldTestBinaryBeforeLoading
273
- ? await testBindingBinary(prebuiltBinDetails.binaryPath)
326
+ ? await testBindingBinary(prebuiltBinDetails.binaryPath, buildOptions.gpu)
274
327
  : true;
275
328
  if (binaryCompatible) {
276
329
  const binding = loadBindingModule(prebuiltBinDetails.binaryPath);
@@ -282,6 +335,7 @@ async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, l
282
335
  logger,
283
336
  maxThreads,
284
337
  vramPadding,
338
+ ramPadding,
285
339
  skipLlamaInit,
286
340
  debug
287
341
  });
@@ -318,7 +372,7 @@ async function loadExistingLlamaBinary({ buildOptions, canUsePrebuiltBinaries, l
318
372
  }
319
373
  return null;
320
374
  }
321
- async function buildAndLoadLlamaBinary({ buildOptions, skipDownload, logLevel, logger, updateLastBuildInfoOnCompile, maxThreads, vramPadding, skipLlamaInit, debug }) {
375
+ async function buildAndLoadLlamaBinary({ buildOptions, skipDownload, logLevel, logger, updateLastBuildInfoOnCompile, maxThreads, vramPadding, ramPadding, skipLlamaInit, debug }) {
322
376
  const buildFolderName = await getBuildFolderNameForBuildOptions(buildOptions);
323
377
  await compileLlamaCpp(buildOptions, {
324
378
  ensureLlamaCppRepoIsCloned: !skipDownload,
@@ -341,6 +395,7 @@ async function buildAndLoadLlamaBinary({ buildOptions, skipDownload, logLevel, l
341
395
  logger,
342
396
  maxThreads,
343
397
  vramPadding,
398
+ ramPadding,
344
399
  skipLlamaInit,
345
400
  debug
346
401
  });