node-llama-cpp 1.3.1 → 2.1.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 +100 -28
- package/dist/ChatPromptWrapper.d.ts +3 -0
- package/dist/ChatPromptWrapper.js.map +1 -1
- package/dist/chatWrappers/ChatMLPromptWrapper.d.ts +11 -0
- package/dist/chatWrappers/ChatMLPromptWrapper.js +19 -0
- package/dist/chatWrappers/ChatMLPromptWrapper.js.map +1 -0
- package/dist/chatWrappers/EmptyChatPromptWrapper.d.ts +1 -0
- package/dist/chatWrappers/EmptyChatPromptWrapper.js +1 -0
- package/dist/chatWrappers/EmptyChatPromptWrapper.js.map +1 -1
- package/dist/chatWrappers/GeneralChatPromptWrapper.d.ts +11 -1
- package/dist/chatWrappers/GeneralChatPromptWrapper.js +28 -4
- package/dist/chatWrappers/GeneralChatPromptWrapper.js.map +1 -1
- package/dist/chatWrappers/LlamaChatPromptWrapper.d.ts +4 -1
- package/dist/chatWrappers/LlamaChatPromptWrapper.js +9 -5
- package/dist/chatWrappers/LlamaChatPromptWrapper.js.map +1 -1
- package/dist/chatWrappers/createChatWrapperByBos.d.ts +2 -0
- package/dist/chatWrappers/createChatWrapperByBos.js +14 -0
- package/dist/chatWrappers/createChatWrapperByBos.js.map +1 -0
- package/dist/cli/commands/BuildCommand.d.ts +3 -1
- package/dist/cli/commands/BuildCommand.js +24 -2
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +7 -1
- package/dist/cli/commands/ChatCommand.js +87 -12
- 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/cli/commands/DownloadCommand.d.ts +4 -1
- package/dist/cli/commands/DownloadCommand.js +71 -70
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/OnPostInstallCommand.js +4 -2
- package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.js +11 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaBins.d.ts +3 -3
- package/dist/llamaEvaluator/LlamaBins.js +2 -2
- package/dist/llamaEvaluator/LlamaBins.js.map +1 -1
- package/dist/llamaEvaluator/LlamaChatSession.d.ts +7 -2
- package/dist/llamaEvaluator/LlamaChatSession.js +51 -11
- package/dist/llamaEvaluator/LlamaChatSession.js.map +1 -1
- package/dist/llamaEvaluator/LlamaContext.d.ts +31 -2
- package/dist/llamaEvaluator/LlamaContext.js +74 -7
- package/dist/llamaEvaluator/LlamaContext.js.map +1 -1
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +14 -0
- package/dist/llamaEvaluator/LlamaGrammar.js +30 -0
- package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -0
- package/dist/llamaEvaluator/LlamaModel.d.ts +49 -1
- package/dist/llamaEvaluator/LlamaModel.js +25 -9
- package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/binariesGithubRelease.d.ts +6 -0
- package/dist/utils/binariesGithubRelease.js +15 -0
- package/dist/utils/binariesGithubRelease.js.map +1 -0
- package/dist/utils/compileLLamaCpp.d.ts +3 -1
- package/dist/utils/compileLLamaCpp.js +34 -4
- package/dist/utils/compileLLamaCpp.js.map +1 -1
- package/dist/utils/getBin.d.ts +18 -4
- package/dist/utils/getBin.js +4 -2
- package/dist/utils/getBin.js.map +1 -1
- package/dist/utils/getGrammarsFolder.d.ts +1 -0
- package/dist/utils/getGrammarsFolder.js +18 -0
- package/dist/utils/getGrammarsFolder.js.map +1 -0
- package/dist/utils/getTextCompletion.d.ts +3 -0
- package/dist/utils/getTextCompletion.js +12 -0
- package/dist/utils/getTextCompletion.js.map +1 -0
- package/dist/utils/removeNullFields.d.ts +1 -0
- package/dist/utils/removeNullFields.js +9 -0
- package/dist/utils/removeNullFields.js.map +1 -0
- package/dist/utils/spawnCommand.d.ts +2 -1
- package/dist/utils/spawnCommand.js +2 -2
- package/dist/utils/spawnCommand.js.map +1 -1
- package/llama/addon.cpp +180 -42
- package/llama/binariesGithubRelease.json +3 -0
- package/llama/binding.gyp +6 -3
- package/llama/grammars/README.md +91 -0
- package/llama/grammars/arithmetic.gbnf +6 -0
- package/llama/grammars/chess.gbnf +13 -0
- package/llama/grammars/japanese.gbnf +7 -0
- package/llama/grammars/json.gbnf +25 -0
- package/llama/grammars/list.gbnf +4 -0
- package/llamaBins/linux-arm64-16.node +0 -0
- package/llamaBins/linux-arm64-17.node +0 -0
- package/llamaBins/linux-arm64-18.node +0 -0
- package/llamaBins/linux-arm64-19.node +0 -0
- package/llamaBins/linux-arm64-20.node +0 -0
- package/llamaBins/linux-armv7l-16.node +0 -0
- package/llamaBins/linux-armv7l-17.node +0 -0
- package/llamaBins/linux-armv7l-18.node +0 -0
- package/llamaBins/linux-armv7l-19.node +0 -0
- package/llamaBins/linux-armv7l-20.node +0 -0
- package/llamaBins/linux-ppc64le-16.node +0 -0
- package/llamaBins/linux-ppc64le-17.node +0 -0
- package/llamaBins/linux-ppc64le-18.node +0 -0
- package/llamaBins/linux-ppc64le-19.node +0 -0
- package/llamaBins/linux-ppc64le-20.node +0 -0
- package/llamaBins/linux-x64-16.node +0 -0
- package/llamaBins/linux-x64-17.node +0 -0
- package/llamaBins/linux-x64-18.node +0 -0
- package/llamaBins/linux-x64-19.node +0 -0
- package/llamaBins/linux-x64-20.node +0 -0
- package/llamaBins/mac-arm64-16.node +0 -0
- package/llamaBins/mac-arm64-17.node +0 -0
- package/llamaBins/mac-arm64-18.node +0 -0
- package/llamaBins/mac-arm64-19.node +0 -0
- package/llamaBins/mac-arm64-20.node +0 -0
- package/llamaBins/mac-x64-16.node +0 -0
- package/llamaBins/mac-x64-17.node +0 -0
- package/llamaBins/mac-x64-18.node +0 -0
- package/llamaBins/mac-x64-19.node +0 -0
- package/llamaBins/mac-x64-20.node +0 -0
- package/llamaBins/win-x64-16.node +0 -0
- package/llamaBins/win-x64-17.node +0 -0
- package/llamaBins/win-x64-18.node +0 -0
- package/llamaBins/win-x64-19.node +0 -0
- package/llamaBins/win-x64-20.node +0 -0
- package/package.json +12 -6
package/README.md
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# Node Llama.cpp
|
|
2
4
|
Node.js bindings for llama.cpp.
|
|
3
5
|
|
|
4
|
-
Pre-built bindings are provided with a fallback to building from source with `node-gyp
|
|
6
|
+
<sub>Pre-built bindings are provided with a fallback to building from source with `node-gyp`.<sub>
|
|
5
7
|
|
|
6
8
|
[](https://github.com/withcatai/node-llama-cpp/actions/workflows/build.yml)
|
|
9
|
+
[](https://www.npmjs.com/package/node-llama-cpp)
|
|
10
|
+
[](https://www.npmjs.com/package/node-llama-cpp)
|
|
7
11
|
[](https://www.npmjs.com/package/node-llama-cpp)
|
|
8
12
|
|
|
13
|
+
</div>
|
|
9
14
|
|
|
10
15
|
## Installation
|
|
11
16
|
```bash
|
|
@@ -30,7 +35,7 @@ import {LlamaModel, LlamaContext, LlamaChatSession} from "node-llama-cpp";
|
|
|
30
35
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
31
36
|
|
|
32
37
|
const model = new LlamaModel({
|
|
33
|
-
modelPath: path.join(__dirname, "models", "
|
|
38
|
+
modelPath: path.join(__dirname, "models", "codellama-13b.Q3_K_M.gguf")
|
|
34
39
|
});
|
|
35
40
|
const context = new LlamaContext({model});
|
|
36
41
|
const session = new LlamaChatSession({context});
|
|
@@ -73,7 +78,7 @@ export class MyCustomChatPromptWrapper extends ChatPromptWrapper {
|
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
const model = new LlamaModel({
|
|
76
|
-
modelPath: path.join(__dirname, "models", "
|
|
81
|
+
modelPath: path.join(__dirname, "models", "codellama-13b.Q3_K_M.gguf"),
|
|
77
82
|
promptWrapper: new MyCustomChatPromptWrapper() // by default, LlamaChatPromptWrapper is used
|
|
78
83
|
})
|
|
79
84
|
const context = new LlamaContext({model});
|
|
@@ -103,7 +108,7 @@ import {LlamaModel, LlamaContext, LlamaChatSession} from "node-llama-cpp";
|
|
|
103
108
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
104
109
|
|
|
105
110
|
const model = new LlamaModel({
|
|
106
|
-
modelPath: path.join(__dirname, "models", "
|
|
111
|
+
modelPath: path.join(__dirname, "models", "codellama-13b.Q3_K_M.gguf")
|
|
107
112
|
});
|
|
108
113
|
|
|
109
114
|
const context = new LlamaContext({model});
|
|
@@ -113,8 +118,8 @@ console.log("AI: " + q1);
|
|
|
113
118
|
|
|
114
119
|
const tokens = context.encode(q1);
|
|
115
120
|
const res: number[] = [];
|
|
116
|
-
for await (const
|
|
117
|
-
res.push(
|
|
121
|
+
for await (const modelToken of context.evaluate(tokens)) {
|
|
122
|
+
res.push(modelToken);
|
|
118
123
|
|
|
119
124
|
// it's important to not concatinate the results as strings,
|
|
120
125
|
// as doing so will break some characters (like some emojis) that are made of multiple tokens.
|
|
@@ -130,15 +135,55 @@ const a1 = context.decode(Uint32Array.from(res)).split("USER:")[0];
|
|
|
130
135
|
console.log("AI: " + a1);
|
|
131
136
|
```
|
|
132
137
|
|
|
138
|
+
#### With grammar
|
|
139
|
+
Use this to direct the model to generate a specific format of text, like `JSON` for example.
|
|
140
|
+
|
|
141
|
+
> **Note:** there's an issue with some grammars where the model won't stop generating output,
|
|
142
|
+
> so it's advised to use it together with `maxTokens` set to the context size of the model
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
import {fileURLToPath} from "url";
|
|
146
|
+
import path from "path";
|
|
147
|
+
import {LlamaModel, LlamaGrammar, LlamaContext, LlamaChatSession} from "node-llama-cpp";
|
|
148
|
+
|
|
149
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
150
|
+
|
|
151
|
+
const model = new LlamaModel({
|
|
152
|
+
modelPath: path.join(__dirname, "models", "codellama-13b.Q3_K_M.gguf")
|
|
153
|
+
})
|
|
154
|
+
const grammar = await LlamaGrammar.getFor("json");
|
|
155
|
+
const context = new LlamaContext({
|
|
156
|
+
model,
|
|
157
|
+
grammar
|
|
158
|
+
});
|
|
159
|
+
const session = new LlamaChatSession({context});
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
const q1 = 'Create a JSON that contains a message saying "hi there"';
|
|
163
|
+
console.log("User: " + q1);
|
|
164
|
+
|
|
165
|
+
const a1 = await session.prompt(q1, {maxTokens: context.getContextSize()});
|
|
166
|
+
console.log("AI: " + a1);
|
|
167
|
+
console.log(JSON.parse(a1));
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
const q2 = 'Add another field to the JSON with the key being "author" and the value being "LLama"';
|
|
171
|
+
console.log("User: " + q2);
|
|
172
|
+
|
|
173
|
+
const a2 = await session.prompt(q2, {maxTokens: context.getContextSize()});
|
|
174
|
+
console.log("AI: " + a2);
|
|
175
|
+
console.log(JSON.parse(a2));
|
|
176
|
+
```
|
|
177
|
+
|
|
133
178
|
### CLI
|
|
134
179
|
```
|
|
135
180
|
Usage: node-llama-cpp <command> [options]
|
|
136
181
|
|
|
137
182
|
Commands:
|
|
138
|
-
node-llama-cpp download
|
|
139
|
-
node-llama-cpp build
|
|
140
|
-
node-llama-cpp clear [type]
|
|
141
|
-
node-llama-cpp chat
|
|
183
|
+
node-llama-cpp download Download a release of llama.cpp and compile it
|
|
184
|
+
node-llama-cpp build Compile the currently downloaded llama.cpp
|
|
185
|
+
node-llama-cpp clear [type] Clear files created by node-llama-cpp
|
|
186
|
+
node-llama-cpp chat Chat with a LLama model
|
|
142
187
|
|
|
143
188
|
Options:
|
|
144
189
|
-h, --help Show help [boolean]
|
|
@@ -152,15 +197,17 @@ node-llama-cpp download
|
|
|
152
197
|
Download a release of llama.cpp and compile it
|
|
153
198
|
|
|
154
199
|
Options:
|
|
155
|
-
-h, --help
|
|
156
|
-
--repo
|
|
157
|
-
|
|
200
|
+
-h, --help Show help [boolean]
|
|
201
|
+
--repo The GitHub repository to download a release of llama.cpp from. Can also be
|
|
202
|
+
set via the NODE_LLAMA_CPP_REPO environment variable
|
|
158
203
|
[string] [default: "ggerganov/llama.cpp"]
|
|
159
|
-
--release
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
-
|
|
204
|
+
--release The tag of the llama.cpp release to download. Set to "latest" to download t
|
|
205
|
+
he latest release. Can also be set via the NODE_LLAMA_CPP_REPO_RELEASE envi
|
|
206
|
+
ronment variable [string] [default: "latest"]
|
|
207
|
+
-a, --arch The architecture to compile llama.cpp for [string]
|
|
208
|
+
-t, --nodeTarget The Node.js version to compile llama.cpp for. Example: v18.0.0 [string]
|
|
209
|
+
--skipBuild, --sb Skip building llama.cpp after downloading it [boolean] [default: false]
|
|
210
|
+
-v, --version Show version number [boolean]
|
|
164
211
|
```
|
|
165
212
|
|
|
166
213
|
#### `build` command
|
|
@@ -171,8 +218,8 @@ Compile the currently downloaded llama.cpp
|
|
|
171
218
|
|
|
172
219
|
Options:
|
|
173
220
|
-h, --help Show help [boolean]
|
|
174
|
-
|
|
175
|
-
|
|
221
|
+
-a, --arch The architecture to compile llama.cpp for [string]
|
|
222
|
+
-t, --nodeTarget The Node.js version to compile llama.cpp for. Example: v18.0.0 [string]
|
|
176
223
|
-v, --version Show version number [boolean]
|
|
177
224
|
```
|
|
178
225
|
|
|
@@ -180,7 +227,7 @@ Options:
|
|
|
180
227
|
```
|
|
181
228
|
node-llama-cpp clear [type]
|
|
182
229
|
|
|
183
|
-
Clear files created by llama-
|
|
230
|
+
Clear files created by node-llama-cpp
|
|
184
231
|
|
|
185
232
|
Options:
|
|
186
233
|
-h, --help Show help [boolean]
|
|
@@ -195,20 +242,45 @@ node-llama-cpp chat
|
|
|
195
242
|
Chat with a LLama model
|
|
196
243
|
|
|
197
244
|
Required:
|
|
198
|
-
|
|
245
|
+
-m, --model LLama model file to use for the chat [string] [required]
|
|
199
246
|
|
|
200
247
|
Optional:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
248
|
+
-i, --systemInfo Print llama.cpp system info [boolean] [default: false]
|
|
249
|
+
-s, --systemPrompt System prompt to use against the model. [default value: You are a helpful,
|
|
250
|
+
respectful and honest assistant. Always answer as helpfully as possible. If
|
|
251
|
+
a question does not make any sense, or is not factually coherent, explain
|
|
252
|
+
why instead of answering something not correct. If you don't know the answe
|
|
253
|
+
r to a question, please don't share false information.]
|
|
207
254
|
[string] [default: "You are a helpful, respectful and honest assistant. Always answer as helpfully
|
|
208
255
|
as possible.
|
|
209
256
|
If a question does not make any sense, or is not factually coherent, explain why ins
|
|
210
257
|
tead of answering something not correct. If you don't know the answer to a question, please don't
|
|
211
258
|
share false information."]
|
|
259
|
+
-w, --wrapper Chat wrapper to use. Use `auto` to automatically select a wrapper based on
|
|
260
|
+
the model's BOS token
|
|
261
|
+
[string] [choices: "auto", "general", "llamaChat", "chatML"] [default: "general"]
|
|
262
|
+
-c, --contextSize Context size to use for the model [number] [default: 4096]
|
|
263
|
+
-g, --grammar Restrict the model response to a specific grammar, like JSON for example
|
|
264
|
+
[string] [choices: "text", "json", "list", "arithmetic", "japanese", "chess"] [default: "text"]
|
|
265
|
+
-t, --temperature Temperature is a hyperparameter that controls the randomness of the generat
|
|
266
|
+
ed text. It affects the probability distribution of the model's output toke
|
|
267
|
+
ns. A higher temperature (e.g., 1.5) makes the output more random and creat
|
|
268
|
+
ive, while a lower temperature (e.g., 0.5) makes the output more focused, d
|
|
269
|
+
eterministic, and conservative. The suggested temperature is 0.8, which pro
|
|
270
|
+
vides a balance between randomness and determinism. At the extreme, a tempe
|
|
271
|
+
rature of 0 will always pick the most likely next token, leading to identic
|
|
272
|
+
al outputs in each run. Set to `0` to disable. [number] [default: 0]
|
|
273
|
+
-k, --topK Limits the model to consider only the K most likely next tokens for samplin
|
|
274
|
+
g at each step of sequence generation. An integer number between `1` and th
|
|
275
|
+
e size of the vocabulary. Set to `0` to disable (which uses the full vocabu
|
|
276
|
+
lary). Only relevant when `temperature` is set to a value greater than 0.
|
|
277
|
+
[number] [default: 40]
|
|
278
|
+
-p, --topP Dynamically selects the smallest set of tokens whose cumulative probability
|
|
279
|
+
exceeds the threshold P, and samples the next token only from this set. A
|
|
280
|
+
float number between `0` and `1`. Set to `1` to disable. Only relevant when
|
|
281
|
+
`temperature` is set to a value greater than `0`. [number] [default: 0.95]
|
|
282
|
+
--maxTokens, --mt Maximum number of tokens to generate in responses. Set to `0` to disable. S
|
|
283
|
+
et to `-1` to set to the context size [number] [default: 0]
|
|
212
284
|
|
|
213
285
|
Options:
|
|
214
286
|
-h, --help Show help [boolean]
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export declare abstract class ChatPromptWrapper {
|
|
2
|
+
abstract readonly wrapperName: string;
|
|
2
3
|
wrapPrompt(prompt: string, { systemPrompt, promptIndex }: {
|
|
3
4
|
systemPrompt: string;
|
|
4
5
|
promptIndex: number;
|
|
6
|
+
lastStopString: string | null;
|
|
7
|
+
lastStopStringSuffix: string | null;
|
|
5
8
|
}): string;
|
|
6
9
|
getStopStrings(): string[];
|
|
7
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPromptWrapper.js","sourceRoot":"","sources":["../src/ChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ChatPromptWrapper.js","sourceRoot":"","sources":["../src/ChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,iBAAiB;IAG5B,UAAU,CAAC,MAAc,EAAE,EAAC,YAAY,EAAE,WAAW,EAE3D;QACG,IAAI,WAAW,KAAK,CAAC,EAAE;YACnB,OAAO,YAAY,GAAG,IAAI,GAAG,MAAM,CAAC;SACvC;aAAM;YACH,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAEM,cAAc;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
+
export declare class ChatMLPromptWrapper extends ChatPromptWrapper {
|
|
3
|
+
readonly wrapperName: string;
|
|
4
|
+
wrapPrompt(prompt: string, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }: {
|
|
5
|
+
systemPrompt: string;
|
|
6
|
+
promptIndex: number;
|
|
7
|
+
lastStopString: string | null;
|
|
8
|
+
lastStopStringSuffix: string | null;
|
|
9
|
+
}): string;
|
|
10
|
+
getStopStrings(): string[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
+
import { getTextCompletion } from "../utils/getTextCompletion.js";
|
|
3
|
+
// source: https://github.com/openai/openai-python/blob/120d225b91a8453e15240a49fb1c6794d8119326/chatml.md
|
|
4
|
+
export class ChatMLPromptWrapper extends ChatPromptWrapper {
|
|
5
|
+
wrapperName = "ChatML";
|
|
6
|
+
wrapPrompt(prompt, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }) {
|
|
7
|
+
const previousCompletionEnd = (lastStopString ?? "") + (lastStopStringSuffix ?? "");
|
|
8
|
+
if (promptIndex === 0 && systemPrompt != "")
|
|
9
|
+
return (getTextCompletion(previousCompletionEnd, "<|im_start|>system\n") ?? "<|im_start|>system\n") +
|
|
10
|
+
systemPrompt + "<|im_end|>\n<|im_start|>user\n" + prompt + "<|im_end|>\n<|im_start|>assistant\n";
|
|
11
|
+
else
|
|
12
|
+
return (getTextCompletion(previousCompletionEnd, "<|im_end|>\n<|im_start|>user\n") ?? "<|im_end|>\n<|im_start|>user\n") +
|
|
13
|
+
prompt + "<|im_end|>\n<|im_start|>assistant\n";
|
|
14
|
+
}
|
|
15
|
+
getStopStrings() {
|
|
16
|
+
return ["<|im_end|>"];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ChatMLPromptWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatMLPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/ChatMLPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,0GAA0G;AAC1G,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IACtC,WAAW,GAAW,QAAQ,CAAC;IAE/B,UAAU,CAAC,MAAc,EAAE,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAE1G;QACG,MAAM,qBAAqB,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAEpF,IAAI,WAAW,KAAK,CAAC,IAAI,YAAY,IAAI,EAAE;YACvC,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,IAAI,sBAAsB,CAAC;gBAC/F,YAAY,GAAG,gCAAgC,GAAG,MAAM,GAAG,qCAAqC,CAAC;;YAErG,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,gCAAgC,CAAC,IAAI,gCAAgC,CAAC;gBACnH,MAAM,GAAG,qCAAqC,CAAC;IAC3D,CAAC;IAEe,cAAc;QAC1B,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/EmptyChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"EmptyChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/EmptyChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IACzC,WAAW,GAAW,OAAO,CAAC;CACjD"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
2
|
export declare class GeneralChatPromptWrapper extends ChatPromptWrapper {
|
|
3
|
-
|
|
3
|
+
readonly wrapperName: string;
|
|
4
|
+
private readonly _instructionName;
|
|
5
|
+
private readonly _responseName;
|
|
6
|
+
constructor({ instructionName, responseName }?: {
|
|
7
|
+
instructionName?: string;
|
|
8
|
+
responseName?: string;
|
|
9
|
+
});
|
|
10
|
+
wrapPrompt(prompt: string, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }: {
|
|
4
11
|
systemPrompt: string;
|
|
5
12
|
promptIndex: number;
|
|
13
|
+
lastStopString: string | null;
|
|
14
|
+
lastStopStringSuffix: string | null;
|
|
6
15
|
}): string;
|
|
7
16
|
getStopStrings(): string[];
|
|
17
|
+
private _getPromptPrefix;
|
|
8
18
|
}
|
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
+
import { getTextCompletion } from "../utils/getTextCompletion.js";
|
|
2
3
|
export class GeneralChatPromptWrapper extends ChatPromptWrapper {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
wrapperName = "General";
|
|
5
|
+
_instructionName;
|
|
6
|
+
_responseName;
|
|
7
|
+
constructor({ instructionName = "Human", responseName = "Assistant" } = {}) {
|
|
8
|
+
super();
|
|
9
|
+
this._instructionName = instructionName;
|
|
10
|
+
this._responseName = responseName;
|
|
11
|
+
}
|
|
12
|
+
wrapPrompt(prompt, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }) {
|
|
13
|
+
if (promptIndex === 0)
|
|
14
|
+
return systemPrompt + `\n\n### ${this._instructionName}:\n\n` + prompt + `\n\n### ${this._responseName}:\n\n`;
|
|
15
|
+
return this._getPromptPrefix(lastStopString, lastStopStringSuffix) + prompt + `\n\n### ${this._responseName}:\n\n`;
|
|
6
16
|
}
|
|
7
17
|
getStopStrings() {
|
|
8
|
-
return [
|
|
18
|
+
return [
|
|
19
|
+
`\n\n### ${this._instructionName}`,
|
|
20
|
+
`### ${this._instructionName}`,
|
|
21
|
+
`\n\n### ${this._responseName}`,
|
|
22
|
+
`### ${this._responseName}`,
|
|
23
|
+
"<end>"
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
_getPromptPrefix(lastStopString, lastStopStringSuffix) {
|
|
27
|
+
return getTextCompletion(lastStopString === "<end>"
|
|
28
|
+
? lastStopStringSuffix
|
|
29
|
+
: (lastStopString + (lastStopStringSuffix ?? "")), [
|
|
30
|
+
`\n\n### ${this._instructionName}:\n\n`,
|
|
31
|
+
`### ${this._instructionName}:\n\n`
|
|
32
|
+
]) ?? `\n\n### ${this._instructionName}:\n\n`;
|
|
9
33
|
}
|
|
10
34
|
}
|
|
11
35
|
//# sourceMappingURL=GeneralChatPromptWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/GeneralChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"GeneralChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/GeneralChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,wBAAyB,SAAQ,iBAAiB;IAC3C,WAAW,GAAW,SAAS,CAAC;IAC/B,gBAAgB,CAAS;IACzB,aAAa,CAAS;IAEvC,YAAmB,EAAC,eAAe,GAAG,OAAO,EAAE,YAAY,GAAG,WAAW,KAAuD,EAAE;QAC9H,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAEe,UAAU,CAAC,MAAc,EAAE,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAE1G;QACG,IAAI,WAAW,KAAK,CAAC;YACjB,OAAO,YAAY,GAAG,WAAW,IAAI,CAAC,gBAAgB,OAAO,GAAG,MAAM,GAAG,WAAW,IAAI,CAAC,aAAa,OAAO,CAAC;QAElH,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,GAAG,MAAM,GAAG,WAAW,IAAI,CAAC,aAAa,OAAO,CAAC;IACvH,CAAC;IAEe,cAAc;QAC1B,OAAO;YACH,WAAW,IAAI,CAAC,gBAAgB,EAAE;YAClC,OAAO,IAAI,CAAC,gBAAgB,EAAE;YAC9B,WAAW,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,IAAI,CAAC,aAAa,EAAE;YAC3B,OAAO;SACV,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,cAA6B,EAAE,oBAAmC;QACvF,OAAO,iBAAiB,CACpB,cAAc,KAAK,OAAO;YACtB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,EACrD;YACI,WAAW,IAAI,CAAC,gBAAgB,OAAO;YACvC,OAAO,IAAI,CAAC,gBAAgB,OAAO;SACtC,CACJ,IAAI,WAAW,IAAI,CAAC,gBAAgB,OAAO,CAAC;IACjD,CAAC;CACJ"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
2
|
export declare class LlamaChatPromptWrapper extends ChatPromptWrapper {
|
|
3
|
-
|
|
3
|
+
readonly wrapperName: string;
|
|
4
|
+
wrapPrompt(prompt: string, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }: {
|
|
4
5
|
systemPrompt: string;
|
|
5
6
|
promptIndex: number;
|
|
7
|
+
lastStopString: string | null;
|
|
8
|
+
lastStopStringSuffix: string | null;
|
|
6
9
|
}): string;
|
|
7
10
|
getStopStrings(): string[];
|
|
8
11
|
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { ChatPromptWrapper } from "../ChatPromptWrapper.js";
|
|
2
|
+
import { getTextCompletion } from "../utils/getTextCompletion.js";
|
|
2
3
|
// source: https://huggingface.co/blog/llama2#how-to-prompt-llama-2
|
|
3
4
|
export class LlamaChatPromptWrapper extends ChatPromptWrapper {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
wrapperName = "LlamaChat";
|
|
6
|
+
wrapPrompt(prompt, { systemPrompt, promptIndex, lastStopString, lastStopStringSuffix }) {
|
|
7
|
+
const previousCompletionEnd = (lastStopString ?? "") + (lastStopStringSuffix ?? "");
|
|
8
|
+
if (promptIndex === 0 && systemPrompt != "") {
|
|
9
|
+
return (getTextCompletion(previousCompletionEnd, "<s>[INST] <<SYS>>\n") ?? "<s>[INST] <<SYS>>\n") + systemPrompt +
|
|
10
|
+
"\n<</SYS>>\n\n" + prompt + " [/INST]\n\n";
|
|
7
11
|
}
|
|
8
12
|
else {
|
|
9
|
-
return "<s>[INST] " + prompt + " [/INST]\n\n";
|
|
13
|
+
return (getTextCompletion(previousCompletionEnd, "</s><s>[INST] ") ?? "<s>[INST] ") + prompt + " [/INST]\n\n";
|
|
10
14
|
}
|
|
11
15
|
}
|
|
12
16
|
getStopStrings() {
|
|
13
|
-
return ["</s
|
|
17
|
+
return ["</s>"];
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
20
|
//# sourceMappingURL=LlamaChatPromptWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/LlamaChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"LlamaChatPromptWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/LlamaChatPromptWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,mEAAmE;AACnE,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IACzC,WAAW,GAAW,WAAW,CAAC;IAElC,UAAU,CAAC,MAAc,EAAE,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAE1G;QACG,MAAM,qBAAqB,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAEpF,IAAI,WAAW,KAAK,CAAC,IAAI,YAAY,IAAI,EAAE,EAAE;YACzC,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,GAAG,YAAY;gBAC5G,gBAAgB,GAAG,MAAM,GAAG,cAAc,CAAC;SAClD;aAAM;YACH,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,IAAI,YAAY,CAAC,GAAG,MAAM,GAAG,cAAc,CAAC;SACjH;IACL,CAAC;IAEe,cAAc;QAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;CACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LlamaChatPromptWrapper } from "./LlamaChatPromptWrapper.js";
|
|
2
|
+
import { ChatMLPromptWrapper } from "./ChatMLPromptWrapper.js";
|
|
3
|
+
export function getChatWrapperByBos(bos) {
|
|
4
|
+
if (bos === "" || bos == null)
|
|
5
|
+
return null;
|
|
6
|
+
if ("<s>[INST] <<SYS>>\n".startsWith(bos)) {
|
|
7
|
+
return LlamaChatPromptWrapper;
|
|
8
|
+
}
|
|
9
|
+
else if ("<|im_start|>system\n".startsWith(bos)) {
|
|
10
|
+
return ChatMLPromptWrapper;
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=createChatWrapperByBos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createChatWrapperByBos.js","sourceRoot":"","sources":["../../src/chatWrappers/createChatWrapperByBos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,GAA8B;IAC9D,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI;QACzB,OAAO,IAAI,CAAC;IAEhB,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACvC,OAAO,sBAAsB,CAAC;KACjC;SAAM,IAAI,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC/C,OAAO,mBAAmB,CAAC;KAC9B;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -2,7 +2,9 @@ import { CommandModule } from "yargs";
|
|
|
2
2
|
type BuildCommand = {
|
|
3
3
|
arch?: string;
|
|
4
4
|
nodeTarget?: string;
|
|
5
|
+
metal: boolean;
|
|
6
|
+
cuda: boolean;
|
|
5
7
|
};
|
|
6
8
|
export declare const BuildCommand: CommandModule<object, BuildCommand>;
|
|
7
|
-
export declare function BuildLlamaCppCommand({ arch, nodeTarget }: BuildCommand): Promise<void>;
|
|
9
|
+
export declare function BuildLlamaCppCommand({ arch, nodeTarget, metal, cuda }: BuildCommand): Promise<void>;
|
|
8
10
|
export {};
|
|
@@ -1,24 +1,44 @@
|
|
|
1
|
+
import process from "process";
|
|
1
2
|
import chalk from "chalk";
|
|
2
3
|
import { compileLlamaCpp } from "../../utils/compileLLamaCpp.js";
|
|
3
4
|
import withOra from "../../utils/withOra.js";
|
|
4
5
|
import { clearTempFolder } from "../../utils/clearTempFolder.js";
|
|
6
|
+
import { defaultLlamaCppCudaSupport, defaultLlamaCppMetalSupport } from "../../config.js";
|
|
5
7
|
export const BuildCommand = {
|
|
6
8
|
command: "build",
|
|
7
9
|
describe: "Compile the currently downloaded llama.cpp",
|
|
8
10
|
builder(yargs) {
|
|
9
11
|
return yargs
|
|
10
12
|
.option("arch", {
|
|
13
|
+
alias: "a",
|
|
11
14
|
type: "string",
|
|
12
15
|
description: "The architecture to compile llama.cpp for"
|
|
13
16
|
})
|
|
14
17
|
.option("nodeTarget", {
|
|
18
|
+
alias: "t",
|
|
15
19
|
type: "string",
|
|
16
20
|
description: "The Node.js version to compile llama.cpp for. Example: v18.0.0"
|
|
21
|
+
})
|
|
22
|
+
.option("metal", {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
default: defaultLlamaCppMetalSupport,
|
|
25
|
+
description: "Compile llama.cpp with Metal support. Can also be set via the NODE_LLAMA_CPP_METAL environment variable"
|
|
26
|
+
})
|
|
27
|
+
.option("cuda", {
|
|
28
|
+
type: "boolean",
|
|
29
|
+
default: defaultLlamaCppCudaSupport,
|
|
30
|
+
description: "Compile llama.cpp with CUDA support. Can also be set via the NODE_LLAMA_CPP_CUDA environment variable"
|
|
17
31
|
});
|
|
18
32
|
},
|
|
19
33
|
handler: BuildLlamaCppCommand
|
|
20
34
|
};
|
|
21
|
-
export async function BuildLlamaCppCommand({ arch, nodeTarget }) {
|
|
35
|
+
export async function BuildLlamaCppCommand({ arch, nodeTarget, metal, cuda }) {
|
|
36
|
+
if (metal && process.platform === "darwin") {
|
|
37
|
+
console.log(`${chalk.yellow("Metal:")} enabled`);
|
|
38
|
+
}
|
|
39
|
+
if (cuda) {
|
|
40
|
+
console.log(`${chalk.yellow("CUDA:")} enabled`);
|
|
41
|
+
}
|
|
22
42
|
await withOra({
|
|
23
43
|
loading: chalk.blue("Compiling llama.cpp"),
|
|
24
44
|
success: chalk.blue("Compiled llama.cpp"),
|
|
@@ -27,7 +47,9 @@ export async function BuildLlamaCppCommand({ arch, nodeTarget }) {
|
|
|
27
47
|
await compileLlamaCpp({
|
|
28
48
|
arch: arch ? arch : undefined,
|
|
29
49
|
nodeTarget: nodeTarget ? nodeTarget : undefined,
|
|
30
|
-
setUsedBingFlag: true
|
|
50
|
+
setUsedBingFlag: true,
|
|
51
|
+
metal,
|
|
52
|
+
cuda
|
|
31
53
|
});
|
|
32
54
|
});
|
|
33
55
|
await withOra({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AASxF,MAAM,CAAC,MAAM,YAAY,GAAwC;IAC7D,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,4CAA4C;IACtD,OAAO,CAAC,KAAK;QACT,OAAO,KAAK;aACP,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2CAA2C;SAC3D,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gEAAgE;SAChF,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,2BAA2B;YACpC,WAAW,EAAE,yGAAyG;SACzH,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B;YACnC,WAAW,EAAE,uGAAuG;SACvH,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,oBAAoB;CAChC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAe;IACpF,IAAI,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACpD;IAED,IAAI,IAAI,EAAE;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACnD;IAED,MAAM,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAC1C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC;KAClD,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,eAAe,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC/C,eAAe,EAAE,IAAI;YACrB,KAAK;YACL,IAAI;SACP,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC;KACvD,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,eAAe,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { CommandModule } from "yargs";
|
|
2
|
+
import type { LlamaGrammar } from "../../llamaEvaluator/LlamaGrammar.js";
|
|
2
3
|
type ChatCommand = {
|
|
3
4
|
model: string;
|
|
4
5
|
systemInfo: boolean;
|
|
5
6
|
systemPrompt: string;
|
|
6
|
-
wrapper:
|
|
7
|
+
wrapper: "auto" | "general" | "llamaChat" | "chatML";
|
|
7
8
|
contextSize: number;
|
|
9
|
+
grammar: "text" | Parameters<typeof LlamaGrammar.getFor>[0];
|
|
10
|
+
temperature: number;
|
|
11
|
+
topK: number;
|
|
12
|
+
topP: number;
|
|
13
|
+
maxTokens: number;
|
|
8
14
|
};
|
|
9
15
|
export declare const ChatCommand: CommandModule<object, ChatCommand>;
|
|
10
16
|
export {};
|