node-llama-cpp 3.0.0-beta.1 → 3.0.0-beta.11

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 (354) hide show
  1. package/README.md +2 -0
  2. package/dist/ChatWrapper.d.ts +49 -0
  3. package/dist/ChatWrapper.js +120 -0
  4. package/dist/ChatWrapper.js.map +1 -0
  5. package/dist/{utils/getBin.d.ts → bindings/AddonTypes.d.ts} +14 -4
  6. package/dist/bindings/AddonTypes.js +2 -0
  7. package/dist/bindings/AddonTypes.js.map +1 -0
  8. package/dist/bindings/Llama.d.ts +23 -0
  9. package/dist/bindings/Llama.js +225 -0
  10. package/dist/bindings/Llama.js.map +1 -0
  11. package/dist/bindings/getLlama.d.ts +103 -0
  12. package/dist/bindings/getLlama.js +228 -0
  13. package/dist/bindings/getLlama.js.map +1 -0
  14. package/dist/bindings/types.d.ts +33 -0
  15. package/dist/bindings/types.js +30 -0
  16. package/dist/bindings/types.js.map +1 -0
  17. package/dist/bindings/utils/NoBinaryFoundError.d.ts +2 -0
  18. package/dist/bindings/utils/NoBinaryFoundError.js +7 -0
  19. package/dist/bindings/utils/NoBinaryFoundError.js.map +1 -0
  20. package/dist/{utils → bindings/utils}/binariesGithubRelease.js +1 -1
  21. package/dist/bindings/utils/binariesGithubRelease.js.map +1 -0
  22. package/dist/bindings/utils/clearAllLocalBuilds.d.ts +1 -0
  23. package/dist/bindings/utils/clearAllLocalBuilds.js +47 -0
  24. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -0
  25. package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +11 -0
  26. package/dist/bindings/utils/cloneLlamaCppRepo.js +155 -0
  27. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -0
  28. package/dist/bindings/utils/compileLLamaCpp.d.ts +12 -0
  29. package/dist/bindings/utils/compileLLamaCpp.js +157 -0
  30. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -0
  31. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.d.ts +5 -0
  32. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +85 -0
  33. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -0
  34. package/dist/bindings/utils/getCanUsePrebuiltBinaries.d.ts +1 -0
  35. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js +8 -0
  36. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js.map +1 -0
  37. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.d.ts +2 -0
  38. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js +21 -0
  39. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -0
  40. package/dist/bindings/utils/getPlatform.d.ts +2 -0
  41. package/dist/bindings/utils/getPlatform.js +15 -0
  42. package/dist/bindings/utils/getPlatform.js.map +1 -0
  43. package/dist/bindings/utils/lastBuildInfo.d.ts +6 -0
  44. package/dist/bindings/utils/lastBuildInfo.js +17 -0
  45. package/dist/bindings/utils/lastBuildInfo.js.map +1 -0
  46. package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +2 -0
  47. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +28 -0
  48. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -0
  49. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +26 -0
  50. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +43 -0
  51. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +1 -0
  52. package/dist/bindings/utils/resolveCustomCmakeOptions.d.ts +1 -0
  53. package/dist/bindings/utils/resolveCustomCmakeOptions.js +43 -0
  54. package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -0
  55. package/dist/chatWrappers/AlpacaChatWrapper.d.ts +12 -0
  56. package/dist/chatWrappers/AlpacaChatWrapper.js +21 -0
  57. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -0
  58. package/dist/chatWrappers/ChatMLChatWrapper.d.ts +18 -0
  59. package/dist/chatWrappers/ChatMLChatWrapper.js +83 -0
  60. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -0
  61. package/dist/chatWrappers/EmptyChatWrapper.d.ts +4 -0
  62. package/dist/chatWrappers/EmptyChatWrapper.js +5 -0
  63. package/dist/chatWrappers/EmptyChatWrapper.js.map +1 -0
  64. package/dist/chatWrappers/FalconChatWrapper.d.ts +21 -0
  65. package/dist/chatWrappers/FalconChatWrapper.js +104 -0
  66. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -0
  67. package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +41 -0
  68. package/dist/chatWrappers/FunctionaryChatWrapper.js +200 -0
  69. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -0
  70. package/dist/chatWrappers/GeneralChatWrapper.d.ts +21 -0
  71. package/dist/chatWrappers/GeneralChatWrapper.js +112 -0
  72. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -0
  73. package/dist/chatWrappers/LlamaChatWrapper.d.ts +13 -0
  74. package/dist/chatWrappers/LlamaChatWrapper.js +78 -0
  75. package/dist/chatWrappers/LlamaChatWrapper.js.map +1 -0
  76. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +5 -5
  77. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +28 -17
  78. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
  79. package/dist/cli/cli.js +8 -0
  80. package/dist/cli/cli.js.map +1 -1
  81. package/dist/cli/commands/BuildCommand.d.ts +2 -1
  82. package/dist/cli/commands/BuildCommand.js +50 -10
  83. package/dist/cli/commands/BuildCommand.js.map +1 -1
  84. package/dist/cli/commands/ChatCommand.d.ts +11 -4
  85. package/dist/cli/commands/ChatCommand.js +138 -64
  86. package/dist/cli/commands/ChatCommand.js.map +1 -1
  87. package/dist/cli/commands/ClearCommand.js +4 -6
  88. package/dist/cli/commands/ClearCommand.js.map +1 -1
  89. package/dist/cli/commands/CompleteCommand.d.ts +25 -0
  90. package/dist/cli/commands/CompleteCommand.js +278 -0
  91. package/dist/cli/commands/CompleteCommand.js.map +1 -0
  92. package/dist/cli/commands/DebugCommand.d.ts +7 -0
  93. package/dist/cli/commands/DebugCommand.js +59 -0
  94. package/dist/cli/commands/DebugCommand.js.map +1 -0
  95. package/dist/cli/commands/DownloadCommand.d.ts +2 -1
  96. package/dist/cli/commands/DownloadCommand.js +47 -40
  97. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  98. package/dist/cli/commands/InfillCommand.d.ts +27 -0
  99. package/dist/cli/commands/InfillCommand.js +316 -0
  100. package/dist/cli/commands/InfillCommand.js.map +1 -0
  101. package/dist/cli/commands/OnPostInstallCommand.js +7 -10
  102. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  103. package/dist/config.d.ts +10 -3
  104. package/dist/config.js +18 -7
  105. package/dist/config.js.map +1 -1
  106. package/dist/consts.d.ts +1 -0
  107. package/dist/consts.js +2 -0
  108. package/dist/consts.js.map +1 -0
  109. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +154 -0
  110. package/dist/evaluator/LlamaChat/LlamaChat.js +684 -0
  111. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -0
  112. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +22 -0
  113. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js +121 -0
  114. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
  115. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +16 -0
  116. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +135 -0
  117. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
  118. package/dist/{llamaEvaluator → evaluator/LlamaChatSession}/LlamaChatSession.d.ts +59 -25
  119. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +219 -0
  120. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
  121. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +7 -0
  122. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +8 -0
  123. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
  124. package/dist/evaluator/LlamaCompletion.d.ts +148 -0
  125. package/dist/evaluator/LlamaCompletion.js +402 -0
  126. package/dist/evaluator/LlamaCompletion.js.map +1 -0
  127. package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.d.ts +20 -23
  128. package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.js +77 -107
  129. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -0
  130. package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.d.ts +6 -14
  131. package/dist/evaluator/LlamaContext/types.js.map +1 -0
  132. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
  133. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
  134. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
  135. package/dist/evaluator/LlamaEmbeddingContext.d.ts +37 -0
  136. package/dist/evaluator/LlamaEmbeddingContext.js +78 -0
  137. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -0
  138. package/dist/evaluator/LlamaGrammar.d.ts +30 -0
  139. package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.js +14 -18
  140. package/dist/evaluator/LlamaGrammar.js.map +1 -0
  141. package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.js +4 -4
  142. package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -0
  143. package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.d.ts +2 -1
  144. package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.js +4 -2
  145. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -0
  146. package/dist/{llamaEvaluator → evaluator}/LlamaModel.d.ts +24 -6
  147. package/dist/{llamaEvaluator → evaluator}/LlamaModel.js +51 -12
  148. package/dist/evaluator/LlamaModel.js.map +1 -0
  149. package/dist/index.d.ts +30 -17
  150. package/dist/index.js +29 -15
  151. package/dist/index.js.map +1 -1
  152. package/dist/state.d.ts +2 -0
  153. package/dist/state.js +7 -0
  154. package/dist/state.js.map +1 -1
  155. package/dist/types.d.ts +72 -3
  156. package/dist/types.js +5 -1
  157. package/dist/types.js.map +1 -1
  158. package/dist/utils/LlamaText.d.ts +42 -0
  159. package/dist/utils/LlamaText.js +207 -0
  160. package/dist/utils/LlamaText.js.map +1 -0
  161. package/dist/utils/StopGenerationDetector.d.ts +28 -0
  162. package/dist/utils/StopGenerationDetector.js +205 -0
  163. package/dist/utils/StopGenerationDetector.js.map +1 -0
  164. package/dist/utils/TokenStreamRegulator.d.ts +30 -0
  165. package/dist/utils/TokenStreamRegulator.js +96 -0
  166. package/dist/utils/TokenStreamRegulator.js.map +1 -0
  167. package/dist/utils/UnsupportedError.d.ts +2 -0
  168. package/dist/utils/UnsupportedError.js +7 -0
  169. package/dist/utils/UnsupportedError.js.map +1 -0
  170. package/dist/utils/appendUserMessageToChatHistory.d.ts +2 -0
  171. package/dist/utils/appendUserMessageToChatHistory.js +18 -0
  172. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -0
  173. package/dist/utils/cmake.js +16 -11
  174. package/dist/utils/cmake.js.map +1 -1
  175. package/dist/utils/compareTokens.d.ts +2 -0
  176. package/dist/utils/compareTokens.js +4 -0
  177. package/dist/utils/compareTokens.js.map +1 -0
  178. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +18 -0
  179. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +61 -0
  180. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -0
  181. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +1 -0
  182. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +17 -0
  183. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  184. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +1 -1
  185. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  186. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.d.ts +6 -0
  187. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js +21 -0
  188. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -0
  189. package/dist/utils/gbnfJson/types.d.ts +1 -1
  190. package/dist/utils/gbnfJson/types.js.map +1 -1
  191. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +1 -0
  192. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  193. package/dist/utils/getConsoleLogPrefix.d.ts +1 -0
  194. package/dist/utils/getConsoleLogPrefix.js +9 -0
  195. package/dist/utils/getConsoleLogPrefix.js.map +1 -0
  196. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +1 -15
  197. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  198. package/dist/utils/getGrammarsFolder.d.ts +2 -1
  199. package/dist/utils/getGrammarsFolder.js +8 -7
  200. package/dist/utils/getGrammarsFolder.js.map +1 -1
  201. package/dist/utils/getModuleVersion.d.ts +1 -0
  202. package/dist/utils/getModuleVersion.js +13 -0
  203. package/dist/utils/getModuleVersion.js.map +1 -0
  204. package/dist/utils/getQueuedTokensBeforeStopTrigger.d.ts +6 -0
  205. package/dist/utils/getQueuedTokensBeforeStopTrigger.js +22 -0
  206. package/dist/utils/getQueuedTokensBeforeStopTrigger.js.map +1 -0
  207. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.d.ts +2 -0
  208. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +49 -0
  209. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -0
  210. package/dist/utils/gitReleaseBundles.js +6 -5
  211. package/dist/utils/gitReleaseBundles.js.map +1 -1
  212. package/dist/utils/hashString.d.ts +1 -0
  213. package/dist/utils/hashString.js +8 -0
  214. package/dist/utils/hashString.js.map +1 -0
  215. package/dist/utils/isLockfileActive.d.ts +4 -0
  216. package/dist/utils/isLockfileActive.js +12 -0
  217. package/dist/utils/isLockfileActive.js.map +1 -0
  218. package/dist/utils/parseModelTypeDescription.d.ts +1 -1
  219. package/dist/utils/prettyPrintObject.d.ts +1 -0
  220. package/dist/utils/prettyPrintObject.js +40 -0
  221. package/dist/utils/prettyPrintObject.js.map +1 -0
  222. package/dist/utils/removeNullFields.d.ts +1 -0
  223. package/dist/utils/removeNullFields.js +8 -0
  224. package/dist/utils/removeNullFields.js.map +1 -1
  225. package/dist/utils/resolveChatWrapper.d.ts +4 -0
  226. package/dist/utils/resolveChatWrapper.js +16 -0
  227. package/dist/utils/resolveChatWrapper.js.map +1 -0
  228. package/dist/utils/resolveGithubRelease.d.ts +2 -0
  229. package/dist/utils/resolveGithubRelease.js +36 -0
  230. package/dist/utils/resolveGithubRelease.js.map +1 -0
  231. package/dist/utils/spawnCommand.d.ts +1 -1
  232. package/dist/utils/spawnCommand.js +4 -2
  233. package/dist/utils/spawnCommand.js.map +1 -1
  234. package/dist/utils/tokenizeInput.d.ts +3 -0
  235. package/dist/utils/tokenizeInput.js +9 -0
  236. package/dist/utils/tokenizeInput.js.map +1 -0
  237. package/dist/utils/truncateTextAndRoundToWords.d.ts +8 -0
  238. package/dist/utils/truncateTextAndRoundToWords.js +27 -0
  239. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -0
  240. package/dist/utils/waitForLockfileRelease.d.ts +5 -0
  241. package/dist/utils/waitForLockfileRelease.js +20 -0
  242. package/dist/utils/waitForLockfileRelease.js.map +1 -0
  243. package/dist/utils/withLockfile.d.ts +7 -0
  244. package/dist/utils/withLockfile.js +44 -0
  245. package/dist/utils/withLockfile.js.map +1 -0
  246. package/dist/utils/withOra.js +11 -1
  247. package/dist/utils/withOra.js.map +1 -1
  248. package/dist/utils/withStatusLogs.d.ts +2 -1
  249. package/dist/utils/withStatusLogs.js +11 -8
  250. package/dist/utils/withStatusLogs.js.map +1 -1
  251. package/llama/.clang-format +1 -2
  252. package/llama/CMakeLists.txt +87 -2
  253. package/llama/addon.cpp +319 -31
  254. package/llama/binariesGithubRelease.json +1 -1
  255. package/llama/gitRelease.bundle +0 -0
  256. package/llama/gpuInfo/cuda-gpu-info.cu +99 -0
  257. package/llama/gpuInfo/cuda-gpu-info.h +7 -0
  258. package/llama/gpuInfo/metal-gpu-info.h +5 -0
  259. package/llama/gpuInfo/metal-gpu-info.mm +17 -0
  260. package/llama/llama.cpp.info.json +4 -0
  261. package/llamaBins/linux-arm64/.buildMetadata.json +1 -0
  262. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  263. package/llamaBins/linux-armv7l/.buildMetadata.json +1 -0
  264. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  265. package/llamaBins/linux-x64/.buildMetadata.json +1 -0
  266. package/llamaBins/linux-x64/llama-addon.node +0 -0
  267. package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -0
  268. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  269. package/llamaBins/mac-arm64-metal/.buildMetadata.json +1 -0
  270. package/llamaBins/mac-arm64-metal/ggml-metal.metal +6491 -0
  271. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  272. package/llamaBins/mac-x64/.buildMetadata.json +1 -0
  273. package/llamaBins/mac-x64/llama-addon.node +0 -0
  274. package/llamaBins/win-x64/.buildMetadata.json +1 -0
  275. package/llamaBins/win-x64/llama-addon.exp +0 -0
  276. package/llamaBins/win-x64/llama-addon.node +0 -0
  277. package/llamaBins/win-x64-cuda/.buildMetadata.json +1 -0
  278. package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
  279. package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
  280. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  281. package/package.json +37 -15
  282. package/dist/AbortError.d.ts +0 -2
  283. package/dist/AbortError.js +0 -7
  284. package/dist/AbortError.js.map +0 -1
  285. package/dist/ChatPromptWrapper.d.ts +0 -11
  286. package/dist/ChatPromptWrapper.js +0 -20
  287. package/dist/ChatPromptWrapper.js.map +0 -1
  288. package/dist/chatWrappers/ChatMLChatPromptWrapper.d.ts +0 -12
  289. package/dist/chatWrappers/ChatMLChatPromptWrapper.js +0 -22
  290. package/dist/chatWrappers/ChatMLChatPromptWrapper.js.map +0 -1
  291. package/dist/chatWrappers/EmptyChatPromptWrapper.d.ts +0 -4
  292. package/dist/chatWrappers/EmptyChatPromptWrapper.js +0 -5
  293. package/dist/chatWrappers/EmptyChatPromptWrapper.js.map +0 -1
  294. package/dist/chatWrappers/FalconChatPromptWrapper.d.ts +0 -19
  295. package/dist/chatWrappers/FalconChatPromptWrapper.js +0 -33
  296. package/dist/chatWrappers/FalconChatPromptWrapper.js.map +0 -1
  297. package/dist/chatWrappers/GeneralChatPromptWrapper.d.ts +0 -19
  298. package/dist/chatWrappers/GeneralChatPromptWrapper.js +0 -38
  299. package/dist/chatWrappers/GeneralChatPromptWrapper.js.map +0 -1
  300. package/dist/chatWrappers/LlamaChatPromptWrapper.d.ts +0 -12
  301. package/dist/chatWrappers/LlamaChatPromptWrapper.js +0 -23
  302. package/dist/chatWrappers/LlamaChatPromptWrapper.js.map +0 -1
  303. package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -15
  304. package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -39
  305. package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +0 -1
  306. package/dist/llamaEvaluator/LlamaBins.d.ts +0 -19
  307. package/dist/llamaEvaluator/LlamaBins.js +0 -5
  308. package/dist/llamaEvaluator/LlamaBins.js.map +0 -1
  309. package/dist/llamaEvaluator/LlamaChatSession.js +0 -290
  310. package/dist/llamaEvaluator/LlamaChatSession.js.map +0 -1
  311. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +0 -1
  312. package/dist/llamaEvaluator/LlamaContext/types.js.map +0 -1
  313. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
  314. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
  315. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
  316. package/dist/llamaEvaluator/LlamaGrammar.d.ts +0 -32
  317. package/dist/llamaEvaluator/LlamaGrammar.js.map +0 -1
  318. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +0 -1
  319. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +0 -1
  320. package/dist/llamaEvaluator/LlamaModel.js.map +0 -1
  321. package/dist/utils/binariesGithubRelease.js.map +0 -1
  322. package/dist/utils/clearLlamaBuild.d.ts +0 -1
  323. package/dist/utils/clearLlamaBuild.js +0 -12
  324. package/dist/utils/clearLlamaBuild.js.map +0 -1
  325. package/dist/utils/cloneLlamaCppRepo.d.ts +0 -2
  326. package/dist/utils/cloneLlamaCppRepo.js +0 -102
  327. package/dist/utils/cloneLlamaCppRepo.js.map +0 -1
  328. package/dist/utils/compileLLamaCpp.d.ts +0 -8
  329. package/dist/utils/compileLLamaCpp.js +0 -127
  330. package/dist/utils/compileLLamaCpp.js.map +0 -1
  331. package/dist/utils/getBin.js +0 -78
  332. package/dist/utils/getBin.js.map +0 -1
  333. package/dist/utils/getReleaseInfo.d.ts +0 -7
  334. package/dist/utils/getReleaseInfo.js +0 -30
  335. package/dist/utils/getReleaseInfo.js.map +0 -1
  336. package/dist/utils/getTextCompletion.d.ts +0 -3
  337. package/dist/utils/getTextCompletion.js +0 -12
  338. package/dist/utils/getTextCompletion.js.map +0 -1
  339. package/dist/utils/usedBinFlag.d.ts +0 -6
  340. package/dist/utils/usedBinFlag.js +0 -15
  341. package/dist/utils/usedBinFlag.js.map +0 -1
  342. package/llama/usedBin.json +0 -3
  343. package/llamaBins/mac-arm64/ggml-metal.metal +0 -2929
  344. package/llamaBins/mac-arm64/llama-addon.node +0 -0
  345. package/llamaBins/mac-x64/ggml-metal.metal +0 -2929
  346. /package/dist/{utils → bindings/utils}/binariesGithubRelease.d.ts +0 -0
  347. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.js +0 -0
  348. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +0 -0
  349. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +0 -0
  350. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +0 -0
  351. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +0 -0
  352. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -0
  353. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +0 -0
  354. /package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.d.ts +0 -0
@@ -1,8 +1,9 @@
1
1
  import { DisposeAggregator, EventRelay, withLock, DisposedError } from "lifecycle-utils";
2
2
  import { removeNullFields } from "../../utils/removeNullFields.js";
3
- import { AddonContext } from "../LlamaBins.js";
3
+ import { compareTokens } from "../../utils/compareTokens.js";
4
4
  import { resolveBatchItemsPrioritizingStrategy } from "./utils/resolveBatchItemsPrioritizingStrategy.js";
5
5
  export class LlamaContext {
6
+ /** @internal */ _llama;
6
7
  /** @internal */ _ctx;
7
8
  /** @internal */ _onReclaimUnusedSequenceId = new EventRelay();
8
9
  /** @internal */ _model;
@@ -24,21 +25,21 @@ export class LlamaContext {
24
25
  /**
25
26
  * @param options
26
27
  */
27
- constructor({ model, sequences = 1, seed = null, contextSize = model.trainContextSize, batchSize = contextSize, f16Kv, logitsAll, embedding, threads = 6, batching: { dispatchSchedule: batchingDispatchSchedule = "nextTick", itemsPrioritizingStrategy: batchingItemsPrioritizingStrategy = "maximumParallelism" } = {} }) {
28
+ constructor({ model, sequences = 1, seed = null, contextSize = model.trainContextSize, batchSize = contextSize, threads = 6, batching: { dispatchSchedule: batchingDispatchSchedule = "nextTick", itemsPrioritizingStrategy: batchingItemsPrioritizingStrategy = "maximumParallelism" } = {}, _embedding, _noSeed }) {
28
29
  if (model.disposed)
29
30
  throw new DisposedError();
31
+ this._llama = model._llama;
30
32
  this._model = model;
31
33
  this._totalSequences = Math.max(1, Math.floor(sequences));
32
34
  this._contextSize = Math.max(2, contextSize);
33
35
  this._batchSize = Math.max(batchSize, this._totalSequences);
34
- this._ctx = new AddonContext(this._model._model, removeNullFields({
36
+ this._ctx = new this._llama._bindings.AddonContext(this._model._model, removeNullFields({
35
37
  seed: seed != null ? Math.max(-1, Math.floor(seed)) : undefined,
36
- contextSize: contextSize * this._totalSequences,
38
+ contextSize: this._contextSize * this._totalSequences,
37
39
  batchSize: this._batchSize,
38
- f16Kv,
39
- logitsAll,
40
- embedding,
41
- threads
40
+ threads: Math.max(0, Math.floor(threads)),
41
+ embedding: _embedding,
42
+ noSeed: _noSeed
42
43
  }));
43
44
  this._batchingOptions = {
44
45
  dispatchSchedule: batchingDispatchSchedule,
@@ -91,7 +92,7 @@ export class LlamaContext {
91
92
  * When there are no sequences left, this method will throw an error.
92
93
  * @param [options]
93
94
  */
94
- getSequence({ prependBos = true, contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(this.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {} } = {}) {
95
+ getSequence({ contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(this.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {} } = {}) {
95
96
  this._ensureNotDisposed();
96
97
  const nextSequenceId = this._popSequenceId();
97
98
  if (nextSequenceId == null)
@@ -99,7 +100,6 @@ export class LlamaContext {
99
100
  return LlamaContextSequence._create({
100
101
  sequenceId: nextSequenceId,
101
102
  context: this,
102
- prependBos,
103
103
  contextShift: {
104
104
  size: contextShiftSize,
105
105
  strategy: contextShiftStrategy
@@ -228,6 +228,10 @@ export class LlamaContext {
228
228
  }
229
229
  });
230
230
  }
231
+ async printTimings() {
232
+ this._ctx.printTimings();
233
+ await new Promise((accept) => setTimeout(accept, 0)); // wait for the logs to finish printing
234
+ }
231
235
  /** @internal */
232
236
  async _decodeTokens({ sequenceId, firstTokenSequenceIndex, tokens, generateLogitAtTheEnd = false, evaluationPriority = 5 }, onDone) {
233
237
  return await new Promise((accept, reject) => {
@@ -255,6 +259,10 @@ export class LlamaContext {
255
259
  });
256
260
  }
257
261
  /** @internal */
262
+ _acceptTokenOnGrammarEvaluationState(grammarEvaluationState, token) {
263
+ this._ctx.acceptGrammarEvaluationStateToken(grammarEvaluationState._state, token);
264
+ }
265
+ /** @internal */
258
266
  _popSequenceId() {
259
267
  if (this._unusedSequenceIds.length > 0)
260
268
  return this._unusedSequenceIds.shift();
@@ -309,30 +317,17 @@ export class LlamaContextSequence {
309
317
  /** @internal */ _sequenceId;
310
318
  /** @internal */ _gcRegistry;
311
319
  /** @internal */ _context;
312
- /** @internal */ _prependBos;
313
320
  /** @internal */ _contextShift;
314
321
  /** @internal */ _disposeAggregator = new DisposeAggregator();
315
322
  /** @internal */ _contextTokens = [];
316
- /** @internal */ _contextTokenPriorities = [];
317
323
  /** @internal */ _nextTokenIndex = 0;
318
- /** @internal */ _prependTokens = [];
319
- /** @internal */ _prependTokenPriorities = [];
320
324
  /** @internal */ _disposed = false;
321
325
  onDispose = new EventRelay();
322
- constructor({ sequenceId, context, prependBos, contextShift }) {
326
+ constructor({ sequenceId, context, contextShift }) {
323
327
  this._sequenceId = sequenceId;
324
328
  this._context = context;
325
329
  this._contextShift = contextShift;
326
330
  this._gcRegistry = new FinalizationRegistry(this._context._reclaimUnusedSequenceId);
327
- this._prependTokens = [];
328
- this._prependTokenPriorities = [];
329
- if (prependBos && this._context.model.tokens.bos != null) {
330
- this._prependTokens.unshift(this._context.model.tokens.bos);
331
- this._prependTokenPriorities.unshift(1);
332
- this._prependBos = true;
333
- }
334
- else
335
- this._prependBos = false;
336
331
  this._gcRegistry.register(this, sequenceId);
337
332
  this._disposeAggregator.add(() => this._gcRegistry.unregister(this));
338
333
  this._disposeAggregator.add(this.onDispose.dispatchEvent);
@@ -346,7 +341,6 @@ export class LlamaContextSequence {
346
341
  return;
347
342
  this._disposeAggregator.dispose();
348
343
  this._contextTokens.length = 0;
349
- this._contextTokenPriorities.length = 0;
350
344
  this._disposed = true;
351
345
  }
352
346
  /** @hidden */
@@ -362,17 +356,26 @@ export class LlamaContextSequence {
362
356
  get model() {
363
357
  return this._context.model;
364
358
  }
365
- get prependBos() {
366
- return this._prependBos;
367
- }
368
359
  get nextTokenIndex() {
369
360
  return this._nextTokenIndex;
370
361
  }
371
362
  get contextTokens() {
372
363
  return this._contextTokens.slice();
373
364
  }
374
- get contextTokenPriorities() {
375
- return this._contextTokenPriorities.slice();
365
+ get isLoadedToMemory() {
366
+ return !this._disposed;
367
+ }
368
+ compareContextTokens(tokens) {
369
+ for (let i = 0; i < this._contextTokens.length; i++) {
370
+ if (compareTokens(this._contextTokens[i], tokens[i]))
371
+ continue;
372
+ return {
373
+ firstDifferentIndex: i
374
+ };
375
+ }
376
+ return {
377
+ firstDifferentIndex: this._contextTokens.length
378
+ };
376
379
  }
377
380
  /**
378
381
  * Clear the history of the sequence.
@@ -381,12 +384,6 @@ export class LlamaContextSequence {
381
384
  async clearHistory() {
382
385
  this._ensureNotDisposed();
383
386
  await this.eraseContextTokenRanges([{ start: 0, end: this._nextTokenIndex }]);
384
- this._prependTokens.length = 0;
385
- this._prependTokenPriorities.length = 0;
386
- if (this._prependBos && this._context.model.tokens.bos != null) {
387
- this._prependTokens.push(this._context.model.tokens.bos);
388
- this._prependTokenPriorities.push(1);
389
- }
390
387
  }
391
388
  /**
392
389
  * Erase context tokens in the provided ranges to free up space for new tokens to be generated.
@@ -428,7 +425,6 @@ export class LlamaContextSequence {
428
425
  let lastDeleteRangeEndPos = null;
429
426
  for (const range of resolvedRanges) {
430
427
  this._contextTokens.splice(range.start - removedTokens, range.end - range.start);
431
- this._contextTokenPriorities.splice(range.start - removedTokens, range.end - range.start);
432
428
  this._context._ctx.removeTokenCellsFromSequence(this._sequenceId, range.start, range.end);
433
429
  if (lastDeleteRangeEndPos != null && removedTokens > 0 && lastDeleteRangeEndPos !== range.start)
434
430
  this._context._ctx.shiftSequenceTokenCells(this._sequenceId, lastDeleteRangeEndPos, range.start, -removedTokens);
@@ -444,15 +440,20 @@ export class LlamaContextSequence {
444
440
  * @param tokens
445
441
  * @param [options]
446
442
  */
447
- evaluate(tokens, { temperature = 0, topK = 40, topP = 0.95, grammarEvaluationState, repeatPenalty, evaluationPriority = 5, tokenPriority = 1 } = {}) {
443
+ evaluate(tokens, { temperature = 0, minP = 0, topK = 40, topP = 0.95, grammarEvaluationState, repeatPenalty, evaluationPriority = 5, contextShift: { size: contextShiftSize = this._contextShift.size, strategy: contextShiftStrategy = this._contextShift.strategy } = {}, yieldEosToken = false } = {}) {
448
444
  return this._evaluate(tokens, {
449
445
  temperature,
446
+ minP,
450
447
  topK,
451
448
  topP,
452
449
  grammarEvaluationState,
453
450
  repeatPenalty,
454
451
  evaluationPriority,
455
- tokenPriority
452
+ contextShiftOptions: {
453
+ size: contextShiftSize,
454
+ strategy: contextShiftStrategy
455
+ },
456
+ yieldEosToken
456
457
  });
457
458
  }
458
459
  /**
@@ -460,11 +461,14 @@ export class LlamaContextSequence {
460
461
  * @param tokens
461
462
  * @param [options]
462
463
  */
463
- async evaluateWithoutGeneratingNewTokens(tokens, { evaluationPriority = 5, tokenPriority = 1 } = {}) {
464
+ async evaluateWithoutGeneratingNewTokens(tokens, { evaluationPriority = 5, contextShift: { size: contextShiftSize = this._contextShift.size, strategy: contextShiftStrategy = this._contextShift.strategy } = {} } = {}) {
464
465
  const iterator = this._evaluate(tokens, {
465
466
  generateNewTokens: false,
466
467
  evaluationPriority,
467
- tokenPriority
468
+ contextShiftOptions: {
469
+ size: contextShiftSize,
470
+ strategy: contextShiftStrategy
471
+ }
468
472
  });
469
473
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
470
474
  for await (const token of iterator) {
@@ -472,43 +476,42 @@ export class LlamaContextSequence {
472
476
  }
473
477
  }
474
478
  /** @internal */
475
- async *_evaluate(tokens, { temperature = 0, topK = 40, topP = 0.95, grammarEvaluationState, repeatPenalty, evaluationPriority = 5, tokenPriority = 1, generateNewTokens = true } = {}) {
479
+ async *_evaluate(tokens, { temperature = 0, minP = 0, topK = 40, topP = 0.95, grammarEvaluationState, repeatPenalty, evaluationPriority = 5, generateNewTokens = true, contextShiftOptions, yieldEosToken = false }) {
476
480
  this._ensureNotDisposed();
477
- if (!(tokenPriority instanceof Array))
478
- tokenPriority = Array(tokens.length).fill(tokenPriority);
479
481
  let evalTokens = tokens;
480
- if (generateNewTokens && tokens.length === 0)
481
- return;
482
- if (this._prependTokens.length > 0) {
483
- evalTokens = this._prependTokens.concat(tokens);
484
- tokenPriority = this._prependTokenPriorities.concat(tokenPriority);
485
- this._prependTokens = [];
486
- this._prependTokenPriorities = [];
487
- }
488
482
  if (evalTokens.length === 0)
489
483
  return;
490
484
  // eslint-disable-next-line no-constant-condition
491
485
  while (true) {
492
486
  this._ensureNotDisposed();
493
487
  // Evaluate to get the next token.
494
- const nextToken = await this._decodeTokens(evalTokens, generateNewTokens, evaluationPriority, tokenPriority, (batchLogitIndex) => {
488
+ const nextToken = await this._decodeTokens(evalTokens, generateNewTokens, evaluationPriority, contextShiftOptions, (batchLogitIndex) => {
489
+ const repeatPenaltyTokens = repeatPenalty?.punishTokens instanceof Function
490
+ ? repeatPenalty.punishTokens()
491
+ : repeatPenalty?.punishTokens;
492
+ const resolvedGrammarEvaluationState = grammarEvaluationState instanceof Function
493
+ ? grammarEvaluationState()
494
+ : grammarEvaluationState;
495
+ if (resolvedGrammarEvaluationState != null && resolvedGrammarEvaluationState._llama !== this.model._llama)
496
+ throw new Error("The LlamaGrammar used by passed to this function was created with a different Llama instance than the one used by this sequence's model. Make sure you use the same Llama instance for both the model and the grammar.");
495
497
  return this._context._ctx.sampleToken(batchLogitIndex, removeNullFields({
496
498
  temperature,
499
+ minP,
497
500
  topK,
498
501
  topP,
499
502
  repeatPenalty: repeatPenalty?.penalty,
500
- repeatPenaltyTokens: repeatPenalty?.punishTokens instanceof Function
501
- ? repeatPenalty.punishTokens()
502
- : repeatPenalty?.punishTokens,
503
+ repeatPenaltyTokens: repeatPenaltyTokens != null
504
+ ? Uint32Array.from(repeatPenaltyTokens)
505
+ : undefined,
503
506
  repeatPenaltyPresencePenalty: repeatPenalty?.presencePenalty,
504
507
  repeatPenaltyFrequencyPenalty: repeatPenalty?.frequencyPenalty,
505
- grammarEvaluationState: grammarEvaluationState?._state
508
+ grammarEvaluationState: resolvedGrammarEvaluationState?._state
506
509
  }));
507
510
  });
508
511
  if (nextToken == null)
509
512
  return;
510
513
  // the model finished generating text
511
- if (nextToken === this._context.model.tokens.eos)
514
+ if (!yieldEosToken && nextToken === this._context.model.tokens.eos)
512
515
  break;
513
516
  yield nextToken;
514
517
  // Create tokens for the next eval.
@@ -516,17 +519,17 @@ export class LlamaContextSequence {
516
519
  }
517
520
  }
518
521
  /** @internal */
519
- async _decodeTokens(tokens, generateLogit, evaluationPriority, tokenPriority, onDecodeDone) {
522
+ async _decodeTokens(tokens, generateLogit, evaluationPriority, contextShiftOptions, onDecodeDone) {
520
523
  this._ensureNotDisposed();
521
524
  const tokensLeftToDecode = tokens.slice();
522
525
  return await withLock(this, "evaluate", async () => {
523
526
  while (tokensLeftToDecode.length > 0) {
524
527
  this._ensureNotDisposed();
525
528
  let freeSpace = this._context.contextSize - this._nextTokenIndex;
526
- if (freeSpace === 0) {
527
- await this._freeUpSpaceForTokens();
529
+ if (freeSpace <= 1) {
530
+ await this._freeUpSpaceForTokens(contextShiftOptions);
528
531
  freeSpace = this._context.contextSize - this._nextTokenIndex;
529
- if (freeSpace === 0)
532
+ if (freeSpace <= 1)
530
533
  throw new Error("Failed to free up space for new tokens");
531
534
  }
532
535
  const tokensToDecode = tokensLeftToDecode.splice(0, freeSpace);
@@ -542,9 +545,6 @@ export class LlamaContextSequence {
542
545
  : onDecodeDone);
543
546
  this._nextTokenIndex += tokensToDecode.length;
544
547
  this._contextTokens = this._contextTokens.concat(tokensToDecode);
545
- for (let i = 0; i < tokensToDecode.length; i++) {
546
- this._contextTokenPriorities.push(tokenPriority[i] ?? tokenPriority[tokenPriority.length - 1] ?? 1);
547
- }
548
548
  if (generateLogitAtTheEnd && nextToken != null)
549
549
  return nextToken;
550
550
  }
@@ -552,50 +552,21 @@ export class LlamaContextSequence {
552
552
  });
553
553
  }
554
554
  /** @internal */
555
- async _freeUpSpaceForTokens() {
555
+ async _freeUpSpaceForTokens(contextShiftOptions) {
556
556
  this._ensureNotDisposed();
557
- const size = Math.min(this._nextTokenIndex, Math.max(1, this._contextShift.size instanceof Function
558
- ? await this._contextShift.size(this)
559
- : this._contextShift.size));
557
+ const size = Math.min(this._nextTokenIndex, Math.max(1, contextShiftOptions.size instanceof Function
558
+ ? await contextShiftOptions.size(this)
559
+ : contextShiftOptions.size));
560
560
  this._ensureNotDisposed();
561
- if (this._contextShift.strategy === "eraseLowestTokenPriorityBeginning") {
562
- let leftTokensToErase = Math.min(size, this._contextTokenPriorities.length);
563
- let previousLowestPriority = null;
564
- let indexesToErase = [];
565
- while (leftTokensToErase > 0 && this._contextTokenPriorities.length > 0) {
566
- let currentLowestPriorityIndexes = [];
567
- let currentLowestPriorityFound = null;
568
- for (let i = 0; leftTokensToErase > currentLowestPriorityIndexes.length && i < this._contextTokenPriorities.length; i++) {
569
- const tokenPriority = this._contextTokenPriorities[i];
570
- if (currentLowestPriorityFound == null || (tokenPriority < currentLowestPriorityFound && (previousLowestPriority == null || tokenPriority > previousLowestPriority))) {
571
- currentLowestPriorityFound = tokenPriority;
572
- currentLowestPriorityIndexes = [i];
573
- }
574
- else if (tokenPriority === currentLowestPriorityFound) {
575
- currentLowestPriorityIndexes.push(i);
576
- }
577
- }
578
- previousLowestPriority = currentLowestPriorityFound;
579
- indexesToErase = indexesToErase.concat(currentLowestPriorityIndexes);
580
- leftTokensToErase -= currentLowestPriorityIndexes.length;
581
- }
582
- await this.eraseContextTokenRanges(indexesToErase.reduce((ranges, index) => {
583
- if (ranges.length === 0)
584
- return [{ start: index, end: index + 1 }];
585
- const lastRange = ranges[ranges.length - 1];
586
- if (lastRange.end >= index) {
587
- lastRange.end = Math.max(lastRange.end, index + 1);
588
- return ranges;
589
- }
590
- ranges.push({ start: index, end: index + 1 });
591
- return ranges;
592
- }, []));
593
- }
594
- else if (this._contextShift.strategy === "eraseBeginning") {
595
- await this.eraseContextTokenRanges([{ start: 0, end: size }]);
561
+ if (contextShiftOptions.strategy === "eraseBeginning") {
562
+ let eraseStartIndex = 0;
563
+ if (this.model.tokens.shouldPrependBosToken && this.model.tokens.bos != null &&
564
+ this._contextTokens[0] === this.model.tokens.bos)
565
+ eraseStartIndex = 1;
566
+ await this.eraseContextTokenRanges([{ start: eraseStartIndex, end: size }]);
596
567
  }
597
568
  else {
598
- const ranges = await this._contextShift.strategy({
569
+ const ranges = await contextShiftOptions.strategy({
599
570
  sequence: this,
600
571
  size
601
572
  });
@@ -615,11 +586,10 @@ export class LlamaContextSequence {
615
586
  * We need this to make it impossible to manually create instances of this class outside the code of this library
616
587
  * @internal
617
588
  */
618
- static _create({ sequenceId, context, prependBos = true, contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(context.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {} }) {
589
+ static _create({ sequenceId, context, contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(context.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {} }) {
619
590
  return new LlamaContextSequence({
620
591
  sequenceId,
621
592
  context,
622
- prependBos,
623
593
  contextShift: {
624
594
  size: contextShiftSize,
625
595
  strategy: contextShiftStrategy
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LlamaContext.js","sourceRoot":"","sources":["../../../src/evaluator/LlamaContext/LlamaContext.ts"],"names":[],"mappings":"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"}
@@ -16,20 +16,17 @@ export type LlamaContextOptions = {
16
16
  contextSize?: number;
17
17
  /** prompt processing batch size */
18
18
  batchSize?: number;
19
- /** use fp16 for KV cache */
20
- f16Kv?: boolean;
21
- /** the llama_eval() call computes all logits, not just the last one */
22
- logitsAll?: boolean;
23
- /** embedding mode only */
24
- embedding?: boolean;
25
- /** number of threads to use to evaluate tokens */
19
+ /**
20
+ * number of threads to use to evaluate tokens.
21
+ * set to 0 to use the maximum threads supported by the current machine hardware
22
+ */
26
23
  threads?: number;
27
24
  /** control the parallel sequences processing behavior */
28
25
  batching?: BatchingOptions;
29
26
  };
30
27
  export type LlamaContextSequenceRepeatPenalty = {
31
28
  /** Tokens to lower the predication probability of to be the next predicted token */
32
- punishTokens: Uint32Array | (() => Uint32Array);
29
+ punishTokens: Token[] | (() => Token[]);
33
30
  /**
34
31
  * The relative amount to lower the probability of the tokens in `punishTokens` by
35
32
  * Defaults to `1.1`.
@@ -60,7 +57,7 @@ export type CustomBatchingPrioritizeStrategy = (options: {
60
57
  }) => PrioritizedBatchItem[];
61
58
  export type ContextShiftOptions = {
62
59
  size?: number | ((sequence: LlamaContextSequence) => number | Promise<number>);
63
- strategy?: "eraseLowestTokenPriorityBeginning" | "eraseBeginning" | ((options: {
60
+ strategy?: "eraseBeginning" | ((options: {
64
61
  sequence: LlamaContextSequence;
65
62
  size: number;
66
63
  }) => ContextTokensDeleteRange[] | Promise<ContextTokensDeleteRange[]>);
@@ -75,11 +72,6 @@ export type ContextTokensDeleteRange = {
75
72
  * 5 - high
76
73
  */
77
74
  export type EvaluationPriority = 1 | 2 | 3 | 4 | 5;
78
- /**
79
- * 1 - low, minimum
80
- * Infinity - high, maximum
81
- */
82
- export type TokenPriority = number;
83
75
  export type BatchItem = {
84
76
  readonly tokens: readonly Token[];
85
77
  readonly evaluationPriority: EvaluationPriority;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/evaluator/LlamaContext/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firstInFirstOutStrategy.js","sourceRoot":"","sources":["../../../../../src/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAgD;IAChG,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,MAAM,WAAW,GAAG,KAAK;SACpB,KAAK,EAAE;SACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAEjE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;QAChC,cAAc,IAAI,aAAa,CAAC;QAEhC,IAAI,cAAc,KAAK,CAAC;YACpB,MAAM;KACb;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maximumParallelismStrategy.js","sourceRoot":"","sources":["../../../../../src/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CAAC,EAAC,KAAK,EAAE,IAAI,EAAgD;IACnG,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,cAAc,IAAI,aAAa,CAAC;QAEhC,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAClC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEtC,IAAI,cAAc,KAAK,CAAC;YACpB,MAAM;KACb;IAED,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE;QACpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC;YAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;YACtF,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC;YAE/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;gBACtC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC,EAAE,CAAC;aACP;SACJ;KACJ;IAED,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC;QAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACnE,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC;QAE/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;YACtC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC;SACP;KACJ;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveBatchItemsPrioritizingStrategy.js","sourceRoot":"","sources":["../../../../src/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAC,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAC,uBAAuB,EAAC,MAAM,+DAA+D,CAAC;AAEtG,MAAM,UAAU,qCAAqC,CAAC,QAAgE;IAClH,IAAI,QAAQ,YAAY,QAAQ;QAC5B,OAAO,QAAQ,CAAC;SACf,IAAI,QAAQ,KAAK,oBAAoB;QACtC,OAAO,0BAA0B,CAAC;SACjC,IAAI,QAAQ,KAAK,iBAAiB;QACnC,OAAO,uBAAuB,CAAC;IAEnC,KAAK,CAAC,QAAwB,CAAC,CAAC;IAEhC,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { EventRelay } from "lifecycle-utils";
2
+ import { Token } from "../types.js";
3
+ import { LlamaText } from "../utils/LlamaText.js";
4
+ import { LlamaModel } from "./LlamaModel.js";
5
+ export type LlamaEmbeddingContextOptions = {
6
+ model: LlamaModel;
7
+ /** text context size */
8
+ contextSize?: number;
9
+ /** prompt processing batch size */
10
+ batchSize?: number;
11
+ /**
12
+ * number of threads to use to evaluate tokens.
13
+ * set to 0 to use the maximum threads supported by the current machine hardware
14
+ */
15
+ threads?: number;
16
+ };
17
+ export declare class LlamaEmbeddingContext {
18
+ readonly onDispose: EventRelay<void>;
19
+ constructor({ model, contextSize, batchSize, threads }: LlamaEmbeddingContextOptions);
20
+ getEmbeddingFor(input: Token[] | string | LlamaText): Promise<LlamaEmbedding>;
21
+ dispose(): void;
22
+ /** @hidden */
23
+ [Symbol.dispose](): void;
24
+ get disposed(): boolean;
25
+ }
26
+ export type LlamaEmbeddingJSON = {
27
+ type: "LlamaEmbedding";
28
+ vector: number[];
29
+ };
30
+ export declare class LlamaEmbedding {
31
+ readonly vector: number[];
32
+ constructor({ vector }: {
33
+ vector: number[];
34
+ });
35
+ toJSON(): LlamaEmbeddingJSON;
36
+ static fromJSON(json: LlamaEmbeddingJSON): LlamaEmbedding;
37
+ }
@@ -0,0 +1,78 @@
1
+ import { DisposeAggregator, EventRelay, withLock } from "lifecycle-utils";
2
+ import { tokenizeInput } from "../utils/tokenizeInput.js";
3
+ import { LlamaContext } from "./LlamaContext/LlamaContext.js";
4
+ export class LlamaEmbeddingContext {
5
+ /** @internal */ _llamaContext;
6
+ /** @internal */ _sequence;
7
+ /** @internal */ _disposeAggregator = new DisposeAggregator();
8
+ onDispose = new EventRelay();
9
+ constructor({ model, contextSize = model.trainContextSize, batchSize = contextSize, threads = 6 }) {
10
+ const resolvedContextSize = Math.min(contextSize, model.trainContextSize);
11
+ const resolvedBatchSize = Math.min(batchSize, resolvedContextSize);
12
+ this._llamaContext = new LlamaContext({
13
+ model,
14
+ contextSize: resolvedContextSize,
15
+ batchSize: resolvedBatchSize,
16
+ threads,
17
+ _embedding: true,
18
+ _noSeed: true
19
+ });
20
+ this._sequence = this._llamaContext.getSequence();
21
+ this._disposeAggregator.add(this._llamaContext.onDispose.createListener(() => {
22
+ this._disposeAggregator.dispose();
23
+ }));
24
+ this._disposeAggregator.add(this.onDispose.dispatchEvent);
25
+ this._disposeAggregator.add(() => {
26
+ this._llamaContext.dispose();
27
+ });
28
+ }
29
+ async getEmbeddingFor(input) {
30
+ const resolvedInput = tokenizeInput(input, this._llamaContext.model.tokenize);
31
+ if (resolvedInput.length > this._llamaContext.contextSize)
32
+ throw new Error("Input is longer than the context size. " +
33
+ "Try to increase the context size or use another model that supports longer contexts.");
34
+ else if (resolvedInput.length === 0)
35
+ return new LlamaEmbedding({ vector: [] });
36
+ return await withLock(this, "evaluate", async () => {
37
+ await this._sequence.eraseContextTokenRanges([{
38
+ start: 0,
39
+ end: this._sequence.nextTokenIndex
40
+ }]);
41
+ await this._sequence.evaluateWithoutGeneratingNewTokens(resolvedInput);
42
+ const embedding = this._llamaContext._ctx.getEmbedding();
43
+ const embeddingVector = Array.from(embedding);
44
+ return new LlamaEmbedding({ vector: embeddingVector });
45
+ });
46
+ }
47
+ dispose() {
48
+ this._disposeAggregator.dispose();
49
+ }
50
+ /** @hidden */
51
+ [Symbol.dispose]() {
52
+ return this.dispose();
53
+ }
54
+ get disposed() {
55
+ return this._llamaContext.disposed;
56
+ }
57
+ }
58
+ export class LlamaEmbedding {
59
+ vector;
60
+ constructor({ vector }) {
61
+ this.vector = vector;
62
+ }
63
+ toJSON() {
64
+ return {
65
+ type: "LlamaEmbedding",
66
+ vector: this.vector
67
+ };
68
+ }
69
+ static fromJSON(json) {
70
+ if (json == null || json.type !== "LlamaEmbedding" || !(json.vector instanceof Array) ||
71
+ json.vector.some(v => typeof v !== "number"))
72
+ throw new Error("Invalid LlamaEmbedding JSON");
73
+ return new LlamaEmbedding({
74
+ vector: json.vector
75
+ });
76
+ }
77
+ }
78
+ //# sourceMappingURL=LlamaEmbeddingContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LlamaEmbeddingContext.js","sourceRoot":"","sources":["../../src/evaluator/LlamaEmbeddingContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { LlamaText } from "../utils/LlamaText.js";
2
+ import { StopGenerationTrigger } from "../utils/StopGenerationDetector.js";
3
+ import { Llama } from "../bindings/Llama.js";
4
+ export type LlamaGrammarOptions = {
5
+ llama: Llama;
6
+ /** GBNF grammar */
7
+ grammar: string;
8
+ /** print the grammar to stdout */
9
+ printGrammar?: boolean;
10
+ /** Consider any of these as EOS for the generated text. Only supported by `LlamaChat` and `LlamaChatSession` */
11
+ stopGenerationTriggers?: readonly (StopGenerationTrigger | LlamaText)[];
12
+ /** Trim whitespace from the end of the generated text. Only supported by `LlamaChat` and `LlamaChatSession` */
13
+ trimWhitespaceSuffix?: boolean;
14
+ };
15
+ export declare class LlamaGrammar {
16
+ private readonly _stopGenerationTriggers;
17
+ private readonly _trimWhitespaceSuffix;
18
+ private readonly _grammarText;
19
+ /**
20
+ * > GBNF files are supported.
21
+ * > More info here: [github:ggerganov/llama.cpp:grammars/README.md](
22
+ * > https://github.com/ggerganov/llama.cpp/blob/f5fe98d11bdf9e7797bcfb05c0c3601ffc4b9d26/grammars/README.md)
23
+ * @param options
24
+ */
25
+ constructor({ llama, grammar, stopGenerationTriggers, trimWhitespaceSuffix, printGrammar }: LlamaGrammarOptions);
26
+ get grammar(): string;
27
+ get stopGenerationTriggers(): readonly (StopGenerationTrigger | LlamaText)[];
28
+ get trimWhitespaceSuffix(): boolean;
29
+ static getFor(llama: Llama, type: "json" | "list" | "arithmetic" | "japanese" | "chess"): Promise<LlamaGrammar>;
30
+ }