mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2025-05-02 13:44:21 +00:00
* remove outdated comments Signed-off-by: limez <limez@protonmail.com> * simpler build from source Signed-off-by: limez <limez@protonmail.com> * update unix build script to create .so runtimes correctly Signed-off-by: limez <limez@protonmail.com> * configure ci build type, use RelWithDebInfo for dev build script Signed-off-by: limez <limez@protonmail.com> * add clean script Signed-off-by: limez <limez@protonmail.com> * fix streamed token decoding / emoji Signed-off-by: limez <limez@protonmail.com> * remove deprecated nCtx Signed-off-by: limez <limez@protonmail.com> * update typings Signed-off-by: jacob <jacoobes@sern.dev> update typings Signed-off-by: jacob <jacoobes@sern.dev> * readme,mspell Signed-off-by: jacob <jacoobes@sern.dev> * cuda/backend logic changes + name napi methods like their js counterparts Signed-off-by: limez <limez@protonmail.com> * convert llmodel example into a test, separate test suite that can run in ci Signed-off-by: limez <limez@protonmail.com> * update examples / naming Signed-off-by: limez <limez@protonmail.com> * update deps, remove the need for binding.ci.gyp, make node-gyp-build fallback easier testable Signed-off-by: limez <limez@protonmail.com> * make sure the assert-backend-sources.js script is published, but not the others Signed-off-by: limez <limez@protonmail.com> * build correctly on windows (regression on node-gyp-build) Signed-off-by: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com> * codespell Signed-off-by: limez <limez@protonmail.com> * make sure dlhandle.cpp gets linked correctly Signed-off-by: limez <limez@protonmail.com> * add include for check_cxx_compiler_flag call during aarch64 builds Signed-off-by: limez <limez@protonmail.com> * x86 > arm64 cross compilation of runtimes and bindings Signed-off-by: limez <limez@protonmail.com> * default to cpu instead of kompute on arm64 Signed-off-by: limez <limez@protonmail.com> * formatting, more minimal example Signed-off-by: limez <limez@protonmail.com> --------- Signed-off-by: limez <limez@protonmail.com> Signed-off-by: jacob <jacoobes@sern.dev> Signed-off-by: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com> Co-authored-by: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com> Co-authored-by: jacob <jacoobes@sern.dev>
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
#include "llmodel.h"
|
|
#include "llmodel_c.h"
|
|
#include "prompt.h"
|
|
#include <atomic>
|
|
#include <filesystem>
|
|
#include <iostream>
|
|
#include <memory>
|
|
#include <mutex>
|
|
#include <napi.h>
|
|
#include <set>
|
|
|
|
namespace fs = std::filesystem;
|
|
|
|
class NodeModelWrapper : public Napi::ObjectWrap<NodeModelWrapper>
|
|
{
|
|
|
|
public:
|
|
NodeModelWrapper(const Napi::CallbackInfo &);
|
|
Napi::Value Load(const Napi::CallbackInfo &info);
|
|
Napi::Value InitGpu(const Napi::CallbackInfo &info);
|
|
/**
|
|
* Prompting the model. This entails spawning a new thread and adding the response tokens
|
|
* into a thread local string variable.
|
|
*/
|
|
Napi::Value Infer(const Napi::CallbackInfo &info);
|
|
Napi::Value Embed(const Napi::CallbackInfo &info);
|
|
Napi::Value IsModelLoaded(const Napi::CallbackInfo &info);
|
|
Napi::Value GetType(const Napi::CallbackInfo &info);
|
|
Napi::Value GetName(const Napi::CallbackInfo &info);
|
|
Napi::Value GetStateSize(const Napi::CallbackInfo &info);
|
|
void SetThreadCount(const Napi::CallbackInfo &info);
|
|
Napi::Value GetThreadCount(const Napi::CallbackInfo &info);
|
|
/*
|
|
* The path that is used to search for the dynamic libraries
|
|
*/
|
|
Napi::Value GetLibraryPath(const Napi::CallbackInfo &info);
|
|
Napi::Value HasGpuDevice(const Napi::CallbackInfo &info);
|
|
Napi::Value GetGpuDevices(const Napi::CallbackInfo &info);
|
|
Napi::Value GetRequiredMemory(const Napi::CallbackInfo &info);
|
|
void Dispose(const Napi::CallbackInfo &info);
|
|
/**
|
|
* Creates the LLModel class
|
|
*/
|
|
static Napi::Function GetClass(Napi::Env);
|
|
llmodel_model GetInference();
|
|
|
|
private:
|
|
/**
|
|
* The underlying inference that interfaces with the C interface
|
|
*/
|
|
llmodel_model inference_;
|
|
|
|
std::mutex inference_mutex;
|
|
|
|
std::string model_type;
|
|
std::string model_name;
|
|
std::string model_file;
|
|
std::string backend;
|
|
int n_ctx{};
|
|
int n_gpu_layers{};
|
|
};
|