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.
- package/README.md +2 -2
- package/dist/ChatWrapper.d.ts +49 -0
- package/dist/ChatWrapper.js +120 -0
- package/dist/ChatWrapper.js.map +1 -0
- package/dist/chatWrappers/AlpacaChatWrapper.d.ts +12 -0
- package/dist/chatWrappers/AlpacaChatWrapper.js +21 -0
- package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -0
- package/dist/chatWrappers/ChatMLChatWrapper.d.ts +13 -0
- package/dist/chatWrappers/ChatMLChatWrapper.js +83 -0
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -0
- package/dist/chatWrappers/EmptyChatWrapper.d.ts +4 -0
- package/dist/chatWrappers/EmptyChatWrapper.js +5 -0
- package/dist/chatWrappers/EmptyChatWrapper.js.map +1 -0
- package/dist/chatWrappers/FalconChatWrapper.d.ts +21 -0
- package/dist/chatWrappers/FalconChatWrapper.js +104 -0
- package/dist/chatWrappers/FalconChatWrapper.js.map +1 -0
- package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +41 -0
- package/dist/chatWrappers/FunctionaryChatWrapper.js +200 -0
- package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -0
- package/dist/chatWrappers/GeneralChatWrapper.d.ts +21 -0
- package/dist/chatWrappers/GeneralChatWrapper.js +112 -0
- package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -0
- package/dist/chatWrappers/LlamaChatWrapper.d.ts +13 -0
- package/dist/chatWrappers/LlamaChatWrapper.js +78 -0
- package/dist/chatWrappers/LlamaChatWrapper.js.map +1 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +13 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +55 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -0
- package/dist/cli/cli.js +1 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +2 -1
- package/dist/cli/commands/ChatCommand.js +90 -42
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +20 -12
- package/dist/index.js +19 -11
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaBins.d.ts +18 -4
- package/dist/llamaEvaluator/LlamaBins.js +3 -3
- package/dist/llamaEvaluator/LlamaChat/LlamaChat.d.ts +175 -0
- package/dist/llamaEvaluator/LlamaChat/LlamaChat.js +704 -0
- package/dist/llamaEvaluator/LlamaChat/LlamaChat.js.map +1 -0
- package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +21 -0
- package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js +120 -0
- package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
- package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +16 -0
- package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +117 -0
- package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.d.ts +146 -0
- package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js +211 -0
- package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
- package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +7 -0
- package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js +8 -0
- package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.d.ts +107 -0
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js +597 -0
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/types.d.ts +86 -0
- package/dist/llamaEvaluator/LlamaContext/types.js +2 -0
- package/dist/llamaEvaluator/LlamaContext/types.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +5 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +16 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +5 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +42 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +2 -0
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +13 -0
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +9 -13
- package/dist/llamaEvaluator/LlamaGrammar.js +10 -15
- package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -1
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.d.ts +6 -5
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js +8 -7
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +1 -1
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js +2 -1
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +1 -1
- package/dist/llamaEvaluator/LlamaModel.d.ts +101 -105
- package/dist/llamaEvaluator/LlamaModel.js +305 -57
- package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
- package/dist/types.d.ts +44 -4
- package/dist/types.js +5 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/LlamaText.d.ts +42 -0
- package/dist/utils/LlamaText.js +207 -0
- package/dist/utils/LlamaText.js.map +1 -0
- package/dist/utils/ReplHistory.js +1 -1
- package/dist/utils/ReplHistory.js.map +1 -1
- package/dist/utils/StopGenerationDetector.d.ts +28 -0
- package/dist/utils/StopGenerationDetector.js +205 -0
- package/dist/utils/StopGenerationDetector.js.map +1 -0
- package/dist/utils/TokenStreamRegulator.d.ts +30 -0
- package/dist/utils/TokenStreamRegulator.js +96 -0
- package/dist/utils/TokenStreamRegulator.js.map +1 -0
- package/dist/utils/appendUserMessageToChatHistory.d.ts +2 -0
- package/dist/utils/appendUserMessageToChatHistory.js +18 -0
- package/dist/utils/appendUserMessageToChatHistory.js.map +1 -0
- package/dist/utils/compareTokens.d.ts +2 -0
- package/dist/utils/compareTokens.js +4 -0
- package/dist/utils/compareTokens.js.map +1 -0
- package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +18 -0
- package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +61 -0
- package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +1 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +17 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
- package/dist/utils/gbnfJson/GbnfTerminal.d.ts +1 -1
- package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js +21 -0
- package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -0
- package/dist/utils/gbnfJson/types.d.ts +1 -1
- package/dist/utils/gbnfJson/types.js.map +1 -1
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +1 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
- package/dist/utils/getBin.d.ts +71 -38
- package/dist/utils/getBin.js.map +1 -1
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +1 -15
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/getReleaseInfo.d.ts +1 -1
- package/dist/utils/getReleaseInfo.js.map +1 -1
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.d.ts +2 -0
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +49 -0
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -0
- package/dist/utils/parseModelFileName.d.ts +9 -0
- package/dist/utils/parseModelFileName.js +68 -0
- package/dist/utils/parseModelFileName.js.map +1 -0
- package/dist/utils/parseModelTypeDescription.d.ts +6 -0
- package/dist/utils/parseModelTypeDescription.js +9 -0
- package/dist/utils/parseModelTypeDescription.js.map +1 -0
- package/dist/utils/resolveChatWrapper.d.ts +4 -0
- package/dist/utils/resolveChatWrapper.js +16 -0
- package/dist/utils/resolveChatWrapper.js.map +1 -0
- package/dist/utils/truncateTextAndRoundToWords.d.ts +8 -0
- package/dist/utils/truncateTextAndRoundToWords.js +27 -0
- package/dist/utils/truncateTextAndRoundToWords.js.map +1 -0
- package/llama/.clang-format +10 -9
- package/llama/addon.cpp +701 -352
- package/llama/gitRelease.bundle +0 -0
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/mac-arm64/llama-addon.node +0 -0
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/package.json +24 -14
- package/dist/ChatPromptWrapper.d.ts +0 -11
- package/dist/ChatPromptWrapper.js +0 -20
- package/dist/ChatPromptWrapper.js.map +0 -1
- package/dist/chatWrappers/ChatMLChatPromptWrapper.d.ts +0 -12
- package/dist/chatWrappers/ChatMLChatPromptWrapper.js +0 -22
- package/dist/chatWrappers/ChatMLChatPromptWrapper.js.map +0 -1
- package/dist/chatWrappers/EmptyChatPromptWrapper.d.ts +0 -4
- package/dist/chatWrappers/EmptyChatPromptWrapper.js +0 -5
- package/dist/chatWrappers/EmptyChatPromptWrapper.js.map +0 -1
- package/dist/chatWrappers/FalconChatPromptWrapper.d.ts +0 -19
- package/dist/chatWrappers/FalconChatPromptWrapper.js +0 -33
- package/dist/chatWrappers/FalconChatPromptWrapper.js.map +0 -1
- package/dist/chatWrappers/GeneralChatPromptWrapper.d.ts +0 -19
- package/dist/chatWrappers/GeneralChatPromptWrapper.js +0 -38
- package/dist/chatWrappers/GeneralChatPromptWrapper.js.map +0 -1
- package/dist/chatWrappers/LlamaChatPromptWrapper.d.ts +0 -12
- package/dist/chatWrappers/LlamaChatPromptWrapper.js +0 -23
- package/dist/chatWrappers/LlamaChatPromptWrapper.js.map +0 -1
- package/dist/chatWrappers/createChatWrapperByBos.d.ts +0 -2
- package/dist/chatWrappers/createChatWrapperByBos.js +0 -14
- package/dist/chatWrappers/createChatWrapperByBos.js.map +0 -1
- package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -23
- package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -47
- package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChatSession.d.ts +0 -122
- package/dist/llamaEvaluator/LlamaChatSession.js +0 -236
- package/dist/llamaEvaluator/LlamaChatSession.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext.d.ts +0 -98
- package/dist/llamaEvaluator/LlamaContext.js +0 -140
- package/dist/llamaEvaluator/LlamaContext.js.map +0 -1
- package/dist/utils/getTextCompletion.d.ts +0 -3
- package/dist/utils/getTextCompletion.js +0 -12
- package/dist/utils/getTextCompletion.js.map +0 -1
- package/dist/utils/withLock.d.ts +0 -1
- package/dist/utils/withLock.js +0 -19
- package/dist/utils/withLock.js.map +0 -1
- package/llamaBins/mac-arm64/ggml-metal.metal +0 -5820
- package/llamaBins/mac-x64/ggml-metal.metal +0 -5820
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { DisposeAggregator, DisposedError, EventRelay, withLock } from "lifecycle-utils";
|
|
2
|
+
import { defaultChatSystemPrompt } from "../../config.js";
|
|
3
|
+
import { appendUserMessageToChatHistory } from "../../utils/appendUserMessageToChatHistory.js";
|
|
4
|
+
import { LlamaChat } from "../LlamaChat/LlamaChat.js";
|
|
5
|
+
export class LlamaChatSession {
|
|
6
|
+
/** @internal */ _disposeAggregator = new DisposeAggregator();
|
|
7
|
+
/** @internal */ _autoDisposeSequence;
|
|
8
|
+
/** @internal */ _contextShift;
|
|
9
|
+
/** @internal */ _chatHistory;
|
|
10
|
+
/** @internal */ _lastEvaluation;
|
|
11
|
+
/** @internal */ _chat;
|
|
12
|
+
onDispose = new EventRelay();
|
|
13
|
+
/**
|
|
14
|
+
* @param options
|
|
15
|
+
*/
|
|
16
|
+
constructor({ contextSequence, chatWrapper = "auto", systemPrompt = defaultChatSystemPrompt, autoDisposeSequence = true, contextShift }) {
|
|
17
|
+
if (contextSequence == null)
|
|
18
|
+
throw new Error("contextSequence cannot be null");
|
|
19
|
+
if (contextSequence.disposed)
|
|
20
|
+
throw new DisposedError();
|
|
21
|
+
this._contextShift = contextShift;
|
|
22
|
+
this._chatHistory = [{
|
|
23
|
+
type: "system",
|
|
24
|
+
text: systemPrompt
|
|
25
|
+
}];
|
|
26
|
+
this._chat = new LlamaChat({
|
|
27
|
+
autoDisposeSequence,
|
|
28
|
+
chatWrapper,
|
|
29
|
+
contextSequence
|
|
30
|
+
});
|
|
31
|
+
this._autoDisposeSequence = autoDisposeSequence;
|
|
32
|
+
this._disposeAggregator.add(this._chat.onDispose.createListener(() => {
|
|
33
|
+
this.dispose();
|
|
34
|
+
}));
|
|
35
|
+
this._disposeAggregator.add(this.onDispose.dispatchEvent);
|
|
36
|
+
}
|
|
37
|
+
dispose({ disposeSequence = this._autoDisposeSequence } = {}) {
|
|
38
|
+
if (this._chat == null)
|
|
39
|
+
return;
|
|
40
|
+
this._chat.dispose({ disposeSequence });
|
|
41
|
+
this._chat = null;
|
|
42
|
+
this._disposeAggregator.dispose();
|
|
43
|
+
}
|
|
44
|
+
/** @hidden */
|
|
45
|
+
[Symbol.dispose]() {
|
|
46
|
+
return this.dispose();
|
|
47
|
+
}
|
|
48
|
+
get disposed() {
|
|
49
|
+
return this._chat == null || this._chat.disposed;
|
|
50
|
+
}
|
|
51
|
+
get sequence() {
|
|
52
|
+
if (this._chat == null)
|
|
53
|
+
throw new DisposedError();
|
|
54
|
+
return this._chat.sequence;
|
|
55
|
+
}
|
|
56
|
+
get context() {
|
|
57
|
+
return this.sequence.context;
|
|
58
|
+
}
|
|
59
|
+
get model() {
|
|
60
|
+
return this.sequence.model;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @param prompt
|
|
64
|
+
* @param [options]
|
|
65
|
+
*/
|
|
66
|
+
async prompt(prompt, { functions, documentFunctionParams, onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
|
|
67
|
+
const { responseText } = await this.promptWithMeta(prompt, {
|
|
68
|
+
// this is a workaround to allow passing both `functions` and `grammar`
|
|
69
|
+
functions: functions,
|
|
70
|
+
documentFunctionParams: documentFunctionParams,
|
|
71
|
+
onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty
|
|
72
|
+
});
|
|
73
|
+
return responseText;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @param prompt
|
|
77
|
+
* @param [options]
|
|
78
|
+
*/
|
|
79
|
+
async promptWithMeta(prompt, { functions, documentFunctionParams, onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty, evaluationPriority } = {}) {
|
|
80
|
+
this._ensureNotDisposed();
|
|
81
|
+
return await withLock(this, "prompt", async () => {
|
|
82
|
+
this._ensureNotDisposed();
|
|
83
|
+
if (this._chat == null)
|
|
84
|
+
throw new DisposedError();
|
|
85
|
+
let lastEvaluation = this._lastEvaluation;
|
|
86
|
+
let newChatHistory = appendUserMessageToChatHistory(this._chatHistory, prompt);
|
|
87
|
+
let newContextWindowChatHistory = lastEvaluation?.contextWindow == null
|
|
88
|
+
? undefined
|
|
89
|
+
: appendUserMessageToChatHistory(lastEvaluation?.contextWindow, prompt);
|
|
90
|
+
newChatHistory.push({
|
|
91
|
+
type: "model",
|
|
92
|
+
response: []
|
|
93
|
+
});
|
|
94
|
+
if (newContextWindowChatHistory != null)
|
|
95
|
+
newContextWindowChatHistory.push({
|
|
96
|
+
type: "model",
|
|
97
|
+
response: []
|
|
98
|
+
});
|
|
99
|
+
// eslint-disable-next-line no-constant-condition
|
|
100
|
+
while (true) {
|
|
101
|
+
const { functionCall, lastEvaluation: currentLastEvaluation, metadata } = await this._chat.generateResponse(newChatHistory, {
|
|
102
|
+
functions,
|
|
103
|
+
documentFunctionParams,
|
|
104
|
+
grammar: grammar,
|
|
105
|
+
onToken,
|
|
106
|
+
signal,
|
|
107
|
+
repeatPenalty,
|
|
108
|
+
topK,
|
|
109
|
+
topP,
|
|
110
|
+
maxTokens,
|
|
111
|
+
temperature,
|
|
112
|
+
trimWhitespaceSuffix,
|
|
113
|
+
contextShift: {
|
|
114
|
+
...this._contextShift,
|
|
115
|
+
lastEvaluationMetadata: lastEvaluation?.contextShiftMetadata
|
|
116
|
+
},
|
|
117
|
+
evaluationPriority,
|
|
118
|
+
lastEvaluationContextWindow: {
|
|
119
|
+
history: newContextWindowChatHistory,
|
|
120
|
+
minimumOverlapPercentageToPreventContextShift: 0.01
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
this._ensureNotDisposed();
|
|
124
|
+
lastEvaluation = currentLastEvaluation;
|
|
125
|
+
newChatHistory = lastEvaluation.cleanHistory;
|
|
126
|
+
if (functionCall != null) {
|
|
127
|
+
const functionDefinition = functions?.[functionCall.functionName];
|
|
128
|
+
if (functionDefinition == null)
|
|
129
|
+
throw new Error(`The model tried to call function "${functionCall.functionName}" which is not defined`);
|
|
130
|
+
const functionCallResult = await functionDefinition.handler(functionCall.params);
|
|
131
|
+
this._ensureNotDisposed();
|
|
132
|
+
newChatHistory = addFunctionCallToChatHistory({
|
|
133
|
+
chatHistory: newChatHistory,
|
|
134
|
+
functionName: functionCall.functionName,
|
|
135
|
+
functionDescription: functionDefinition.description,
|
|
136
|
+
callParams: functionCall.params,
|
|
137
|
+
callResult: functionCallResult,
|
|
138
|
+
raw: functionCall.raw + this._chat.chatWrapper.generateFunctionCallResult(functionCall.functionName, functionCall.params, functionCallResult)
|
|
139
|
+
});
|
|
140
|
+
newContextWindowChatHistory = addFunctionCallToChatHistory({
|
|
141
|
+
chatHistory: lastEvaluation.contextWindow,
|
|
142
|
+
functionName: functionCall.functionName,
|
|
143
|
+
functionDescription: functionDefinition.description,
|
|
144
|
+
callParams: functionCall.params,
|
|
145
|
+
callResult: functionCallResult,
|
|
146
|
+
raw: functionCall.raw + this._chat.chatWrapper.generateFunctionCallResult(functionCall.functionName, functionCall.params, functionCallResult)
|
|
147
|
+
});
|
|
148
|
+
lastEvaluation.cleanHistory = newChatHistory;
|
|
149
|
+
lastEvaluation.contextWindow = newContextWindowChatHistory;
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
this._lastEvaluation = lastEvaluation;
|
|
153
|
+
this._chatHistory = newChatHistory;
|
|
154
|
+
const lastModelResponseItem = getLastModelResponseItem(newChatHistory);
|
|
155
|
+
return {
|
|
156
|
+
response: lastModelResponseItem.response,
|
|
157
|
+
responseText: lastModelResponseItem.response
|
|
158
|
+
.filter((item) => typeof item === "string")
|
|
159
|
+
.join(""),
|
|
160
|
+
stopReason: metadata.stopReason,
|
|
161
|
+
remainingGenerationAfterStop: metadata.remainingGenerationAfterStop
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
getChatHistory() {
|
|
167
|
+
return structuredClone(this._chatHistory);
|
|
168
|
+
}
|
|
169
|
+
getLastEvaluationContextWindow() {
|
|
170
|
+
if (this._lastEvaluation == null)
|
|
171
|
+
return null;
|
|
172
|
+
return structuredClone(this._lastEvaluation?.contextWindow);
|
|
173
|
+
}
|
|
174
|
+
setChatHistory(chatHistory) {
|
|
175
|
+
this._chatHistory = structuredClone(chatHistory);
|
|
176
|
+
this._lastEvaluation = undefined;
|
|
177
|
+
}
|
|
178
|
+
/** @internal */
|
|
179
|
+
_ensureNotDisposed() {
|
|
180
|
+
if (this.disposed)
|
|
181
|
+
throw new DisposedError();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function addFunctionCallToChatHistory({ chatHistory, functionName, functionDescription, callParams, callResult, raw }) {
|
|
185
|
+
const newChatHistory = chatHistory.slice();
|
|
186
|
+
if (newChatHistory.length === 0 || newChatHistory[newChatHistory.length - 1].type !== "model")
|
|
187
|
+
newChatHistory.push({
|
|
188
|
+
type: "model",
|
|
189
|
+
response: []
|
|
190
|
+
});
|
|
191
|
+
const lastModelResponseItem = newChatHistory[newChatHistory.length - 1];
|
|
192
|
+
const newLastModelResponseItem = { ...lastModelResponseItem };
|
|
193
|
+
newChatHistory[newChatHistory.length - 1] = newLastModelResponseItem;
|
|
194
|
+
const modelResponse = newLastModelResponseItem.response.slice();
|
|
195
|
+
newLastModelResponseItem.response = modelResponse;
|
|
196
|
+
modelResponse.push({
|
|
197
|
+
type: "functionCall",
|
|
198
|
+
name: functionName,
|
|
199
|
+
description: functionDescription,
|
|
200
|
+
params: callParams,
|
|
201
|
+
result: callResult,
|
|
202
|
+
raw
|
|
203
|
+
});
|
|
204
|
+
return newChatHistory;
|
|
205
|
+
}
|
|
206
|
+
function getLastModelResponseItem(chatHistory) {
|
|
207
|
+
if (chatHistory.length === 0 || chatHistory[chatHistory.length - 1].type !== "model")
|
|
208
|
+
throw new Error("Expected chat history to end with a model response");
|
|
209
|
+
return chatHistory[chatHistory.length - 1];
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=LlamaChatSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../../src/llamaEvaluator/LlamaChatSession/LlamaChatSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GbnfJsonSchema, GbnfJsonSchemaToType } from "../../../utils/gbnfJson/types.js";
|
|
2
|
+
import { ChatSessionModelFunction } from "../../../types.js";
|
|
3
|
+
export declare function defineChatSessionFunction<const Params extends GbnfJsonSchema | undefined>({ description, params, handler }: {
|
|
4
|
+
description?: string;
|
|
5
|
+
params?: Params;
|
|
6
|
+
handler: (params: GbnfJsonSchemaToType<Params>) => any;
|
|
7
|
+
}): ChatSessionModelFunction<Params>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineChatSessionFunction.js","sourceRoot":"","sources":["../../../../src/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,yBAAyB,CAAkD,EACvF,WAAW,EACX,MAAM,EACN,OAAO,EAKV;IACG,OAAO;QACH,WAAW;QACX,MAAM;QACN,OAAO;KACV,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
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 } 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, 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({ contextShift: { size: contextShiftSize, strategy: contextShiftStrategy } }?: {
|
|
28
|
+
contextShift?: ContextShiftOptions;
|
|
29
|
+
}): LlamaContextSequence;
|
|
30
|
+
dispatchPendingBatch(): void;
|
|
31
|
+
}
|
|
32
|
+
export declare class LlamaContextSequence {
|
|
33
|
+
readonly onDispose: EventRelay<void>;
|
|
34
|
+
private constructor();
|
|
35
|
+
dispose(): void;
|
|
36
|
+
/** @hidden */
|
|
37
|
+
[Symbol.dispose](): void;
|
|
38
|
+
get disposed(): boolean;
|
|
39
|
+
get context(): LlamaContext;
|
|
40
|
+
get model(): LlamaModel;
|
|
41
|
+
get nextTokenIndex(): number;
|
|
42
|
+
get contextTokens(): Token[];
|
|
43
|
+
get isLoadedToMemory(): boolean;
|
|
44
|
+
compareContextTokens(tokens: Token[]): {
|
|
45
|
+
firstDifferentIndex: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Clear the history of the sequence.
|
|
49
|
+
* If `prependBos` was enabled, the BOS token will be prepended to the sequence again.
|
|
50
|
+
*/
|
|
51
|
+
clearHistory(): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Erase context tokens in the provided ranges to free up space for new tokens to be generated.
|
|
54
|
+
* the start and end of each range are exclusive.
|
|
55
|
+
* For example, the range `{start: 0, end: 1}` will remove the token at the `0` index only.
|
|
56
|
+
*/
|
|
57
|
+
eraseContextTokenRanges(ranges: ContextTokensDeleteRange[]): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* @param tokens
|
|
60
|
+
* @param [options]
|
|
61
|
+
*/
|
|
62
|
+
evaluate(tokens: Token[], { temperature, topK, topP, grammarEvaluationState, repeatPenalty, evaluationPriority, contextShift: { size: contextShiftSize, strategy: contextShiftStrategy }, yieldEosToken }?: {
|
|
63
|
+
temperature?: number;
|
|
64
|
+
topK?: number;
|
|
65
|
+
topP?: number;
|
|
66
|
+
grammarEvaluationState?: LlamaGrammarEvaluationState | (() => LlamaGrammarEvaluationState | undefined);
|
|
67
|
+
repeatPenalty?: LlamaContextSequenceRepeatPenalty;
|
|
68
|
+
/**
|
|
69
|
+
* When a lot of tokens are queued for the next batch, more than the configured `batchSize`, the tokens for each sequence will be
|
|
70
|
+
* evaluated based on the strategy chosen for the context.
|
|
71
|
+
* By default, the `"maximumParallelism"` strategy is used, which will try to evaluate as many sequences in parallel as possible,
|
|
72
|
+
* but at some point, it'll have to choose which sequences to evaluate more tokens of, so it'll prioritize the sequences with the
|
|
73
|
+
* highest evaluation priority.
|
|
74
|
+
* Also, a custom strategy can be used to prioritize the sequences differently, but generally, the higher the evaluation priority
|
|
75
|
+
* is, the more likely and more tokens will be evaluated for that sequence in the next queued batch.
|
|
76
|
+
*/
|
|
77
|
+
evaluationPriority?: EvaluationPriority;
|
|
78
|
+
/** Override the sequence context shift options for this evaluation */
|
|
79
|
+
contextShift?: ContextShiftOptions;
|
|
80
|
+
/**
|
|
81
|
+
* Yield the EOS token when it's generated.
|
|
82
|
+
* When `false` the generation will stop when the EOS token is generated and the EOS token won't be yielded.
|
|
83
|
+
* Defaults to `false`.
|
|
84
|
+
*/
|
|
85
|
+
yieldEosToken?: boolean;
|
|
86
|
+
}): AsyncGenerator<Token, void>;
|
|
87
|
+
/**
|
|
88
|
+
* Evaluate the provided tokens into the context sequence without generating new tokens.
|
|
89
|
+
* @param tokens
|
|
90
|
+
* @param [options]
|
|
91
|
+
*/
|
|
92
|
+
evaluateWithoutGeneratingNewTokens(tokens: Token[], { evaluationPriority, contextShift: { size: contextShiftSize, strategy: contextShiftStrategy } }?: {
|
|
93
|
+
grammarEvaluationState?: LlamaGrammarEvaluationState;
|
|
94
|
+
/**
|
|
95
|
+
* When a lot of tokens are queued for the next batch, more than the configured `batchSize`, the tokens for each sequence will be
|
|
96
|
+
* evaluated based on the strategy chosen for the context.
|
|
97
|
+
* By default, the `"maximumParallelism"` strategy is used, which will try to evaluate as many sequences in parallel as possible,
|
|
98
|
+
* but at some point, it'll have to choose which sequences to evaluate more tokens of, so it'll prioritize the sequences with the
|
|
99
|
+
* highest evaluation priority.
|
|
100
|
+
* Also, a custom strategy can be used to prioritize the sequences differently, but generally, the higher the evaluation priority
|
|
101
|
+
* is, the more likely and more tokens will be evaluated for that sequence in the next queued batch.
|
|
102
|
+
*/
|
|
103
|
+
evaluationPriority?: EvaluationPriority;
|
|
104
|
+
/** Override the sequence context shift options for this evaluation */
|
|
105
|
+
contextShift?: ContextShiftOptions;
|
|
106
|
+
}): Promise<void>;
|
|
107
|
+
}
|