node-llama-cpp 2.6.2 → 2.7.0
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 +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +2 -0
- package/dist/cli/commands/ChatCommand.js +32 -8
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/ClearCommand.js +1 -1
- package/dist/cli/commands/ClearCommand.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaChatSession.d.ts +52 -41
- package/dist/llamaEvaluator/LlamaChatSession.js +24 -3
- package/dist/llamaEvaluator/LlamaChatSession.js.map +1 -1
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +2 -0
- package/dist/llamaEvaluator/LlamaGrammar.js +5 -0
- package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -1
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.d.ts +7 -0
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js +21 -0
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +1 -0
- package/dist/utils/clearLlamaBuild.js +1 -1
- package/dist/utils/clearLlamaBuild.js.map +1 -1
- package/dist/utils/clearTempFolder.js +1 -1
- package/dist/utils/clearTempFolder.js.map +1 -1
- package/dist/utils/cmake.js +19 -2
- package/dist/utils/cmake.js.map +1 -1
- package/dist/utils/compileLLamaCpp.js +2 -0
- package/dist/utils/compileLLamaCpp.js.map +1 -1
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +5 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +10 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -0
- package/dist/utils/gbnfJson/GbnfTerminal.d.ts +7 -0
- package/dist/utils/gbnfJson/GbnfTerminal.js +17 -0
- package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +7 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.js +29 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js +16 -0
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.d.ts +7 -0
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js +17 -0
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +16 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNull.d.ts +5 -0
- package/dist/utils/gbnfJson/terminals/GbnfNull.js +11 -0
- package/dist/utils/gbnfJson/terminals/GbnfNull.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.d.ts +9 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js +21 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +7 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +15 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +17 -0
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +25 -0
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +8 -0
- package/dist/utils/gbnfJson/terminals/GbnfOr.js +30 -0
- package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +5 -0
- package/dist/utils/gbnfJson/terminals/GbnfString.js +15 -0
- package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js +21 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +9 -0
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +20 -0
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +14 -0
- package/dist/utils/gbnfJson/terminals/gbnfConsts.js +15 -0
- package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -0
- package/dist/utils/gbnfJson/types.d.ts +41 -0
- package/dist/utils/gbnfJson/types.js +21 -0
- package/dist/utils/gbnfJson/types.js.map +1 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.d.ts +4 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +48 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.d.ts +5 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.js +16 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.js.map +1 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +7 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +122 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -0
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.d.ts +2 -0
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +23 -0
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -0
- package/llama/CMakeLists.txt +1 -1
- 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 +9 -4
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* Chat with a model using a chat wrapper
|
|
23
23
|
* Use the CLI to chat with a model without writing any code
|
|
24
24
|
* Up-to-date with the latest version of `llama.cpp`. Download and compile the latest release with a single CLI command.
|
|
25
|
-
* Force a model to generate output in a parseable format, like JSON
|
|
25
|
+
* Force a model to generate output in a parseable format, like JSON, or even force it to follow a specific JSON schema
|
|
26
26
|
|
|
27
27
|
## [Documentation](https://withcatai.github.io/node-llama-cpp/)
|
|
28
28
|
* [Getting started guide](https://withcatai.github.io/node-llama-cpp/guide/)
|
|
@@ -9,10 +9,12 @@ type ChatCommand = {
|
|
|
9
9
|
wrapper: (typeof modelWrappers)[number];
|
|
10
10
|
contextSize: number;
|
|
11
11
|
grammar: "text" | Parameters<typeof LlamaGrammar.getFor>[0];
|
|
12
|
+
jsonSchemaGrammarFile?: string;
|
|
12
13
|
threads: number;
|
|
13
14
|
temperature: number;
|
|
14
15
|
topK: number;
|
|
15
16
|
topP: number;
|
|
17
|
+
gpuLayers?: number;
|
|
16
18
|
repeatPenalty: number;
|
|
17
19
|
lastTokensRepeatPenalty: number;
|
|
18
20
|
penalizeRepeatingNewLine: boolean;
|
|
@@ -2,6 +2,7 @@ import * as readline from "readline";
|
|
|
2
2
|
import process from "process";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import chalk from "chalk";
|
|
5
|
+
import fs from "fs-extra";
|
|
5
6
|
import withOra from "../../utils/withOra.js";
|
|
6
7
|
import { defaultChatSystemPrompt } from "../../config.js";
|
|
7
8
|
import { LlamaChatPromptWrapper } from "../../chatWrappers/LlamaChatPromptWrapper.js";
|
|
@@ -67,6 +68,12 @@ export const ChatCommand = {
|
|
|
67
68
|
choices: ["text", "json", "list", "arithmetic", "japanese", "chess"],
|
|
68
69
|
description: "Restrict the model response to a specific grammar, like JSON for example",
|
|
69
70
|
group: "Optional:"
|
|
71
|
+
})
|
|
72
|
+
.option("jsonSchemaGrammarFile", {
|
|
73
|
+
alias: ["jsgf"],
|
|
74
|
+
type: "string",
|
|
75
|
+
description: "File path to a JSON schema file, to restrict the model response to only generate output that conforms to the JSON schema",
|
|
76
|
+
group: "Optional:"
|
|
70
77
|
})
|
|
71
78
|
.option("threads", {
|
|
72
79
|
type: "number",
|
|
@@ -94,6 +101,12 @@ export const ChatCommand = {
|
|
|
94
101
|
default: 0.95,
|
|
95
102
|
description: "Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P, and samples the next token only from this set. A float number between `0` and `1`. Set to `1` to disable. Only relevant when `temperature` is set to a value greater than `0`.",
|
|
96
103
|
group: "Optional:"
|
|
104
|
+
})
|
|
105
|
+
.option("gpuLayers", {
|
|
106
|
+
alias: "gl",
|
|
107
|
+
type: "number",
|
|
108
|
+
description: "number of layers to store in VRAM",
|
|
109
|
+
group: "Optional:"
|
|
97
110
|
})
|
|
98
111
|
.option("repeatPenalty", {
|
|
99
112
|
alias: "rp",
|
|
@@ -136,11 +149,12 @@ export const ChatCommand = {
|
|
|
136
149
|
group: "Optional:"
|
|
137
150
|
});
|
|
138
151
|
},
|
|
139
|
-
async handler({ model, systemInfo, systemPrompt, prompt, wrapper, contextSize, grammar, threads, temperature, topK, topP, repeatPenalty, lastTokensRepeatPenalty, penalizeRepeatingNewLine, repeatFrequencyPenalty, repeatPresencePenalty, maxTokens }) {
|
|
152
|
+
async handler({ model, systemInfo, systemPrompt, prompt, wrapper, contextSize, grammar, jsonSchemaGrammarFile, threads, temperature, topK, topP, gpuLayers, repeatPenalty, lastTokensRepeatPenalty, penalizeRepeatingNewLine, repeatFrequencyPenalty, repeatPresencePenalty, maxTokens }) {
|
|
140
153
|
try {
|
|
141
154
|
await RunChat({
|
|
142
|
-
model, systemInfo, systemPrompt, prompt, wrapper, contextSize, grammar, threads, temperature, topK,
|
|
143
|
-
lastTokensRepeatPenalty, repeatPenalty, penalizeRepeatingNewLine, repeatFrequencyPenalty,
|
|
155
|
+
model, systemInfo, systemPrompt, prompt, wrapper, contextSize, grammar, jsonSchemaGrammarFile, threads, temperature, topK,
|
|
156
|
+
topP, gpuLayers, lastTokensRepeatPenalty, repeatPenalty, penalizeRepeatingNewLine, repeatFrequencyPenalty,
|
|
157
|
+
repeatPresencePenalty, maxTokens
|
|
144
158
|
});
|
|
145
159
|
}
|
|
146
160
|
catch (err) {
|
|
@@ -149,23 +163,27 @@ export const ChatCommand = {
|
|
|
149
163
|
}
|
|
150
164
|
}
|
|
151
165
|
};
|
|
152
|
-
async function RunChat({ model: modelArg, systemInfo, systemPrompt, prompt, wrapper, contextSize, grammar: grammarArg, threads, temperature, topK, topP, lastTokensRepeatPenalty, repeatPenalty, penalizeRepeatingNewLine, repeatFrequencyPenalty, repeatPresencePenalty, maxTokens }) {
|
|
166
|
+
async function RunChat({ model: modelArg, systemInfo, systemPrompt, prompt, wrapper, contextSize, grammar: grammarArg, jsonSchemaGrammarFile: jsonSchemaGrammarFilePath, threads, temperature, topK, topP, gpuLayers, lastTokensRepeatPenalty, repeatPenalty, penalizeRepeatingNewLine, repeatFrequencyPenalty, repeatPresencePenalty, maxTokens }) {
|
|
153
167
|
const { LlamaChatSession } = await import("../../llamaEvaluator/LlamaChatSession.js");
|
|
154
168
|
const { LlamaModel } = await import("../../llamaEvaluator/LlamaModel.js");
|
|
155
169
|
const { LlamaContext } = await import("../../llamaEvaluator/LlamaContext.js");
|
|
156
170
|
const { LlamaGrammar } = await import("../../llamaEvaluator/LlamaGrammar.js");
|
|
171
|
+
const { LlamaJsonSchemaGrammar } = await import("../../llamaEvaluator/LlamaJsonSchemaGrammar.js");
|
|
157
172
|
let initialPrompt = prompt ?? null;
|
|
158
173
|
const model = new LlamaModel({
|
|
159
|
-
modelPath: path.resolve(process.cwd(), modelArg)
|
|
174
|
+
modelPath: path.resolve(process.cwd(), modelArg),
|
|
175
|
+
gpuLayers: gpuLayers != null ? gpuLayers : undefined
|
|
160
176
|
});
|
|
161
177
|
const context = new LlamaContext({
|
|
162
178
|
model,
|
|
163
179
|
contextSize,
|
|
164
180
|
threads
|
|
165
181
|
});
|
|
166
|
-
const grammar =
|
|
167
|
-
? await
|
|
168
|
-
:
|
|
182
|
+
const grammar = jsonSchemaGrammarFilePath != null
|
|
183
|
+
? new LlamaJsonSchemaGrammar(await fs.readJson(path.resolve(process.cwd(), jsonSchemaGrammarFilePath)))
|
|
184
|
+
: grammarArg !== "text"
|
|
185
|
+
? await LlamaGrammar.getFor(grammarArg)
|
|
186
|
+
: undefined;
|
|
169
187
|
const bos = context.getBosString(); // bos = beginning of sequence
|
|
170
188
|
const eos = context.getEosString(); // eos = end of sequence
|
|
171
189
|
const promptWrapper = getChatWrapper(wrapper, bos);
|
|
@@ -175,6 +193,8 @@ async function RunChat({ model: modelArg, systemInfo, systemPrompt, prompt, wrap
|
|
|
175
193
|
systemPrompt,
|
|
176
194
|
promptWrapper
|
|
177
195
|
});
|
|
196
|
+
if (grammarArg != "text" && jsonSchemaGrammarFilePath != null)
|
|
197
|
+
console.warn(chalk.yellow("Both `grammar` and `jsonSchemaGrammarFile` were specified. `jsonSchemaGrammarFile` will be used."));
|
|
178
198
|
console.info(`${chalk.yellow("BOS:")} ${bos}`);
|
|
179
199
|
console.info(`${chalk.yellow("EOS:")} ${eos}`);
|
|
180
200
|
console.info(`${chalk.yellow("Chat wrapper:")} ${promptWrapper.wrapperName}`);
|
|
@@ -185,6 +205,10 @@ async function RunChat({ model: modelArg, systemInfo, systemPrompt, prompt, wrap
|
|
|
185
205
|
console.info(`${chalk.yellow("Repeat presence penalty:")} ${repeatPresencePenalty}`);
|
|
186
206
|
if (!penalizeRepeatingNewLine)
|
|
187
207
|
console.info(`${chalk.yellow("Penalize repeating new line:")} disabled`);
|
|
208
|
+
if (jsonSchemaGrammarFilePath != null)
|
|
209
|
+
console.info(`${chalk.yellow("JSON schema grammar file:")} ${path.relative(process.cwd(), path.resolve(process.cwd(), jsonSchemaGrammarFilePath))}`);
|
|
210
|
+
else if (grammarArg !== "text")
|
|
211
|
+
console.info(`${chalk.yellow("Grammar:")} ${grammarArg}`);
|
|
188
212
|
await withOra({
|
|
189
213
|
loading: chalk.blue("Loading model"),
|
|
190
214
|
success: chalk.blue("Model loaded"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ChatCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAC,uBAAuB,EAAC,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAC,uBAAuB,EAAC,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AAGxD,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ChatCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ClearCommand.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"ClearCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ClearCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAM1E,MAAM,CAAC,MAAM,YAAY,GAAwC;IAC7D,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,QAAQ,EAAE,uCAAuC;IACjD,OAAO,CAAC,KAAK;QACT,OAAO,KAAK;aACP,MAAM,CAAC,MAAM,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAkC;YAC7E,OAAO,EAAE,KAA6B;YACtC,WAAW,EAAE,gBAAgB;SAChC,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,yBAAyB;CACrC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAAC,IAAI,EAAe;IAChE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE;QACrC,MAAM,OAAO,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;SAC7C,EAAE,KAAK,IAAI,EAAE;YACV,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;KACN;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE;QACpC,MAAM,OAAO,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;SAC5C,EAAE,KAAK,IAAI,EAAE;YACV,MAAM,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;KACN;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE;QACpC,MAAM,OAAO,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;YAC9C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;YAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC;SACrD,EAAE,KAAK,IAAI,EAAE;YACV,MAAM,mBAAmB,EAAE,CAAC;YAC5B,MAAM,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;KACN;IAED,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { LlamaModel, type LlamaModelOptions } from "./llamaEvaluator/LlamaModel.js";
|
|
2
2
|
import { LlamaGrammar, type LlamaGrammarOptions } from "./llamaEvaluator/LlamaGrammar.js";
|
|
3
|
+
import { LlamaJsonSchemaGrammar } from "./llamaEvaluator/LlamaJsonSchemaGrammar.js";
|
|
4
|
+
import { LlamaJsonSchemaValidationError } from "./utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js";
|
|
3
5
|
import { LlamaGrammarEvaluationState, LlamaGrammarEvaluationStateOptions } from "./llamaEvaluator/LlamaGrammarEvaluationState.js";
|
|
4
6
|
import { LlamaContext, type LlamaContextOptions, type LlamaContextRepeatPenalty } from "./llamaEvaluator/LlamaContext.js";
|
|
5
|
-
import { LlamaChatSession, type LlamaChatSessionOptions, type LlamaChatSessionRepeatPenalty } from "./llamaEvaluator/LlamaChatSession.js";
|
|
7
|
+
import { LlamaChatSession, type LlamaChatSessionOptions, type LLamaChatPromptOptions, type LlamaChatSessionRepeatPenalty } from "./llamaEvaluator/LlamaChatSession.js";
|
|
6
8
|
import { AbortError } from "./AbortError.js";
|
|
7
9
|
import { ChatPromptWrapper } from "./ChatPromptWrapper.js";
|
|
8
10
|
import { EmptyChatPromptWrapper } from "./chatWrappers/EmptyChatPromptWrapper.js";
|
|
@@ -12,4 +14,5 @@ import { ChatMLChatPromptWrapper } from "./chatWrappers/ChatMLChatPromptWrapper.
|
|
|
12
14
|
import { FalconChatPromptWrapper } from "./chatWrappers/FalconChatPromptWrapper.js";
|
|
13
15
|
import { getChatWrapperByBos } from "./chatWrappers/createChatWrapperByBos.js";
|
|
14
16
|
import { type ConversationInteraction, type Token } from "./types.js";
|
|
15
|
-
|
|
17
|
+
import { type GbnfJsonArraySchema, type GbnfJsonBasicSchema, type GbnfJsonConstSchema, type GbnfJsonEnumSchema, type GbnfJsonObjectSchema, type GbnfJsonOneOfSchema, type GbnfJsonSchema, type GbnfJsonSchemaImmutableType, type GbnfJsonSchemaToType } from "./utils/gbnfJson/types.js";
|
|
18
|
+
export { LlamaModel, type LlamaModelOptions, LlamaGrammar, type LlamaGrammarOptions, LlamaJsonSchemaGrammar, LlamaJsonSchemaValidationError, LlamaGrammarEvaluationState, type LlamaGrammarEvaluationStateOptions, LlamaContext, type LlamaContextOptions, type LlamaContextRepeatPenalty, LlamaChatSession, type LlamaChatSessionOptions, type LLamaChatPromptOptions, type LlamaChatSessionRepeatPenalty, type ConversationInteraction, AbortError, ChatPromptWrapper, EmptyChatPromptWrapper, LlamaChatPromptWrapper, GeneralChatPromptWrapper, ChatMLChatPromptWrapper, FalconChatPromptWrapper, getChatWrapperByBos, type Token, type GbnfJsonSchema, type GbnfJsonSchemaToType, type GbnfJsonSchemaImmutableType, type GbnfJsonBasicSchema, type GbnfJsonConstSchema, type GbnfJsonEnumSchema, type GbnfJsonOneOfSchema, type GbnfJsonObjectSchema, type GbnfJsonArraySchema };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { LlamaModel } from "./llamaEvaluator/LlamaModel.js";
|
|
2
2
|
import { LlamaGrammar } from "./llamaEvaluator/LlamaGrammar.js";
|
|
3
|
+
import { LlamaJsonSchemaGrammar } from "./llamaEvaluator/LlamaJsonSchemaGrammar.js";
|
|
4
|
+
import { LlamaJsonSchemaValidationError } from "./utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js";
|
|
3
5
|
import { LlamaGrammarEvaluationState } from "./llamaEvaluator/LlamaGrammarEvaluationState.js";
|
|
4
6
|
import { LlamaContext } from "./llamaEvaluator/LlamaContext.js";
|
|
5
7
|
import { LlamaChatSession } from "./llamaEvaluator/LlamaChatSession.js";
|
|
@@ -11,5 +13,5 @@ import { GeneralChatPromptWrapper } from "./chatWrappers/GeneralChatPromptWrappe
|
|
|
11
13
|
import { ChatMLChatPromptWrapper } from "./chatWrappers/ChatMLChatPromptWrapper.js";
|
|
12
14
|
import { FalconChatPromptWrapper } from "./chatWrappers/FalconChatPromptWrapper.js";
|
|
13
15
|
import { getChatWrapperByBos } from "./chatWrappers/createChatWrapperByBos.js";
|
|
14
|
-
export { LlamaModel, LlamaGrammar, LlamaGrammarEvaluationState, LlamaContext, LlamaChatSession, AbortError, ChatPromptWrapper, EmptyChatPromptWrapper, LlamaChatPromptWrapper, GeneralChatPromptWrapper, ChatMLChatPromptWrapper, FalconChatPromptWrapper, getChatWrapperByBos };
|
|
16
|
+
export { LlamaModel, LlamaGrammar, LlamaJsonSchemaGrammar, LlamaJsonSchemaValidationError, LlamaGrammarEvaluationState, LlamaContext, LlamaChatSession, AbortError, ChatPromptWrapper, EmptyChatPromptWrapper, LlamaChatPromptWrapper, GeneralChatPromptWrapper, ChatMLChatPromptWrapper, FalconChatPromptWrapper, getChatWrapperByBos };
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAyB,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAC,YAAY,EAA2B,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAC,2BAA2B,EAAqC,MAAM,iDAAiD,CAAC;AAChI,OAAO,EAAC,YAAY,EAA2D,MAAM,kCAAkC,CAAC;AACxH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAyB,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAC,YAAY,EAA2B,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAC,sBAAsB,EAAC,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAC,8BAA8B,EAAC,MAAM,2DAA2D,CAAC;AACzG,OAAO,EAAC,2BAA2B,EAAqC,MAAM,iDAAiD,CAAC;AAChI,OAAO,EAAC,YAAY,EAA2D,MAAM,kCAAkC,CAAC;AACxH,OAAO,EACH,gBAAgB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAC,mBAAmB,EAAC,MAAM,0CAA0C,CAAC;AAS7E,OAAO,EACH,UAAU,EAEV,YAAY,EAEZ,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAE3B,YAAY,EAGZ,gBAAgB,EAKhB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EAWtB,CAAC"}
|
|
@@ -12,6 +12,47 @@ export type LlamaChatSessionOptions = {
|
|
|
12
12
|
/** Conversation history to load into the context to continue an existing conversation */
|
|
13
13
|
conversationHistory?: readonly ConversationInteraction[];
|
|
14
14
|
};
|
|
15
|
+
export type LLamaChatPromptOptions = {
|
|
16
|
+
onToken?: (tokens: Token[]) => void;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
maxTokens?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Temperature is a hyperparameter that controls the randomness of the generated text.
|
|
21
|
+
* It affects the probability distribution of the model's output tokens.
|
|
22
|
+
* A higher temperature (e.g., 1.5) makes the output more random and creative,
|
|
23
|
+
* while a lower temperature (e.g., 0.5) makes the output more focused, deterministic, and conservative.
|
|
24
|
+
* The suggested temperature is 0.8, which provides a balance between randomness and determinism.
|
|
25
|
+
* At the extreme, a temperature of 0 will always pick the most likely next token, leading to identical outputs in each run.
|
|
26
|
+
*
|
|
27
|
+
* Set to `0` to disable.
|
|
28
|
+
* Disabled by default (set to `0`).
|
|
29
|
+
*/
|
|
30
|
+
temperature?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Limits the model to consider only the K most likely next tokens for sampling at each step of sequence generation.
|
|
33
|
+
* An integer number between `1` and the size of the vocabulary.
|
|
34
|
+
* Set to `0` to disable (which uses the full vocabulary).
|
|
35
|
+
*
|
|
36
|
+
* Only relevant when `temperature` is set to a value greater than 0.
|
|
37
|
+
*/
|
|
38
|
+
topK?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P,
|
|
41
|
+
* and samples the next token only from this set.
|
|
42
|
+
* A float number between `0` and `1`.
|
|
43
|
+
* Set to `1` to disable.
|
|
44
|
+
*
|
|
45
|
+
* Only relevant when `temperature` is set to a value greater than `0`.
|
|
46
|
+
*/
|
|
47
|
+
topP?: number;
|
|
48
|
+
grammar?: LlamaGrammar;
|
|
49
|
+
/**
|
|
50
|
+
* Trim whitespace from the end of the generated text
|
|
51
|
+
* Disabled by default.
|
|
52
|
+
*/
|
|
53
|
+
trimWhitespaceSuffix?: boolean;
|
|
54
|
+
repeatPenalty?: false | LlamaChatSessionRepeatPenalty;
|
|
55
|
+
};
|
|
15
56
|
export type LlamaChatSessionRepeatPenalty = {
|
|
16
57
|
/**
|
|
17
58
|
* Number of recent tokens generated by the model to apply penalties to repetition of.
|
|
@@ -65,47 +106,17 @@ export declare class LlamaChatSession {
|
|
|
65
106
|
* @param {object} options
|
|
66
107
|
* @returns {Promise<string>}
|
|
67
108
|
*/
|
|
68
|
-
prompt(prompt: string, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty }?:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
* Set to `0` to disable.
|
|
81
|
-
* Disabled by default (set to `0`).
|
|
82
|
-
*/
|
|
83
|
-
temperature?: number;
|
|
84
|
-
/**
|
|
85
|
-
* Limits the model to consider only the K most likely next tokens for sampling at each step of sequence generation.
|
|
86
|
-
* An integer number between `1` and the size of the vocabulary.
|
|
87
|
-
* Set to `0` to disable (which uses the full vocabulary).
|
|
88
|
-
*
|
|
89
|
-
* Only relevant when `temperature` is set to a value greater than 0.
|
|
90
|
-
*/
|
|
91
|
-
topK?: number;
|
|
92
|
-
/**
|
|
93
|
-
* Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P,
|
|
94
|
-
* and samples the next token only from this set.
|
|
95
|
-
* A float number between `0` and `1`.
|
|
96
|
-
* Set to `1` to disable.
|
|
97
|
-
*
|
|
98
|
-
* Only relevant when `temperature` is set to a value greater than `0`.
|
|
99
|
-
*/
|
|
100
|
-
topP?: number;
|
|
101
|
-
grammar?: LlamaGrammar;
|
|
102
|
-
/**
|
|
103
|
-
* Trim whitespace from the end of the generated text
|
|
104
|
-
* Disabled by default.
|
|
105
|
-
*/
|
|
106
|
-
trimWhitespaceSuffix?: boolean;
|
|
107
|
-
repeatPenalty?: false | LlamaChatSessionRepeatPenalty;
|
|
108
|
-
}): Promise<string>;
|
|
109
|
+
prompt(prompt: string, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty }?: LLamaChatPromptOptions): Promise<string>;
|
|
110
|
+
/**
|
|
111
|
+
* @param {string} prompt
|
|
112
|
+
* @param {LLamaChatPromptOptions} options
|
|
113
|
+
*/
|
|
114
|
+
promptWithMeta(prompt: string, { onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty }?: LLamaChatPromptOptions): Promise<{
|
|
115
|
+
text: string;
|
|
116
|
+
stopReason: "maxTokens" | "eosToken" | "stopString";
|
|
117
|
+
stopString: string | null;
|
|
118
|
+
stopStringSuffix: string | null;
|
|
119
|
+
}>;
|
|
109
120
|
private _evalTokens;
|
|
110
121
|
private _checkStopString;
|
|
111
122
|
}
|
|
@@ -59,6 +59,16 @@ export class LlamaChatSession {
|
|
|
59
59
|
* @returns {Promise<string>}
|
|
60
60
|
*/
|
|
61
61
|
async prompt(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
|
|
62
|
+
const { text } = await this.promptWithMeta(prompt, {
|
|
63
|
+
onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix, repeatPenalty
|
|
64
|
+
});
|
|
65
|
+
return text;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @param {string} prompt
|
|
69
|
+
* @param {LLamaChatPromptOptions} options
|
|
70
|
+
*/
|
|
71
|
+
async promptWithMeta(prompt, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty } = {}) {
|
|
62
72
|
if (!this.initialized)
|
|
63
73
|
await this.init();
|
|
64
74
|
return await withLock(this, "prompt", async () => {
|
|
@@ -93,13 +103,18 @@ export class LlamaChatSession {
|
|
|
93
103
|
this._promptIndex++;
|
|
94
104
|
this._lastStopString = null;
|
|
95
105
|
this._lastStopStringSuffix = null;
|
|
96
|
-
const { text, stopString, stopStringSuffix } = await this._evalTokens(this._ctx.encode(promptText), {
|
|
106
|
+
const { text, stopReason, stopString, stopStringSuffix } = await this._evalTokens(this._ctx.encode(promptText), {
|
|
97
107
|
onToken, signal, maxTokens, temperature, topK, topP, grammar, trimWhitespaceSuffix,
|
|
98
108
|
repeatPenalty: repeatPenalty == false ? { lastTokens: 0 } : repeatPenalty
|
|
99
109
|
});
|
|
100
110
|
this._lastStopString = stopString;
|
|
101
111
|
this._lastStopStringSuffix = stopStringSuffix;
|
|
102
|
-
return
|
|
112
|
+
return {
|
|
113
|
+
text,
|
|
114
|
+
stopReason,
|
|
115
|
+
stopString,
|
|
116
|
+
stopStringSuffix
|
|
117
|
+
};
|
|
103
118
|
});
|
|
104
119
|
}
|
|
105
120
|
async _evalTokens(tokens, { onToken, signal, maxTokens, temperature, topK, topP, grammar = this.context._chatGrammar, trimWhitespaceSuffix = false, repeatPenalty: { lastTokens: repeatPenaltyLastTokens = 64, punishTokensFilter, penalizeNewLine, penalty, frequencyPenalty, presencePenalty } = {} } = {}) {
|
|
@@ -113,6 +128,7 @@ export class LlamaChatSession {
|
|
|
113
128
|
? new LlamaGrammarEvaluationState({ grammar })
|
|
114
129
|
: undefined;
|
|
115
130
|
const repeatPenaltyEnabled = repeatPenaltyLastTokens > 0;
|
|
131
|
+
let stopReason = "eosToken";
|
|
116
132
|
const getPenaltyTokens = () => {
|
|
117
133
|
let punishTokens = res.slice(-repeatPenaltyLastTokens);
|
|
118
134
|
if (punishTokensFilter != null)
|
|
@@ -152,8 +168,10 @@ export class LlamaChatSession {
|
|
|
152
168
|
onToken?.(beforeStopStringTokens);
|
|
153
169
|
skippedChunksQueue.length = 0;
|
|
154
170
|
}
|
|
171
|
+
stopReason = "stopString";
|
|
155
172
|
return {
|
|
156
173
|
text: this._ctx.decode(Uint32Array.from(res)),
|
|
174
|
+
stopReason,
|
|
157
175
|
stopString,
|
|
158
176
|
stopStringSuffix
|
|
159
177
|
};
|
|
@@ -170,14 +188,17 @@ export class LlamaChatSession {
|
|
|
170
188
|
}
|
|
171
189
|
res.push(chunk);
|
|
172
190
|
onToken?.([chunk]);
|
|
173
|
-
if (maxTokens != null && maxTokens > 0 && res.length >= maxTokens)
|
|
191
|
+
if (maxTokens != null && maxTokens > 0 && res.length >= maxTokens) {
|
|
192
|
+
stopReason = "maxTokens";
|
|
174
193
|
break;
|
|
194
|
+
}
|
|
175
195
|
}
|
|
176
196
|
let resText = this._ctx.decode(Uint32Array.from(res));
|
|
177
197
|
if (grammar?.trimWhitespaceSuffix || trimWhitespaceSuffix)
|
|
178
198
|
resText = resText.trimEnd();
|
|
179
199
|
return {
|
|
180
200
|
text: resText,
|
|
201
|
+
stopReason,
|
|
181
202
|
stopString: null,
|
|
182
203
|
stopStringSuffix: null
|
|
183
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,wBAAwB,EAAC,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAC,mBAAmB,EAAC,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAC,0CAA0C,EAAC,MAAM,+DAA+D,CAAC;AACzH,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAE7E,MAAM,oBAAoB,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaChatSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export type LlamaGrammarOptions = {
|
|
|
11
11
|
export declare class LlamaGrammar {
|
|
12
12
|
private readonly _stopStrings;
|
|
13
13
|
private readonly _trimWhitespaceSuffix;
|
|
14
|
+
private readonly _grammarText;
|
|
14
15
|
/**
|
|
15
16
|
* > GBNF files are supported.
|
|
16
17
|
* > More info here: [github:ggerganov/llama.cpp:grammars/README.md](
|
|
@@ -24,6 +25,7 @@ export declare class LlamaGrammar {
|
|
|
24
25
|
* @param {boolean} [options.printGrammar] - print the grammar to stdout
|
|
25
26
|
*/
|
|
26
27
|
constructor({ grammar, stopStrings, trimWhitespaceSuffix, printGrammar }: LlamaGrammarOptions);
|
|
28
|
+
get grammar(): string;
|
|
27
29
|
get stopStrings(): readonly string[];
|
|
28
30
|
get trimWhitespaceSuffix(): boolean;
|
|
29
31
|
static getFor(type: "json" | "list" | "arithmetic" | "japanese" | "chess"): Promise<LlamaGrammar>;
|
|
@@ -7,6 +7,7 @@ export class LlamaGrammar {
|
|
|
7
7
|
_grammar;
|
|
8
8
|
_stopStrings;
|
|
9
9
|
_trimWhitespaceSuffix;
|
|
10
|
+
_grammarText;
|
|
10
11
|
/**
|
|
11
12
|
* > GBNF files are supported.
|
|
12
13
|
* > More info here: [github:ggerganov/llama.cpp:grammars/README.md](
|
|
@@ -25,6 +26,10 @@ export class LlamaGrammar {
|
|
|
25
26
|
});
|
|
26
27
|
this._stopStrings = stopStrings ?? [];
|
|
27
28
|
this._trimWhitespaceSuffix = trimWhitespaceSuffix;
|
|
29
|
+
this._grammarText = grammar;
|
|
30
|
+
}
|
|
31
|
+
get grammar() {
|
|
32
|
+
return this._grammarText;
|
|
28
33
|
}
|
|
29
34
|
get stopStrings() {
|
|
30
35
|
return this._stopStrings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaGrammar.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAiB5C,MAAM,OAAO,YAAY;IACrB,gBAAgB;IACA,QAAQ,CAAe;IACtB,YAAY,CAAoB;IAChC,qBAAqB,CAAU;
|
|
1
|
+
{"version":3,"file":"LlamaGrammar.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAiB5C,MAAM,OAAO,YAAY;IACrB,gBAAgB;IACA,QAAQ,CAAe;IACtB,YAAY,CAAoB;IAChC,qBAAqB,CAAU;IAC/B,YAAY,CAAS;IAEtC;;;;;;;;;;;OAWG;IACH,YAAmB,EACf,OAAO,EAAE,WAAW,GAAG,EAAE,EAAE,oBAAoB,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAC3D;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE;YACtC,YAAY;SACf,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAA2D;QAClF,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;QAE9D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAClC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,IAAI,YAAY,CAAC;gBACpB,OAAO;gBACP,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9B,oBAAoB,EAAE,IAAI;aAC7B,CAAC,CAAC;SACN;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,uBAAuB,cAAc,GAAG,CAAC,CAAC;IAC5F,CAAC;CACJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GbnfJsonSchema, GbnfJsonSchemaToType } from "../utils/gbnfJson/types.js";
|
|
2
|
+
import { LlamaGrammar } from "./LlamaGrammar.js";
|
|
3
|
+
export declare class LlamaJsonSchemaGrammar<const T extends Readonly<GbnfJsonSchema>> extends LlamaGrammar {
|
|
4
|
+
private readonly _schema;
|
|
5
|
+
constructor(schema: T);
|
|
6
|
+
parse(json: string): GbnfJsonSchemaToType<T>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getGbnfGrammarForGbnfJsonSchema } from "../utils/getGbnfGrammarForGbnfJsonSchema.js";
|
|
2
|
+
import { validateObjectAgainstGbnfSchema } from "../utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js";
|
|
3
|
+
import { LlamaGrammar } from "./LlamaGrammar.js";
|
|
4
|
+
export class LlamaJsonSchemaGrammar extends LlamaGrammar {
|
|
5
|
+
_schema;
|
|
6
|
+
constructor(schema) {
|
|
7
|
+
const grammar = getGbnfGrammarForGbnfJsonSchema(schema);
|
|
8
|
+
super({
|
|
9
|
+
grammar,
|
|
10
|
+
stopStrings: ["\n".repeat(4)],
|
|
11
|
+
trimWhitespaceSuffix: true
|
|
12
|
+
});
|
|
13
|
+
this._schema = schema;
|
|
14
|
+
}
|
|
15
|
+
parse(json) {
|
|
16
|
+
const parsedJson = JSON.parse(json);
|
|
17
|
+
validateObjectAgainstGbnfSchema(parsedJson, this._schema);
|
|
18
|
+
return parsedJson;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=LlamaJsonSchemaGrammar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlamaJsonSchemaGrammar.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaJsonSchemaGrammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,+BAA+B,EAAC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAC,+BAA+B,EAAC,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,sBAAiE,SAAQ,YAAY;IAC7E,OAAO,CAAI;IAE5B,YAAmB,MAAS;QACxB,MAAM,OAAO,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAExD,KAAK,CAAC;YACF,OAAO;YACP,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,oBAAoB,EAAE,IAAI;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,IAAY;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,+BAA+B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1D,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearLlamaBuild.js","sourceRoot":"","sources":["../../src/utils/clearLlamaBuild.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"clearLlamaBuild.js","sourceRoot":"","sources":["../../src/utils/clearLlamaBuild.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACpE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpD,MAAM,eAAe,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearTempFolder.js","sourceRoot":"","sources":["../../src/utils/clearTempFolder.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"clearTempFolder.js","sourceRoot":"","sources":["../../src/utils/clearTempFolder.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAC9B,IAAI;YACA,MAAM,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACV,gGAAgG;SACnG;QAED,OAAO;KACV;IAED,MAAM,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/utils/cmake.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import
|
|
2
|
+
import fs from "fs-extra";
|
|
3
3
|
import which from "which";
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
import { chmodr } from "chmodrp";
|
|
@@ -23,9 +23,11 @@ export async function getCmakePath() {
|
|
|
23
23
|
}
|
|
24
24
|
catch (err) { }
|
|
25
25
|
try {
|
|
26
|
-
|
|
26
|
+
let resolvedPath = await which("cmake", {
|
|
27
27
|
path: path.join(llamaDirectory, "xpack", "xpacks", ".bin")
|
|
28
28
|
});
|
|
29
|
+
if (resolvedPath.toLowerCase().endsWith(".cmd"))
|
|
30
|
+
resolvedPath = (await getBinFromWindowCmd(resolvedPath, "cmake.exe")) ?? "";
|
|
29
31
|
if (resolvedPath !== "")
|
|
30
32
|
return resolvedPath;
|
|
31
33
|
}
|
|
@@ -77,4 +79,19 @@ async function downloadCmake() {
|
|
|
77
79
|
await fs.remove(localXpacksCacheDirectory);
|
|
78
80
|
await fixXpackPermissions();
|
|
79
81
|
}
|
|
82
|
+
async function getBinFromWindowCmd(cmdFilePath, binName) {
|
|
83
|
+
const fileContent = await fs.readFile(cmdFilePath, "utf8");
|
|
84
|
+
const lowercaseFileContent = fileContent.toLowerCase();
|
|
85
|
+
if (!lowercaseFileContent.includes(binName))
|
|
86
|
+
return null;
|
|
87
|
+
const lastIndexOfBinName = lowercaseFileContent.lastIndexOf(binName);
|
|
88
|
+
const characterAfterBinName = fileContent[lastIndexOfBinName + binName.length];
|
|
89
|
+
if (characterAfterBinName !== '"' && characterAfterBinName !== "'")
|
|
90
|
+
return null;
|
|
91
|
+
const startStringCharacter = fileContent.lastIndexOf(characterAfterBinName, lastIndexOfBinName);
|
|
92
|
+
const binPath = fileContent.slice(startStringCharacter + 1, lastIndexOfBinName + binName.length);
|
|
93
|
+
if (!await fs.pathExists(binPath))
|
|
94
|
+
return null;
|
|
95
|
+
return binPath;
|
|
96
|
+
}
|
|
80
97
|
//# sourceMappingURL=cmake.js.map
|