First upload version 0.0.1

This commit is contained in:
Neyra
2026-02-05 15:27:49 +08:00
commit 8e9b7201ed
4182 changed files with 593136 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
#include <sstream>
#include "addonGlobals.h"
#include "common/common.h"
#include "llama.h"
#include "AddonGrammarEvaluationState.h"
#include "AddonGrammar.h"
AddonGrammarEvaluationState::AddonGrammarEvaluationState(const Napi::CallbackInfo& info) : Napi::ObjectWrap<AddonGrammarEvaluationState>(info) {
if (info.Length() == 1) {
AddonGrammarEvaluationState* existingState = Napi::ObjectWrap<AddonGrammarEvaluationState>::Unwrap(info[0].As<Napi::Object>());
model = existingState->model;
model->Ref();
grammarDef = existingState->grammarDef;
grammarDef->Ref();
sampler = llama_sampler_clone(existingState->sampler);
} else {
model = Napi::ObjectWrap<AddonModel>::Unwrap(info[0].As<Napi::Object>());
model->Ref();
grammarDef = Napi::ObjectWrap<AddonGrammar>::Unwrap(info[1].As<Napi::Object>());
grammarDef->Ref();
sampler = llama_sampler_init_grammar(model->vocab, grammarDef->grammarCode.c_str(), grammarDef->rootRuleName.c_str());
}
}
AddonGrammarEvaluationState::~AddonGrammarEvaluationState() {
llama_sampler_free(sampler);
grammarDef->Unref();
model->Unref();
}
void AddonGrammarEvaluationState::init(Napi::Object exports) {
exports.Set("AddonGrammarEvaluationState", DefineClass(exports.Env(), "AddonGrammarEvaluationState", {}));
}