node-llama-cpp 3.4.0 → 3.4.2

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.
@@ -30,10 +30,9 @@ export class LlamaRankingContext {
30
30
  throw new Error("Computing rankings is not supported for this model.");
31
31
  const resolvedInput = this._getEvaluationInput(query, document);
32
32
  if (resolvedInput.length > this._llamaContext.contextSize)
33
- throw new Error("Input is longer than the context size. " +
34
- "Try to increase the context size or use another model that supports longer contexts.");
35
- else if (resolvedInput.length === 0)
36
- return -Infinity;
33
+ throw new Error("The input length exceed the context size. " +
34
+ `Try to increase the context size to at least ${resolvedInput.length + 1} ` +
35
+ "or use another model that supports longer contexts.");
37
36
  return this._evaluateRankingForInput(resolvedInput);
38
37
  }
39
38
  /**
@@ -44,16 +43,14 @@ export class LlamaRankingContext {
44
43
  */
45
44
  async rankAll(query, documents) {
46
45
  const resolvedTokens = documents.map((document) => this._getEvaluationInput(query, document));
47
- if (resolvedTokens.some((tokens) => tokens.length > this._llamaContext.contextSize))
48
- throw new Error("The input of one of the document is longer than the context size. " +
49
- "Try to increase the context size or use another model that supports longer contexts.");
46
+ const maxInputTokensLength = resolvedTokens.reduce((max, tokens) => Math.max(max, tokens.length), 0);
47
+ if (maxInputTokensLength > this._llamaContext.contextSize)
48
+ throw new Error("The input lengths of some of the given documents exceed the context size. " +
49
+ `Try to increase the context size to at least ${maxInputTokensLength + 1} ` +
50
+ "or use another model that supports longer contexts.");
50
51
  else if (resolvedTokens.length === 0)
51
52
  return [];
52
- return await Promise.all(resolvedTokens.map((tokens) => {
53
- if (tokens.length === 0)
54
- return -Infinity;
55
- return this._evaluateRankingForInput(tokens);
56
- }));
53
+ return await Promise.all(resolvedTokens.map((tokens) => this._evaluateRankingForInput(tokens)));
57
54
  }
58
55
  /**
59
56
  * Get the ranking scores for all the given documents for a query and sort them by score from highest to lowest.
@@ -99,6 +96,8 @@ export class LlamaRankingContext {
99
96
  }
100
97
  /** @internal */
101
98
  _evaluateRankingForInput(input) {
99
+ if (input.length === 0)
100
+ return Promise.resolve(0);
102
101
  return withLock(this, "evaluate", async () => {
103
102
  await this._sequence.eraseContextTokenRanges([{
104
103
  start: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaRankingContext.js","sourceRoot":"","sources":["../../src/evaluator/LlamaRankingContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlamaRankingContext.js","sourceRoot":"","sources":["../../src/evaluator/LlamaRankingContext.ts"],"names":[],"mappings":"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"}
@@ -79,10 +79,7 @@ export class GgufFileReader {
79
79
  readStringWithLength(offset, length) {
80
80
  const readLength = valueTypeToBytesToRead.uint8 * length;
81
81
  return this._withBufferRead(offset, readLength, (resolvedOffset) => {
82
- const res = [];
83
- for (let i = resolvedOffset; i < resolvedOffset + readLength && i < this._buffer.length; i++)
84
- res.push(String.fromCharCode(this._buffer[i]));
85
- return res.join("");
82
+ return this._buffer.toString("utf8", resolvedOffset, Math.min(resolvedOffset + readLength, this._buffer.length));
86
83
  });
87
84
  }
88
85
  _addToBuffer(buffer) {
@@ -1 +1 @@
1
- {"version":3,"file":"GgufFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufFileReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GgufFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufFileReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAa,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AAEnF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACD,CAAC;AAEX,MAAM,OAAgB,cAAc;IACtB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAK7B,SAAS,CAAC,MAA+B;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;YACjF,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,EAAE;YAClF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,EAAE;YAClF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,EAAE;YAClF,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ,CAAC,MAA+B;QAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE;YAChF,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;YACjF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;YACjF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;YACjF,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,MAA+B;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,OAAO,EAAE,CAAC,cAAc,EAAE,EAAE;YACnF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,MAA+B;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,OAAO,EAAE,CAAC,cAAc,EAAE,EAAE;YACnF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ,CAAC,MAA+B;QAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;YACjF,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,MAA+B;QAC7C,MAAM,UAAU,GAAG,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE5D,OAAO,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,oBAAoB,CAAC,MAA+B,EAAE,MAAc;QACvE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,GAAG,MAAM,CAAC;QAEzD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,cAAc,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACrH,CAAC,CAAC,CAAC;IACP,CAAC;IAES,YAAY,CAAC,MAAc;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,eAAe,CAAI,MAA+B,EAAE,MAAc,EAAE,MAAqC;QAC7G,OAAO,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE;YACrE,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAEhE,OAAO,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9D,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAErF,OAAO,GAAG,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,KAAa;QACxC,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB;YAC/B,OAAO,KAAK,CAAC;QAEjB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACJ"}
@@ -79,7 +79,7 @@ export class GgufNetworkFetchFileReader extends GgufFileReader {
79
79
  },
80
80
  signal: this._signal
81
81
  });
82
- if ((response.status >= 500 || response.status === 429) && headersToTry.length > 0)
82
+ if ((response.status >= 500 || response.status === 429 || response.status === 401) && headersToTry.length > 0)
83
83
  continue;
84
84
  if (!response.ok)
85
85
  throw new Error(`Failed to fetch byte range: ${response.status} ${response.statusText}`);
@@ -1 +1 @@
1
- {"version":3,"file":"GgufNetworkFetchFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GgufNetworkFetchFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts"],"names":[],"mappings":"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"}
@@ -105,13 +105,13 @@ class AddonContextLoadContextWorker : public Napi::AsyncWorker {
105
105
 
106
106
  void Execute() {
107
107
  try {
108
- context->ctx = llama_new_context_with_model(context->model->model, context->context_params);
108
+ context->ctx = llama_init_from_model(context->model->model, context->context_params);
109
109
 
110
110
  context->contextLoaded = context->ctx != nullptr && context->ctx != NULL;
111
111
  } catch (const std::exception& e) {
112
112
  SetError(e.what());
113
113
  } catch(...) {
114
- SetError("Unknown error when calling \"llama_new_context_with_model\"");
114
+ SetError("Unknown error when calling \"llama_init_from_model\"");
115
115
  }
116
116
  }
117
117
  void OnOK() {
@@ -252,7 +252,7 @@ class AddonContextSampleTokenWorker : public Napi::AsyncWorker {
252
252
  sampler->rebuildChainIfNeeded();
253
253
 
254
254
  const auto * logits = llama_get_logits_ith(ctx->ctx, batchLogitIndex);
255
- const int n_vocab = llama_n_vocab(ctx->model->model);
255
+ const int n_vocab = llama_vocab_n_tokens(ctx->model->vocab);
256
256
 
257
257
  auto & candidates = sampler->tokenCandidates;
258
258
  for (llama_token token_id = 0; token_id < n_vocab; token_id++) {
@@ -525,7 +525,7 @@ Napi::Value AddonContext::InitBatch(const Napi::CallbackInfo& info) {
525
525
  has_batch = true;
526
526
  batch_n_tokens = n_tokens;
527
527
 
528
- uint64_t newBatchMemorySize = calculateBatchMemorySize(n_tokens, llama_n_embd(model->model), context_params.n_batch);
528
+ uint64_t newBatchMemorySize = calculateBatchMemorySize(n_tokens, llama_model_n_embd(model->model), context_params.n_batch);
529
529
  if (newBatchMemorySize > batchMemorySize) {
530
530
  adjustNapiExternalMemoryAdd(Env(), newBatchMemorySize - batchMemorySize);
531
531
  batchMemorySize = newBatchMemorySize;
@@ -645,7 +645,7 @@ Napi::Value AddonContext::GetEmbedding(const Napi::CallbackInfo& info) {
645
645
  return info.Env().Undefined();
646
646
  }
647
647
 
648
- const int n_embd = llama_n_embd(model->model);
648
+ const int n_embd = llama_model_n_embd(model->model);
649
649
  const enum llama_pooling_type pooling_type = llama_pooling_type(ctx);
650
650
  const auto* embeddings = pooling_type == LLAMA_POOLING_TYPE_NONE ? NULL : llama_get_embeddings_seq(ctx, 0);
651
651
  if (embeddings == NULL) {
@@ -716,23 +716,25 @@ Napi::Value AddonContext::EnsureDraftContextIsCompatibleForSpeculative(const Nap
716
716
  const auto draftCtx = draftContext->ctx;
717
717
  const auto currentModel = model->model;
718
718
  const auto draftModel = draftContext->model->model;
719
+ const auto currentVocab = model->vocab;
720
+ const auto draftVocab = draftContext->model->vocab;
719
721
 
720
- if (llama_vocab_type(currentModel) != llama_vocab_type(draftModel)) {
722
+ if (llama_vocab_type(currentVocab) != llama_vocab_type(draftVocab)) {
721
723
  Napi::Error::New(info.Env(), "Speculative draft model vocabulary type must match the target model vocabulary type").ThrowAsJavaScriptException();
722
724
  return info.Env().Undefined();
723
725
  }
724
726
 
725
- if (llama_add_bos_token(currentModel) != llama_add_bos_token(draftModel) ||
726
- llama_add_eos_token(currentModel) != llama_add_eos_token(draftModel) ||
727
- llama_token_bos(currentModel) != llama_token_bos(draftModel) ||
728
- llama_token_eos(currentModel) != llama_token_eos(draftModel)
727
+ if (llama_vocab_get_add_bos(currentVocab) != llama_vocab_get_add_bos(draftVocab) ||
728
+ llama_vocab_get_add_eos(currentVocab) != llama_vocab_get_add_eos(draftVocab) ||
729
+ llama_vocab_bos(currentVocab) != llama_vocab_bos(draftVocab) ||
730
+ llama_vocab_eos(currentVocab) != llama_vocab_eos(draftVocab)
729
731
  ) {
730
732
  Napi::Error::New(info.Env(), "Speculative draft model special tokens must match the target model special tokens").ThrowAsJavaScriptException();
731
733
  return info.Env().Undefined();
732
734
  }
733
735
 
734
- const int currentModelVocabSize = llama_n_vocab(currentModel);
735
- const int draftModelVocabSize = llama_n_vocab(draftModel);
736
+ const int currentModelVocabSize = llama_vocab_n_tokens(currentVocab);
737
+ const int draftModelVocabSize = llama_vocab_n_tokens(draftVocab);
736
738
 
737
739
  const int vocabDiff = std::abs(currentModelVocabSize - draftModelVocabSize);
738
740
 
@@ -747,8 +749,8 @@ Napi::Value AddonContext::EnsureDraftContextIsCompatibleForSpeculative(const Nap
747
749
 
748
750
  const int minVocabSize = std::min(currentModelVocabSize, draftModelVocabSize);
749
751
  for (int i = vocabCheckStartTokenId; i < minVocabSize; ++i) {
750
- const char * currentTokenText = llama_token_get_text(currentModel, i);
751
- const char * draftTokenText = llama_token_get_text(draftModel, i);
752
+ const char * currentTokenText = llama_vocab_get_text(currentVocab, i);
753
+ const char * draftTokenText = llama_vocab_get_text(draftVocab, i);
752
754
  if (std::strcmp(currentTokenText, draftTokenText) != 0) {
753
755
  Napi::Error::New(
754
756
  info.Env(),
@@ -767,7 +769,7 @@ Napi::Value AddonContext::SetLora(const Napi::CallbackInfo& info) {
767
769
  AddonModelLora* lora = Napi::ObjectWrap<AddonModelLora>::Unwrap(info[0].As<Napi::Object>());
768
770
  float scale = info[1].As<Napi::Number>().FloatValue();
769
771
 
770
- llama_lora_adapter_set(ctx, lora->lora_adapter, scale);
772
+ llama_set_adapter_lora(ctx, lora->lora_adapter, scale);
771
773
 
772
774
  return info.Env().Undefined();
773
775
  }
@@ -22,7 +22,7 @@ AddonGrammarEvaluationState::AddonGrammarEvaluationState(const Napi::CallbackInf
22
22
  grammarDef = Napi::ObjectWrap<AddonGrammar>::Unwrap(info[1].As<Napi::Object>());
23
23
  grammarDef->Ref();
24
24
 
25
- sampler = llama_sampler_init_grammar(model->model, grammarDef->grammarCode.c_str(), grammarDef->rootRuleName.c_str());
25
+ sampler = llama_sampler_init_grammar(model->vocab, grammarDef->grammarCode.c_str(), grammarDef->rootRuleName.c_str());
26
26
  }
27
27
  }
28
28
  AddonGrammarEvaluationState::~AddonGrammarEvaluationState() {
@@ -8,12 +8,12 @@
8
8
  #include "AddonModelData.h"
9
9
  #include "AddonModelLora.h"
10
10
 
11
- static Napi::Value getNapiToken(const Napi::CallbackInfo& info, llama_model* model, llama_token token) {
11
+ static Napi::Value getNapiToken(const Napi::CallbackInfo& info, const llama_vocab* vocab, llama_token token) {
12
12
  if (token < 0 || token == LLAMA_TOKEN_NULL) {
13
13
  return Napi::Number::From(info.Env(), -1);
14
14
  }
15
15
 
16
- auto tokenAttributes = llama_token_get_attr(model, token);
16
+ auto tokenAttributes = llama_vocab_get_attr(vocab, token);
17
17
 
18
18
  if (tokenAttributes & LLAMA_TOKEN_ATTR_UNDEFINED || tokenAttributes & LLAMA_TOKEN_ATTR_UNKNOWN) {
19
19
  return Napi::Number::From(info.Env(), -1);
@@ -22,12 +22,12 @@ static Napi::Value getNapiToken(const Napi::CallbackInfo& info, llama_model* mod
22
22
  return Napi::Number::From(info.Env(), token);
23
23
  }
24
24
 
25
- static Napi::Value getNapiControlToken(const Napi::CallbackInfo& info, llama_model* model, llama_token token) {
25
+ static Napi::Value getNapiControlToken(const Napi::CallbackInfo& info, const llama_vocab* vocab, llama_token token) {
26
26
  if (token < 0) {
27
27
  return Napi::Number::From(info.Env(), -1);
28
28
  }
29
29
 
30
- auto tokenAttributes = llama_token_get_attr(model, token);
30
+ auto tokenAttributes = llama_vocab_get_attr(vocab, token);
31
31
 
32
32
  if (!(tokenAttributes & LLAMA_TOKEN_ATTR_CONTROL) && !(tokenAttributes & LLAMA_TOKEN_ATTR_UNDEFINED)) {
33
33
  return Napi::Number::From(info.Env(), -1);
@@ -93,6 +93,7 @@ class AddonModelLoadModelWorker : public Napi::AsyncWorker {
93
93
  void Execute() {
94
94
  try {
95
95
  model->model = llama_model_load_from_file(model->modelPath.c_str(), model->model_params);
96
+ model->vocab = llama_model_get_vocab(model->model);
96
97
 
97
98
  model->modelLoaded = model->model != nullptr && model->model != NULL;
98
99
  } catch (const std::exception& e) {
@@ -190,7 +191,7 @@ class AddonModelLoadLoraWorker : public Napi::AsyncWorker {
190
191
 
191
192
  void Execute() {
192
193
  try {
193
- const auto loraAdapter = llama_lora_adapter_init(modelLora->model->model, modelLora->loraFilePath.c_str());
194
+ const auto loraAdapter = llama_adapter_lora_init(modelLora->model->model, modelLora->loraFilePath.c_str());
194
195
 
195
196
  if (loraAdapter == nullptr) {
196
197
  SetError(
@@ -213,7 +214,7 @@ class AddonModelLoadLoraWorker : public Napi::AsyncWorker {
213
214
  } catch (const std::exception& e) {
214
215
  SetError(e.what());
215
216
  } catch(...) {
216
- SetError("Unknown error when calling \"llama_lora_adapter_init\"");
217
+ SetError("Unknown error when calling \"llama_adapter_lora_init\"");
217
218
  }
218
219
  }
219
220
  void OnOK() {
@@ -426,7 +427,7 @@ Napi::Value AddonModel::Tokenize(const Napi::CallbackInfo& info) {
426
427
  std::string text = info[0].As<Napi::String>().Utf8Value();
427
428
  bool specialTokens = info[1].As<Napi::Boolean>().Value();
428
429
 
429
- std::vector<llama_token> tokens = common_tokenize(model, text, false, specialTokens);
430
+ std::vector<llama_token> tokens = common_tokenize(vocab, text, false, specialTokens);
430
431
 
431
432
  Napi::Uint32Array result = Napi::Uint32Array::New(info.Env(), tokens.size());
432
433
  for (size_t i = 0; i < tokens.size(); ++i) {
@@ -449,10 +450,10 @@ Napi::Value AddonModel::Detokenize(const Napi::CallbackInfo& info) {
449
450
  std::string result;
450
451
  result.resize(std::max(result.capacity(), tokens.ElementLength()));
451
452
 
452
- int n_chars = llama_detokenize(model, (llama_token*)tokens.Data(), tokens.ElementLength(), &result[0], result.size(), false, decodeSpecialTokens);
453
+ int n_chars = llama_detokenize(vocab, (llama_token*)tokens.Data(), tokens.ElementLength(), &result[0], result.size(), false, decodeSpecialTokens);
453
454
  if (n_chars < 0) {
454
455
  result.resize(-n_chars);
455
- n_chars = llama_detokenize(model, (llama_token*)tokens.Data(), tokens.ElementLength(), &result[0], result.size(), false, decodeSpecialTokens);
456
+ n_chars = llama_detokenize(vocab, (llama_token*)tokens.Data(), tokens.ElementLength(), &result[0], result.size(), false, decodeSpecialTokens);
456
457
  GGML_ASSERT(n_chars <= result.size()); // whitespace trimming is performed after per-token detokenization
457
458
  }
458
459
 
@@ -467,7 +468,7 @@ Napi::Value AddonModel::GetTrainContextSize(const Napi::CallbackInfo& info) {
467
468
  return info.Env().Undefined();
468
469
  }
469
470
 
470
- return Napi::Number::From(info.Env(), llama_n_ctx_train(model));
471
+ return Napi::Number::From(info.Env(), llama_model_n_ctx_train(model));
471
472
  }
472
473
 
473
474
  Napi::Value AddonModel::GetEmbeddingVectorSize(const Napi::CallbackInfo& info) {
@@ -476,7 +477,7 @@ Napi::Value AddonModel::GetEmbeddingVectorSize(const Napi::CallbackInfo& info) {
476
477
  return info.Env().Undefined();
477
478
  }
478
479
 
479
- return Napi::Number::From(info.Env(), llama_n_embd(model));
480
+ return Napi::Number::From(info.Env(), llama_model_n_embd(model));
480
481
  }
481
482
 
482
483
  Napi::Value AddonModel::GetTotalSize(const Napi::CallbackInfo& info) {
@@ -515,12 +516,7 @@ Napi::Value AddonModel::TokenBos(const Napi::CallbackInfo& info) {
515
516
  return info.Env().Undefined();
516
517
  }
517
518
 
518
- auto token = llama_token_bos(model);
519
- if (token == LLAMA_TOKEN_NULL) {
520
- token = llama_token_cls(model);
521
- }
522
-
523
- return getNapiControlToken(info, model, token);
519
+ return getNapiControlToken(info, vocab, llama_vocab_bos(vocab));
524
520
  }
525
521
  Napi::Value AddonModel::TokenEos(const Napi::CallbackInfo& info) {
526
522
  if (disposed) {
@@ -528,7 +524,7 @@ Napi::Value AddonModel::TokenEos(const Napi::CallbackInfo& info) {
528
524
  return info.Env().Undefined();
529
525
  }
530
526
 
531
- return getNapiControlToken(info, model, llama_token_eos(model));
527
+ return getNapiControlToken(info, vocab, llama_vocab_eos(vocab));
532
528
  }
533
529
  Napi::Value AddonModel::TokenNl(const Napi::CallbackInfo& info) {
534
530
  if (disposed) {
@@ -536,7 +532,7 @@ Napi::Value AddonModel::TokenNl(const Napi::CallbackInfo& info) {
536
532
  return info.Env().Undefined();
537
533
  }
538
534
 
539
- return getNapiToken(info, model, llama_token_nl(model));
535
+ return getNapiToken(info, vocab, llama_vocab_nl(vocab));
540
536
  }
541
537
  Napi::Value AddonModel::PrefixToken(const Napi::CallbackInfo& info) {
542
538
  if (disposed) {
@@ -544,7 +540,7 @@ Napi::Value AddonModel::PrefixToken(const Napi::CallbackInfo& info) {
544
540
  return info.Env().Undefined();
545
541
  }
546
542
 
547
- return getNapiToken(info, model, llama_token_fim_pre(model));
543
+ return getNapiToken(info, vocab, llama_vocab_fim_pre(vocab));
548
544
  }
549
545
  Napi::Value AddonModel::MiddleToken(const Napi::CallbackInfo& info) {
550
546
  if (disposed) {
@@ -552,7 +548,7 @@ Napi::Value AddonModel::MiddleToken(const Napi::CallbackInfo& info) {
552
548
  return info.Env().Undefined();
553
549
  }
554
550
 
555
- return getNapiToken(info, model, llama_token_fim_mid(model));
551
+ return getNapiToken(info, vocab, llama_vocab_fim_mid(vocab));
556
552
  }
557
553
  Napi::Value AddonModel::SuffixToken(const Napi::CallbackInfo& info) {
558
554
  if (disposed) {
@@ -560,7 +556,7 @@ Napi::Value AddonModel::SuffixToken(const Napi::CallbackInfo& info) {
560
556
  return info.Env().Undefined();
561
557
  }
562
558
 
563
- return getNapiToken(info, model, llama_token_fim_suf(model));
559
+ return getNapiToken(info, vocab, llama_vocab_fim_suf(vocab));
564
560
  }
565
561
  Napi::Value AddonModel::EotToken(const Napi::CallbackInfo& info) {
566
562
  if (disposed) {
@@ -568,7 +564,7 @@ Napi::Value AddonModel::EotToken(const Napi::CallbackInfo& info) {
568
564
  return info.Env().Undefined();
569
565
  }
570
566
 
571
- return getNapiToken(info, model, llama_token_eot(model));
567
+ return getNapiToken(info, vocab, llama_vocab_eot(vocab));
572
568
  }
573
569
  Napi::Value AddonModel::SepToken(const Napi::CallbackInfo& info) {
574
570
  if (disposed) {
@@ -576,7 +572,7 @@ Napi::Value AddonModel::SepToken(const Napi::CallbackInfo& info) {
576
572
  return info.Env().Undefined();
577
573
  }
578
574
 
579
- return getNapiToken(info, model, llama_token_sep(model));
575
+ return getNapiToken(info, vocab, llama_vocab_sep(vocab));
580
576
  }
581
577
  Napi::Value AddonModel::GetTokenString(const Napi::CallbackInfo& info) {
582
578
  if (disposed) {
@@ -587,7 +583,7 @@ Napi::Value AddonModel::GetTokenString(const Napi::CallbackInfo& info) {
587
583
  int token = info[0].As<Napi::Number>().Int32Value();
588
584
  std::stringstream ss;
589
585
 
590
- const char* str = llama_token_get_text(model, token);
586
+ const char* str = llama_vocab_get_text(vocab, token);
591
587
  if (str == nullptr) {
592
588
  return info.Env().Undefined();
593
589
  }
@@ -608,7 +604,7 @@ Napi::Value AddonModel::GetTokenAttributes(const Napi::CallbackInfo& info) {
608
604
  }
609
605
 
610
606
  int token = info[0].As<Napi::Number>().Int32Value();
611
- auto tokenAttributes = llama_token_get_attr(model, token);
607
+ auto tokenAttributes = llama_vocab_get_attr(vocab, token);
612
608
 
613
609
  return Napi::Number::From(info.Env(), int32_t(tokenAttributes));
614
610
  }
@@ -624,7 +620,7 @@ Napi::Value AddonModel::IsEogToken(const Napi::CallbackInfo& info) {
624
620
 
625
621
  int token = info[0].As<Napi::Number>().Int32Value();
626
622
 
627
- return Napi::Boolean::New(info.Env(), llama_token_is_eog(model, token));
623
+ return Napi::Boolean::New(info.Env(), llama_vocab_is_eog(vocab, token));
628
624
  }
629
625
  Napi::Value AddonModel::GetVocabularyType(const Napi::CallbackInfo& info) {
630
626
  if (disposed) {
@@ -632,17 +628,17 @@ Napi::Value AddonModel::GetVocabularyType(const Napi::CallbackInfo& info) {
632
628
  return info.Env().Undefined();
633
629
  }
634
630
 
635
- auto vocabularyType = llama_vocab_type(model);
631
+ auto vocabularyType = llama_vocab_type(vocab);
636
632
 
637
633
  return Napi::Number::From(info.Env(), int32_t(vocabularyType));
638
634
  }
639
635
  Napi::Value AddonModel::ShouldPrependBosToken(const Napi::CallbackInfo& info) {
640
- const bool addBos = llama_add_bos_token(model);
636
+ const bool addBos = llama_vocab_get_add_bos(vocab);
641
637
 
642
638
  return Napi::Boolean::New(info.Env(), addBos);
643
639
  }
644
640
  Napi::Value AddonModel::ShouldAppendEosToken(const Napi::CallbackInfo& info) {
645
- const bool addEos = llama_add_eos_token(model);
641
+ const bool addEos = llama_vocab_get_add_eos(vocab);
646
642
 
647
643
  return Napi::Boolean::New(info.Env(), addEos);
648
644
  }
@@ -9,6 +9,7 @@ class AddonModel : public Napi::ObjectWrap<AddonModel> {
9
9
  llama_model_params model_params;
10
10
  std::vector<llama_model_kv_override> kv_overrides;
11
11
  llama_model* model;
12
+ const llama_vocab* vocab;
12
13
  uint64_t loadedModelSize = 0;
13
14
  Napi::Reference<Napi::Object> addonExportsRef;
14
15
  bool hasAddonExportsRef = false;
@@ -30,7 +30,7 @@ class AddonModelLoraUnloadLoraWorker : public Napi::AsyncWorker {
30
30
  } catch (const std::exception& e) {
31
31
  SetError(e.what());
32
32
  } catch(...) {
33
- SetError("Unknown error when calling \"llama_lora_adapter_free\"");
33
+ SetError("Unknown error when calling \"llama_adapter_lora_free\"");
34
34
  }
35
35
  }
36
36
  void OnOK() {
@@ -55,7 +55,7 @@ void AddonModelLora::dispose(bool skipErase) {
55
55
  if (lora_adapter != nullptr) {
56
56
  auto loraAdapterToDispose = lora_adapter;
57
57
  lora_adapter = nullptr;
58
- llama_lora_adapter_free(loraAdapterToDispose);
58
+ llama_adapter_lora_free(loraAdapterToDispose);
59
59
 
60
60
  if (!skipErase && model->data != nullptr) {
61
61
  model->data->removeLora(this);
@@ -6,7 +6,7 @@
6
6
  class AddonModelLora : public Napi::ObjectWrap<AddonModelLora> {
7
7
  public:
8
8
  AddonModel* model;
9
- llama_lora_adapter * lora_adapter;
9
+ llama_adapter_lora * lora_adapter;
10
10
  std::string loraFilePath;
11
11
  uint32_t usages = 0;
12
12
 
@@ -10,8 +10,8 @@ AddonSampler::AddonSampler(const Napi::CallbackInfo& info) : Napi::ObjectWrap<Ad
10
10
  model = Napi::ObjectWrap<AddonModel>::Unwrap(info[0].As<Napi::Object>());
11
11
  model->Ref();
12
12
 
13
- tokenCandidates.resize(llama_n_vocab(model->model));
14
- tokenCandidates.reserve(llama_n_vocab(model->model));
13
+ tokenCandidates.resize(llama_vocab_n_tokens(model->vocab));
14
+ tokenCandidates.reserve(llama_vocab_n_tokens(model->vocab));
15
15
  }
16
16
  AddonSampler::~AddonSampler() {
17
17
  dispose();
@@ -142,7 +142,7 @@ void AddonSampler::acceptToken(llama_token token) {
142
142
  repeatPenalty_lastTokens.push_back(token);
143
143
  }
144
144
 
145
- if (grammarEvaluationState != nullptr && grammarEvaluationState->sampler != nullptr && !llama_token_is_eog(model->model, token)) {
145
+ if (grammarEvaluationState != nullptr && grammarEvaluationState->sampler != nullptr && !llama_vocab_is_eog(model->vocab, token)) {
146
146
  llama_sampler_accept(grammarEvaluationState->sampler, token);
147
147
  }
148
148
  }
@@ -231,8 +231,8 @@ Napi::Value AddonSampler::ApplyConfig(const Napi::CallbackInfo& info) {
231
231
  }
232
232
 
233
233
  const int32_t resolved_top_k = topKSampler_topK <= 0
234
- ? llama_n_vocab(model->model)
235
- : std::min(topKSampler_topK, llama_n_vocab(model->model));
234
+ ? llama_vocab_n_tokens(model->vocab)
235
+ : std::min(topKSampler_topK, llama_vocab_n_tokens(model->vocab));
236
236
 
237
237
  topKSampler = llama_sampler_init_top_k(resolved_top_k);
238
238
  }
@@ -404,7 +404,7 @@ Napi::Value AddonSampler::ApplyConfig(const Napi::CallbackInfo& info) {
404
404
  }
405
405
 
406
406
  tokenBiasSampler = llama_sampler_init_logit_bias(
407
- llama_n_vocab(model->model),
407
+ llama_vocab_n_tokens(model->vocab),
408
408
  tokenBiasSampler_biases.size(),
409
409
  tokenBiasSampler_biases.data()
410
410
  );
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b4435"
2
+ "release": "b4567"
3
3
  }
@@ -1,11 +1,15 @@
1
1
  function(setProgramFilesPaths CURRENT_ARCH)
2
+ set(PROGRAMFILES_X86_ENV_NAME "ProgramFiles(x86)")
3
+
2
4
  set(PROGRAMFILES "$ENV{ProgramFiles}")
3
- set(PROGRAMFILES_X86 "$ENV{ProgramFiles\(x86\)}")
5
+ set(PROGRAMFILES_X86 "$ENV{${PROGRAMFILES_X86_ENV_NAME}}")
4
6
  file(TO_CMAKE_PATH "${PROGRAMFILES}" PROGRAMFILES)
5
7
  file(TO_CMAKE_PATH "${PROGRAMFILES_X86}" PROGRAMFILES_X86)
6
8
 
7
9
  if(CURRENT_ARCH STREQUAL "arm64")
8
- set(PROGRAMFILES_ARM64 "$ENV{ProgramFiles\(Arm\)}")
10
+ set(PROGRAMFILES_ARM64_ENV_NAME "ProgramFiles(Arm)")
11
+
12
+ set(PROGRAMFILES_ARM64 "$ENV{${PROGRAMFILES_ARM64_ENV_NAME}}")
9
13
  file(TO_CMAKE_PATH "${PROGRAMFILES_ARM64}" PROGRAMFILES_ARM64)
10
14
 
11
15
  set(PROGRAMFILES_PATHS_LIST
Binary file
@@ -1,4 +1,4 @@
1
1
  {
2
- "tag": "b4435",
2
+ "tag": "b4567",
3
3
  "llamaCppGithubRepo": "ggerganov/llama.cpp"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-llama-cpp",
3
- "version": "3.4.0",
3
+ "version": "3.4.2",
4
4
  "description": "Run AI models locally on your machine with node.js bindings for llama.cpp. Enforce a JSON schema on the model output on the generation level",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -91,11 +91,14 @@
91
91
  "vulkan",
92
92
  "grammar",
93
93
  "embedding",
94
+ "rerank",
95
+ "reranking",
94
96
  "json-grammar",
95
97
  "json-schema-grammar",
96
98
  "functions",
97
99
  "function-calling",
98
- "embedding",
100
+ "token-prediction",
101
+ "speculative-decoding",
99
102
  "temperature",
100
103
  "minP",
101
104
  "topK",
@@ -216,16 +219,16 @@
216
219
  }
217
220
  },
218
221
  "optionalDependencies": {
219
- "@node-llama-cpp/linux-arm64": "3.4.0",
220
- "@node-llama-cpp/linux-armv7l": "3.4.0",
221
- "@node-llama-cpp/linux-x64": "3.4.0",
222
- "@node-llama-cpp/linux-x64-cuda": "3.4.0",
223
- "@node-llama-cpp/linux-x64-vulkan": "3.4.0",
224
- "@node-llama-cpp/mac-arm64-metal": "3.4.0",
225
- "@node-llama-cpp/mac-x64": "3.4.0",
226
- "@node-llama-cpp/win-arm64": "3.4.0",
227
- "@node-llama-cpp/win-x64": "3.4.0",
228
- "@node-llama-cpp/win-x64-cuda": "3.4.0",
229
- "@node-llama-cpp/win-x64-vulkan": "3.4.0"
222
+ "@node-llama-cpp/linux-arm64": "3.4.2",
223
+ "@node-llama-cpp/linux-armv7l": "3.4.2",
224
+ "@node-llama-cpp/linux-x64": "3.4.2",
225
+ "@node-llama-cpp/linux-x64-cuda": "3.4.2",
226
+ "@node-llama-cpp/linux-x64-vulkan": "3.4.2",
227
+ "@node-llama-cpp/mac-arm64-metal": "3.4.2",
228
+ "@node-llama-cpp/mac-x64": "3.4.2",
229
+ "@node-llama-cpp/win-arm64": "3.4.2",
230
+ "@node-llama-cpp/win-x64": "3.4.2",
231
+ "@node-llama-cpp/win-x64-cuda": "3.4.2",
232
+ "@node-llama-cpp/win-x64-vulkan": "3.4.2"
230
233
  }
231
234
  }
@@ -3,4 +3,4 @@ Use the following command to scaffold a project from a template:
3
3
  npm create node-llama-cpp@latest
4
4
  ```
5
5
 
6
- > Don't use the templates in this repository directly. They are built to be used with `npm create` command ([learn more](https://node-llama-cpp.withcat.ai/guide/))
6
+ > Don't use the templates in this repository directly. They are built to be used with the `npm create` command ([learn more](https://node-llama-cpp.withcat.ai/guide/))