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

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 (80) hide show
  1. package/README.md +1 -1
  2. package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -8
  3. package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -8
  4. package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +1 -1
  5. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +13 -0
  6. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +49 -0
  7. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -0
  8. package/dist/cli/cli.js +1 -1
  9. package/dist/cli/cli.js.map +1 -1
  10. package/dist/cli/commands/ChatCommand.js +20 -10
  11. package/dist/cli/commands/ChatCommand.js.map +1 -1
  12. package/dist/index.d.ts +6 -4
  13. package/dist/index.js +5 -4
  14. package/dist/index.js.map +1 -1
  15. package/dist/llamaEvaluator/LlamaBins.d.ts +19 -4
  16. package/dist/llamaEvaluator/LlamaBins.js +3 -3
  17. package/dist/llamaEvaluator/LlamaChatSession.d.ts +24 -23
  18. package/dist/llamaEvaluator/LlamaChatSession.js +90 -36
  19. package/dist/llamaEvaluator/LlamaChatSession.js.map +1 -1
  20. package/dist/llamaEvaluator/LlamaContext/LlamaContext.d.ts +112 -0
  21. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js +640 -0
  22. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +1 -0
  23. package/dist/llamaEvaluator/LlamaContext/types.d.ts +90 -0
  24. package/dist/llamaEvaluator/LlamaContext/types.js +2 -0
  25. package/dist/llamaEvaluator/LlamaContext/types.js.map +1 -0
  26. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +5 -0
  27. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +16 -0
  28. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
  29. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +5 -0
  30. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +42 -0
  31. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
  32. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +2 -0
  33. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +13 -0
  34. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
  35. package/dist/llamaEvaluator/LlamaGrammar.d.ts +5 -5
  36. package/dist/llamaEvaluator/LlamaGrammar.js +7 -7
  37. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.d.ts +6 -5
  38. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js +8 -7
  39. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +1 -1
  40. package/dist/llamaEvaluator/LlamaModel.d.ts +93 -112
  41. package/dist/llamaEvaluator/LlamaModel.js +294 -59
  42. package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
  43. package/dist/types.d.ts +3 -1
  44. package/dist/utils/ReplHistory.js +1 -1
  45. package/dist/utils/ReplHistory.js.map +1 -1
  46. package/dist/utils/getBin.d.ts +71 -39
  47. package/dist/utils/getBin.js.map +1 -1
  48. package/dist/utils/getReleaseInfo.d.ts +1 -1
  49. package/dist/utils/getReleaseInfo.js.map +1 -1
  50. package/dist/utils/parseModelFileName.d.ts +9 -0
  51. package/dist/utils/parseModelFileName.js +68 -0
  52. package/dist/utils/parseModelFileName.js.map +1 -0
  53. package/dist/utils/parseModelTypeDescription.d.ts +6 -0
  54. package/dist/utils/parseModelTypeDescription.js +9 -0
  55. package/dist/utils/parseModelTypeDescription.js.map +1 -0
  56. package/llama/.clang-format +10 -9
  57. package/llama/addon.cpp +689 -356
  58. package/llama/binariesGithubRelease.json +1 -1
  59. package/llama/gitRelease.bundle +0 -0
  60. package/llama/grammars/README.md +2 -2
  61. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  62. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  63. package/llamaBins/linux-x64/llama-addon.node +0 -0
  64. package/llamaBins/mac-arm64/ggml-metal.metal +107 -1
  65. package/llamaBins/mac-arm64/llama-addon.node +0 -0
  66. package/llamaBins/mac-x64/ggml-metal.metal +107 -1
  67. package/llamaBins/mac-x64/llama-addon.node +0 -0
  68. package/llamaBins/win-x64/llama-addon.exp +0 -0
  69. package/llamaBins/win-x64/llama-addon.lib +0 -0
  70. package/llamaBins/win-x64/llama-addon.node +0 -0
  71. package/package.json +13 -7
  72. package/dist/chatWrappers/createChatWrapperByBos.d.ts +0 -2
  73. package/dist/chatWrappers/createChatWrapperByBos.js +0 -14
  74. package/dist/chatWrappers/createChatWrapperByBos.js.map +0 -1
  75. package/dist/llamaEvaluator/LlamaContext.d.ts +0 -100
  76. package/dist/llamaEvaluator/LlamaContext.js +0 -141
  77. package/dist/llamaEvaluator/LlamaContext.js.map +0 -1
  78. package/dist/utils/withLock.d.ts +0 -1
  79. package/dist/utils/withLock.js +0 -19
  80. package/dist/utils/withLock.js.map +0 -1
@@ -1,35 +1,49 @@
1
+ import { DisposeAggregator, DisposedError, EventRelay, withLock } from "lifecycle-utils";
1
2
  import { defaultChatSystemPrompt } from "../config.js";
2
- import { withLock } from "../utils/withLock.js";
3
3
  import { AbortError } from "../AbortError.js";
4
4
  import { GeneralChatPromptWrapper } from "../chatWrappers/GeneralChatPromptWrapper.js";
5
- import { getChatWrapperByBos } from "../chatWrappers/createChatWrapperByBos.js";
5
+ import { resolveChatWrapperBasedOnModel } from "../chatWrappers/resolveChatWrapperBasedOnModel.js";
6
6
  import { generateContextTextFromConversationHistory } from "../chatWrappers/generateContextTextFromConversationHistory.js";
7
7
  import { removeNullFields } from "../utils/removeNullFields.js";
8
8
  import { LlamaModel } from "./LlamaModel.js";
9
9
  import { LlamaGrammarEvaluationState } from "./LlamaGrammarEvaluationState.js";
10
10
  const UNKNOWN_UNICODE_CHAR = "\ufffd";
11
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;
12
+ /** @internal */ _systemPrompt;
13
+ /** @internal */ _printLLamaSystemInfo;
14
+ /** @internal */ _promptWrapper;
15
+ /** @internal */ _disposeAggregator = new DisposeAggregator();
16
+ /** @internal */ _autoDisposeSequence;
17
+ /** @internal */ _promptIndex = 0;
18
+ /** @internal */ _initialized = false;
19
+ /** @internal */ _lastStopString = null;
20
+ /** @internal */ _lastStopStringSuffix = null;
21
+ /** @internal */ _conversationHistoryToLoad = null;
22
+ /** @internal */ _sequence;
23
+ onDispose = new EventRelay();
21
24
  /**
22
- * @param {LlamaChatSessionOptions} options
25
+ * @param options
23
26
  */
24
- constructor({ context, printLLamaSystemInfo = false, promptWrapper = new GeneralChatPromptWrapper(), systemPrompt = defaultChatSystemPrompt, conversationHistory }) {
25
- this._ctx = context;
27
+ constructor({ contextSequence, printLLamaSystemInfo = false, promptWrapper = "auto", systemPrompt = defaultChatSystemPrompt, conversationHistory, autoDisposeSequence = true }) {
28
+ if (contextSequence.disposed)
29
+ throw new DisposedError();
30
+ this._sequence = contextSequence;
26
31
  this._printLLamaSystemInfo = printLLamaSystemInfo;
27
32
  this._systemPrompt = systemPrompt;
28
33
  this._conversationHistoryToLoad = (conversationHistory != null && conversationHistory.length > 0)
29
34
  ? conversationHistory
30
35
  : null;
36
+ this._autoDisposeSequence = autoDisposeSequence;
37
+ this._disposeAggregator.add(this._sequence.onDispose.createListener(() => {
38
+ this.dispose();
39
+ }));
40
+ this._disposeAggregator.add(this.onDispose.dispatchEvent);
31
41
  if (promptWrapper === "auto") {
32
- const chatWrapper = getChatWrapperByBos(context.getBosString());
42
+ const chatWrapper = resolveChatWrapperBasedOnModel({
43
+ bosString: contextSequence.model.tokens.bosString,
44
+ filename: contextSequence.model.filename,
45
+ typeDescription: contextSequence.model.typeDescription
46
+ });
33
47
  if (chatWrapper != null)
34
48
  this._promptWrapper = new chatWrapper();
35
49
  else
@@ -38,14 +52,38 @@ export class LlamaChatSession {
38
52
  else
39
53
  this._promptWrapper = promptWrapper;
40
54
  }
55
+ dispose({ disposedSequence = this._autoDisposeSequence } = {}) {
56
+ if (this._sequence == null)
57
+ return;
58
+ if (disposedSequence)
59
+ this._sequence.dispose();
60
+ this._sequence = null;
61
+ this._disposeAggregator.dispose();
62
+ }
63
+ /** @hidden */
64
+ [Symbol.dispose]() {
65
+ return this.dispose();
66
+ }
67
+ get disposed() {
68
+ return this._sequence == null;
69
+ }
41
70
  get initialized() {
42
71
  return this._initialized;
43
72
  }
73
+ get sequence() {
74
+ if (this._sequence == null)
75
+ throw new DisposedError();
76
+ return this._sequence;
77
+ }
44
78
  get context() {
45
- return this._ctx;
79
+ return this.sequence.context;
80
+ }
81
+ get model() {
82
+ return this.sequence.model;
46
83
  }
47
84
  async init() {
48
85
  await withLock(this, "init", async () => {
86
+ this._ensureNotDisposed();
49
87
  if (this._initialized)
50
88
  return;
51
89
  if (this._printLLamaSystemInfo)
@@ -54,24 +92,27 @@ export class LlamaChatSession {
54
92
  });
55
93
  }
56
94
  /**
57
- * @param {string} prompt
58
- * @param {object} options
59
- * @returns {Promise<string>}
95
+ * @param prompt
96
+ * @param [options]
60
97
  */
61
- async prompt(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
98
+ async prompt(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
62
99
  const { text } = await this.promptWithMeta(prompt, {
63
100
  onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty
64
101
  });
65
102
  return text;
66
103
  }
67
104
  /**
68
- * @param {string} prompt
69
- * @param {LLamaChatPromptOptions} options
105
+ * @param prompt
106
+ * @param [options]
70
107
  */
71
- async promptWithMeta(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
108
+ async promptWithMeta(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
109
+ this._ensureNotDisposed();
72
110
  if (!this.initialized)
73
111
  await this.init();
74
112
  return await withLock(this, "prompt", async () => {
113
+ this._ensureNotDisposed();
114
+ if (this._sequence == null)
115
+ throw new DisposedError();
75
116
  let promptText = "";
76
117
  if (this._promptIndex == 0 && this._conversationHistoryToLoad != null) {
77
118
  const { text, stopString, stopStringSuffix } = generateContextTextFromConversationHistory(this._promptWrapper, this._conversationHistoryToLoad, {
@@ -79,8 +120,8 @@ export class LlamaChatSession {
79
120
  currentPromptIndex: this._promptIndex,
80
121
  lastStopString: this._lastStopString,
81
122
  lastStopStringSuffix: this._promptIndex == 0
82
- ? (this._ctx.prependBos
83
- ? this._ctx.getBosString()
123
+ ? (this._sequence.prependBos
124
+ ? this._sequence.context.model.tokens.bosString
84
125
  : null)
85
126
  : this._lastStopStringSuffix
86
127
  });
@@ -95,15 +136,15 @@ export class LlamaChatSession {
95
136
  promptIndex: this._promptIndex,
96
137
  lastStopString: this._lastStopString,
97
138
  lastStopStringSuffix: this._promptIndex == 0
98
- ? (this._ctx.prependBos
99
- ? this._ctx.getBosString()
139
+ ? (this._sequence.prependBos
140
+ ? this._sequence.context.model.tokens.bosString
100
141
  : null)
101
142
  : this._lastStopStringSuffix
102
143
  });
103
144
  this._promptIndex++;
104
145
  this._lastStopString = null;
105
146
  this._lastStopStringSuffix = null;
106
- const { text, stopReason, stopString, stopStringSuffix } = await this._evalTokens(this._ctx.encode(promptText), {
147
+ const { text, stopReason, stopString, stopStringSuffix } = await this._evalTokens(this._sequence.context.model.tokenize(promptText), {
107
148
  onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix,
108
149
  repeatPenalty: repeatPenalty == false ? { lastTokens: 0 } : repeatPenalty
109
150
  });
@@ -117,7 +158,10 @@ export class LlamaChatSession {
117
158
  };
118
159
  });
119
160
  }
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 } = {} } = {}) {
161
+ /** @internal */
162
+ async _evalTokens(tokens, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty: { lastTokens: repeatPenaltyLastTokens = 64, punishTokensFilter, penalizeNewLine, penalty, frequencyPenalty, presencePenalty } = {} } = {}) {
163
+ if (this._sequence == null)
164
+ throw new DisposedError();
121
165
  let stopStrings = this._promptWrapper.getStopStrings();
122
166
  if (grammar != null)
123
167
  stopStrings = stopStrings.concat(grammar.stopStrings);
@@ -134,13 +178,13 @@ export class LlamaChatSession {
134
178
  if (punishTokensFilter != null)
135
179
  punishTokens = punishTokensFilter(punishTokens);
136
180
  if (!penalizeNewLine) {
137
- const nlToken = this.context.getNlToken();
181
+ const nlToken = this.sequence.context.model.tokens.nl;
138
182
  if (nlToken != null)
139
183
  punishTokens = punishTokens.filter(token => token !== nlToken);
140
184
  }
141
185
  return Uint32Array.from(punishTokens);
142
186
  };
143
- const evaluationIterator = this._ctx.evaluate(tokens, removeNullFields({
187
+ const evaluationIterator = this._sequence.evaluate(tokens, removeNullFields({
144
188
  temperature, topK, topP, grammarEvaluationState,
145
189
  repeatPenalty: !repeatPenaltyEnabled ? undefined : {
146
190
  punishTokens: getPenaltyTokens,
@@ -152,25 +196,27 @@ export class LlamaChatSession {
152
196
  for await (const chunk of evaluationIterator) {
153
197
  if (signal?.aborted)
154
198
  throw new AbortError();
155
- const tokenStr = this._ctx.decode(Uint32Array.from([chunk]));
199
+ if (this._sequence == null)
200
+ throw new DisposedError();
201
+ const tokenStr = this._sequence.context.model.detokenize([chunk]);
156
202
  const { shouldReturn, skipTokenEvent, stopString, stopStringSuffix } = this._checkStopString(tokenStr, stopStrings, stopStringIndexes);
157
203
  if (shouldReturn) {
158
204
  skippedChunksQueue.push(chunk);
159
205
  const skippedChunksText = skippedChunksQueue.length > 0
160
- ? this._ctx.decode(Uint32Array.from(skippedChunksQueue))
206
+ ? this._sequence.context.model.detokenize(skippedChunksQueue)
161
207
  : "";
162
208
  let [queuedTextBeforeStopString] = skippedChunksText.split(stopString);
163
209
  if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
164
210
  queuedTextBeforeStopString = queuedTextBeforeStopString.trimEnd();
165
211
  if (queuedTextBeforeStopString.length > 0) {
166
- const beforeStopStringTokens = Array.from(this._ctx.encode(queuedTextBeforeStopString));
212
+ const beforeStopStringTokens = Array.from(this._sequence.context.model.tokenize(queuedTextBeforeStopString));
167
213
  res.push(...beforeStopStringTokens);
168
214
  onToken?.(beforeStopStringTokens);
169
215
  skippedChunksQueue.length = 0;
170
216
  }
171
217
  stopReason = "stopString";
172
218
  return {
173
- text: this._ctx.decode(Uint32Array.from(res)),
219
+ text: this._sequence.context.model.detokenize(res),
174
220
  stopReason,
175
221
  stopString,
176
222
  stopStringSuffix
@@ -193,7 +239,9 @@ export class LlamaChatSession {
193
239
  break;
194
240
  }
195
241
  }
196
- let resText = this._ctx.decode(Uint32Array.from(res));
242
+ if (this._sequence == null)
243
+ throw new DisposedError();
244
+ let resText = this._sequence.context.model.detokenize(res);
197
245
  if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
198
246
  resText = resText.trimEnd();
199
247
  return {
@@ -203,6 +251,7 @@ export class LlamaChatSession {
203
251
  stopStringSuffix: null
204
252
  };
205
253
  }
254
+ /** @internal */
206
255
  _checkStopString(tokenStr, stopStrings, stopStringIndexes) {
207
256
  let skipTokenEvent = false;
208
257
  for (let stopStringIndex = 0; stopStringIndex < stopStrings.length; stopStringIndex++) {
@@ -232,5 +281,10 @@ export class LlamaChatSession {
232
281
  }
233
282
  return { skipTokenEvent };
234
283
  }
284
+ /** @internal */
285
+ _ensureNotDisposed() {
286
+ if (this._sequence == null)
287
+ throw new DisposedError();
288
+ }
235
289
  }
236
290
  //# sourceMappingURL=LlamaChatSession.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import { EventRelay } from "lifecycle-utils";
2
+ import { Token } from "../../types.js";
3
+ import { LlamaModel } from "../LlamaModel.js";
4
+ import { LlamaGrammarEvaluationState } from "../LlamaGrammarEvaluationState.js";
5
+ import { ContextShiftOptions, ContextTokensDeleteRange, EvaluationPriority, LlamaContextOptions, LlamaContextSequenceRepeatPenalty, TokenPriority } from "./types.js";
6
+ export declare class LlamaContext {
7
+ readonly onDispose: EventRelay<void>;
8
+ /**
9
+ * @param options
10
+ */
11
+ constructor({ model, sequences, seed, contextSize, batchSize, f16Kv, logitsAll, embedding, threads, batching: { dispatchSchedule: batchingDispatchSchedule, itemsPrioritizingStrategy: batchingItemsPrioritizingStrategy } }: LlamaContextOptions);
12
+ dispose(): void;
13
+ /** @hidden */
14
+ [Symbol.dispose](): void;
15
+ get disposed(): boolean;
16
+ get model(): LlamaModel;
17
+ get contextSize(): number;
18
+ get batchSize(): number;
19
+ getAllocatedContextSize(): number;
20
+ get totalSequences(): number;
21
+ get sequencesLeft(): number;
22
+ /**
23
+ * Before calling this method, make sure to call `sequencesLeft` to check if there are any sequences left.
24
+ * When there are no sequences left, this method will throw an error.
25
+ * @param [options]
26
+ */
27
+ getSequence({ prependBos, contextShift: { size: contextShiftSize, strategy: contextShiftStrategy } }?: {
28
+ prependBos?: boolean;
29
+ contextShift?: ContextShiftOptions;
30
+ }): LlamaContextSequence;
31
+ dispatchPendingBatch(): void;
32
+ }
33
+ export declare class LlamaContextSequence {
34
+ readonly onDispose: EventRelay<void>;
35
+ private constructor();
36
+ dispose(): void;
37
+ /** @hidden */
38
+ [Symbol.dispose](): void;
39
+ get disposed(): boolean;
40
+ get context(): LlamaContext;
41
+ get model(): LlamaModel;
42
+ get prependBos(): boolean;
43
+ get nextTokenIndex(): number;
44
+ get contextTokens(): Token[];
45
+ get contextTokenPriorities(): number[];
46
+ /**
47
+ * Clear the history of the sequence.
48
+ * If `prependBos` was enabled, the BOS token will be prepended to the sequence again.
49
+ */
50
+ clearHistory(): Promise<void>;
51
+ /**
52
+ * Erase context tokens in the provided ranges to free up space for new tokens to be generated.
53
+ * the start and end of each range are exclusive.
54
+ * For example, the range `{start: 0, end: 1}` will remove the token at the `0` index only.
55
+ */
56
+ eraseContextTokenRanges(ranges: ContextTokensDeleteRange[]): Promise<void>;
57
+ /**
58
+ * @param tokens
59
+ * @param [options]
60
+ */
61
+ evaluate(tokens: Token[], { temperature, topK, topP, grammarEvaluationState, repeatPenalty, evaluationPriority, tokenPriority }?: {
62
+ temperature?: number;
63
+ topK?: number;
64
+ topP?: number;
65
+ grammarEvaluationState?: LlamaGrammarEvaluationState;
66
+ repeatPenalty?: LlamaContextSequenceRepeatPenalty;
67
+ /**
68
+ * When a lot of tokens are queued for the next batch, more than the configured `batchSize`, the tokens for each sequence will be
69
+ * evaluated based on the strategy chosen for the context.
70
+ * By default, the `"maximumParallelism"` strategy is used, which will try to evaluate as many sequences in parallel as possible,
71
+ * but at some point, it'll have to choose which sequences to evaluate more tokens of, so it'll prioritize the sequences with the
72
+ * highest evaluation priority.
73
+ * Also, a custom strategy can be used to prioritize the sequences differently, but generally, the higher the evaluation priority
74
+ * is, the more likely and more tokens will be evaluated for that sequence in the next queued batch.
75
+ */
76
+ evaluationPriority?: EvaluationPriority;
77
+ /**
78
+ * When the context is full, tokens will be erased based on the context shift strategy chosen.
79
+ * By default, the lowest priority tokens at the beginning of the context will be erased.
80
+ * To mark the priority of the evaluated tokens, use this option.
81
+ * The higher the priority is, the less likely it will be erased.
82
+ * The default priority is `1`.
83
+ */
84
+ tokenPriority?: TokenPriority | TokenPriority[];
85
+ }): AsyncGenerator<Token, void>;
86
+ /**
87
+ * Evaluate the provided tokens into the context sequence without generating new tokens.
88
+ * @param tokens
89
+ * @param [options]
90
+ */
91
+ evaluateWithoutGeneratingNewTokens(tokens: Token[], { evaluationPriority, tokenPriority }?: {
92
+ grammarEvaluationState?: LlamaGrammarEvaluationState;
93
+ /**
94
+ * When a lot of tokens are queued for the next batch, more than the configured `batchSize`, the tokens for each sequence will be
95
+ * evaluated based on the strategy chosen for the context.
96
+ * By default, the `"maximumParallelism"` strategy is used, which will try to evaluate as many sequences in parallel as possible,
97
+ * but at some point, it'll have to choose which sequences to evaluate more tokens of, so it'll prioritize the sequences with the
98
+ * highest evaluation priority.
99
+ * Also, a custom strategy can be used to prioritize the sequences differently, but generally, the higher the evaluation priority
100
+ * is, the more likely and more tokens will be evaluated for that sequence in the next queued batch.
101
+ */
102
+ evaluationPriority?: EvaluationPriority;
103
+ /**
104
+ * When the context is full, tokens will be erased based on the context shift strategy chosen.
105
+ * By default, the lowest priority tokens at the beginning of the context will be erased.
106
+ * To mark the priority of the evaluated tokens, use this option.
107
+ * The higher the priority is, the less likely it will be erased.
108
+ * The default priority is `1`.
109
+ */
110
+ tokenPriority?: TokenPriority | TokenPriority[];
111
+ }): Promise<void>;
112
+ }