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.
Files changed (152) hide show
  1. package/README.md +2 -0
  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 +4 -4
  27. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +24 -16
  28. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
  29. package/dist/cli/commands/ChatCommand.d.ts +2 -1
  30. package/dist/cli/commands/ChatCommand.js +71 -33
  31. package/dist/cli/commands/ChatCommand.js.map +1 -1
  32. package/dist/config.js +1 -1
  33. package/dist/config.js.map +1 -1
  34. package/dist/index.d.ts +17 -10
  35. package/dist/index.js +16 -8
  36. package/dist/index.js.map +1 -1
  37. package/dist/llamaEvaluator/LlamaBins.d.ts +0 -1
  38. package/dist/llamaEvaluator/LlamaChat/LlamaChat.d.ts +175 -0
  39. package/dist/llamaEvaluator/LlamaChat/LlamaChat.js +704 -0
  40. package/dist/llamaEvaluator/LlamaChat/LlamaChat.js.map +1 -0
  41. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +21 -0
  42. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js +120 -0
  43. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
  44. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +16 -0
  45. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +117 -0
  46. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
  47. package/dist/llamaEvaluator/{LlamaChatSession.d.ts → LlamaChatSession/LlamaChatSession.d.ts} +48 -25
  48. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js +211 -0
  49. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
  50. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +7 -0
  51. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js +8 -0
  52. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
  53. package/dist/llamaEvaluator/LlamaContext/LlamaContext.d.ts +18 -23
  54. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js +60 -103
  55. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +1 -1
  56. package/dist/llamaEvaluator/LlamaContext/types.d.ts +6 -14
  57. package/dist/llamaEvaluator/LlamaEmbeddingContext.d.ts +35 -0
  58. package/dist/llamaEvaluator/LlamaEmbeddingContext.js +73 -0
  59. package/dist/llamaEvaluator/LlamaEmbeddingContext.js.map +1 -0
  60. package/dist/llamaEvaluator/LlamaGrammar.d.ts +8 -12
  61. package/dist/llamaEvaluator/LlamaGrammar.js +7 -12
  62. package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -1
  63. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js +2 -1
  64. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +1 -1
  65. package/dist/llamaEvaluator/LlamaModel.d.ts +10 -2
  66. package/dist/llamaEvaluator/LlamaModel.js +14 -3
  67. package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
  68. package/dist/types.d.ts +41 -3
  69. package/dist/types.js +5 -1
  70. package/dist/types.js.map +1 -1
  71. package/dist/utils/LlamaText.d.ts +42 -0
  72. package/dist/utils/LlamaText.js +207 -0
  73. package/dist/utils/LlamaText.js.map +1 -0
  74. package/dist/utils/StopGenerationDetector.d.ts +28 -0
  75. package/dist/utils/StopGenerationDetector.js +205 -0
  76. package/dist/utils/StopGenerationDetector.js.map +1 -0
  77. package/dist/utils/TokenStreamRegulator.d.ts +30 -0
  78. package/dist/utils/TokenStreamRegulator.js +96 -0
  79. package/dist/utils/TokenStreamRegulator.js.map +1 -0
  80. package/dist/utils/appendUserMessageToChatHistory.d.ts +2 -0
  81. package/dist/utils/appendUserMessageToChatHistory.js +18 -0
  82. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -0
  83. package/dist/utils/compareTokens.d.ts +2 -0
  84. package/dist/utils/compareTokens.js +4 -0
  85. package/dist/utils/compareTokens.js.map +1 -0
  86. package/dist/utils/compileLLamaCpp.js +11 -6
  87. package/dist/utils/compileLLamaCpp.js.map +1 -1
  88. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +18 -0
  89. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +61 -0
  90. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -0
  91. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +1 -0
  92. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +17 -0
  93. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  94. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +1 -1
  95. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  96. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.d.ts +6 -0
  97. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js +21 -0
  98. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -0
  99. package/dist/utils/gbnfJson/types.d.ts +1 -1
  100. package/dist/utils/gbnfJson/types.js.map +1 -1
  101. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +1 -0
  102. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  103. package/dist/utils/getBin.d.ts +3 -2
  104. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +1 -15
  105. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  106. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.d.ts +2 -0
  107. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +49 -0
  108. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -0
  109. package/dist/utils/resolveChatWrapper.d.ts +4 -0
  110. package/dist/utils/resolveChatWrapper.js +16 -0
  111. package/dist/utils/resolveChatWrapper.js.map +1 -0
  112. package/dist/utils/truncateTextAndRoundToWords.d.ts +8 -0
  113. package/dist/utils/truncateTextAndRoundToWords.js +27 -0
  114. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -0
  115. package/llama/addon.cpp +45 -17
  116. package/llama/binariesGithubRelease.json +1 -1
  117. package/llama/gitRelease.bundle +0 -0
  118. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  119. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  120. package/llamaBins/linux-x64/llama-addon.node +0 -0
  121. package/llamaBins/mac-arm64/llama-addon.node +0 -0
  122. package/llamaBins/mac-x64/llama-addon.node +0 -0
  123. package/llamaBins/win-x64/llama-addon.node +0 -0
  124. package/package.json +21 -9
  125. package/dist/ChatPromptWrapper.d.ts +0 -11
  126. package/dist/ChatPromptWrapper.js +0 -20
  127. package/dist/ChatPromptWrapper.js.map +0 -1
  128. package/dist/chatWrappers/ChatMLChatPromptWrapper.d.ts +0 -12
  129. package/dist/chatWrappers/ChatMLChatPromptWrapper.js +0 -22
  130. package/dist/chatWrappers/ChatMLChatPromptWrapper.js.map +0 -1
  131. package/dist/chatWrappers/EmptyChatPromptWrapper.d.ts +0 -4
  132. package/dist/chatWrappers/EmptyChatPromptWrapper.js +0 -5
  133. package/dist/chatWrappers/EmptyChatPromptWrapper.js.map +0 -1
  134. package/dist/chatWrappers/FalconChatPromptWrapper.d.ts +0 -19
  135. package/dist/chatWrappers/FalconChatPromptWrapper.js +0 -33
  136. package/dist/chatWrappers/FalconChatPromptWrapper.js.map +0 -1
  137. package/dist/chatWrappers/GeneralChatPromptWrapper.d.ts +0 -19
  138. package/dist/chatWrappers/GeneralChatPromptWrapper.js +0 -38
  139. package/dist/chatWrappers/GeneralChatPromptWrapper.js.map +0 -1
  140. package/dist/chatWrappers/LlamaChatPromptWrapper.d.ts +0 -12
  141. package/dist/chatWrappers/LlamaChatPromptWrapper.js +0 -23
  142. package/dist/chatWrappers/LlamaChatPromptWrapper.js.map +0 -1
  143. package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -15
  144. package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -39
  145. package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +0 -1
  146. package/dist/llamaEvaluator/LlamaChatSession.js +0 -290
  147. package/dist/llamaEvaluator/LlamaChatSession.js.map +0 -1
  148. package/dist/utils/getTextCompletion.d.ts +0 -3
  149. package/dist/utils/getTextCompletion.js +0 -12
  150. package/dist/utils/getTextCompletion.js.map +0 -1
  151. package/llamaBins/mac-arm64/ggml-metal.metal +0 -2929
  152. package/llamaBins/mac-x64/ggml-metal.metal +0 -2929
package/README.md CHANGED
@@ -15,6 +15,8 @@
15
15
 
16
16
  </div>
17
17
 
18
+ ✨ New! [Try the beta of version `3.0.0`](https://github.com/withcatai/node-llama-cpp/pull/105) ✨
19
+
18
20
  ## Features
19
21
  * Run a text generation model locally on your machine
20
22
  * Metal and CUDA support
@@ -0,0 +1,49 @@
1
+ import { ChatHistoryItem, ChatModelFunctions, ChatModelResponse } from "./types.js";
2
+ import { LlamaText } from "./utils/LlamaText.js";
3
+ export type ChatWrapperSettings = {
4
+ readonly functions: {
5
+ readonly call: {
6
+ readonly optionalPrefixSpace: boolean;
7
+ readonly prefix: string;
8
+ readonly paramsPrefix: string;
9
+ readonly suffix: string;
10
+ };
11
+ readonly result: {
12
+ readonly prefix: string;
13
+ readonly suffix: string;
14
+ };
15
+ };
16
+ };
17
+ export declare abstract class ChatWrapper {
18
+ abstract readonly wrapperName: string;
19
+ readonly settings: ChatWrapperSettings;
20
+ generateContextText(history: readonly ChatHistoryItem[], { availableFunctions, documentFunctionParams }?: {
21
+ availableFunctions?: ChatModelFunctions;
22
+ documentFunctionParams?: boolean;
23
+ }): {
24
+ contextText: LlamaText;
25
+ stopGenerationTriggers: LlamaText[];
26
+ ignoreStartText?: LlamaText[];
27
+ functionCall?: {
28
+ initiallyEngaged: boolean;
29
+ disengageInitiallyEngaged: LlamaText[];
30
+ };
31
+ };
32
+ generateFunctionCallAndResult(name: string, params: any, result: any): string;
33
+ generateFunctionCall(name: string, params: any): string;
34
+ generateFunctionCallResult(functionName: string, functionParams: any, result: any): string;
35
+ generateModelResponseText(modelResponse: ChatModelResponse["response"]): string;
36
+ generateAvailableFunctionsSystemText(availableFunctions: ChatModelFunctions, { documentParams }: {
37
+ documentParams?: boolean;
38
+ }): string;
39
+ addAvailableFunctionsSystemMessageToHistory(history: readonly ChatHistoryItem[], availableFunctions?: ChatModelFunctions, { documentParams }?: {
40
+ documentParams?: boolean;
41
+ }): readonly ChatHistoryItem[];
42
+ /**
43
+ * Functions that should be made available as part of the function calling grammar and are handled by the chat wrapper
44
+ * for grammar purposes only
45
+ */
46
+ getInternalBuiltinFunctions({ initialFunctionCallEngaged }: {
47
+ initialFunctionCallEngaged: boolean;
48
+ }): ChatModelFunctions;
49
+ }
@@ -0,0 +1,120 @@
1
+ import { LlamaText } from "./utils/LlamaText.js";
2
+ import { getTypeScriptTypeStringForGbnfJsonSchema } from "./utils/getTypeScriptTypeStringForGbnfJsonSchema.js";
3
+ export class ChatWrapper {
4
+ settings = {
5
+ functions: {
6
+ call: {
7
+ optionalPrefixSpace: true,
8
+ prefix: "[[call: ",
9
+ paramsPrefix: "(",
10
+ suffix: ")]]"
11
+ },
12
+ result: {
13
+ prefix: " [[result: ",
14
+ suffix: "]]"
15
+ }
16
+ }
17
+ };
18
+ generateContextText(history, { availableFunctions, documentFunctionParams } = {}) {
19
+ const historyWithFunctions = this.addAvailableFunctionsSystemMessageToHistory(history, availableFunctions, {
20
+ documentParams: documentFunctionParams
21
+ });
22
+ const texts = historyWithFunctions
23
+ .map((item) => {
24
+ if (item.type === "system")
25
+ return LlamaText `system: ${item.text}`;
26
+ else if (item.type === "user")
27
+ return LlamaText `user: ${item.text}`;
28
+ else if (item.type === "model")
29
+ return LlamaText `model: ${this.generateModelResponseText(item.response)}`;
30
+ return item;
31
+ });
32
+ return {
33
+ contextText: LlamaText(texts).joinValues("\n"),
34
+ stopGenerationTriggers: []
35
+ };
36
+ }
37
+ generateFunctionCallAndResult(name, params, result) {
38
+ return this.generateFunctionCall(name, params) + this.generateFunctionCallResult(name, params, result);
39
+ }
40
+ generateFunctionCall(name, params) {
41
+ return this.settings.functions.call.prefix +
42
+ name +
43
+ this.settings.functions.call.paramsPrefix +
44
+ (params === undefined
45
+ ? ""
46
+ : JSON.stringify(params)) +
47
+ this.settings.functions.call.suffix;
48
+ }
49
+ generateFunctionCallResult(functionName, functionParams, result) {
50
+ const resolveParameters = (text) => text.replaceAll("{{functionName}}", functionName)
51
+ .replaceAll("{{functionParams}}", functionParams === undefined ? "" : JSON.stringify(functionParams));
52
+ return resolveParameters(this.settings.functions.result.prefix) +
53
+ (result === undefined
54
+ ? "void"
55
+ : JSON.stringify(result)) +
56
+ resolveParameters(this.settings.functions.result.suffix);
57
+ }
58
+ generateModelResponseText(modelResponse) {
59
+ return modelResponse
60
+ .map((item) => {
61
+ if (typeof item === "string")
62
+ return item;
63
+ return item.raw ?? this.generateFunctionCallAndResult(item.name, item.params, item.result);
64
+ })
65
+ .join("\n");
66
+ }
67
+ generateAvailableFunctionsSystemText(availableFunctions, { documentParams = true }) {
68
+ const availableFunctionNames = Object.keys(availableFunctions ?? {});
69
+ if (availableFunctionNames.length === 0)
70
+ return "";
71
+ return "The assistant calls the provided functions as needed to retrieve information instead of relying on things it already knows.\n" +
72
+ "Provided functions:\n```\n" +
73
+ availableFunctionNames
74
+ .map((functionName) => {
75
+ const functionDefinition = availableFunctions[functionName];
76
+ let res = "";
77
+ if (functionDefinition?.description != null && functionDefinition.description.trim() !== "")
78
+ res += "// " + functionDefinition.description.split("\n").join("\n// ") + "\n";
79
+ res += "function " + functionName + "(";
80
+ if (documentParams && functionDefinition?.params != null)
81
+ res += "params: " + getTypeScriptTypeStringForGbnfJsonSchema(functionDefinition.params);
82
+ else if (!documentParams && functionDefinition?.params != null)
83
+ res += "params";
84
+ res += ");";
85
+ return res;
86
+ })
87
+ .join("\n\n") +
88
+ "\n```\n\n" +
89
+ "Calling any of the provided functions can be done like this:\n" +
90
+ this.settings.functions.call.prefix.trimStart() +
91
+ "functionName" +
92
+ this.settings.functions.call.paramsPrefix +
93
+ '{ someKey: "someValue" }' +
94
+ this.settings.functions.call.suffix + "\n\n" +
95
+ "After calling a function the result will appear afterwards and be visible only to the assistant, so the assistant has to tell the user about it outside of the function call context.\n" +
96
+ "The assistant calls the functions in advance before telling the user about the result";
97
+ }
98
+ addAvailableFunctionsSystemMessageToHistory(history, availableFunctions, { documentParams = true } = {}) {
99
+ const availableFunctionNames = Object.keys(availableFunctions ?? {});
100
+ if (availableFunctions == null || availableFunctionNames.length === 0)
101
+ return history;
102
+ const res = history.slice();
103
+ const firstNonSystemMessageIndex = res.findIndex((item) => item.type !== "system");
104
+ res.splice(Math.max(0, firstNonSystemMessageIndex), 0, {
105
+ type: "system",
106
+ text: this.generateAvailableFunctionsSystemText(availableFunctions, { documentParams })
107
+ });
108
+ return res;
109
+ }
110
+ /**
111
+ * Functions that should be made available as part of the function calling grammar and are handled by the chat wrapper
112
+ * for grammar purposes only
113
+ */
114
+ getInternalBuiltinFunctions({ initialFunctionCallEngaged }) {
115
+ if (initialFunctionCallEngaged)
116
+ return {};
117
+ return {};
118
+ }
119
+ }
120
+ //# sourceMappingURL=ChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWrapper.js","sourceRoot":"","sources":["../src/ChatWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,wCAAwC,EAAC,MAAM,qDAAqD,CAAC;AAiB7G,MAAM,OAAgB,WAAW;IAGb,QAAQ,GAAwB;QAC5C,SAAS,EAAE;YACP,IAAI,EAAE;gBACF,mBAAmB,EAAE,IAAI;gBACzB,MAAM,EAAE,UAAU;gBAClB,YAAY,EAAE,GAAG;gBACjB,MAAM,EAAE,KAAK;aAChB;YACD,MAAM,EAAE;gBACJ,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI;aACf;SACJ;KACJ,CAAC;IAEK,mBAAmB,CAAC,OAAmC,EAAE,EAAC,kBAAkB,EAAE,sBAAsB,KAGvG,EAAE;QASF,MAAM,oBAAoB,GAAG,IAAI,CAAC,2CAA2C,CAAC,OAAO,EAAE,kBAAkB,EAAE;YACvG,cAAc,EAAE,sBAAsB;SACzC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,oBAAoB;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACV,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACtB,OAAO,SAAS,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;iBACvC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBACzB,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;iBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAC1B,OAAO,SAAS,CAAC,UAAU,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE/E,OAAO,IAAoB,CAAC;QAChC,CAAC,CAAC,CAAC;QAEP,OAAO;YACH,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9C,sBAAsB,EAAE,EAAE;SAC7B,CAAC;IACN,CAAC;IAEM,6BAA6B,CAAC,IAAY,EAAE,MAAW,EAAE,MAAW;QACvE,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3G,CAAC;IAEM,oBAAoB,CAAC,IAAY,EAAE,MAAW;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;YACtC,IAAI;YACJ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY;YACzC,CACI,MAAM,KAAK,SAAS;gBAChB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAC/B;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5C,CAAC;IAEM,0BAA0B,CAAC,YAAoB,EAAE,cAAmB,EAAE,MAAW;QACpF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CACvC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC;aAC5C,UAAU,CAAC,oBAAoB,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAE9G,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3D,CACI,MAAM,KAAK,SAAS;gBAChB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAC/B;YACD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAEM,yBAAyB,CAAC,aAA4C;QACzE,OAAO,aAAa;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACV,IAAI,OAAO,IAAI,KAAK,QAAQ;gBACxB,OAAO,IAAI,CAAC;YAEhB,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAEM,oCAAoC,CAAC,kBAAsC,EAAE,EAAC,cAAc,GAAG,IAAI,EAEzG;QACG,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC;YACnC,OAAO,EAAE,CAAC;QAEd,OAAO,+HAA+H;YAClI,4BAA4B;YAC5B,sBAAsB;iBACjB,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;gBAClB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAC5D,IAAI,GAAG,GAAG,EAAE,CAAC;gBAEb,IAAI,kBAAkB,EAAE,WAAW,IAAI,IAAI,IAAI,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;oBACvF,GAAG,IAAI,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;gBAEnF,GAAG,IAAI,WAAW,GAAG,YAAY,GAAG,GAAG,CAAC;gBAExC,IAAI,cAAc,IAAI,kBAAkB,EAAE,MAAM,IAAI,IAAI;oBACpD,GAAG,IAAI,UAAU,GAAG,wCAAwC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;qBACvF,IAAI,CAAC,cAAc,IAAI,kBAAkB,EAAE,MAAM,IAAI,IAAI;oBAC1D,GAAG,IAAI,QAAQ,CAAC;gBAEpB,GAAG,IAAI,IAAI,CAAC;gBAEZ,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC;YACjB,WAAW;YAEX,gEAAgE;YAChE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/C,cAAc;YACd,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY;YACzC,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM;YAE5C,yLAAyL;YACzL,uFAAuF,CAAC;IAChG,CAAC;IAEM,2CAA2C,CAAC,OAAmC,EAAE,kBAAuC,EAAE,EAC7H,cAAc,GAAG,IAAI,KAGrB,EAAE;QACF,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,kBAAkB,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC;YACjE,OAAO,OAAO,CAAC;QAEnB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,0BAA0B,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACnF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC,EAAE,CAAC,EAAE;YACnD,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,oCAAoC,CAAC,kBAAkB,EAAE,EAAC,cAAc,EAAC,CAAC;SACxF,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,2BAA2B,CAAC,EAAC,0BAA0B,EAAwC;QAClG,IAAI,0BAA0B;YAC1B,OAAO,EAAE,CAAC;QAEd,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"}
@@ -0,0 +1,12 @@
1
+ import { GeneralChatWrapper } from "./GeneralChatWrapper.js";
2
+ export declare class AlpacaChatWrapper extends GeneralChatWrapper {
3
+ readonly wrapperName: string;
4
+ constructor({ userMessageTitle, modelResponseTitle, middleSystemMessageTitle }?: {
5
+ userMessageTitle?: string;
6
+ modelResponseTitle?: string;
7
+ middleSystemMessageTitle?: string;
8
+ });
9
+ get userMessageTitle(): string;
10
+ get modelResponseTitle(): string;
11
+ get middleSystemMessageTitle(): string;
12
+ }
@@ -0,0 +1,21 @@
1
+ import { GeneralChatWrapper } from "./GeneralChatWrapper.js";
2
+ export class AlpacaChatWrapper extends GeneralChatWrapper {
3
+ wrapperName = "AlpacaChat";
4
+ constructor({ userMessageTitle = "Instruction", modelResponseTitle = "Response", middleSystemMessageTitle = "System" } = {}) {
5
+ super({
6
+ userMessageTitle: userMessageTitle + ":",
7
+ modelResponseTitle: modelResponseTitle + ":",
8
+ middleSystemMessageTitle: middleSystemMessageTitle + ":"
9
+ });
10
+ }
11
+ get userMessageTitle() {
12
+ return super.userMessageTitle.slice(0, -1);
13
+ }
14
+ get modelResponseTitle() {
15
+ return super.modelResponseTitle.slice(0, -1);
16
+ }
17
+ get middleSystemMessageTitle() {
18
+ return super.middleSystemMessageTitle.slice(0, -1);
19
+ }
20
+ }
21
+ //# sourceMappingURL=AlpacaChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlpacaChatWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/AlpacaChatWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IAC5B,WAAW,GAAW,YAAY,CAAC;IAE5D,YAAmB,EACf,gBAAgB,GAAG,aAAa,EAAE,kBAAkB,GAAG,UAAU,EAAE,wBAAwB,GAAG,QAAQ,KAGtG,EAAE;QACF,KAAK,CAAC;YACF,gBAAgB,EAAE,gBAAgB,GAAG,GAAG;YACxC,kBAAkB,EAAE,kBAAkB,GAAG,GAAG;YAC5C,wBAAwB,EAAE,wBAAwB,GAAG,GAAG;SAC3D,CAAC,CAAC;IACP,CAAC;IAED,IAAoB,gBAAgB;QAChC,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAoB,kBAAkB;QAClC,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAoB,wBAAwB;QACxC,OAAO,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { ChatHistoryItem, ChatModelFunctions } from "../types.js";
3
+ import { LlamaText } from "../utils/LlamaText.js";
4
+ export declare class ChatMLChatWrapper extends ChatWrapper {
5
+ readonly wrapperName: string;
6
+ generateContextText(history: readonly ChatHistoryItem[], { availableFunctions, documentFunctionParams }?: {
7
+ availableFunctions?: ChatModelFunctions;
8
+ documentFunctionParams?: boolean;
9
+ }): {
10
+ contextText: LlamaText;
11
+ stopGenerationTriggers: LlamaText[];
12
+ };
13
+ }
@@ -0,0 +1,83 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { BuiltinSpecialToken, LlamaText, SpecialToken } from "../utils/LlamaText.js";
3
+ // source: https://github.com/openai/openai-python/blob/120d225b91a8453e15240a49fb1c6794d8119326/chatml.md
4
+ export class ChatMLChatWrapper extends ChatWrapper {
5
+ wrapperName = "ChatML";
6
+ generateContextText(history, { availableFunctions, documentFunctionParams } = {}) {
7
+ const historyWithFunctions = this.addAvailableFunctionsSystemMessageToHistory(history, availableFunctions, {
8
+ documentParams: documentFunctionParams
9
+ });
10
+ const resultItems = [];
11
+ let systemTexts = [];
12
+ let userTexts = [];
13
+ let modelTexts = [];
14
+ let currentAggregateFocus = null;
15
+ function flush() {
16
+ if (systemTexts.length > 0 || userTexts.length > 0 || modelTexts.length > 0)
17
+ resultItems.push({
18
+ system: systemTexts.join("\n\n"),
19
+ user: userTexts.join("\n\n"),
20
+ model: modelTexts.join("\n\n")
21
+ });
22
+ systemTexts = [];
23
+ userTexts = [];
24
+ modelTexts = [];
25
+ }
26
+ for (const item of historyWithFunctions) {
27
+ if (item.type === "system") {
28
+ if (currentAggregateFocus !== "system")
29
+ flush();
30
+ currentAggregateFocus = "system";
31
+ systemTexts.push(item.text);
32
+ }
33
+ else if (item.type === "user") {
34
+ flush();
35
+ currentAggregateFocus = null;
36
+ userTexts.push(item.text);
37
+ }
38
+ else if (item.type === "model") {
39
+ flush();
40
+ currentAggregateFocus = null;
41
+ modelTexts.push(this.generateModelResponseText(item.response));
42
+ }
43
+ }
44
+ flush();
45
+ const contextText = LlamaText(resultItems.map(({ system, user, model }, index) => {
46
+ const isLastItem = index === resultItems.length - 1;
47
+ return LlamaText([
48
+ (system.length === 0)
49
+ ? LlamaText([])
50
+ : LlamaText([
51
+ new SpecialToken("<|im_start|>system\n"),
52
+ system,
53
+ new SpecialToken("<|im_end|>\n")
54
+ ]),
55
+ (user.length === 0)
56
+ ? LlamaText([])
57
+ : LlamaText([
58
+ new SpecialToken("<|im_start|>user\n"),
59
+ user,
60
+ new SpecialToken("<|im_end|>\n")
61
+ ]),
62
+ (model.length === 0 && !isLastItem)
63
+ ? LlamaText([])
64
+ : LlamaText([
65
+ new SpecialToken("<|im_start|>assistant\n"),
66
+ user,
67
+ isLastItem
68
+ ? LlamaText([])
69
+ : new SpecialToken("<|im_end|>\n")
70
+ ])
71
+ ]);
72
+ }));
73
+ return {
74
+ contextText,
75
+ stopGenerationTriggers: [
76
+ LlamaText(new BuiltinSpecialToken("EOS")),
77
+ LlamaText(new SpecialToken("<|im_end|>")),
78
+ LlamaText("<|im_end|>")
79
+ ]
80
+ };
81
+ }
82
+ }
83
+ //# sourceMappingURL=ChatMLChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMLChatWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/ChatMLChatWrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ export declare class EmptyChatWrapper extends ChatWrapper {
3
+ readonly wrapperName: string;
4
+ }
@@ -0,0 +1,5 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ export class EmptyChatWrapper extends ChatWrapper {
3
+ wrapperName = "Empty";
4
+ }
5
+ //# sourceMappingURL=EmptyChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyChatWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/EmptyChatWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC7B,WAAW,GAAW,OAAO,CAAC;CACjD"}
@@ -0,0 +1,21 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { ChatHistoryItem, ChatModelFunctions } from "../types.js";
3
+ import { LlamaText } from "../utils/LlamaText.js";
4
+ export declare class FalconChatWrapper extends ChatWrapper {
5
+ readonly wrapperName: string;
6
+ constructor({ userMessageTitle, modelResponseTitle, middleSystemMessageTitle }?: {
7
+ userMessageTitle?: string;
8
+ modelResponseTitle?: string;
9
+ middleSystemMessageTitle?: string;
10
+ });
11
+ get userMessageTitle(): string;
12
+ get modelResponseTitle(): string;
13
+ get middleSystemMessageTitle(): string;
14
+ generateContextText(history: readonly ChatHistoryItem[], { availableFunctions, documentFunctionParams }?: {
15
+ availableFunctions?: ChatModelFunctions;
16
+ documentFunctionParams?: boolean;
17
+ }): {
18
+ contextText: LlamaText;
19
+ stopGenerationTriggers: LlamaText[];
20
+ };
21
+ }
@@ -0,0 +1,104 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { LlamaText, BuiltinSpecialToken } from "../utils/LlamaText.js";
3
+ export class FalconChatWrapper extends ChatWrapper {
4
+ wrapperName = "Falcon";
5
+ /** @internal */ _userMessageTitle;
6
+ /** @internal */ _modelResponseTitle;
7
+ /** @internal */ _middleSystemMessageTitle;
8
+ constructor({ userMessageTitle = "User", modelResponseTitle = "Assistant", middleSystemMessageTitle = "System" } = {}) {
9
+ super();
10
+ this._userMessageTitle = userMessageTitle;
11
+ this._modelResponseTitle = modelResponseTitle;
12
+ this._middleSystemMessageTitle = middleSystemMessageTitle;
13
+ }
14
+ get userMessageTitle() {
15
+ return this._userMessageTitle;
16
+ }
17
+ get modelResponseTitle() {
18
+ return this._modelResponseTitle;
19
+ }
20
+ get middleSystemMessageTitle() {
21
+ return this._middleSystemMessageTitle;
22
+ }
23
+ generateContextText(history, { availableFunctions, documentFunctionParams } = {}) {
24
+ const historyWithFunctions = this.addAvailableFunctionsSystemMessageToHistory(history, availableFunctions, {
25
+ documentParams: documentFunctionParams
26
+ });
27
+ const resultItems = [];
28
+ let systemTexts = [];
29
+ let userTexts = [];
30
+ let modelTexts = [];
31
+ let currentAggregateFocus = null;
32
+ function flush() {
33
+ if (systemTexts.length > 0 || userTexts.length > 0 || modelTexts.length > 0)
34
+ resultItems.push({
35
+ system: systemTexts.join("\n\n"),
36
+ user: userTexts.join("\n\n"),
37
+ model: modelTexts.join("\n\n")
38
+ });
39
+ systemTexts = [];
40
+ userTexts = [];
41
+ modelTexts = [];
42
+ }
43
+ for (const item of historyWithFunctions) {
44
+ if (item.type === "system") {
45
+ if (currentAggregateFocus !== "system")
46
+ flush();
47
+ currentAggregateFocus = "system";
48
+ systemTexts.push(item.text);
49
+ }
50
+ else if (item.type === "user") {
51
+ flush();
52
+ currentAggregateFocus = null;
53
+ userTexts.push(item.text);
54
+ }
55
+ else if (item.type === "model") {
56
+ flush();
57
+ currentAggregateFocus = null;
58
+ modelTexts.push(this.generateModelResponseText(item.response));
59
+ }
60
+ }
61
+ flush();
62
+ const contextText = LlamaText(new BuiltinSpecialToken("BOS"), resultItems.map(({ system, user, model }, index) => {
63
+ const isFirstItem = index === 0;
64
+ const isLastItem = index === resultItems.length - 1;
65
+ return LlamaText([
66
+ (system.length === 0)
67
+ ? LlamaText([])
68
+ : LlamaText([
69
+ isFirstItem
70
+ ? LlamaText([])
71
+ : `${this._middleSystemMessageTitle}: `,
72
+ system,
73
+ "\n\n"
74
+ ]),
75
+ (user.length === 0)
76
+ ? LlamaText([])
77
+ : LlamaText([
78
+ `${this._userMessageTitle}: `,
79
+ user,
80
+ "\n\n"
81
+ ]),
82
+ (model.length === 0 && !isLastItem)
83
+ ? LlamaText([])
84
+ : LlamaText([
85
+ `${this._modelResponseTitle}: `,
86
+ model,
87
+ isLastItem
88
+ ? LlamaText([])
89
+ : "\n\n"
90
+ ])
91
+ ]);
92
+ }));
93
+ return {
94
+ contextText,
95
+ stopGenerationTriggers: [
96
+ LlamaText(new BuiltinSpecialToken("EOS")),
97
+ LlamaText(`\n${this._userMessageTitle}:`),
98
+ LlamaText(`\n${this._modelResponseTitle}:`),
99
+ LlamaText(`\n${this._middleSystemMessageTitle}:`)
100
+ ]
101
+ };
102
+ }
103
+ }
104
+ //# sourceMappingURL=FalconChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FalconChatWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/FalconChatWrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { ChatHistoryItem, ChatModelFunctions } from "../types.js";
3
+ import { LlamaText } from "../utils/LlamaText.js";
4
+ export declare class FunctionaryChatWrapper extends ChatWrapper {
5
+ readonly wrapperName: string;
6
+ readonly settings: {
7
+ functions: {
8
+ call: {
9
+ optionalPrefixSpace: boolean;
10
+ prefix: string;
11
+ paramsPrefix: string;
12
+ suffix: string;
13
+ };
14
+ result: {
15
+ prefix: string;
16
+ suffix: string;
17
+ };
18
+ };
19
+ };
20
+ generateContextText(history: readonly ChatHistoryItem[], { availableFunctions, documentFunctionParams }?: {
21
+ availableFunctions?: ChatModelFunctions;
22
+ documentFunctionParams?: boolean;
23
+ }): {
24
+ contextText: LlamaText;
25
+ stopGenerationTriggers: LlamaText[];
26
+ ignoreStartText?: LlamaText[];
27
+ functionCall?: {
28
+ initiallyEngaged: boolean;
29
+ disengageInitiallyEngaged: LlamaText[];
30
+ };
31
+ };
32
+ generateAvailableFunctionsSystemText(availableFunctions: ChatModelFunctions, { documentParams }: {
33
+ documentParams?: boolean;
34
+ }): string;
35
+ addAvailableFunctionsSystemMessageToHistory(history: readonly ChatHistoryItem[], availableFunctions?: ChatModelFunctions, { documentParams }?: {
36
+ documentParams?: boolean;
37
+ }): readonly ChatHistoryItem[];
38
+ getInternalBuiltinFunctions({ initialFunctionCallEngaged }: {
39
+ initialFunctionCallEngaged: boolean;
40
+ }): ChatModelFunctions;
41
+ }