node-llama-cpp 2.8.4 → 3.0.0-beta.2

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 (185) hide show
  1. package/README.md +2 -2
  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/chatWrappers/AlpacaChatWrapper.d.ts +12 -0
  6. package/dist/chatWrappers/AlpacaChatWrapper.js +21 -0
  7. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -0
  8. package/dist/chatWrappers/ChatMLChatWrapper.d.ts +13 -0
  9. package/dist/chatWrappers/ChatMLChatWrapper.js +83 -0
  10. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -0
  11. package/dist/chatWrappers/EmptyChatWrapper.d.ts +4 -0
  12. package/dist/chatWrappers/EmptyChatWrapper.js +5 -0
  13. package/dist/chatWrappers/EmptyChatWrapper.js.map +1 -0
  14. package/dist/chatWrappers/FalconChatWrapper.d.ts +21 -0
  15. package/dist/chatWrappers/FalconChatWrapper.js +104 -0
  16. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -0
  17. package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +41 -0
  18. package/dist/chatWrappers/FunctionaryChatWrapper.js +200 -0
  19. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -0
  20. package/dist/chatWrappers/GeneralChatWrapper.d.ts +21 -0
  21. package/dist/chatWrappers/GeneralChatWrapper.js +112 -0
  22. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -0
  23. package/dist/chatWrappers/LlamaChatWrapper.d.ts +13 -0
  24. package/dist/chatWrappers/LlamaChatWrapper.js +78 -0
  25. package/dist/chatWrappers/LlamaChatWrapper.js.map +1 -0
  26. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +13 -0
  27. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +55 -0
  28. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -0
  29. package/dist/cli/cli.js +1 -1
  30. package/dist/cli/cli.js.map +1 -1
  31. package/dist/cli/commands/ChatCommand.d.ts +2 -1
  32. package/dist/cli/commands/ChatCommand.js +90 -42
  33. package/dist/cli/commands/ChatCommand.js.map +1 -1
  34. package/dist/config.js +1 -1
  35. package/dist/config.js.map +1 -1
  36. package/dist/index.d.ts +20 -12
  37. package/dist/index.js +19 -11
  38. package/dist/index.js.map +1 -1
  39. package/dist/llamaEvaluator/LlamaBins.d.ts +18 -4
  40. package/dist/llamaEvaluator/LlamaBins.js +3 -3
  41. package/dist/llamaEvaluator/LlamaChat/LlamaChat.d.ts +175 -0
  42. package/dist/llamaEvaluator/LlamaChat/LlamaChat.js +704 -0
  43. package/dist/llamaEvaluator/LlamaChat/LlamaChat.js.map +1 -0
  44. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +21 -0
  45. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js +120 -0
  46. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
  47. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +16 -0
  48. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +117 -0
  49. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
  50. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.d.ts +146 -0
  51. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js +211 -0
  52. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
  53. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +7 -0
  54. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js +8 -0
  55. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
  56. package/dist/llamaEvaluator/LlamaContext/LlamaContext.d.ts +107 -0
  57. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js +597 -0
  58. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +1 -0
  59. package/dist/llamaEvaluator/LlamaContext/types.d.ts +86 -0
  60. package/dist/llamaEvaluator/LlamaContext/types.js +2 -0
  61. package/dist/llamaEvaluator/LlamaContext/types.js.map +1 -0
  62. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +5 -0
  63. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +16 -0
  64. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
  65. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +5 -0
  66. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +42 -0
  67. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
  68. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +2 -0
  69. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +13 -0
  70. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
  71. package/dist/llamaEvaluator/LlamaGrammar.d.ts +9 -13
  72. package/dist/llamaEvaluator/LlamaGrammar.js +10 -15
  73. package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -1
  74. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.d.ts +6 -5
  75. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js +8 -7
  76. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +1 -1
  77. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js +2 -1
  78. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +1 -1
  79. package/dist/llamaEvaluator/LlamaModel.d.ts +101 -105
  80. package/dist/llamaEvaluator/LlamaModel.js +305 -57
  81. package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
  82. package/dist/types.d.ts +44 -4
  83. package/dist/types.js +5 -1
  84. package/dist/types.js.map +1 -1
  85. package/dist/utils/LlamaText.d.ts +42 -0
  86. package/dist/utils/LlamaText.js +207 -0
  87. package/dist/utils/LlamaText.js.map +1 -0
  88. package/dist/utils/ReplHistory.js +1 -1
  89. package/dist/utils/ReplHistory.js.map +1 -1
  90. package/dist/utils/StopGenerationDetector.d.ts +28 -0
  91. package/dist/utils/StopGenerationDetector.js +205 -0
  92. package/dist/utils/StopGenerationDetector.js.map +1 -0
  93. package/dist/utils/TokenStreamRegulator.d.ts +30 -0
  94. package/dist/utils/TokenStreamRegulator.js +96 -0
  95. package/dist/utils/TokenStreamRegulator.js.map +1 -0
  96. package/dist/utils/appendUserMessageToChatHistory.d.ts +2 -0
  97. package/dist/utils/appendUserMessageToChatHistory.js +18 -0
  98. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -0
  99. package/dist/utils/compareTokens.d.ts +2 -0
  100. package/dist/utils/compareTokens.js +4 -0
  101. package/dist/utils/compareTokens.js.map +1 -0
  102. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +18 -0
  103. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +61 -0
  104. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -0
  105. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +1 -0
  106. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +17 -0
  107. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  108. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +1 -1
  109. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  110. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.d.ts +6 -0
  111. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js +21 -0
  112. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -0
  113. package/dist/utils/gbnfJson/types.d.ts +1 -1
  114. package/dist/utils/gbnfJson/types.js.map +1 -1
  115. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +1 -0
  116. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  117. package/dist/utils/getBin.d.ts +71 -38
  118. package/dist/utils/getBin.js.map +1 -1
  119. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +1 -15
  120. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  121. package/dist/utils/getReleaseInfo.d.ts +1 -1
  122. package/dist/utils/getReleaseInfo.js.map +1 -1
  123. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.d.ts +2 -0
  124. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +49 -0
  125. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -0
  126. package/dist/utils/parseModelFileName.d.ts +9 -0
  127. package/dist/utils/parseModelFileName.js +68 -0
  128. package/dist/utils/parseModelFileName.js.map +1 -0
  129. package/dist/utils/parseModelTypeDescription.d.ts +6 -0
  130. package/dist/utils/parseModelTypeDescription.js +9 -0
  131. package/dist/utils/parseModelTypeDescription.js.map +1 -0
  132. package/dist/utils/resolveChatWrapper.d.ts +4 -0
  133. package/dist/utils/resolveChatWrapper.js +16 -0
  134. package/dist/utils/resolveChatWrapper.js.map +1 -0
  135. package/dist/utils/truncateTextAndRoundToWords.d.ts +8 -0
  136. package/dist/utils/truncateTextAndRoundToWords.js +27 -0
  137. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -0
  138. package/llama/.clang-format +10 -9
  139. package/llama/addon.cpp +701 -352
  140. package/llama/gitRelease.bundle +0 -0
  141. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  142. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  143. package/llamaBins/linux-x64/llama-addon.node +0 -0
  144. package/llamaBins/mac-arm64/llama-addon.node +0 -0
  145. package/llamaBins/mac-x64/llama-addon.node +0 -0
  146. package/llamaBins/win-x64/llama-addon.node +0 -0
  147. package/package.json +24 -14
  148. package/dist/ChatPromptWrapper.d.ts +0 -11
  149. package/dist/ChatPromptWrapper.js +0 -20
  150. package/dist/ChatPromptWrapper.js.map +0 -1
  151. package/dist/chatWrappers/ChatMLChatPromptWrapper.d.ts +0 -12
  152. package/dist/chatWrappers/ChatMLChatPromptWrapper.js +0 -22
  153. package/dist/chatWrappers/ChatMLChatPromptWrapper.js.map +0 -1
  154. package/dist/chatWrappers/EmptyChatPromptWrapper.d.ts +0 -4
  155. package/dist/chatWrappers/EmptyChatPromptWrapper.js +0 -5
  156. package/dist/chatWrappers/EmptyChatPromptWrapper.js.map +0 -1
  157. package/dist/chatWrappers/FalconChatPromptWrapper.d.ts +0 -19
  158. package/dist/chatWrappers/FalconChatPromptWrapper.js +0 -33
  159. package/dist/chatWrappers/FalconChatPromptWrapper.js.map +0 -1
  160. package/dist/chatWrappers/GeneralChatPromptWrapper.d.ts +0 -19
  161. package/dist/chatWrappers/GeneralChatPromptWrapper.js +0 -38
  162. package/dist/chatWrappers/GeneralChatPromptWrapper.js.map +0 -1
  163. package/dist/chatWrappers/LlamaChatPromptWrapper.d.ts +0 -12
  164. package/dist/chatWrappers/LlamaChatPromptWrapper.js +0 -23
  165. package/dist/chatWrappers/LlamaChatPromptWrapper.js.map +0 -1
  166. package/dist/chatWrappers/createChatWrapperByBos.d.ts +0 -2
  167. package/dist/chatWrappers/createChatWrapperByBos.js +0 -14
  168. package/dist/chatWrappers/createChatWrapperByBos.js.map +0 -1
  169. package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -23
  170. package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -47
  171. package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +0 -1
  172. package/dist/llamaEvaluator/LlamaChatSession.d.ts +0 -122
  173. package/dist/llamaEvaluator/LlamaChatSession.js +0 -236
  174. package/dist/llamaEvaluator/LlamaChatSession.js.map +0 -1
  175. package/dist/llamaEvaluator/LlamaContext.d.ts +0 -98
  176. package/dist/llamaEvaluator/LlamaContext.js +0 -140
  177. package/dist/llamaEvaluator/LlamaContext.js.map +0 -1
  178. package/dist/utils/getTextCompletion.d.ts +0 -3
  179. package/dist/utils/getTextCompletion.js +0 -12
  180. package/dist/utils/getTextCompletion.js.map +0 -1
  181. package/dist/utils/withLock.d.ts +0 -1
  182. package/dist/utils/withLock.js +0 -19
  183. package/dist/utils/withLock.js.map +0 -1
  184. package/llamaBins/mac-arm64/ggml-metal.metal +0 -5820
  185. package/llamaBins/mac-x64/ggml-metal.metal +0 -5820
@@ -1,74 +1,322 @@
1
1
  import process from "process";
2
2
  import path from "path";
3
+ import { DisposedError, EventRelay } from "lifecycle-utils";
3
4
  import { removeNullFields } from "../utils/removeNullFields.js";
4
- import { llamaCppNode, LLAMAModel } from "./LlamaBins.js";
5
+ import { addonBinding, AddonModel } from "./LlamaBins.js";
5
6
  export class LlamaModel {
6
- /** @internal */
7
- _model;
8
- /** @internal */
9
- _contextOptions;
10
- /** @internal */
11
- _evaluationOptions;
7
+ /** @internal */ _model;
8
+ /** @internal */ _tokens;
9
+ /** @internal */ _filename;
10
+ /** @internal */ _disposedState = { disposed: false };
11
+ /** @internal */ _typeDescription;
12
+ /** @internal */ _trainContextSize;
13
+ onDispose = new EventRelay();
12
14
  /**
13
15
  * > options source:
14
16
  * > [github:ggerganov/llama.cpp/llama.h](
15
- * > https://github.com/ggerganov/llama.cpp/blob/b5ffb2849d23afe73647f68eec7b68187af09be6/llama.h#L102) (`struct llama_context_params`)
16
- * @param {object} options
17
- * @param {string} options.modelPath - path to the model on the filesystem
18
- * @param {number | null} [options.seed] - If null, a random seed will be used
19
- * @param {number} [options.contextSize] - text context size
20
- * @param {number} [options.batchSize] - prompt processing batch size
21
- * @param {number} [options.gpuLayers] - number of layers to store in VRAM
22
- * @param {number} [options.threads] - number of threads to use to evaluate tokens
23
- * @param {number} [options.temperature] - Temperature is a hyperparameter that controls the randomness of the generated text.
24
- * It affects the probability distribution of the model's output tokens.
25
- * A higher temperature (e.g., 1.5) makes the output more random and creative,
26
- * while a lower temperature (e.g., 0.5) makes the output more focused, deterministic, and conservative.
27
- * The suggested temperature is 0.8, which provides a balance between randomness and determinism.
28
- * At the extreme, a temperature of 0 will always pick the most likely next token, leading to identical outputs in each run.
29
- *
30
- * Set to `0` to disable.
31
- * @param {number} [options.topK] - Limits the model to consider only the K most likely next tokens for sampling at each step of
32
- * sequence generation.
33
- * An integer number between `1` and the size of the vocabulary.
34
- * Set to `0` to disable (which uses the full vocabulary).
35
- *
36
- * Only relevant when `temperature` is set to a value greater than 0.
37
- * @param {number} [options.topP] - Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P,
38
- * and samples the next token only from this set.
39
- * A float number between `0` and `1`.
40
- * Set to `1` to disable.
41
- *
42
- * Only relevant when `temperature` is set to a value greater than `0`.
43
- * @param {boolean} [options.logitsAll] - the llama_eval() call computes all logits, not just the last one
44
- * @param {boolean} [options.vocabOnly] - only load the vocabulary, no weights
45
- * @param {boolean} [options.useMmap] - use mmap if possible
46
- * @param {boolean} [options.useMlock] - force system to keep model in RAM
47
- * @param {boolean} [options.embedding] - embedding mode only
48
- */
49
- constructor({ modelPath, seed = null, contextSize = 1024 * 4, batchSize, gpuLayers, threads = 6, temperature = 0, topK = 40, topP = 0.95, logitsAll, vocabOnly, useMmap, useMlock, embedding }) {
50
- this._model = new LLAMAModel(path.resolve(process.cwd(), modelPath), removeNullFields({
17
+ * > https://github.com/ggerganov/llama.cpp/blob/05816027d649f977468fc804cdb54e99eac246d1/llama.h#L161) (`struct llama_model_params`)
18
+ * @param options
19
+ * @param options.modelPath - path to the model on the filesystem
20
+ * @param [options.gpuLayers] - number of layers to store in VRAM
21
+ * @param [options.vocabOnly] - only load the vocabulary, no weights
22
+ * @param [options.useMmap] - use mmap if possible
23
+ * @param [options.useMlock] - force system to keep model in RAM
24
+ */
25
+ constructor({ modelPath, gpuLayers, vocabOnly, useMmap, useMlock }) {
26
+ this._model = new AddonModel(path.resolve(process.cwd(), modelPath), removeNullFields({
51
27
  gpuLayers,
52
28
  vocabOnly,
53
29
  useMmap,
54
30
  useMlock
55
31
  }));
56
- this._contextOptions = {
57
- seed,
58
- contextSize,
59
- batchSize,
60
- logitsAll,
61
- embedding,
62
- threads
63
- };
64
- this._evaluationOptions = {
65
- temperature,
66
- topK,
67
- topP
68
- };
32
+ this._tokens = LlamaModelTokens._create(this._model, this._disposedState);
33
+ this._filename = path.basename(modelPath);
34
+ this.tokenize = this.tokenize.bind(this);
35
+ this.detokenize = this.detokenize.bind(this);
36
+ }
37
+ dispose() {
38
+ if (this._disposedState.disposed)
39
+ return;
40
+ this.onDispose.dispatchEvent();
41
+ this._model.dispose();
42
+ this._disposedState.disposed = true;
43
+ }
44
+ /** @hidden */
45
+ [Symbol.dispose]() {
46
+ this.dispose();
47
+ }
48
+ get disposed() {
49
+ return this._disposedState.disposed;
50
+ }
51
+ get tokens() {
52
+ return this._tokens;
53
+ }
54
+ get filename() {
55
+ return this._filename;
56
+ }
57
+ tokenize(text, specialTokens = false) {
58
+ this._ensureNotDisposed();
59
+ if (text === "")
60
+ return [];
61
+ if (specialTokens === "builtin") {
62
+ const builtinToken = text;
63
+ switch (builtinToken) {
64
+ case "BOS": return this.tokens.bos == null ? [] : [this.tokens.bos];
65
+ case "EOS": return this.tokens.eos == null ? [] : [this.tokens.eos];
66
+ case "NL": return this.tokens.nl == null ? [] : [this.tokens.nl];
67
+ }
68
+ void (builtinToken);
69
+ throw new Error(`Unknown builtin special token: ${builtinToken}`);
70
+ }
71
+ return Array.from(this._model.tokenize(text, specialTokens));
72
+ }
73
+ /** Transform tokens into text */
74
+ detokenize(tokens) {
75
+ this._ensureNotDisposed();
76
+ if (tokens.length === 0)
77
+ return "";
78
+ return this._model.detokenize(Uint32Array.from(tokens));
79
+ }
80
+ /** @hidden `ModelTypeDescription` type alias is too long in the documentation */
81
+ get typeDescription() {
82
+ this._ensureNotDisposed();
83
+ if (this._typeDescription == null)
84
+ this._typeDescription = this._model.getModelDescription();
85
+ return this._typeDescription;
86
+ }
87
+ /** The context size the model was trained on */
88
+ get trainContextSize() {
89
+ this._ensureNotDisposed();
90
+ if (this._trainContextSize == null)
91
+ this._trainContextSize = this._model.getTrainContextSize();
92
+ return this._trainContextSize;
93
+ }
94
+ /** @internal */
95
+ _ensureNotDisposed() {
96
+ if (this._disposedState.disposed)
97
+ throw new DisposedError();
69
98
  }
70
99
  static get systemInfo() {
71
- return llamaCppNode.systemInfo();
100
+ return addonBinding.systemInfo();
101
+ }
102
+ }
103
+ export class LlamaModelTokens {
104
+ /** @internal */ _model;
105
+ /** @internal */ _disposedState;
106
+ /** @internal */ _infillTokens;
107
+ /** @internal */ _bosToken;
108
+ /** @internal */ _eosToken;
109
+ /** @internal */ _nlToken;
110
+ /** @internal */ _bosString;
111
+ /** @internal */ _eosString;
112
+ /** @internal */ _nlString;
113
+ constructor(model, disposedState) {
114
+ this._model = model;
115
+ this._disposedState = disposedState;
116
+ }
117
+ /**
118
+ * @returns infill tokens
119
+ */
120
+ get infill() {
121
+ this._ensureNotDisposed();
122
+ if (this._infillTokens == null)
123
+ this._infillTokens = LlamaModelInfillTokens._create(this._model, this._disposedState);
124
+ return this._infillTokens;
125
+ }
126
+ /**
127
+ * @returns The BOS (Beginning Of Sequence) token.
128
+ */
129
+ get bos() {
130
+ this._ensureNotDisposed();
131
+ if (this._bosToken == null)
132
+ this._bosToken = this._model.tokenBos();
133
+ if (this._bosToken === -1)
134
+ return null;
135
+ return this._bosToken;
136
+ }
137
+ /**
138
+ * @returns The EOS (End Of Sequence) token.
139
+ */
140
+ get eos() {
141
+ this._ensureNotDisposed();
142
+ if (this._eosToken == null)
143
+ this._eosToken = this._model.tokenEos();
144
+ if (this._eosToken === -1)
145
+ return null;
146
+ return this._eosToken;
147
+ }
148
+ /**
149
+ * @returns The NL (New Line) token.
150
+ */
151
+ get nl() {
152
+ this._ensureNotDisposed();
153
+ if (this._nlToken == null)
154
+ this._nlToken = this._model.tokenNl();
155
+ if (this._nlToken === -1)
156
+ return null;
157
+ return this._nlToken;
158
+ }
159
+ /**
160
+ * @returns The BOS (Beginning Of Sequence) token as a string.
161
+ */
162
+ get bosString() {
163
+ this._ensureNotDisposed();
164
+ const bosToken = this.bos;
165
+ if (bosToken == null)
166
+ return null;
167
+ if (this._bosString == null)
168
+ this._bosString = this._model.getTokenString(bosToken);
169
+ return this._bosString;
170
+ }
171
+ /**
172
+ * @returns The EOS (End Of Sequence) token as a string.
173
+ */
174
+ get eosString() {
175
+ this._ensureNotDisposed();
176
+ const eosToken = this.eos;
177
+ if (eosToken == null)
178
+ return null;
179
+ if (this._eosString == null)
180
+ this._eosString = this._model.getTokenString(eosToken);
181
+ return this._eosString;
182
+ }
183
+ /**
184
+ * @returns The NL (New Line) token as a string.
185
+ */
186
+ get nlString() {
187
+ this._ensureNotDisposed();
188
+ const nlToken = this.nl;
189
+ if (nlToken == null)
190
+ return null;
191
+ if (this._nlString == null)
192
+ this._nlString = this._model.getTokenString(nlToken);
193
+ return this._nlString;
194
+ }
195
+ /** @internal */
196
+ _ensureNotDisposed() {
197
+ if (this._disposedState.disposed)
198
+ throw new DisposedError();
199
+ }
200
+ /** @internal */
201
+ static _create(model, disposedState) {
202
+ return new LlamaModelTokens(model, disposedState);
203
+ }
204
+ }
205
+ export class LlamaModelInfillTokens {
206
+ /** @internal */ _model;
207
+ /** @internal */ _disposedState;
208
+ /** @internal */ _prefixToken;
209
+ /** @internal */ _middleToken;
210
+ /** @internal */ _suffixToken;
211
+ /** @internal */ _eotToken;
212
+ /** @internal */ _prefixString;
213
+ /** @internal */ _middleString;
214
+ /** @internal */ _suffixString;
215
+ /** @internal */ _eotString;
216
+ constructor(model, disposedState) {
217
+ this._model = model;
218
+ this._disposedState = disposedState;
219
+ }
220
+ /**
221
+ * @returns The beginning of infill prefix token.
222
+ */
223
+ get prefix() {
224
+ this._ensureNotDisposed();
225
+ if (this._prefixToken == null)
226
+ this._prefixToken = this._model.prefixToken();
227
+ if (this._prefixToken === -1)
228
+ return null;
229
+ return this._prefixToken;
230
+ }
231
+ /**
232
+ * @returns The beginning of infill middle token.
233
+ */
234
+ get middle() {
235
+ this._ensureNotDisposed();
236
+ if (this._middleToken == null)
237
+ this._middleToken = this._model.middleToken();
238
+ if (this._middleToken === -1)
239
+ return null;
240
+ return this._middleToken;
241
+ }
242
+ /**
243
+ * @returns The beginning of infill suffix token.
244
+ */
245
+ get suffix() {
246
+ this._ensureNotDisposed();
247
+ if (this._suffixToken == null)
248
+ this._suffixToken = this._model.suffixToken();
249
+ if (this._suffixToken === -1)
250
+ return null;
251
+ return this._suffixToken;
252
+ }
253
+ /**
254
+ * @returns End of infill middle token (End Of Text).
255
+ */
256
+ get eot() {
257
+ this._ensureNotDisposed();
258
+ if (this._eotToken == null)
259
+ this._eotToken = this._model.eotToken();
260
+ if (this._eotToken === -1)
261
+ return null;
262
+ return this._eotToken;
263
+ }
264
+ /**
265
+ * @returns The beginning of infill prefix token as a string.
266
+ */
267
+ get prefixString() {
268
+ this._ensureNotDisposed();
269
+ const prefixToken = this.prefix;
270
+ if (prefixToken == null)
271
+ return null;
272
+ if (this._prefixString == null)
273
+ this._prefixString = this._model.getTokenString(prefixToken);
274
+ return this._prefixString;
275
+ }
276
+ /**
277
+ * @returns The beginning of infill middle token as a string.
278
+ */
279
+ get middleString() {
280
+ this._ensureNotDisposed();
281
+ const middleToken = this.middle;
282
+ if (middleToken == null)
283
+ return null;
284
+ if (this._middleString == null)
285
+ this._middleString = this._model.getTokenString(middleToken);
286
+ return this._middleString;
287
+ }
288
+ /**
289
+ * @returns The beginning of infill suffix token as a string.
290
+ */
291
+ get suffixString() {
292
+ this._ensureNotDisposed();
293
+ const suffixToken = this.suffix;
294
+ if (suffixToken == null)
295
+ return null;
296
+ if (this._suffixString == null)
297
+ this._suffixString = this._model.getTokenString(suffixToken);
298
+ return this._suffixString;
299
+ }
300
+ /**
301
+ * @returns End of infill middle token (End Of Text) as a string.
302
+ */
303
+ get eotString() {
304
+ this._ensureNotDisposed();
305
+ const eotToken = this.eot;
306
+ if (eotToken == null)
307
+ return null;
308
+ if (this._eotString == null)
309
+ this._eotString = this._model.getTokenString(eotToken);
310
+ return this._eotString;
311
+ }
312
+ /** @internal */
313
+ _ensureNotDisposed() {
314
+ if (this._disposedState.disposed)
315
+ throw new DisposedError();
316
+ }
317
+ /** @internal */
318
+ static _create(model, disposedState) {
319
+ return new LlamaModelInfillTokens(model, disposedState);
72
320
  }
73
321
  }
74
322
  //# sourceMappingURL=LlamaModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaModel.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaModel.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAmGxD,MAAM,OAAO,UAAU;IACnB,gBAAgB;IACA,MAAM,CAAa;IAEnC,gBAAgB;IACA,eAAe,CAO7B;IAEF,gBAAgB;IACA,kBAAkB,CAIhC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,YAAmB,EACf,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EACpE,OAAO,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EACxF;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC;YAClF,SAAS;YACT,SAAS;YACT,OAAO;YACP,QAAQ;SACX,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,eAAe,GAAG;YACnB,IAAI;YACJ,WAAW;YACX,SAAS;YACT,SAAS;YACT,SAAS;YACT,OAAO;SACV,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG;YACtB,WAAW;YACX,IAAI;YACJ,IAAI;SACP,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,UAAU;QACxB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACJ"}
1
+ {"version":3,"file":"LlamaModel.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaModel.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,45 @@
1
- export type Token = number;
2
- export type ConversationInteraction = {
3
- prompt: string;
4
- response: string;
1
+ import { GbnfJsonSchema, GbnfJsonSchemaToType } from "./utils/gbnfJson/types.js";
2
+ import { BuiltinSpecialTokenValue } from "./utils/LlamaText.js";
3
+ export type Token = number & {
4
+ __token: never;
5
5
  };
6
+ export type Tokenizer = {
7
+ tokenize(text: string, specialTokens?: boolean): Token[];
8
+ tokenize(text: BuiltinSpecialTokenValue, specialTokens: "builtin"): Token[];
9
+ }["tokenize"];
10
+ export type ChatHistoryItem = ChatSystemMessage | ChatUserMessage | ChatModelResponse;
11
+ export type ChatSystemMessage = {
12
+ type: "system";
13
+ text: string;
14
+ };
15
+ export type ChatUserMessage = {
16
+ type: "user";
17
+ text: string;
18
+ };
19
+ export type ChatModelResponse = {
20
+ type: "model";
21
+ response: (string | ChatModelFunctionCall)[];
22
+ };
23
+ export type ChatModelFunctionCall = {
24
+ type: "functionCall";
25
+ name: string;
26
+ description?: string;
27
+ params: any;
28
+ result: any;
29
+ raw?: string;
30
+ };
31
+ export type ChatModelFunctions = {
32
+ readonly [name: string]: {
33
+ readonly description?: string;
34
+ readonly params?: GbnfJsonSchema | undefined | null;
35
+ };
36
+ };
37
+ export type ChatSessionModelFunctions = {
38
+ readonly [name: string]: ChatSessionModelFunction<any>;
39
+ };
40
+ export type ChatSessionModelFunction<Params extends GbnfJsonSchema | undefined = GbnfJsonSchema | undefined> = {
41
+ readonly description?: string;
42
+ readonly params?: Params;
43
+ readonly handler: (params: GbnfJsonSchemaToType<Params>) => any;
44
+ };
45
+ export declare function isChatModelResponseFunctionCall(item: ChatModelResponse["response"][number]): item is ChatModelFunctionCall;
package/dist/types.js CHANGED
@@ -1,2 +1,6 @@
1
- export {};
1
+ export function isChatModelResponseFunctionCall(item) {
2
+ if (typeof item === "string")
3
+ return false;
4
+ return item.type === "functionCall";
5
+ }
2
6
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqDA,MAAM,UAAU,+BAA+B,CAAC,IAA2C;IACvF,IAAI,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,KAAK,CAAC;IAEjB,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AACxC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Token, Tokenizer } from "../types.js";
2
+ export type LlamaTextClass = {
3
+ <const V extends LlamaTextValue = LlamaTextValue, const V2 extends LlamaTextValue = LlamaTextValue>(strings: TemplateStringsArray | V | LlamaText<V> | readonly (LlamaText<V> | V)[], ...values: readonly (V | LlamaText<V> | V2 | LlamaText<V2> | number | boolean | readonly (LlamaText<V> | V | LlamaText<V2> | V2)[])[]): LlamaText<V | V2>;
4
+ fromJSON(json: LlamaTextJSON): LlamaText;
5
+ };
6
+ export type LlamaText<T extends LlamaTextValue = LlamaTextValue> = {
7
+ <const V extends LlamaTextValue = LlamaTextValue, const V2 extends LlamaTextValue = LlamaTextValue>(strings: TemplateStringsArray | V | LlamaText | readonly (LlamaText | V)[], ...values: readonly (V | V2 | LlamaText | number | boolean | readonly (LlamaText | V | V2)[])[]): LlamaText<T | V>;
8
+ readonly type: "LlamaText";
9
+ readonly values: readonly T[];
10
+ mapValues<V extends LlamaTextValue = LlamaTextValue>(mapper: (value: T) => V): LlamaText<V>;
11
+ joinValues<V extends LlamaTextValue = LlamaTextValue>(separator: LlamaText<V> | V): LlamaText<T | V>;
12
+ toString(): string;
13
+ toJSON(): LlamaTextJSON;
14
+ tokenize(tokenizer: Tokenizer): Token[];
15
+ };
16
+ export type LlamaTextValue = string | SpecialToken;
17
+ export type LlamaTextJSON = Array<LlamaTextJSONValue>;
18
+ export type LlamaTextJSONValue = string | LlamaTextSpecialTokenJSON;
19
+ export type LlamaTextSpecialTokenJSON = {
20
+ type: "specialToken";
21
+ value: string;
22
+ builtin?: true;
23
+ };
24
+ export declare const LlamaText: LlamaTextClass;
25
+ export declare class SpecialToken {
26
+ readonly value: string;
27
+ constructor(value: string);
28
+ toString(): string;
29
+ tokenize(tokenizer: Tokenizer): Token[];
30
+ toJSON(): LlamaTextSpecialTokenJSON;
31
+ static fromJSON(json: LlamaTextSpecialTokenJSON): SpecialToken;
32
+ static isSpecialTokenJSON(value: LlamaTextJSONValue): value is LlamaTextSpecialTokenJSON;
33
+ }
34
+ export type BuiltinSpecialTokenValue = "BOS" | "EOS" | "NL";
35
+ export declare class BuiltinSpecialToken extends SpecialToken {
36
+ readonly value: BuiltinSpecialTokenValue;
37
+ constructor(value: BuiltinSpecialTokenValue);
38
+ tokenize(tokenizer: Tokenizer): Token[];
39
+ toJSON(): LlamaTextSpecialTokenJSON;
40
+ }
41
+ export declare function isLlamaText(value: unknown): value is LlamaText;
42
+ export declare function tokenizeText(text: string | LlamaText, tokenizer: Tokenizer): Token[];