node-llama-cpp 3.0.0-beta.11 → 3.0.0-beta.13
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 +4 -4
- package/dist/ChatWrapper.d.ts +1 -0
- package/dist/ChatWrapper.js +2 -1
- package/dist/ChatWrapper.js.map +1 -1
- package/dist/TemplateChatWrapper.d.ts +67 -0
- package/dist/TemplateChatWrapper.js +239 -0
- package/dist/TemplateChatWrapper.js.map +1 -0
- package/dist/bindings/AddonTypes.d.ts +2 -0
- package/dist/bindings/Llama.d.ts +1 -2
- package/dist/bindings/Llama.js +10 -14
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/consts.d.ts +2 -0
- package/dist/bindings/consts.js +11 -0
- package/dist/bindings/consts.js.map +1 -0
- package/dist/bindings/getLlama.d.ts +14 -12
- package/dist/bindings/getLlama.js +210 -75
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/types.d.ts +8 -4
- package/dist/bindings/types.js +18 -0
- package/dist/bindings/types.js.map +1 -1
- package/dist/bindings/utils/asyncEvery.d.ts +5 -0
- package/dist/bindings/utils/asyncEvery.js +15 -0
- package/dist/bindings/utils/asyncEvery.js.map +1 -0
- package/dist/bindings/utils/asyncSome.d.ts +5 -0
- package/dist/bindings/utils/asyncSome.js +27 -0
- package/dist/bindings/utils/asyncSome.js.map +1 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.js +13 -3
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.js +31 -3
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +11 -0
- package/dist/bindings/utils/detectAvailableComputeLayers.js +158 -0
- package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -0
- package/dist/bindings/utils/detectGlibc.d.ts +4 -0
- package/dist/bindings/utils/detectGlibc.js +36 -0
- package/dist/bindings/utils/detectGlibc.js.map +1 -0
- package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +9 -0
- package/dist/bindings/utils/getBestComputeLayersAvailable.js +29 -0
- package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +12 -4
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -1
- package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +11 -0
- package/dist/bindings/utils/getGpuTypesToUseForOption.js +30 -0
- package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -0
- package/dist/bindings/utils/getLinuxDistroInfo.d.ts +9 -0
- package/dist/bindings/utils/getLinuxDistroInfo.js +46 -0
- package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -0
- package/dist/bindings/utils/getPlatformInfo.d.ts +5 -0
- package/dist/bindings/utils/getPlatformInfo.js +28 -0
- package/dist/bindings/utils/getPlatformInfo.js.map +1 -0
- package/dist/bindings/utils/hasFileInPath.d.ts +2 -0
- package/dist/bindings/utils/hasFileInPath.js +34 -0
- package/dist/bindings/utils/hasFileInPath.js.map +1 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +1 -1
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +3 -9
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -1
- package/dist/bindings/utils/logDistroInstallInstruction.d.ts +13 -0
- package/dist/bindings/utils/logDistroInstallInstruction.js +38 -0
- package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -0
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +9 -2
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +10 -4
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +1 -1
- package/dist/bindings/utils/resolveCustomCmakeOptions.js +2 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -1
- package/dist/bindings/utils/testBindingBinary.d.ts +1 -0
- package/dist/bindings/utils/testBindingBinary.js +98 -0
- package/dist/bindings/utils/testBindingBinary.js.map +1 -0
- package/dist/chatWrappers/ChatMLChatWrapper.js +1 -1
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GemmaChatWrapper.d.ts +18 -0
- package/dist/chatWrappers/GemmaChatWrapper.js +86 -0
- package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +3 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
- package/dist/cli/cli.js +2 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/BuildCommand.d.ts +5 -4
- package/dist/cli/commands/BuildCommand.js +78 -58
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/DebugCommand.js +12 -15
- package/dist/cli/commands/DebugCommand.js.map +1 -1
- package/dist/cli/commands/DownloadCommand.d.ts +5 -4
- package/dist/cli/commands/DownloadCommand.js +97 -54
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/InspectCommand.d.ts +7 -0
- package/dist/cli/commands/InspectCommand.js +113 -0
- package/dist/cli/commands/InspectCommand.js.map +1 -0
- package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
- package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
- package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
- package/dist/config.d.ts +3 -2
- package/dist/config.js +12 -10
- package/dist/config.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +3 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +3 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
- package/dist/gguf/GGUFInsights.d.ts +28 -0
- package/dist/gguf/GGUFInsights.js +58 -0
- package/dist/gguf/GGUFInsights.js.map +1 -0
- package/dist/gguf/GGUFMetadata.d.ts +19 -0
- package/dist/gguf/GGUFMetadata.js +38 -0
- package/dist/gguf/GGUFMetadata.js.map +1 -0
- package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +3 -0
- package/dist/gguf/errors/InvalidGGUFMagicError.js +6 -0
- package/dist/gguf/errors/InvalidGGUFMagicError.js.map +1 -0
- package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +3 -0
- package/dist/gguf/errors/MetadataNotParsedYetError.js +6 -0
- package/dist/gguf/errors/MetadataNotParsedYetError.js.map +1 -0
- package/dist/gguf/errors/MissingNodeLlamaError.d.ts +3 -0
- package/dist/gguf/errors/MissingNodeLlamaError.js +6 -0
- package/dist/gguf/errors/MissingNodeLlamaError.js.map +1 -0
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +5 -0
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +12 -0
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +1 -0
- package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +4 -0
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js +8 -0
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +1 -0
- package/dist/gguf/ggufParser/GGUFParser.d.ts +18 -0
- package/dist/gguf/ggufParser/GGUFParser.js +123 -0
- package/dist/gguf/ggufParser/GGUFParser.js.map +1 -0
- package/dist/gguf/ggufParser/GGUFTypes.d.ts +257 -0
- package/dist/gguf/ggufParser/GGUFTypes.js +2 -0
- package/dist/gguf/ggufParser/GGUFTypes.js.map +1 -0
- package/dist/gguf/ggufParser/checkArchitecture.d.ts +14 -0
- package/dist/gguf/ggufParser/checkArchitecture.js +74 -0
- package/dist/gguf/ggufParser/checkArchitecture.js.map +1 -0
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +38 -0
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +83 -0
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +1 -0
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +14 -0
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +35 -0
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +1 -0
- package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +15 -0
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js +40 -0
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/LlamaText.js +2 -2
- package/dist/utils/LlamaText.js.map +1 -1
- package/dist/utils/cmake.js +23 -10
- package/dist/utils/cmake.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNull.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNull.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumber.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
- package/dist/utils/getBuildDefaults.d.ts +1 -2
- package/dist/utils/getBuildDefaults.js +2 -3
- package/dist/utils/getBuildDefaults.js.map +1 -1
- package/dist/utils/getConsoleLogPrefix.d.ts +1 -1
- package/dist/utils/getConsoleLogPrefix.js +2 -2
- package/dist/utils/getConsoleLogPrefix.js.map +1 -1
- package/dist/utils/mergeUnionTypes.d.ts +6 -0
- package/dist/utils/mergeUnionTypes.js +2 -0
- package/dist/utils/mergeUnionTypes.js.map +1 -0
- package/dist/utils/parseTextTemplate.d.ts +66 -0
- package/dist/utils/parseTextTemplate.js +116 -0
- package/dist/utils/parseTextTemplate.js.map +1 -0
- package/llama/CMakeLists.txt +30 -4
- package/llama/addon.cpp +62 -7
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/gpuInfo/cuda-gpu-info.cu +5 -5
- package/llama/gpuInfo/cuda-gpu-info.h +2 -2
- package/llama/gpuInfo/vulkan-gpu-info.cpp +65 -0
- package/llama/gpuInfo/vulkan-gpu-info.h +7 -0
- package/llama/llama.cpp.info.json +1 -1
- package/llamaBins/linux-arm64/.buildMetadata.json +1 -1
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/.buildMetadata.json +1 -1
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/.buildMetadata.json +1 -1
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -1
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/linux-x64-vulkan/.buildMetadata.json +1 -0
- package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
- package/llamaBins/mac-arm64-metal/.buildMetadata.json +1 -1
- package/llamaBins/mac-arm64-metal/ggml-metal.metal +1382 -142
- package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
- package/llamaBins/mac-x64/.buildMetadata.json +1 -1
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/.buildMetadata.json +1 -1
- package/llamaBins/win-x64/llama-addon.exp +0 -0
- package/llamaBins/win-x64/llama-addon.lib +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/.buildMetadata.json +1 -1
- package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/win-x64-vulkan/.buildMetadata.json +1 -0
- package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
- package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
- package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img alt="node-llama-cpp Logo" src="https://
|
|
2
|
+
<img alt="node-llama-cpp Logo" src="https://raw.githubusercontent.com/withcatai/node-llama-cpp/master/assets/logo.roundEdges.png" width="360px" />
|
|
3
3
|
<h1>node-llama-cpp</h1>
|
|
4
4
|
<p>Run AI models locally on your machine</p>
|
|
5
5
|
<sub>Pre-built bindings are provided with a fallback to building from source with cmake</sub>
|
|
@@ -15,11 +15,11 @@
|
|
|
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) ✨ (included: function calling, automatic chat wrapper detection, and more)
|
|
18
|
+
✨ New! [Try the beta of version `3.0.0`](https://github.com/withcatai/node-llama-cpp/pull/105) ✨ (included: function calling, automatic chat wrapper detection, embedding support, and more)
|
|
19
19
|
|
|
20
20
|
## Features
|
|
21
21
|
* Run a text generation model locally on your machine
|
|
22
|
-
* Metal and
|
|
22
|
+
* Metal, CUDA and Vulkan support
|
|
23
23
|
* Pre-built binaries are provided, with a fallback to building from source without `node-gyp` or Python
|
|
24
24
|
* Chat with a model using a chat wrapper
|
|
25
25
|
* Use the CLI to chat with a model without writing any code
|
|
@@ -84,7 +84,7 @@ To contribute to `node-llama-cpp` read the [contribution guide](https://withcata
|
|
|
84
84
|
<br />
|
|
85
85
|
|
|
86
86
|
<div align="center" width="360">
|
|
87
|
-
<img alt="Star please" src="https://
|
|
87
|
+
<img alt="Star please" src="https://raw.githubusercontent.com/withcatai/node-llama-cpp/master/assets/star.please.roundEdges.png" width="360" margin="auto" />
|
|
88
88
|
<br/>
|
|
89
89
|
<p align="right">
|
|
90
90
|
<i>If you like this repo, star it ✨</i>
|
package/dist/ChatWrapper.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type ChatWrapperSettings = {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
export declare abstract class ChatWrapper {
|
|
18
|
+
static defaultSetting: ChatWrapperSettings;
|
|
18
19
|
abstract readonly wrapperName: string;
|
|
19
20
|
readonly settings: ChatWrapperSettings;
|
|
20
21
|
generateContextText(history: readonly ChatHistoryItem[], { availableFunctions, documentFunctionParams }?: {
|
package/dist/ChatWrapper.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LlamaText } from "./utils/LlamaText.js";
|
|
2
2
|
import { getTypeScriptTypeStringForGbnfJsonSchema } from "./utils/getTypeScriptTypeStringForGbnfJsonSchema.js";
|
|
3
3
|
export class ChatWrapper {
|
|
4
|
-
|
|
4
|
+
static defaultSetting = {
|
|
5
5
|
functions: {
|
|
6
6
|
call: {
|
|
7
7
|
optionalPrefixSpace: true,
|
|
@@ -15,6 +15,7 @@ export class ChatWrapper {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
+
settings = ChatWrapper.defaultSetting;
|
|
18
19
|
generateContextText(history, { availableFunctions, documentFunctionParams } = {}) {
|
|
19
20
|
const historyWithFunctions = this.addAvailableFunctionsSystemMessageToHistory(history, availableFunctions, {
|
|
20
21
|
documentParams: documentFunctionParams
|
package/dist/ChatWrapper.js.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"ChatWrapper.js","sourceRoot":"","sources":["../src/ChatWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ChatHistoryItem, ChatModelFunctions } from "./types.js";
|
|
2
|
+
import { LlamaText } from "./utils/LlamaText.js";
|
|
3
|
+
import { ChatWrapper, ChatWrapperSettings } from "./ChatWrapper.js";
|
|
4
|
+
/**
|
|
5
|
+
* A chat wrapper based on a simple template.
|
|
6
|
+
*
|
|
7
|
+
* Example usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const chatWrapper = new TemplateChatWrapper({
|
|
10
|
+
* template: "{{systemPrompt}}\n{{history}}model:{{completion}}\nuser:",
|
|
11
|
+
* historyTemplate: "{{roleName}}: {{message}}\n",
|
|
12
|
+
* modelRoleName: "model",
|
|
13
|
+
* userRoleName: "user",
|
|
14
|
+
* systemRoleName: "system", // optional
|
|
15
|
+
* // functionCallMessageTemplate: [ // optional
|
|
16
|
+
* // "[[call: {{functionName}}({{functionParams}})]]",
|
|
17
|
+
* // " [[result: {{functionCallResult}}]]"
|
|
18
|
+
* // ]
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **`{{systemPrompt}}`** is optional and is replaced with the first system message
|
|
23
|
+
* (when is does, that system message is not included in the history).
|
|
24
|
+
*
|
|
25
|
+
* **`{{history}}`** is replaced with the chat history.
|
|
26
|
+
* Each message in the chat history is converted using template passed to `historyTemplate`, and all messages are joined together.
|
|
27
|
+
*
|
|
28
|
+
* **`{{completion}}`** is where the model's response is generated.
|
|
29
|
+
* The text that comes after `{{completion}}` is used to determine when the model has finished generating the response,
|
|
30
|
+
* and thus is mandatory.
|
|
31
|
+
*
|
|
32
|
+
* **`functionCallMessageTemplate`** is used to specify the format in which functions can be called by the model and
|
|
33
|
+
* how their results are fed to the model after the function call.
|
|
34
|
+
*/
|
|
35
|
+
export declare class TemplateChatWrapper extends ChatWrapper {
|
|
36
|
+
readonly wrapperName = "Template";
|
|
37
|
+
readonly settings: ChatWrapperSettings;
|
|
38
|
+
readonly template: ChatTemplate;
|
|
39
|
+
readonly historyTemplate: ChatHistoryTemplate;
|
|
40
|
+
readonly modelRoleName: string;
|
|
41
|
+
readonly userRoleName: string;
|
|
42
|
+
readonly systemRoleName: string;
|
|
43
|
+
readonly joinAdjacentMessagesOfTheSameType: boolean;
|
|
44
|
+
constructor({ template, historyTemplate, modelRoleName, userRoleName, systemRoleName, functionCallMessageTemplate, joinAdjacentMessagesOfTheSameType }: {
|
|
45
|
+
template: ChatTemplate;
|
|
46
|
+
historyTemplate: ChatHistoryTemplate;
|
|
47
|
+
modelRoleName: string;
|
|
48
|
+
userRoleName: string;
|
|
49
|
+
systemRoleName?: string;
|
|
50
|
+
functionCallMessageTemplate?: ChatHistoryFunctionCallMessageTemplate;
|
|
51
|
+
joinAdjacentMessagesOfTheSameType?: boolean;
|
|
52
|
+
});
|
|
53
|
+
generateContextText(history: readonly ChatHistoryItem[], { availableFunctions, documentFunctionParams }?: {
|
|
54
|
+
availableFunctions?: ChatModelFunctions;
|
|
55
|
+
documentFunctionParams?: boolean;
|
|
56
|
+
}): {
|
|
57
|
+
contextText: LlamaText;
|
|
58
|
+
stopGenerationTriggers: LlamaText[];
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
type ChatTemplate = `${`${string}{{systemPrompt}}` | ""}${string}{{history}}${string}{{completion}}${string}`;
|
|
62
|
+
type ChatHistoryTemplate = `${string}{{roleName}}${string}{{message}}${string}`;
|
|
63
|
+
type ChatHistoryFunctionCallMessageTemplate = [
|
|
64
|
+
call: `${string}{{functionName}}${string}{{functionParams}}${string}`,
|
|
65
|
+
result: `${string}{{functionCallResult}}${string}`
|
|
66
|
+
];
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { BuiltinSpecialToken, LlamaText, SpecialToken } from "./utils/LlamaText.js";
|
|
2
|
+
import { ChatWrapper } from "./ChatWrapper.js";
|
|
3
|
+
import { parseTextTemplate } from "./utils/parseTextTemplate.js";
|
|
4
|
+
/**
|
|
5
|
+
* A chat wrapper based on a simple template.
|
|
6
|
+
*
|
|
7
|
+
* Example usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const chatWrapper = new TemplateChatWrapper({
|
|
10
|
+
* template: "{{systemPrompt}}\n{{history}}model:{{completion}}\nuser:",
|
|
11
|
+
* historyTemplate: "{{roleName}}: {{message}}\n",
|
|
12
|
+
* modelRoleName: "model",
|
|
13
|
+
* userRoleName: "user",
|
|
14
|
+
* systemRoleName: "system", // optional
|
|
15
|
+
* // functionCallMessageTemplate: [ // optional
|
|
16
|
+
* // "[[call: {{functionName}}({{functionParams}})]]",
|
|
17
|
+
* // " [[result: {{functionCallResult}}]]"
|
|
18
|
+
* // ]
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **`{{systemPrompt}}`** is optional and is replaced with the first system message
|
|
23
|
+
* (when is does, that system message is not included in the history).
|
|
24
|
+
*
|
|
25
|
+
* **`{{history}}`** is replaced with the chat history.
|
|
26
|
+
* Each message in the chat history is converted using template passed to `historyTemplate`, and all messages are joined together.
|
|
27
|
+
*
|
|
28
|
+
* **`{{completion}}`** is where the model's response is generated.
|
|
29
|
+
* The text that comes after `{{completion}}` is used to determine when the model has finished generating the response,
|
|
30
|
+
* and thus is mandatory.
|
|
31
|
+
*
|
|
32
|
+
* **`functionCallMessageTemplate`** is used to specify the format in which functions can be called by the model and
|
|
33
|
+
* how their results are fed to the model after the function call.
|
|
34
|
+
*/
|
|
35
|
+
export class TemplateChatWrapper extends ChatWrapper {
|
|
36
|
+
wrapperName = "Template";
|
|
37
|
+
settings;
|
|
38
|
+
template;
|
|
39
|
+
historyTemplate;
|
|
40
|
+
modelRoleName;
|
|
41
|
+
userRoleName;
|
|
42
|
+
systemRoleName;
|
|
43
|
+
joinAdjacentMessagesOfTheSameType;
|
|
44
|
+
/** @internal */ _parsedChatTemplate;
|
|
45
|
+
/** @internal */ _parsedChatHistoryTemplate;
|
|
46
|
+
constructor({ template, historyTemplate, modelRoleName, userRoleName, systemRoleName = "System", functionCallMessageTemplate, joinAdjacentMessagesOfTheSameType = true }) {
|
|
47
|
+
super();
|
|
48
|
+
this.template = template;
|
|
49
|
+
this.historyTemplate = historyTemplate;
|
|
50
|
+
this.modelRoleName = modelRoleName;
|
|
51
|
+
this.userRoleName = userRoleName;
|
|
52
|
+
this.systemRoleName = systemRoleName;
|
|
53
|
+
this.joinAdjacentMessagesOfTheSameType = joinAdjacentMessagesOfTheSameType;
|
|
54
|
+
this._parsedChatTemplate = parseChatTemplate(template);
|
|
55
|
+
this._parsedChatHistoryTemplate = parseChatHistoryTemplate(historyTemplate);
|
|
56
|
+
this.settings = {
|
|
57
|
+
...super.settings,
|
|
58
|
+
functions: parseFunctionCallMessageTemplate(functionCallMessageTemplate) ?? ChatWrapper.defaultSetting.functions
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
generateContextText(history, { availableFunctions, documentFunctionParams } = {}) {
|
|
62
|
+
const historyWithFunctions = this.addAvailableFunctionsSystemMessageToHistory(history, availableFunctions, {
|
|
63
|
+
documentParams: documentFunctionParams
|
|
64
|
+
});
|
|
65
|
+
const resultItems = [];
|
|
66
|
+
let systemTexts = [];
|
|
67
|
+
let userTexts = [];
|
|
68
|
+
let modelTexts = [];
|
|
69
|
+
let currentAggregateFocus = null;
|
|
70
|
+
function flush() {
|
|
71
|
+
if (systemTexts.length > 0 || userTexts.length > 0 || modelTexts.length > 0)
|
|
72
|
+
resultItems.push({
|
|
73
|
+
system: systemTexts.join("\n\n"),
|
|
74
|
+
user: userTexts.join("\n\n"),
|
|
75
|
+
model: modelTexts.join("\n\n")
|
|
76
|
+
});
|
|
77
|
+
systemTexts = [];
|
|
78
|
+
userTexts = [];
|
|
79
|
+
modelTexts = [];
|
|
80
|
+
}
|
|
81
|
+
const getHistoryItem = (role, text, prefix) => {
|
|
82
|
+
const { roleNamePrefix, messagePrefix, messageSuffix } = this._parsedChatHistoryTemplate;
|
|
83
|
+
return LlamaText([
|
|
84
|
+
new SpecialToken((prefix ?? "") + roleNamePrefix + role + messagePrefix),
|
|
85
|
+
text,
|
|
86
|
+
new SpecialToken(messageSuffix)
|
|
87
|
+
]);
|
|
88
|
+
};
|
|
89
|
+
for (const item of historyWithFunctions) {
|
|
90
|
+
if (item.type === "system") {
|
|
91
|
+
if (!this.joinAdjacentMessagesOfTheSameType || currentAggregateFocus !== "system")
|
|
92
|
+
flush();
|
|
93
|
+
currentAggregateFocus = "system";
|
|
94
|
+
systemTexts.push(item.text);
|
|
95
|
+
}
|
|
96
|
+
else if (item.type === "user") {
|
|
97
|
+
if (!this.joinAdjacentMessagesOfTheSameType || (currentAggregateFocus !== "system" && currentAggregateFocus !== "user"))
|
|
98
|
+
flush();
|
|
99
|
+
currentAggregateFocus = "user";
|
|
100
|
+
userTexts.push(item.text);
|
|
101
|
+
}
|
|
102
|
+
else if (item.type === "model") {
|
|
103
|
+
if (!this.joinAdjacentMessagesOfTheSameType)
|
|
104
|
+
flush();
|
|
105
|
+
currentAggregateFocus = "model";
|
|
106
|
+
modelTexts.push(this.generateModelResponseText(item.response));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
flush();
|
|
110
|
+
const contextText = LlamaText(resultItems.map(({ system, user, model }, index) => {
|
|
111
|
+
const isFirstItem = index === 0;
|
|
112
|
+
const isLastItem = index === resultItems.length - 1;
|
|
113
|
+
const res = LlamaText([
|
|
114
|
+
isFirstItem
|
|
115
|
+
? system.length === 0
|
|
116
|
+
? new SpecialToken((this._parsedChatTemplate.systemPromptPrefix ?? "") + this._parsedChatTemplate.historyPrefix)
|
|
117
|
+
: this._parsedChatTemplate.systemPromptPrefix != null
|
|
118
|
+
? LlamaText([
|
|
119
|
+
new SpecialToken(this._parsedChatTemplate.systemPromptPrefix),
|
|
120
|
+
system,
|
|
121
|
+
new SpecialToken(this._parsedChatTemplate.historyPrefix)
|
|
122
|
+
])
|
|
123
|
+
: getHistoryItem("system", system, this._parsedChatTemplate.historyPrefix)
|
|
124
|
+
: system.length === 0
|
|
125
|
+
? LlamaText([])
|
|
126
|
+
: getHistoryItem("system", system),
|
|
127
|
+
user.length === 0
|
|
128
|
+
? LlamaText([])
|
|
129
|
+
: getHistoryItem("user", user),
|
|
130
|
+
model.length === 0
|
|
131
|
+
? LlamaText([])
|
|
132
|
+
: !isLastItem
|
|
133
|
+
? getHistoryItem("model", model)
|
|
134
|
+
: LlamaText([
|
|
135
|
+
new SpecialToken(this._parsedChatTemplate.completionPrefix),
|
|
136
|
+
model
|
|
137
|
+
])
|
|
138
|
+
]);
|
|
139
|
+
return LlamaText(res.values.reduce((res, value) => {
|
|
140
|
+
if (value instanceof SpecialToken) {
|
|
141
|
+
const lastItem = res[res.length - 1];
|
|
142
|
+
if (lastItem == null || !(lastItem instanceof SpecialToken))
|
|
143
|
+
return res.concat([value]);
|
|
144
|
+
return res.slice(0, -1).concat([
|
|
145
|
+
new SpecialToken(lastItem.value + value.value)
|
|
146
|
+
]);
|
|
147
|
+
}
|
|
148
|
+
return res.concat([value]);
|
|
149
|
+
}, []));
|
|
150
|
+
}));
|
|
151
|
+
return {
|
|
152
|
+
contextText,
|
|
153
|
+
stopGenerationTriggers: [
|
|
154
|
+
LlamaText(new BuiltinSpecialToken("EOS")),
|
|
155
|
+
LlamaText(this._parsedChatTemplate.completionSuffix),
|
|
156
|
+
LlamaText(new SpecialToken(this._parsedChatTemplate.completionSuffix))
|
|
157
|
+
]
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function parseFunctionCallMessageTemplate(template) {
|
|
162
|
+
if (template == null)
|
|
163
|
+
return null;
|
|
164
|
+
const [functionCallTemplate, functionCallResultTemplate] = template;
|
|
165
|
+
if (functionCallTemplate == null || functionCallResultTemplate == null)
|
|
166
|
+
throw new Error("Both function call and function call result templates are required");
|
|
167
|
+
const parsedFunctionCallTemplate = parseTextTemplate(functionCallTemplate, [{
|
|
168
|
+
text: "{{functionName}}",
|
|
169
|
+
key: "functionName"
|
|
170
|
+
}, {
|
|
171
|
+
text: "{{functionParams}}",
|
|
172
|
+
key: "functionParams"
|
|
173
|
+
}]);
|
|
174
|
+
const parsedFunctionCallResultTemplate = parseTextTemplate(functionCallResultTemplate, [{
|
|
175
|
+
text: "{{functionCallResult}}",
|
|
176
|
+
key: "functionCallResult"
|
|
177
|
+
}]);
|
|
178
|
+
const callPrefix = parsedFunctionCallTemplate.functionName.prefix;
|
|
179
|
+
const callParamsPrefix = parsedFunctionCallTemplate.functionParams.prefix;
|
|
180
|
+
const callSuffix = parsedFunctionCallTemplate.functionParams.suffix;
|
|
181
|
+
const resultPrefix = parsedFunctionCallResultTemplate.functionCallResult.prefix;
|
|
182
|
+
const resultSuffix = parsedFunctionCallResultTemplate.functionCallResult.suffix;
|
|
183
|
+
if (callPrefix.length === 0)
|
|
184
|
+
throw new Error('Function call template must have text before "{{functionName}}"');
|
|
185
|
+
if (callSuffix.length === 0)
|
|
186
|
+
throw new Error('Function call template must have text after "{{functionParams}}"');
|
|
187
|
+
if (resultPrefix.length === 0)
|
|
188
|
+
throw new Error('Function call result template must have text before "{{functionCallResult}}"');
|
|
189
|
+
if (resultSuffix.length === 0)
|
|
190
|
+
throw new Error('Function call result template must have text after "{{functionCallResult}}"');
|
|
191
|
+
return {
|
|
192
|
+
call: {
|
|
193
|
+
optionalPrefixSpace: true,
|
|
194
|
+
prefix: callPrefix,
|
|
195
|
+
paramsPrefix: callParamsPrefix,
|
|
196
|
+
suffix: callSuffix
|
|
197
|
+
},
|
|
198
|
+
result: {
|
|
199
|
+
prefix: resultPrefix,
|
|
200
|
+
suffix: resultSuffix
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function parseChatTemplate(template) {
|
|
205
|
+
const parsedTemplate = parseTextTemplate(template, [{
|
|
206
|
+
text: "{{systemPrompt}}",
|
|
207
|
+
key: "systemPrompt",
|
|
208
|
+
optional: true
|
|
209
|
+
}, {
|
|
210
|
+
text: "{{history}}",
|
|
211
|
+
key: "history"
|
|
212
|
+
}, {
|
|
213
|
+
text: "{{completion}}",
|
|
214
|
+
key: "completion"
|
|
215
|
+
}]);
|
|
216
|
+
if (parsedTemplate.completion.suffix.length == 0)
|
|
217
|
+
throw new Error('Chat template must have text after "{{completion}}"');
|
|
218
|
+
return {
|
|
219
|
+
systemPromptPrefix: parsedTemplate.systemPrompt?.prefix ?? null,
|
|
220
|
+
historyPrefix: parsedTemplate.history.prefix,
|
|
221
|
+
completionPrefix: parsedTemplate.completion.prefix,
|
|
222
|
+
completionSuffix: parsedTemplate.completion.suffix
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
function parseChatHistoryTemplate(template) {
|
|
226
|
+
const parsedTemplate = parseTextTemplate(template, [{
|
|
227
|
+
text: "{{roleName}}",
|
|
228
|
+
key: "roleName"
|
|
229
|
+
}, {
|
|
230
|
+
text: "{{message}}",
|
|
231
|
+
key: "message"
|
|
232
|
+
}]);
|
|
233
|
+
return {
|
|
234
|
+
roleNamePrefix: parsedTemplate.roleName.prefix,
|
|
235
|
+
messagePrefix: parsedTemplate.message.prefix,
|
|
236
|
+
messageSuffix: parsedTemplate.message.suffix
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=TemplateChatWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateChatWrapper.js","sourceRoot":"","sources":["../src/TemplateChatWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/bindings/Llama.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { LlamaLogLevel } from "./types.js";
|
|
2
2
|
export declare class Llama {
|
|
3
3
|
private constructor();
|
|
4
|
-
get
|
|
5
|
-
get cuda(): boolean;
|
|
4
|
+
get gpu(): false | "cuda" | "vulkan" | "metal";
|
|
6
5
|
get logLevel(): LlamaLogLevel;
|
|
7
6
|
set logLevel(value: LlamaLogLevel);
|
|
8
7
|
get logger(): (level: LlamaLogLevel, message: string) => void;
|
package/dist/bindings/Llama.js
CHANGED
|
@@ -13,8 +13,7 @@ const addonLogLevelToLlamaLogLevel = new Map([...LlamaLogLevelToAddonLogLevel.en
|
|
|
13
13
|
const defaultLogLevel = 5;
|
|
14
14
|
export class Llama {
|
|
15
15
|
/** @internal */ _bindings;
|
|
16
|
-
/** @internal */
|
|
17
|
-
/** @internal */ _cuda;
|
|
16
|
+
/** @internal */ _gpu;
|
|
18
17
|
/** @internal */ _buildType;
|
|
19
18
|
/** @internal */ _cmakeOptions;
|
|
20
19
|
/** @internal */ _llamaCppRelease;
|
|
@@ -26,10 +25,9 @@ export class Llama {
|
|
|
26
25
|
/** @internal */ _previousLog = null;
|
|
27
26
|
/** @internal */ _previousLogLevel = null;
|
|
28
27
|
/** @internal */ _nextLogNeedNewLine = false;
|
|
29
|
-
constructor({ bindings,
|
|
28
|
+
constructor({ bindings, logLevel, logger, buildType, cmakeOptions, llamaCppRelease, _skipLlamaInit = false }) {
|
|
30
29
|
this._bindings = bindings;
|
|
31
|
-
this.
|
|
32
|
-
this._cuda = cuda;
|
|
30
|
+
this._gpu = bindings.getGpuType() ?? false;
|
|
33
31
|
this._logLevel = logLevel ?? LlamaLogLevel.debug;
|
|
34
32
|
this._logger = logger;
|
|
35
33
|
this._buildType = buildType;
|
|
@@ -40,14 +38,13 @@ export class Llama {
|
|
|
40
38
|
});
|
|
41
39
|
this._dispatchPendingLogMicrotask = this._dispatchPendingLogMicrotask.bind(this);
|
|
42
40
|
this._onAddonLog = this._onAddonLog.bind(this);
|
|
41
|
+
if (!_skipLlamaInit)
|
|
42
|
+
this._bindings.init();
|
|
43
43
|
this._bindings.setLogger(this._onAddonLog);
|
|
44
44
|
this._bindings.setLoggerLogLevel(LlamaLogLevelToAddonLogLevel.get(this._logLevel) ?? defaultLogLevel);
|
|
45
45
|
}
|
|
46
|
-
get
|
|
47
|
-
return this.
|
|
48
|
-
}
|
|
49
|
-
get cuda() {
|
|
50
|
-
return this._cuda;
|
|
46
|
+
get gpu() {
|
|
47
|
+
return this._gpu;
|
|
51
48
|
}
|
|
52
49
|
get logLevel() {
|
|
53
50
|
return this._logLevel;
|
|
@@ -151,19 +148,18 @@ export class Llama {
|
|
|
151
148
|
this._previousLogLevel = level;
|
|
152
149
|
}
|
|
153
150
|
/** @internal */
|
|
154
|
-
static async _create({ bindings, buildType, buildMetadata, logLevel, logger }) {
|
|
151
|
+
static async _create({ bindings, buildType, buildMetadata, logLevel, logger, skipLlamaInit = false }) {
|
|
155
152
|
return new Llama({
|
|
156
153
|
bindings,
|
|
157
154
|
buildType,
|
|
158
|
-
metal: buildMetadata.buildOptions.computeLayers.metal,
|
|
159
|
-
cuda: buildMetadata.buildOptions.computeLayers.cuda,
|
|
160
155
|
cmakeOptions: buildMetadata.buildOptions.customCmakeOptions,
|
|
161
156
|
llamaCppRelease: {
|
|
162
157
|
repo: buildMetadata.buildOptions.llamaCpp.repo,
|
|
163
158
|
release: buildMetadata.buildOptions.llamaCpp.release
|
|
164
159
|
},
|
|
165
160
|
logLevel,
|
|
166
|
-
logger
|
|
161
|
+
logger,
|
|
162
|
+
_skipLlamaInit: skipLlamaInit
|
|
167
163
|
});
|
|
168
164
|
}
|
|
169
165
|
static defaultConsoleLogger(level, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Llama.js","sourceRoot":"","sources":["../../src/bindings/Llama.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"Llama.js","sourceRoot":"","sources":["../../src/bindings/Llama.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const prettyBuildGpuNames = {
|
|
2
|
+
metal: "Metal",
|
|
3
|
+
cuda: "CUDA",
|
|
4
|
+
vulkan: "Vulkan"
|
|
5
|
+
};
|
|
6
|
+
export function getPrettyBuildGpuName(gpu) {
|
|
7
|
+
if (gpu == false)
|
|
8
|
+
return "no GPU";
|
|
9
|
+
return prettyBuildGpuNames[gpu] ?? ('"' + gpu + '"');
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/bindings/consts.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAA6C;IAClE,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAa;IAC/C,IAAI,GAAG,IAAI,KAAK;QACZ,OAAO,QAAQ,CAAC;IAEpB,OAAO,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -2,16 +2,18 @@ import { LlamaLogLevel } from "./types.js";
|
|
|
2
2
|
import { Llama } from "./Llama.js";
|
|
3
3
|
export type LlamaOptions = {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
*
|
|
5
|
+
* The compute layer implementation type to use for llama.cpp.
|
|
6
|
+
* - **`"auto"`**: Automatically detect and use the best GPU available (Metal on macOS, and CUDA or Vulkan on Windows and Linux)
|
|
7
|
+
* - **`"metal"`**: Use Metal.
|
|
8
|
+
* Only supported on macOS.
|
|
9
|
+
* Enabled by default on Apple Silicon Macs.
|
|
10
|
+
* - **`"cuda"`**: Use CUDA.
|
|
11
|
+
* - **`"vulkan"`**: Use Vulkan.
|
|
12
|
+
* - **`false`**: Disable any GPU support and only use the CPU.
|
|
13
|
+
*
|
|
14
|
+
* `"auto"` by default.
|
|
13
15
|
*/
|
|
14
|
-
|
|
16
|
+
gpu?: "auto" | "metal" | "cuda" | "vulkan" | false;
|
|
15
17
|
/**
|
|
16
18
|
* Set the minimum log level for llama.cpp.
|
|
17
19
|
* Defaults to "debug".
|
|
@@ -95,9 +97,9 @@ export declare const getLlamaFunctionName = "getLlama";
|
|
|
95
97
|
* Defaults to prefer a prebuilt binary, and fallbacks to building from source if a prebuilt binary is not found.
|
|
96
98
|
* Pass `"lastCliBuild"` to default to use the last successful build created using the `download` or `build` CLI commands if one exists.
|
|
97
99
|
*/
|
|
98
|
-
export declare function getLlama(): Promise<Llama>;
|
|
99
|
-
export declare function getLlama(options: LlamaOptions, lastBuildOptions?: never): Promise<Llama>;
|
|
100
|
+
export declare function getLlama(options?: LlamaOptions): Promise<Llama>;
|
|
100
101
|
export declare function getLlama(type: "lastBuild", lastBuildOptions?: LastBuildOptions): Promise<Llama>;
|
|
101
|
-
export declare function getLlamaForOptions({
|
|
102
|
+
export declare function getLlamaForOptions({ gpu, logLevel, logger, build, cmakeOptions, existingPrebuiltBinaryMustMatchBuildOptions, usePrebuiltBinaries, progressLogs, skipDownload }: LlamaOptions, { updateLastBuildInfoOnCompile, skipLlamaInit }?: {
|
|
102
103
|
updateLastBuildInfoOnCompile?: boolean;
|
|
104
|
+
skipLlamaInit?: boolean;
|
|
103
105
|
}): Promise<Llama>;
|