node-llama-cpp 3.0.0-beta.1 → 3.0.0-beta.3
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 -0
- 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 +4 -4
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +24 -16
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +2 -1
- package/dist/cli/commands/ChatCommand.js +71 -33
- 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 +17 -10
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaBins.d.ts +0 -1
- 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.d.ts → LlamaChatSession/LlamaChatSession.d.ts} +48 -25
- 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 +18 -23
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js +60 -103
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/llamaEvaluator/LlamaContext/types.d.ts +6 -14
- package/dist/llamaEvaluator/LlamaEmbeddingContext.d.ts +35 -0
- package/dist/llamaEvaluator/LlamaEmbeddingContext.js +73 -0
- package/dist/llamaEvaluator/LlamaEmbeddingContext.js.map +1 -0
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +8 -12
- package/dist/llamaEvaluator/LlamaGrammar.js +7 -12
- package/dist/llamaEvaluator/LlamaGrammar.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 +10 -2
- package/dist/llamaEvaluator/LlamaModel.js +14 -3
- package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
- package/dist/types.d.ts +41 -3
- 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/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/compileLLamaCpp.js +11 -6
- package/dist/utils/compileLLamaCpp.js.map +1 -1
- 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 +3 -2
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +1 -15
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.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/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/addon.cpp +45 -17
- package/llama/binariesGithubRelease.json +1 -1
- 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 +21 -9
- 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/generateContextTextFromConversationHistory.d.ts +0 -15
- package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -39
- package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChatSession.js +0 -290
- package/dist/llamaEvaluator/LlamaChatSession.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/llamaBins/mac-arm64/ggml-metal.metal +0 -2929
- package/llamaBins/mac-x64/ggml-metal.metal +0 -2929
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
-
import { getTextCompletion } from "../utils/getTextCompletion.js";
|
|
3
|
-
export class GeneralChatPromptWrapper extends ChatPromptWrapper {
|
|
4
|
-
wrapperName = "General";
|
|
5
|
-
_instructionName;
|
|
6
|
-
_responseName;
|
|
7
|
-
constructor({ instructionName = "Human", responseName = "Assistant" } = {}) {
|
|
8
|
-
super();
|
|
9
|
-
this._instructionName = instructionName;
|
|
10
|
-
this._responseName = responseName;
|
|
11
|
-
}
|
|
12
|
-
wrapPrompt(prompt, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }) {
|
|
13
|
-
if (promptIndex === 0)
|
|
14
|
-
return systemPrompt + `\n\n### ${this._instructionName}:\n` + prompt + `\n\n### ${this._responseName}:\n`;
|
|
15
|
-
return this._getPromptPrefix(lastStopString, lastStopStringSuffix) + prompt + `\n\n### ${this._responseName}:\n`;
|
|
16
|
-
}
|
|
17
|
-
getStopStrings() {
|
|
18
|
-
return [
|
|
19
|
-
`\n\n### ${this._instructionName}`,
|
|
20
|
-
`### ${this._instructionName}`,
|
|
21
|
-
`\n\n### ${this._responseName}`,
|
|
22
|
-
`### ${this._responseName}`,
|
|
23
|
-
"<end>"
|
|
24
|
-
];
|
|
25
|
-
}
|
|
26
|
-
getDefaultStopString() {
|
|
27
|
-
return `\n\n### ${this._instructionName}`;
|
|
28
|
-
}
|
|
29
|
-
_getPromptPrefix(lastStopString, lastStopStringSuffix) {
|
|
30
|
-
return getTextCompletion(lastStopString === "<end>"
|
|
31
|
-
? lastStopStringSuffix
|
|
32
|
-
: ((lastStopString ?? "") + (lastStopStringSuffix ?? "")), [
|
|
33
|
-
`\n\n### ${this._instructionName}:\n`,
|
|
34
|
-
`### ${this._instructionName}:\n`
|
|
35
|
-
]) ?? `\n\n### ${this._instructionName}:\n`;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=GeneralChatPromptWrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/GeneralChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,wBAAyB,SAAQ,iBAAiB;IAC3C,WAAW,GAAW,SAAS,CAAC;IAC/B,gBAAgB,CAAS;IACzB,aAAa,CAAS;IAEvC,YAAmB,EAAC,eAAe,GAAG,OAAO,EAAE,YAAY,GAAG,WAAW,KAAuD,EAAE;QAC9H,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAEe,UAAU,CAAC,MAAc,EAAE,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAE1G;QACG,IAAI,WAAW,KAAK,CAAC;YACjB,OAAO,YAAY,GAAG,WAAW,IAAI,CAAC,gBAAgB,KAAK,GAAG,MAAM,GAAG,WAAW,IAAI,CAAC,aAAa,KAAK,CAAC;QAE9G,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,GAAG,MAAM,GAAG,WAAW,IAAI,CAAC,aAAa,KAAK,CAAC;IACrH,CAAC;IAEe,cAAc;QAC1B,OAAO;YACH,WAAW,IAAI,CAAC,gBAAgB,EAAE;YAClC,OAAO,IAAI,CAAC,gBAAgB,EAAE;YAC9B,WAAW,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,IAAI,CAAC,aAAa,EAAE;YAC3B,OAAO;SACV,CAAC;IACN,CAAC;IAEe,oBAAoB;QAChC,OAAO,WAAW,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IAEO,gBAAgB,CAAC,cAA6B,EAAE,oBAAmC;QACvF,OAAO,iBAAiB,CACpB,cAAc,KAAK,OAAO;YACtB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,EAC7D;YACI,WAAW,IAAI,CAAC,gBAAgB,KAAK;YACrC,OAAO,IAAI,CAAC,gBAAgB,KAAK;SACpC,CACJ,IAAI,WAAW,IAAI,CAAC,gBAAgB,KAAK,CAAC;IAC/C,CAAC;CACJ"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
-
export declare class LlamaChatPromptWrapper extends ChatPromptWrapper {
|
|
3
|
-
readonly wrapperName: string;
|
|
4
|
-
wrapPrompt(prompt: string, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }: {
|
|
5
|
-
systemPrompt: string;
|
|
6
|
-
promptIndex: number;
|
|
7
|
-
lastStopString: string | null;
|
|
8
|
-
lastStopStringSuffix: string | null;
|
|
9
|
-
}): string;
|
|
10
|
-
getStopStrings(): string[];
|
|
11
|
-
getDefaultStopString(): string;
|
|
12
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
-
import { getTextCompletion } from "../utils/getTextCompletion.js";
|
|
3
|
-
// source: https://huggingface.co/blog/llama2#how-to-prompt-llama-2
|
|
4
|
-
export class LlamaChatPromptWrapper extends ChatPromptWrapper {
|
|
5
|
-
wrapperName = "LlamaChat";
|
|
6
|
-
wrapPrompt(prompt, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }) {
|
|
7
|
-
const previousCompletionEnd = (lastStopString ?? "") + (lastStopStringSuffix ?? "");
|
|
8
|
-
if (promptIndex === 0 && systemPrompt != "") {
|
|
9
|
-
return (getTextCompletion(previousCompletionEnd, "<s>[INST] <<SYS>>\n") ?? "<s>[INST] <<SYS>>\n") + systemPrompt +
|
|
10
|
-
"\n<</SYS>>\n\n" + prompt + " [/INST]\n\n";
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
return (getTextCompletion(previousCompletionEnd, "</s><s>[INST] ") ?? "<s>[INST] ") + prompt + " [/INST]\n\n";
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
getStopStrings() {
|
|
17
|
-
return ["</s>"];
|
|
18
|
-
}
|
|
19
|
-
getDefaultStopString() {
|
|
20
|
-
return "</s>";
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=LlamaChatPromptWrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/LlamaChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,mEAAmE;AACnE,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IACzC,WAAW,GAAW,WAAW,CAAC;IAElC,UAAU,CAAC,MAAc,EAAE,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAE1G;QACG,MAAM,qBAAqB,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAEpF,IAAI,WAAW,KAAK,CAAC,IAAI,YAAY,IAAI,EAAE,EAAE;YACzC,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,GAAG,YAAY;gBAC5G,gBAAgB,GAAG,MAAM,GAAG,cAAc,CAAC;SAClD;aAAM;YACH,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,IAAI,YAAY,CAAC,GAAG,MAAM,GAAG,cAAc,CAAC;SACjH;IACL,CAAC;IAEe,cAAc;QAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAEe,oBAAoB;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
-
import { ConversationInteraction } from "../types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Generate context text to load into a model context from a conversation history.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateContextTextFromConversationHistory(chatPromptWrapper: ChatPromptWrapper, conversationHistory: readonly ConversationInteraction[], { systemPrompt, currentPromptIndex, lastStopString, lastStopStringSuffix }?: {
|
|
7
|
-
systemPrompt?: string;
|
|
8
|
-
currentPromptIndex?: number;
|
|
9
|
-
lastStopString?: string | null;
|
|
10
|
-
lastStopStringSuffix?: string | null;
|
|
11
|
-
}): {
|
|
12
|
-
text: string;
|
|
13
|
-
stopString: string | null;
|
|
14
|
-
stopStringSuffix: string | null;
|
|
15
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { defaultChatSystemPrompt } from "../config.js";
|
|
2
|
-
/**
|
|
3
|
-
* Generate context text to load into a model context from a conversation history.
|
|
4
|
-
*/
|
|
5
|
-
export function generateContextTextFromConversationHistory(chatPromptWrapper, conversationHistory, { systemPrompt = defaultChatSystemPrompt, currentPromptIndex = 0, lastStopString = null, lastStopStringSuffix = null } = {}) {
|
|
6
|
-
let res = "";
|
|
7
|
-
for (let i = 0; i < conversationHistory.length; i++) {
|
|
8
|
-
const interaction = conversationHistory[i];
|
|
9
|
-
const wrappedPrompt = chatPromptWrapper.wrapPrompt(interaction.prompt, {
|
|
10
|
-
systemPrompt,
|
|
11
|
-
promptIndex: currentPromptIndex,
|
|
12
|
-
lastStopString,
|
|
13
|
-
lastStopStringSuffix
|
|
14
|
-
});
|
|
15
|
-
const stopStrings = chatPromptWrapper.getStopStrings();
|
|
16
|
-
const defaultStopString = chatPromptWrapper.getDefaultStopString();
|
|
17
|
-
const stopStringsToCheckInResponse = new Set([...stopStrings, defaultStopString]);
|
|
18
|
-
currentPromptIndex++;
|
|
19
|
-
lastStopString = null;
|
|
20
|
-
lastStopStringSuffix = null;
|
|
21
|
-
res += wrappedPrompt;
|
|
22
|
-
for (const stopString of stopStringsToCheckInResponse) {
|
|
23
|
-
if (interaction.response.includes(stopString)) {
|
|
24
|
-
console.error(`Stop string "${stopString}" was found in model response of conversation interaction index ${i}`, { interaction, stopString });
|
|
25
|
-
throw new Error("A stop string cannot be in a conversation history interaction model response");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
res += interaction.response;
|
|
29
|
-
res += defaultStopString;
|
|
30
|
-
lastStopString = defaultStopString;
|
|
31
|
-
lastStopStringSuffix = "";
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
text: res,
|
|
35
|
-
stopString: lastStopString,
|
|
36
|
-
stopStringSuffix: lastStopStringSuffix
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=generateContextTextFromConversationHistory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateContextTextFromConversationHistory.js","sourceRoot":"","sources":["../../src/chatWrappers/generateContextTextFromConversationHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AAIrD;;GAEG;AACH,MAAM,UAAU,0CAA0C,CACtD,iBAAoC,EACpC,mBAAuD,EACvD,EACI,YAAY,GAAG,uBAAuB,EAAE,kBAAkB,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,EAAE,oBAAoB,GAAG,IAAI,KAGlH,EAAE;IAMN,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YACnE,YAAY;YACZ,WAAW,EAAE,kBAAkB;YAC/B,cAAc;YACd,oBAAoB;SACvB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACvD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;QACnE,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAElF,kBAAkB,EAAE,CAAC;QACrB,cAAc,GAAG,IAAI,CAAC;QACtB,oBAAoB,GAAG,IAAI,CAAC;QAE5B,GAAG,IAAI,aAAa,CAAC;QAErB,KAAK,MAAM,UAAU,IAAI,4BAA4B,EAAE;YACnD,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC3C,OAAO,CAAC,KAAK,CACT,gBAAgB,UAAU,mEAAmE,CAAC,EAAE,EAChG,EAAC,WAAW,EAAE,UAAU,EAAC,CAC5B,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;aACnG;SACJ;QAED,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC;QAC5B,GAAG,IAAI,iBAAiB,CAAC;QACzB,cAAc,GAAG,iBAAiB,CAAC;QACnC,oBAAoB,GAAG,EAAE,CAAC;KAC7B;IAED,OAAO;QACH,IAAI,EAAE,GAAG;QACT,UAAU,EAAE,cAAc;QAC1B,gBAAgB,EAAE,oBAAoB;KACzC,CAAC;AACN,CAAC"}
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import { DisposeAggregator, DisposedError, EventRelay, withLock } from "lifecycle-utils";
|
|
2
|
-
import { defaultChatSystemPrompt } from "../config.js";
|
|
3
|
-
import { AbortError } from "../AbortError.js";
|
|
4
|
-
import { GeneralChatPromptWrapper } from "../chatWrappers/GeneralChatPromptWrapper.js";
|
|
5
|
-
import { resolveChatWrapperBasedOnModel } from "../chatWrappers/resolveChatWrapperBasedOnModel.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
|
-
/** @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();
|
|
24
|
-
/**
|
|
25
|
-
* @param options
|
|
26
|
-
*/
|
|
27
|
-
constructor({ contextSequence, printLLamaSystemInfo = false, promptWrapper = "auto", systemPrompt = defaultChatSystemPrompt, conversationHistory, autoDisposeSequence = true }) {
|
|
28
|
-
if (contextSequence.disposed)
|
|
29
|
-
throw new DisposedError();
|
|
30
|
-
this._sequence = contextSequence;
|
|
31
|
-
this._printLLamaSystemInfo = printLLamaSystemInfo;
|
|
32
|
-
this._systemPrompt = systemPrompt;
|
|
33
|
-
this._conversationHistoryToLoad = (conversationHistory != null && conversationHistory.length > 0)
|
|
34
|
-
? conversationHistory
|
|
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);
|
|
41
|
-
if (promptWrapper === "auto") {
|
|
42
|
-
const chatWrapper = resolveChatWrapperBasedOnModel({
|
|
43
|
-
bosString: contextSequence.model.tokens.bosString,
|
|
44
|
-
filename: contextSequence.model.filename,
|
|
45
|
-
typeDescription: contextSequence.model.typeDescription
|
|
46
|
-
});
|
|
47
|
-
if (chatWrapper != null)
|
|
48
|
-
this._promptWrapper = new chatWrapper();
|
|
49
|
-
else
|
|
50
|
-
this._promptWrapper = new GeneralChatPromptWrapper();
|
|
51
|
-
}
|
|
52
|
-
else
|
|
53
|
-
this._promptWrapper = promptWrapper;
|
|
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
|
-
}
|
|
70
|
-
get initialized() {
|
|
71
|
-
return this._initialized;
|
|
72
|
-
}
|
|
73
|
-
get sequence() {
|
|
74
|
-
if (this._sequence == null)
|
|
75
|
-
throw new DisposedError();
|
|
76
|
-
return this._sequence;
|
|
77
|
-
}
|
|
78
|
-
get context() {
|
|
79
|
-
return this.sequence.context;
|
|
80
|
-
}
|
|
81
|
-
get model() {
|
|
82
|
-
return this.sequence.model;
|
|
83
|
-
}
|
|
84
|
-
async init() {
|
|
85
|
-
await withLock(this, "init", async () => {
|
|
86
|
-
this._ensureNotDisposed();
|
|
87
|
-
if (this._initialized)
|
|
88
|
-
return;
|
|
89
|
-
if (this._printLLamaSystemInfo)
|
|
90
|
-
console.log("Llama system info", LlamaModel.systemInfo);
|
|
91
|
-
this._initialized = true;
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* @param prompt
|
|
96
|
-
* @param [options]
|
|
97
|
-
*/
|
|
98
|
-
async prompt(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
|
|
99
|
-
const { text } = await this.promptWithMeta(prompt, {
|
|
100
|
-
onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty
|
|
101
|
-
});
|
|
102
|
-
return text;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* @param prompt
|
|
106
|
-
* @param [options]
|
|
107
|
-
*/
|
|
108
|
-
async promptWithMeta(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
|
|
109
|
-
this._ensureNotDisposed();
|
|
110
|
-
if (!this.initialized)
|
|
111
|
-
await this.init();
|
|
112
|
-
return await withLock(this, "prompt", async () => {
|
|
113
|
-
this._ensureNotDisposed();
|
|
114
|
-
if (this._sequence == null)
|
|
115
|
-
throw new DisposedError();
|
|
116
|
-
let promptText = "";
|
|
117
|
-
if (this._promptIndex == 0 && this._conversationHistoryToLoad != null) {
|
|
118
|
-
const { text, stopString, stopStringSuffix } = generateContextTextFromConversationHistory(this._promptWrapper, this._conversationHistoryToLoad, {
|
|
119
|
-
systemPrompt: this._systemPrompt,
|
|
120
|
-
currentPromptIndex: this._promptIndex,
|
|
121
|
-
lastStopString: this._lastStopString,
|
|
122
|
-
lastStopStringSuffix: this._promptIndex == 0
|
|
123
|
-
? (this._sequence.prependBos
|
|
124
|
-
? this._sequence.context.model.tokens.bosString
|
|
125
|
-
: null)
|
|
126
|
-
: this._lastStopStringSuffix
|
|
127
|
-
});
|
|
128
|
-
promptText += text;
|
|
129
|
-
this._lastStopString = stopString;
|
|
130
|
-
this._lastStopStringSuffix = stopStringSuffix;
|
|
131
|
-
this._promptIndex += this._conversationHistoryToLoad.length;
|
|
132
|
-
this._conversationHistoryToLoad = null;
|
|
133
|
-
}
|
|
134
|
-
promptText += this._promptWrapper.wrapPrompt(prompt, {
|
|
135
|
-
systemPrompt: this._systemPrompt,
|
|
136
|
-
promptIndex: this._promptIndex,
|
|
137
|
-
lastStopString: this._lastStopString,
|
|
138
|
-
lastStopStringSuffix: this._promptIndex == 0
|
|
139
|
-
? (this._sequence.prependBos
|
|
140
|
-
? this._sequence.context.model.tokens.bosString
|
|
141
|
-
: null)
|
|
142
|
-
: this._lastStopStringSuffix
|
|
143
|
-
});
|
|
144
|
-
this._promptIndex++;
|
|
145
|
-
this._lastStopString = null;
|
|
146
|
-
this._lastStopStringSuffix = null;
|
|
147
|
-
const { text, stopReason, stopString, stopStringSuffix } = await this._evalTokens(this._sequence.context.model.tokenize(promptText), {
|
|
148
|
-
onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix,
|
|
149
|
-
repeatPenalty: repeatPenalty == false ? { lastTokens: 0 } : repeatPenalty
|
|
150
|
-
});
|
|
151
|
-
this._lastStopString = stopString;
|
|
152
|
-
this._lastStopStringSuffix = stopStringSuffix;
|
|
153
|
-
return {
|
|
154
|
-
text,
|
|
155
|
-
stopReason,
|
|
156
|
-
stopString,
|
|
157
|
-
stopStringSuffix
|
|
158
|
-
};
|
|
159
|
-
});
|
|
160
|
-
}
|
|
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();
|
|
165
|
-
let stopStrings = this._promptWrapper.getStopStrings();
|
|
166
|
-
if (grammar != null)
|
|
167
|
-
stopStrings = stopStrings.concat(grammar.stopStrings);
|
|
168
|
-
const stopStringIndexes = Array(stopStrings.length).fill(0);
|
|
169
|
-
const skippedChunksQueue = [];
|
|
170
|
-
const res = [];
|
|
171
|
-
const grammarEvaluationState = grammar != null
|
|
172
|
-
? new LlamaGrammarEvaluationState({ grammar })
|
|
173
|
-
: undefined;
|
|
174
|
-
const repeatPenaltyEnabled = repeatPenaltyLastTokens > 0;
|
|
175
|
-
let stopReason = "eosToken";
|
|
176
|
-
const getPenaltyTokens = () => {
|
|
177
|
-
let punishTokens = res.slice(-repeatPenaltyLastTokens);
|
|
178
|
-
if (punishTokensFilter != null)
|
|
179
|
-
punishTokens = punishTokensFilter(punishTokens);
|
|
180
|
-
if (!penalizeNewLine) {
|
|
181
|
-
const nlToken = this.sequence.context.model.tokens.nl;
|
|
182
|
-
if (nlToken != null)
|
|
183
|
-
punishTokens = punishTokens.filter(token => token !== nlToken);
|
|
184
|
-
}
|
|
185
|
-
return Uint32Array.from(punishTokens);
|
|
186
|
-
};
|
|
187
|
-
const evaluationIterator = this._sequence.evaluate(tokens, removeNullFields({
|
|
188
|
-
temperature, topK, topP, grammarEvaluationState,
|
|
189
|
-
repeatPenalty: !repeatPenaltyEnabled ? undefined : {
|
|
190
|
-
punishTokens: getPenaltyTokens,
|
|
191
|
-
penalty,
|
|
192
|
-
frequencyPenalty,
|
|
193
|
-
presencePenalty
|
|
194
|
-
}
|
|
195
|
-
}));
|
|
196
|
-
for await (const chunk of evaluationIterator) {
|
|
197
|
-
if (signal?.aborted)
|
|
198
|
-
throw new AbortError();
|
|
199
|
-
if (this._sequence == null)
|
|
200
|
-
throw new DisposedError();
|
|
201
|
-
const tokenStr = this._sequence.context.model.detokenize([chunk]);
|
|
202
|
-
const { shouldReturn, skipTokenEvent, stopString, stopStringSuffix } = this._checkStopString(tokenStr, stopStrings, stopStringIndexes);
|
|
203
|
-
if (shouldReturn) {
|
|
204
|
-
skippedChunksQueue.push(chunk);
|
|
205
|
-
const skippedChunksText = skippedChunksQueue.length > 0
|
|
206
|
-
? this._sequence.context.model.detokenize(skippedChunksQueue)
|
|
207
|
-
: "";
|
|
208
|
-
let [queuedTextBeforeStopString] = skippedChunksText.split(stopString);
|
|
209
|
-
if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
|
|
210
|
-
queuedTextBeforeStopString = queuedTextBeforeStopString.trimEnd();
|
|
211
|
-
if (queuedTextBeforeStopString.length > 0) {
|
|
212
|
-
const beforeStopStringTokens = Array.from(this._sequence.context.model.tokenize(queuedTextBeforeStopString));
|
|
213
|
-
res.push(...beforeStopStringTokens);
|
|
214
|
-
onToken?.(beforeStopStringTokens);
|
|
215
|
-
skippedChunksQueue.length = 0;
|
|
216
|
-
}
|
|
217
|
-
stopReason = "stopString";
|
|
218
|
-
return {
|
|
219
|
-
text: this._sequence.context.model.detokenize(res),
|
|
220
|
-
stopReason,
|
|
221
|
-
stopString,
|
|
222
|
-
stopStringSuffix
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
// if the token is unknown, it means it's not complete character
|
|
226
|
-
if (tokenStr === UNKNOWN_UNICODE_CHAR || skipTokenEvent || ((grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix) && tokenStr.trim() === "")) {
|
|
227
|
-
skippedChunksQueue.push(chunk);
|
|
228
|
-
continue;
|
|
229
|
-
}
|
|
230
|
-
if (skippedChunksQueue.length > 0) {
|
|
231
|
-
res.push(...skippedChunksQueue);
|
|
232
|
-
onToken?.(skippedChunksQueue);
|
|
233
|
-
skippedChunksQueue.length = 0;
|
|
234
|
-
}
|
|
235
|
-
res.push(chunk);
|
|
236
|
-
onToken?.([chunk]);
|
|
237
|
-
if (maxTokens != null && maxTokens > 0 && res.length >= maxTokens) {
|
|
238
|
-
stopReason = "maxTokens";
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
if (this._sequence == null)
|
|
243
|
-
throw new DisposedError();
|
|
244
|
-
let resText = this._sequence.context.model.detokenize(res);
|
|
245
|
-
if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
|
|
246
|
-
resText = resText.trimEnd();
|
|
247
|
-
return {
|
|
248
|
-
text: resText,
|
|
249
|
-
stopReason,
|
|
250
|
-
stopString: null,
|
|
251
|
-
stopStringSuffix: null
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
/** @internal */
|
|
255
|
-
_checkStopString(tokenStr, stopStrings, stopStringIndexes) {
|
|
256
|
-
let skipTokenEvent = false;
|
|
257
|
-
for (let stopStringIndex = 0; stopStringIndex < stopStrings.length; stopStringIndex++) {
|
|
258
|
-
const stopString = stopStrings[stopStringIndex];
|
|
259
|
-
let localShouldSkipTokenEvent = false;
|
|
260
|
-
let i = 0;
|
|
261
|
-
for (; i < tokenStr.length && stopStringIndexes[stopStringIndex] !== stopString.length; i++) {
|
|
262
|
-
if (tokenStr[i] === stopString[stopStringIndexes[stopStringIndex]]) {
|
|
263
|
-
stopStringIndexes[stopStringIndex]++;
|
|
264
|
-
localShouldSkipTokenEvent = true;
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
stopStringIndexes[stopStringIndex] = 0;
|
|
268
|
-
localShouldSkipTokenEvent = false;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
if (stopStringIndexes[stopStringIndex] === stopString.length) {
|
|
272
|
-
return {
|
|
273
|
-
shouldReturn: true,
|
|
274
|
-
stopString,
|
|
275
|
-
stopStringSuffix: tokenStr.length === i
|
|
276
|
-
? null
|
|
277
|
-
: tokenStr.slice(i)
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
skipTokenEvent ||= localShouldSkipTokenEvent;
|
|
281
|
-
}
|
|
282
|
-
return { skipTokenEvent };
|
|
283
|
-
}
|
|
284
|
-
/** @internal */
|
|
285
|
-
_ensureNotDisposed() {
|
|
286
|
-
if (this._sequence == null)
|
|
287
|
-
throw new DisposedError();
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
//# sourceMappingURL=LlamaChatSession.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.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"}
|