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,236 +0,0 @@
1
- import { defaultChatSystemPrompt } from "../config.js";
2
- import { withLock } from "../utils/withLock.js";
3
- import { AbortError } from "../AbortError.js";
4
- import { GeneralChatPromptWrapper } from "../chatWrappers/GeneralChatPromptWrapper.js";
5
- import { getChatWrapperByBos } from "../chatWrappers/createChatWrapperByBos.js";
6
- import { generateContextTextFromConversationHistory } from "../chatWrappers/generateContextTextFromConversationHistory.js";
7
- import { removeNullFields } from "../utils/removeNullFields.js";
8
- import { LlamaModel } from "./LlamaModel.js";
9
- import { LlamaGrammarEvaluationState } from "./LlamaGrammarEvaluationState.js";
10
- const UNKNOWN_UNICODE_CHAR = "\ufffd";
11
- export class LlamaChatSession {
12
- _systemPrompt;
13
- _printLLamaSystemInfo;
14
- _promptWrapper;
15
- _promptIndex = 0;
16
- _initialized = false;
17
- _lastStopString = null;
18
- _lastStopStringSuffix = null;
19
- _conversationHistoryToLoad = null;
20
- _ctx;
21
- /**
22
- * @param {LlamaChatSessionOptions} options
23
- */
24
- constructor({ context, printLLamaSystemInfo = false, promptWrapper = new GeneralChatPromptWrapper(), systemPrompt = defaultChatSystemPrompt, conversationHistory }) {
25
- this._ctx = context;
26
- this._printLLamaSystemInfo = printLLamaSystemInfo;
27
- this._systemPrompt = systemPrompt;
28
- this._conversationHistoryToLoad = (conversationHistory != null && conversationHistory.length > 0)
29
- ? conversationHistory
30
- : null;
31
- if (promptWrapper === "auto") {
32
- const chatWrapper = getChatWrapperByBos(context.getBosString());
33
- if (chatWrapper != null)
34
- this._promptWrapper = new chatWrapper();
35
- else
36
- this._promptWrapper = new GeneralChatPromptWrapper();
37
- }
38
- else
39
- this._promptWrapper = promptWrapper;
40
- }
41
- get initialized() {
42
- return this._initialized;
43
- }
44
- get context() {
45
- return this._ctx;
46
- }
47
- async init() {
48
- await withLock(this, "init", async () => {
49
- if (this._initialized)
50
- return;
51
- if (this._printLLamaSystemInfo)
52
- console.log("Llama system info", LlamaModel.systemInfo);
53
- this._initialized = true;
54
- });
55
- }
56
- /**
57
- * @param {string} prompt
58
- * @param {object} options
59
- * @returns {Promise<string>}
60
- */
61
- async prompt(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
62
- const { text } = await this.promptWithMeta(prompt, {
63
- onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty
64
- });
65
- return text;
66
- }
67
- /**
68
- * @param {string} prompt
69
- * @param {LLamaChatPromptOptions} options
70
- */
71
- async promptWithMeta(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
72
- if (!this.initialized)
73
- await this.init();
74
- return await withLock(this, "prompt", async () => {
75
- let promptText = "";
76
- if (this._promptIndex == 0 && this._conversationHistoryToLoad != null) {
77
- const { text, stopString, stopStringSuffix } = generateContextTextFromConversationHistory(this._promptWrapper, this._conversationHistoryToLoad, {
78
- systemPrompt: this._systemPrompt,
79
- currentPromptIndex: this._promptIndex,
80
- lastStopString: this._lastStopString,
81
- lastStopStringSuffix: this._promptIndex == 0
82
- ? (this._ctx.prependBos
83
- ? this._ctx.getBosString()
84
- : null)
85
- : this._lastStopStringSuffix
86
- });
87
- promptText += text;
88
- this._lastStopString = stopString;
89
- this._lastStopStringSuffix = stopStringSuffix;
90
- this._promptIndex += this._conversationHistoryToLoad.length;
91
- this._conversationHistoryToLoad = null;
92
- }
93
- promptText += this._promptWrapper.wrapPrompt(prompt, {
94
- systemPrompt: this._systemPrompt,
95
- promptIndex: this._promptIndex,
96
- lastStopString: this._lastStopString,
97
- lastStopStringSuffix: this._promptIndex == 0
98
- ? (this._ctx.prependBos
99
- ? this._ctx.getBosString()
100
- : null)
101
- : this._lastStopStringSuffix
102
- });
103
- this._promptIndex++;
104
- this._lastStopString = null;
105
- this._lastStopStringSuffix = null;
106
- const { text, stopReason, stopString, stopStringSuffix } = await this._evalTokens(this._ctx.encode(promptText), {
107
- onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix,
108
- repeatPenalty: repeatPenalty == false ? { lastTokens: 0 } : repeatPenalty
109
- });
110
- this._lastStopString = stopString;
111
- this._lastStopStringSuffix = stopStringSuffix;
112
- return {
113
- text,
114
- stopReason,
115
- stopString,
116
- stopStringSuffix
117
- };
118
- });
119
- }
120
- async _evalTokens(tokens, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty: { lastTokens: repeatPenaltyLastTokens = 64, punishTokensFilter, penalizeNewLine, penalty, frequencyPenalty, presencePenalty } = {} } = {}) {
121
- let stopStrings = this._promptWrapper.getStopStrings();
122
- if (grammar != null)
123
- stopStrings = stopStrings.concat(grammar.stopStrings);
124
- const stopStringIndexes = Array(stopStrings.length).fill(0);
125
- const skippedChunksQueue = [];
126
- const res = [];
127
- const grammarEvaluationState = grammar != null
128
- ? new LlamaGrammarEvaluationState({ grammar })
129
- : undefined;
130
- const repeatPenaltyEnabled = repeatPenaltyLastTokens > 0;
131
- let stopReason = "eosToken";
132
- const getPenaltyTokens = () => {
133
- let punishTokens = res.slice(-repeatPenaltyLastTokens);
134
- if (punishTokensFilter != null)
135
- punishTokens = punishTokensFilter(punishTokens);
136
- if (!penalizeNewLine) {
137
- const nlToken = this.context.getNlToken();
138
- if (nlToken != null)
139
- punishTokens = punishTokens.filter(token => token !== nlToken);
140
- }
141
- return Uint32Array.from(punishTokens);
142
- };
143
- const evaluationIterator = this._ctx.evaluate(tokens, removeNullFields({
144
- temperature, topK, topP, grammarEvaluationState,
145
- repeatPenalty: !repeatPenaltyEnabled ? undefined : {
146
- punishTokens: getPenaltyTokens,
147
- penalty,
148
- frequencyPenalty,
149
- presencePenalty
150
- }
151
- }));
152
- for await (const chunk of evaluationIterator) {
153
- if (signal?.aborted)
154
- throw new AbortError();
155
- const tokenStr = this._ctx.decode(Uint32Array.from([chunk]));
156
- const { shouldReturn, skipTokenEvent, stopString, stopStringSuffix } = this._checkStopString(tokenStr, stopStrings, stopStringIndexes);
157
- if (shouldReturn) {
158
- skippedChunksQueue.push(chunk);
159
- const skippedChunksText = skippedChunksQueue.length > 0
160
- ? this._ctx.decode(Uint32Array.from(skippedChunksQueue))
161
- : "";
162
- let [queuedTextBeforeStopString] = skippedChunksText.split(stopString);
163
- if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
164
- queuedTextBeforeStopString = queuedTextBeforeStopString.trimEnd();
165
- if (queuedTextBeforeStopString.length > 0) {
166
- const beforeStopStringTokens = Array.from(this._ctx.encode(queuedTextBeforeStopString));
167
- res.push(...beforeStopStringTokens);
168
- onToken?.(beforeStopStringTokens);
169
- skippedChunksQueue.length = 0;
170
- }
171
- stopReason = "stopString";
172
- return {
173
- text: this._ctx.decode(Uint32Array.from(res)),
174
- stopReason,
175
- stopString,
176
- stopStringSuffix
177
- };
178
- }
179
- // if the token is unknown, it means it's not complete character
180
- if (tokenStr === UNKNOWN_UNICODE_CHAR || skipTokenEvent || ((grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix) && tokenStr.trim() === "")) {
181
- skippedChunksQueue.push(chunk);
182
- continue;
183
- }
184
- if (skippedChunksQueue.length > 0) {
185
- res.push(...skippedChunksQueue);
186
- onToken?.(skippedChunksQueue);
187
- skippedChunksQueue.length = 0;
188
- }
189
- res.push(chunk);
190
- onToken?.([chunk]);
191
- if (maxTokens != null && maxTokens > 0 && res.length >= maxTokens) {
192
- stopReason = "maxTokens";
193
- break;
194
- }
195
- }
196
- let resText = this._ctx.decode(Uint32Array.from(res));
197
- if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
198
- resText = resText.trimEnd();
199
- return {
200
- text: resText,
201
- stopReason,
202
- stopString: null,
203
- stopStringSuffix: null
204
- };
205
- }
206
- _checkStopString(tokenStr, stopStrings, stopStringIndexes) {
207
- let skipTokenEvent = false;
208
- for (let stopStringIndex = 0; stopStringIndex < stopStrings.length; stopStringIndex++) {
209
- const stopString = stopStrings[stopStringIndex];
210
- let localShouldSkipTokenEvent = false;
211
- let i = 0;
212
- for (; i < tokenStr.length && stopStringIndexes[stopStringIndex] !== stopString.length; i++) {
213
- if (tokenStr[i] === stopString[stopStringIndexes[stopStringIndex]]) {
214
- stopStringIndexes[stopStringIndex]++;
215
- localShouldSkipTokenEvent = true;
216
- }
217
- else {
218
- stopStringIndexes[stopStringIndex] = 0;
219
- localShouldSkipTokenEvent = false;
220
- }
221
- }
222
- if (stopStringIndexes[stopStringIndex] === stopString.length) {
223
- return {
224
- shouldReturn: true,
225
- stopString,
226
- stopStringSuffix: tokenStr.length === i
227
- ? null
228
- : tokenStr.slice(i)
229
- };
230
- }
231
- skipTokenEvent ||= localShouldSkipTokenEvent;
232
- }
233
- return { skipTokenEvent };
234
- }
235
- }
236
- //# sourceMappingURL=LlamaChatSession.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,wBAAwB,EAAC,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAC,mBAAmB,EAAC,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAC,0CAA0C,EAAC,MAAM,+DAA+D,CAAC;AACzH,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAE7E,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAqGtC,MAAM,OAAO,gBAAgB;IACR,aAAa,CAAS;IACtB,qBAAqB,CAAU;IAC/B,cAAc,CAAoB;IAC3C,YAAY,GAAW,CAAC,CAAC;IACzB,YAAY,GAAY,KAAK,CAAC;IAC9B,eAAe,GAAkB,IAAI,CAAC;IACtC,qBAAqB,GAAkB,IAAI,CAAC;IAC5C,0BAA0B,GAA8C,IAAI,CAAC;IACpE,IAAI,CAAe;IAEpC;;OAEG;IACH,YAAmB,EACf,OAAO,EACP,oBAAoB,GAAG,KAAK,EAC5B,aAAa,GAAG,IAAI,wBAAwB,EAAE,EAC9C,YAAY,GAAG,uBAAuB,EACtC,mBAAmB,EACG;QACtB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,0BAA0B,GAAG,CAAC,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7F,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,aAAa,KAAK,MAAM,EAAE;YAC1B,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YAEhE,IAAI,WAAW,IAAI,IAAI;gBACnB,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,EAAE,CAAC;;gBAExC,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAC;SAC5D;;YACG,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IAC5C,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YACpC,IAAI,IAAI,CAAC,YAAY;gBACjB,OAAO;YAEX,IAAI,IAAI,CAAC,qBAAqB;gBAC1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YAE5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,EAChC,OAAO,EACP,MAAM,EACN,SAAS,EACT,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EACnC,oBAAoB,GAAG,KAAK,EAC5B,aAAa,KACW,EAAE;QAC1B,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC7C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,aAAa;SACpG,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,EACxC,OAAO,EACP,MAAM,EACN,SAAS,EACT,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EACnC,oBAAoB,GAAG,KAAK,EAC5B,aAAa,KACW,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAEtB,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC7C,IAAI,UAAU,GAAG,EAAE,CAAC;YAEpB,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,0BAA0B,IAAI,IAAI,EAAE;gBACnE,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAC,GACtC,0CAA0C,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,0BAA0B,EAAE;oBAC7F,YAAY,EAAE,IAAI,CAAC,aAAa;oBAChC,kBAAkB,EAAE,IAAI,CAAC,YAAY;oBACrC,cAAc,EAAE,IAAI,CAAC,eAAe;oBACpC,oBAAoB,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;wBACxC,CAAC,CAAC,CACE,IAAI,CAAC,IAAI,CAAC,UAAU;4BAChB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;4BAC1B,CAAC,CAAC,IAAI,CACb;wBACD,CAAC,CAAC,IAAI,CAAC,qBAAqB;iBACnC,CAAC,CAAC;gBAEP,UAAU,IAAI,IAAI,CAAC;gBACnB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;gBAClC,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC;gBAC9C,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;gBAE5D,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;aAC1C;YAED,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE;gBACjD,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,cAAc,EAAE,IAAI,CAAC,eAAe;gBACpC,oBAAoB,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;oBACxC,CAAC,CAAC,CACE,IAAI,CAAC,IAAI,CAAC,UAAU;wBAChB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;wBAC1B,CAAC,CAAC,IAAI,CACb;oBACD,CAAC,CAAC,IAAI,CAAC,qBAAqB;aACnC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAElC,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAC,GAClD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB;gBAClF,aAAa,EAAE,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,aAAa;aAC1E,CAAC,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;YAClC,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC;YAE9C,OAAO;gBACH,IAAI;gBACJ,UAAU;gBACV,UAAU;gBACV,gBAAgB;aACnB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAmB,EAAE,EAC3C,OAAO,EACP,MAAM,EACN,SAAS,EACT,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EACnC,oBAAoB,GAAG,KAAK,EAC5B,aAAa,EAAE,EACX,UAAU,EAAE,uBAAuB,GAAG,EAAE,EACxC,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,eAAe,EAClB,GAAG,EAAE,KAWN,EAAE;QACF,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAEvD,IAAI,OAAO,IAAI,IAAI;YACf,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1D,MAAM,iBAAiB,GAAa,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,kBAAkB,GAAY,EAAE,CAAC;QACvC,MAAM,GAAG,GAAY,EAAE,CAAC;QACxB,MAAM,sBAAsB,GAAG,OAAO,IAAI,IAAI;YAC1C,CAAC,CAAC,IAAI,2BAA2B,CAAC,EAAC,OAAO,EAAC,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,CAAC,CAAC;QACzD,IAAI,UAAU,GAA4C,UAAU,CAAC;QAErE,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC1B,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAEvD,IAAI,kBAAkB,IAAI,IAAI;gBAC1B,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAEpD,IAAI,CAAC,eAAe,EAAE;gBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAE1C,IAAI,OAAO,IAAI,IAAI;oBACf,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;aACtE;YAED,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;YACnE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB;YAC/C,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/C,YAAY,EAAE,gBAAgB;gBAC9B,OAAO;gBACP,gBAAgB;gBAChB,eAAe;aAClB;SACJ,CAAC,CAAC,CAAC;QAEJ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,kBAAkB,EAAE;YAC1C,IAAI,MAAM,EAAE,OAAO;gBACf,MAAM,IAAI,UAAU,EAAE,CAAC;YAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,EACF,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAC7D,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAEpE,IAAI,YAAY,EAAE;gBACd,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;oBACnD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACxD,CAAC,CAAC,EAAE,CAAC;gBAET,IAAI,CAAC,0BAA0B,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAEvE,IAAI,OAAO,EAAE,oBAAoB,IAAI,oBAAoB;oBACrD,0BAA0B,GAAG,0BAA0B,CAAC,OAAO,EAAE,CAAC;gBAEtE,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,MAAM,sBAAsB,GAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBAEjG,GAAG,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;oBACpC,OAAO,EAAE,CAAC,sBAAsB,CAAC,CAAC;oBAClC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC;gBAED,UAAU,GAAG,YAAY,CAAC;gBAE1B,OAAO;oBACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7C,UAAU;oBACV,UAAU;oBACV,gBAAgB;iBACnB,CAAC;aACL;YAED,gEAAgE;YAChE,IAAI,QAAQ,KAAK,oBAAoB,IAAI,cAAc,IAAI,CACvD,CAAC,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CACpF,EAAE;gBACC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/B,SAAS;aACZ;YAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;gBAC9B,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;aACjC;YAED,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnB,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE;gBAC/D,UAAU,GAAG,WAAW,CAAC;gBACzB,MAAM;aACT;SACJ;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,oBAAoB,IAAI,oBAAoB;YACrD,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAEhC,OAAO;YACH,IAAI,EAAE,OAAO;YACb,UAAU;YACV,UAAU,EAAE,IAAI;YAChB,gBAAgB,EAAE,IAAI;SACzB,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,QAAgB,EAAE,WAAqB,EAAE,iBAA2B;QACzF,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE;YACnF,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;YAEhD,IAAI,yBAAyB,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzF,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE;oBAChE,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC;oBACrC,yBAAyB,GAAG,IAAI,CAAC;iBACpC;qBAAM;oBACH,iBAAiB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBACvC,yBAAyB,GAAG,KAAK,CAAC;iBACrC;aACJ;YAED,IAAI,iBAAiB,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE;gBAC1D,OAAO;oBACH,YAAY,EAAE,IAAI;oBAClB,UAAU;oBACV,gBAAgB,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;wBACnC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC1B,CAAC;aACL;YAED,cAAc,KAAK,yBAAyB,CAAC;SAChD;QAED,OAAO,EAAC,cAAc,EAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -1,98 +0,0 @@
1
- import { Token } from "../types.js";
2
- import { LlamaModel } from "./LlamaModel.js";
3
- import { LlamaGrammarEvaluationState } from "./LlamaGrammarEvaluationState.js";
4
- import { LlamaGrammar } from "./LlamaGrammar.js";
5
- export type LlamaContextOptions = {
6
- model: LlamaModel;
7
- prependBos?: boolean;
8
- /**
9
- * @deprecated use the `grammar` option on `LlamaChatSession`'s `prompt` function
10
- * or the `grammarEvaluationState` option on `LlamaContext`'s `evaluate` function instead
11
- * @hidden
12
- */
13
- grammar?: LlamaGrammar;
14
- /** If null, a random seed will be used */
15
- seed?: number | null;
16
- /** text context size */
17
- contextSize?: number;
18
- /** prompt processing batch size */
19
- batchSize?: number;
20
- /** the llama_eval() call computes all logits, not just the last one */
21
- logitsAll?: boolean;
22
- /** embedding mode only */
23
- embedding?: boolean;
24
- /** number of threads to use to evaluate tokens */
25
- threads?: number;
26
- };
27
- export type LlamaContextRepeatPenalty = {
28
- /** Tokens to lower the predication probability of to be the next predicted token */
29
- punishTokens: Uint32Array | (() => Uint32Array);
30
- /**
31
- * The relative amount to lower the probability of the tokens in `punishTokens` by
32
- * Defaults to `1.1`.
33
- * Set to `1` to disable.
34
- */
35
- penalty?: number;
36
- /**
37
- * For n time a token is in the `punishTokens` array, lower its probability by `n * frequencyPenalty`
38
- * Disabled by default (`0`).
39
- * Set to a value between `0` and `1` to enable.
40
- */
41
- frequencyPenalty?: number;
42
- /**
43
- * Lower the probability of all the tokens in the `punishTokens` array by `presencePenalty`
44
- * Disabled by default (`0`).
45
- * Set to a value between `0` and `1` to enable.
46
- */
47
- presencePenalty?: number;
48
- };
49
- export declare class LlamaContext {
50
- private readonly _model;
51
- private readonly _ctx;
52
- private readonly _prependBos;
53
- private _prependTokens;
54
- /**
55
- * @param {LlamaContextOptions} options
56
- */
57
- constructor({ model, prependBos, grammar, seed, contextSize, batchSize, logitsAll, embedding, threads }: LlamaContextOptions);
58
- encode(text: string): Uint32Array;
59
- decode(tokens: Uint32Array | Token[]): string;
60
- get prependBos(): boolean;
61
- /**
62
- * @returns {Token | null} The BOS (Beginning Of Sequence) token.
63
- */
64
- getBosToken(): Token | null;
65
- /**
66
- * @returns {Token | null} The EOS (End Of Sequence) token.
67
- */
68
- getEosToken(): Token | null;
69
- /**
70
- * @returns {Token | null} The NL (New Line) token.
71
- */
72
- getNlToken(): Token | null;
73
- /**
74
- * @returns {string | null} The BOS (Beginning Of Sequence) token as a string.
75
- */
76
- getBosString(): string | null;
77
- /**
78
- * @returns {string | null} The EOS (End Of Sequence) token as a string.
79
- */
80
- getEosString(): string | null;
81
- /**
82
- * @returns {string | null} The NL (New Line) token as a string.
83
- */
84
- getNlString(): string | null;
85
- getContextSize(): number;
86
- /**
87
- * @param {Uint32Array} tokens
88
- * @param {object} options
89
- * @returns {AsyncGenerator<Token, void>}
90
- */
91
- evaluate(tokens: Uint32Array, { temperature, topK, topP, grammarEvaluationState, repeatPenalty }?: {
92
- temperature?: number;
93
- topK?: number;
94
- topP?: number;
95
- grammarEvaluationState?: LlamaGrammarEvaluationState;
96
- repeatPenalty?: LlamaContextRepeatPenalty;
97
- }): AsyncGenerator<Token, void>;
98
- }
@@ -1,140 +0,0 @@
1
- import { removeNullFields } from "../utils/removeNullFields.js";
2
- import { LLAMAContext } from "./LlamaBins.js";
3
- export class LlamaContext {
4
- _model;
5
- _ctx;
6
- _prependBos;
7
- _prependTokens;
8
- /** @internal */
9
- _chatGrammar;
10
- /**
11
- * @param {LlamaContextOptions} options
12
- */
13
- constructor({ model, prependBos = true, grammar, seed = model._contextOptions.seed, contextSize = model._contextOptions.contextSize, batchSize = model._contextOptions.batchSize, logitsAll = model._contextOptions.logitsAll, embedding = model._contextOptions.embedding, threads = model._contextOptions.threads }) {
14
- this._model = model;
15
- this._ctx = new LLAMAContext(model._model, removeNullFields({
16
- seed: seed != null ? Math.max(-1, seed) : undefined,
17
- contextSize,
18
- batchSize,
19
- logitsAll,
20
- embedding,
21
- threads
22
- }));
23
- this._prependBos = prependBos;
24
- this._prependTokens = [];
25
- this._chatGrammar = grammar;
26
- if (prependBos) {
27
- this._prependTokens.unshift(this._ctx.tokenBos());
28
- }
29
- }
30
- encode(text) {
31
- if (text === "")
32
- return new Uint32Array();
33
- return this._ctx.encode(text);
34
- }
35
- decode(tokens) {
36
- if (tokens.length === 0)
37
- return "";
38
- if (tokens instanceof Uint32Array)
39
- return this._ctx.decode(tokens);
40
- return this._ctx.decode(Uint32Array.from(tokens));
41
- }
42
- get prependBos() {
43
- return this._prependBos;
44
- }
45
- /**
46
- * @returns {Token | null} The BOS (Beginning Of Sequence) token.
47
- */
48
- getBosToken() {
49
- const bosToken = this._ctx.tokenBos();
50
- if (bosToken === -1)
51
- return null;
52
- return bosToken;
53
- }
54
- /**
55
- * @returns {Token | null} The EOS (End Of Sequence) token.
56
- */
57
- getEosToken() {
58
- const eosToken = this._ctx.tokenEos();
59
- if (eosToken === -1)
60
- return null;
61
- return eosToken;
62
- }
63
- /**
64
- * @returns {Token | null} The NL (New Line) token.
65
- */
66
- getNlToken() {
67
- const nlToken = this._ctx.tokenNl();
68
- if (nlToken === -1)
69
- return null;
70
- return nlToken;
71
- }
72
- /**
73
- * @returns {string | null} The BOS (Beginning Of Sequence) token as a string.
74
- */
75
- getBosString() {
76
- const bosToken = this.getBosToken();
77
- if (bosToken == null)
78
- return null;
79
- return this._ctx.getTokenString(bosToken);
80
- }
81
- /**
82
- * @returns {string | null} The EOS (End Of Sequence) token as a string.
83
- */
84
- getEosString() {
85
- const eosToken = this.getEosToken();
86
- if (eosToken == null)
87
- return null;
88
- return this._ctx.getTokenString(eosToken);
89
- }
90
- /**
91
- * @returns {string | null} The NL (New Line) token as a string.
92
- */
93
- getNlString() {
94
- const nlToken = this.getNlToken();
95
- if (nlToken == null)
96
- return null;
97
- return this._ctx.getTokenString(nlToken);
98
- }
99
- getContextSize() {
100
- return this._ctx.getContextSize();
101
- }
102
- /**
103
- * @param {Uint32Array} tokens
104
- * @param {object} options
105
- * @returns {AsyncGenerator<Token, void>}
106
- */
107
- async *evaluate(tokens, { temperature = this._model._evaluationOptions.temperature, topK = this._model._evaluationOptions.topK, topP = this._model._evaluationOptions.topP, grammarEvaluationState, repeatPenalty } = {}) {
108
- let evalTokens = tokens;
109
- if (this._prependTokens.length > 0) {
110
- const tokenArray = this._prependTokens.concat(Array.from(tokens));
111
- evalTokens = Uint32Array.from(tokenArray);
112
- this._prependTokens = [];
113
- }
114
- if (evalTokens.length === 0)
115
- return;
116
- // eslint-disable-next-line no-constant-condition
117
- while (true) {
118
- // Evaluate to get the next token.
119
- const nextToken = await this._ctx.eval(evalTokens, removeNullFields({
120
- temperature,
121
- topK,
122
- topP,
123
- repeatPenalty: repeatPenalty?.penalty,
124
- repeatPenaltyTokens: repeatPenalty?.punishTokens instanceof Function
125
- ? repeatPenalty.punishTokens()
126
- : repeatPenalty?.punishTokens,
127
- repeatPenaltyPresencePenalty: repeatPenalty?.presencePenalty,
128
- repeatPenaltyFrequencyPenalty: repeatPenalty?.frequencyPenalty,
129
- grammarEvaluationState: grammarEvaluationState?._state
130
- }));
131
- // the assistant finished answering
132
- if (nextToken === this._ctx.tokenEos())
133
- break;
134
- yield nextToken;
135
- // Create tokens for the next eval.
136
- evalTokens = Uint32Array.from([nextToken]);
137
- }
138
- }
139
- }
140
- //# sourceMappingURL=LlamaContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LlamaContext.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaContext.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function getTextCompletion(text: null, fullText: string | string[]): null;
2
- export declare function getTextCompletion(text: string, fullText: string | string[]): string | null;
3
- export declare function getTextCompletion(text: string | null, fullText: string | string[]): string | null;
@@ -1,12 +0,0 @@
1
- export function getTextCompletion(text, fullText) {
2
- if (text == null) {
3
- return null;
4
- }
5
- const fullTexts = typeof fullText === "string" ? [fullText] : fullText;
6
- for (const fullText of fullTexts) {
7
- if (fullText.startsWith(text))
8
- return fullText.slice(text.length);
9
- }
10
- return null;
11
- }
12
- //# sourceMappingURL=getTextCompletion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTextCompletion.js","sourceRoot":"","sources":["../../src/utils/getTextCompletion.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,IAAmB,EAAE,QAA2B;IAC9E,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,OAAO,IAAI,CAAC;KACf;IAED,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC1C;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function withLock<ReturnType>(scope: any, key: string, callback: () => Promise<ReturnType>): Promise<ReturnType>;
@@ -1,19 +0,0 @@
1
- const locks = new Map();
2
- export async function withLock(scope, key, callback) {
3
- while (locks.get(scope)?.has(key)) {
4
- await locks.get(scope)?.get(key);
5
- }
6
- const promise = callback();
7
- if (!locks.has(scope))
8
- locks.set(scope, new Map());
9
- locks.get(scope).set(key, promise);
10
- try {
11
- return await promise;
12
- }
13
- finally {
14
- locks.get(scope)?.delete(key);
15
- if (locks.get(scope)?.size === 0)
16
- locks.delete(scope);
17
- }
18
- }
19
- //# sourceMappingURL=withLock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withLock.js","sourceRoot":"","sources":["../../src/utils/withLock.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAa,KAAU,EAAE,GAAW,EAAE,QAAmC;IACnG,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;QAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;KACpC;IAED,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACjB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAEhC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEpC,IAAI;QACA,OAAO,MAAM,OAAO,CAAC;KACxB;YAAS;QACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC3B;AACL,CAAC"}