node-llama-cpp 3.5.0 → 3.7.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 (127) hide show
  1. package/README.md +2 -2
  2. package/dist/ChatWrapper.d.ts +3 -5
  3. package/dist/ChatWrapper.js +57 -5
  4. package/dist/ChatWrapper.js.map +1 -1
  5. package/dist/bindings/AddonTypes.d.ts +1 -1
  6. package/dist/bindings/Llama.js +2 -0
  7. package/dist/bindings/Llama.js.map +1 -1
  8. package/dist/bindings/utils/compileLLamaCpp.js +2 -0
  9. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  10. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -1
  11. package/dist/chatWrappers/DeepSeekChatWrapper.d.ts +37 -0
  12. package/dist/chatWrappers/DeepSeekChatWrapper.js +294 -0
  13. package/dist/chatWrappers/DeepSeekChatWrapper.js.map +1 -0
  14. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
  15. package/dist/chatWrappers/FunctionaryChatWrapper.js +40 -14
  16. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  17. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
  18. package/dist/chatWrappers/Llama2ChatWrapper.js.map +1 -1
  19. package/dist/chatWrappers/Llama3_1ChatWrapper.d.ts +0 -3
  20. package/dist/chatWrappers/Llama3_1ChatWrapper.js +24 -13
  21. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
  22. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js +22 -11
  23. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js.map +1 -1
  24. package/dist/chatWrappers/MistralChatWrapper.d.ts +2 -1
  25. package/dist/chatWrappers/MistralChatWrapper.js +39 -28
  26. package/dist/chatWrappers/MistralChatWrapper.js.map +1 -1
  27. package/dist/chatWrappers/QwenChatWrapper.d.ts +21 -0
  28. package/dist/chatWrappers/QwenChatWrapper.js +162 -0
  29. package/dist/chatWrappers/QwenChatWrapper.js.map +1 -0
  30. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +41 -3
  31. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +343 -126
  32. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  33. package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +17 -1
  34. package/dist/chatWrappers/generic/TemplateChatWrapper.js +10 -2
  35. package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -1
  36. package/dist/chatWrappers/generic/utils/UniqueIdGenerator.d.ts +7 -0
  37. package/dist/chatWrappers/generic/utils/UniqueIdGenerator.js +30 -0
  38. package/dist/chatWrappers/generic/utils/UniqueIdGenerator.js.map +1 -0
  39. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +5 -4
  40. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.d.ts +19 -0
  41. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +446 -0
  42. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -0
  43. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.d.ts +2 -0
  44. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +38 -0
  45. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -0
  46. package/dist/chatWrappers/generic/utils/getFirstValidResult.d.ts +6 -0
  47. package/dist/chatWrappers/generic/utils/getFirstValidResult.js +19 -0
  48. package/dist/chatWrappers/generic/utils/getFirstValidResult.js.map +1 -0
  49. package/dist/chatWrappers/generic/utils/squashChatHistoryItems.d.ts +2 -0
  50. package/dist/chatWrappers/generic/utils/squashChatHistoryItems.js +35 -0
  51. package/dist/chatWrappers/generic/utils/squashChatHistoryItems.js.map +1 -0
  52. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.d.ts +22 -0
  53. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.js +28 -0
  54. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.js.map +1 -0
  55. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +3 -0
  56. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +25 -0
  57. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -1
  58. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +197 -30
  59. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -1
  60. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +48 -3
  61. package/dist/chatWrappers/utils/resolveChatWrapper.js +15 -5
  62. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  63. package/dist/cli/commands/ChatCommand.js +38 -7
  64. package/dist/cli/commands/ChatCommand.js.map +1 -1
  65. package/dist/cli/recommendedModels.js +93 -10
  66. package/dist/cli/recommendedModels.js.map +1 -1
  67. package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +1 -1
  68. package/dist/config.d.ts +1 -1
  69. package/dist/config.js +1 -1
  70. package/dist/config.js.map +1 -1
  71. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +87 -5
  72. package/dist/evaluator/LlamaChat/LlamaChat.js +781 -196
  73. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  74. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +55 -1
  75. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  76. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +22 -7
  77. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +28 -8
  78. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  79. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +1 -1
  80. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -1
  81. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +1 -1
  82. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
  83. package/dist/evaluator/LlamaCompletion.js +61 -48
  84. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  85. package/dist/evaluator/LlamaGrammar.d.ts +2 -2
  86. package/dist/evaluator/LlamaGrammar.js +5 -3
  87. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  88. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +3 -1
  89. package/dist/evaluator/LlamaModel/LlamaModel.js +4 -1
  90. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  91. package/dist/evaluator/LlamaRankingContext.js +1 -1
  92. package/dist/evaluator/LlamaRankingContext.js.map +1 -1
  93. package/dist/gguf/types/GgufMetadataTypes.d.ts +1 -1
  94. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  95. package/dist/index.d.ts +8 -5
  96. package/dist/index.js +4 -2
  97. package/dist/index.js.map +1 -1
  98. package/dist/tsconfig.tsbuildinfo +1 -1
  99. package/dist/types.d.ts +40 -2
  100. package/dist/types.js +7 -1
  101. package/dist/types.js.map +1 -1
  102. package/dist/utils/LlamaText.js +8 -9
  103. package/dist/utils/LlamaText.js.map +1 -1
  104. package/dist/utils/OpenAIFormat.d.ts +177 -0
  105. package/dist/utils/OpenAIFormat.js +488 -0
  106. package/dist/utils/OpenAIFormat.js.map +1 -0
  107. package/dist/utils/TokenStreamRegulator.d.ts +2 -0
  108. package/dist/utils/TokenStreamRegulator.js +12 -0
  109. package/dist/utils/TokenStreamRegulator.js.map +1 -1
  110. package/dist/utils/getChatWrapperSegmentDefinition.d.ts +2 -0
  111. package/dist/utils/getChatWrapperSegmentDefinition.js +7 -0
  112. package/dist/utils/getChatWrapperSegmentDefinition.js.map +1 -0
  113. package/dist/utils/optionsMatrix.d.ts +58 -0
  114. package/dist/utils/optionsMatrix.js +97 -0
  115. package/dist/utils/optionsMatrix.js.map +1 -0
  116. package/dist/utils/parseModelUri.js +1 -1
  117. package/dist/utils/parseModelUri.js.map +1 -1
  118. package/dist/utils/resolveModelFile.js +2 -0
  119. package/dist/utils/resolveModelFile.js.map +1 -1
  120. package/llama/addon/AddonContext.cpp +11 -9
  121. package/llama/binariesGithubRelease.json +1 -1
  122. package/llama/gitRelease.bundle +0 -0
  123. package/llama/grammars/README.md +4 -4
  124. package/llama/llama.cpp.info.json +2 -2
  125. package/package.json +48 -45
  126. package/templates/packed/electron-typescript-react.json +1 -1
  127. package/templates/packed/node-typescript.json +1 -1
@@ -1,6 +1,8 @@
1
- import { ChatWrapperGenerateContextStateOptions, ChatWrapperGeneratedContextState, ChatWrapperSettings } from "../../types.js";
1
+ import { ChatHistoryItem, ChatModelFunctions, ChatWrapperGenerateContextStateOptions, ChatWrapperGeneratedContextState, ChatWrapperSettings, Tokenizer } from "../../types.js";
2
+ import { LlamaText } from "../../utils/LlamaText.js";
2
3
  import { ChatWrapper } from "../../ChatWrapper.js";
3
4
  import { ChatHistoryFunctionCallMessageTemplate } from "./utils/chatHistoryFunctionCallMessageTemplate.js";
5
+ import { TemplateChatWrapperSegmentsOptions } from "./utils/templateSegmentOptionsToChatWrapperSettings.js";
4
6
  export type JinjaTemplateChatWrapperOptions = {
5
7
  template: string;
6
8
  /**
@@ -31,7 +33,18 @@ export type JinjaTemplateChatWrapperOptions = {
31
33
  * Defaults to `"auto"`.
32
34
  */
33
35
  convertUnsupportedSystemMessagesToUserMessages?: "auto" | boolean | JinjaTemplateChatWrapperOptionsConvertMessageFormat;
34
- functionCallMessageTemplate?: ChatHistoryFunctionCallMessageTemplate;
36
+ /**
37
+ * Template format for how functions can be called by the model and how their results are fed to the model after function calls.
38
+ *
39
+ * - **`"auto"`**: Extract the function call message template from the Jinja template.
40
+ * Fallback to the default template if not found.
41
+ * - **`"noJinja"`**: Use the default template.
42
+ * - **Custom template**: Use the specified {@link ChatHistoryFunctionCallMessageTemplate template}.
43
+ * See {@link ChatHistoryFunctionCallMessageTemplate `ChatHistoryFunctionCallMessageTemplate`} for more details.
44
+ *
45
+ * Defaults to `"auto"`.
46
+ */
47
+ functionCallMessageTemplate?: "auto" | "noJinja" | ChatHistoryFunctionCallMessageTemplate;
35
48
  /**
36
49
  * Whether to join adjacent messages of the same type.
37
50
  * Some Jinja templates may throw an error if this is not set to `true`.
@@ -49,6 +62,16 @@ export type JinjaTemplateChatWrapperOptions = {
49
62
  * Additional parameters to use for rendering the Jinja template.
50
63
  */
51
64
  additionalRenderParameters?: Record<string, any>;
65
+ /**
66
+ * Format of the segments generated by the model (like thought segments)
67
+ */
68
+ segments?: TemplateChatWrapperSegmentsOptions;
69
+ /**
70
+ * Pass a model's tokenizer to attempt to detect common tokens used for chat formatting from it.
71
+ *
72
+ * Currently only used for detecting support for `<think>` tags for thought segments.
73
+ */
74
+ tokenizer?: Tokenizer;
52
75
  };
53
76
  export type JinjaTemplateChatWrapperOptionsConvertMessageFormat = {
54
77
  use?: "always" | "ifNeeded";
@@ -73,6 +96,10 @@ export type JinjaTemplateChatWrapperOptionsConvertMessageFormat = {
73
96
  * // functionCallMessageTemplate: { // optional
74
97
  * // call: "[[call: {{functionName}}({{functionParams}})]]",
75
98
  * // result: " [[result: {{functionCallResult}}]]"
99
+ * // },
100
+ * // segments: {
101
+ * // thoughtTemplate: "<think>{{content}}</think>",
102
+ * // reopenThoughtAfterFunctionCalls: true
76
103
  * // }
77
104
  * });
78
105
  * ```
@@ -93,8 +120,19 @@ export declare class JinjaTemplateChatWrapper extends ChatWrapper {
93
120
  /**
94
121
  * @param options
95
122
  */
96
- constructor({ template, modelRoleName, userRoleName, systemRoleName, convertUnsupportedSystemMessagesToUserMessages, functionCallMessageTemplate, joinAdjacentMessagesOfTheSameType, trimLeadingWhitespaceInResponses, additionalRenderParameters }: JinjaTemplateChatWrapperOptions);
123
+ constructor(options: JinjaTemplateChatWrapperOptions);
124
+ /**
125
+ * Whether the function call syntax settings were extracted from the given Jinja template.
126
+ *
127
+ * The function call syntax settings can be accessed using the `.settings.functions` property.
128
+ */
129
+ get usingJinjaFunctionCallTemplate(): boolean;
97
130
  generateContextState({ chatHistory, availableFunctions, documentFunctionParams }: ChatWrapperGenerateContextStateOptions): ChatWrapperGeneratedContextState & {
98
131
  transformedSystemMessagesToUserMessages: boolean;
99
132
  };
133
+ addAvailableFunctionsSystemMessageToHistory(history: readonly ChatHistoryItem[], availableFunctions?: ChatModelFunctions, options?: {
134
+ documentParams?: boolean;
135
+ }): readonly ChatHistoryItem[];
136
+ generateFunctionCall(name: string, params: any): LlamaText;
137
+ generateFunctionCallResult(functionName: string, functionParams: any, result: any): LlamaText;
100
138
  }