@fugood/llama.node 0.3.11 → 0.3.12

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.
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/lib/index.js CHANGED
@@ -23,15 +23,39 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
23
23
  });
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.toggleNativeLog = exports.loadLlamaModelInfo = exports.initLlama = exports.loadModel = void 0;
26
+ exports.loadLlamaModelInfo = exports.initLlama = exports.loadModel = exports.toggleNativeLog = void 0;
27
27
  exports.addNativeLogListener = addNativeLogListener;
28
28
  const binding_1 = require("./binding");
29
29
  __exportStar(require("./binding"), exports);
30
30
  const mods = {};
31
+ const logListeners = [];
32
+ const logCallback = (level, text) => {
33
+ logListeners.forEach((listener) => listener(level, text));
34
+ };
35
+ let logEnabled = false;
36
+ const refreshNativeLogSetup = () => {
37
+ Object.entries(mods).forEach(([, mod]) => {
38
+ mod.LlamaContext.toggleNativeLog(logEnabled, logCallback);
39
+ });
40
+ };
41
+ const toggleNativeLog = (enable) => __awaiter(void 0, void 0, void 0, function* () {
42
+ logEnabled = enable;
43
+ refreshNativeLogSetup();
44
+ });
45
+ exports.toggleNativeLog = toggleNativeLog;
46
+ function addNativeLogListener(listener) {
47
+ logListeners.push(listener);
48
+ return {
49
+ remove: () => {
50
+ logListeners.splice(logListeners.indexOf(listener), 1);
51
+ },
52
+ };
53
+ }
31
54
  const loadModel = (options) => __awaiter(void 0, void 0, void 0, function* () {
32
55
  var _a, _b;
33
56
  const variant = (_a = options.lib_variant) !== null && _a !== void 0 ? _a : 'default';
34
57
  (_b = mods[variant]) !== null && _b !== void 0 ? _b : (mods[variant] = yield (0, binding_1.loadModule)(options.lib_variant));
58
+ refreshNativeLogSetup();
35
59
  return new mods[variant].LlamaContext(options);
36
60
  });
37
61
  exports.loadModel = loadModel;
@@ -47,25 +71,7 @@ const loadLlamaModelInfo = (path) => __awaiter(void 0, void 0, void 0, function*
47
71
  var _a;
48
72
  const variant = 'default';
49
73
  (_a = mods[variant]) !== null && _a !== void 0 ? _a : (mods[variant] = yield (0, binding_1.loadModule)(variant));
74
+ refreshNativeLogSetup();
50
75
  return mods[variant].LlamaContext.loadModelInfo(path, modelInfoSkip);
51
76
  });
52
77
  exports.loadLlamaModelInfo = loadLlamaModelInfo;
53
- const logListeners = [];
54
- const logCallback = (level, text) => {
55
- logListeners.forEach((listener) => listener(level, text));
56
- };
57
- const toggleNativeLog = (enable, options) => __awaiter(void 0, void 0, void 0, function* () {
58
- var _a, _b;
59
- const v = (_a = options === null || options === void 0 ? void 0 : options.variant) !== null && _a !== void 0 ? _a : 'default';
60
- (_b = mods[v]) !== null && _b !== void 0 ? _b : (mods[v] = yield (0, binding_1.loadModule)(v));
61
- return mods[v].LlamaContext.toggleNativeLog(enable, logCallback);
62
- });
63
- exports.toggleNativeLog = toggleNativeLog;
64
- function addNativeLogListener(listener) {
65
- logListeners.push(listener);
66
- return {
67
- remove: () => {
68
- logListeners.splice(logListeners.indexOf(listener), 1);
69
- },
70
- };
71
- }
package/lib/index.ts CHANGED
@@ -9,11 +9,42 @@ export interface LlamaModelOptionsExtended extends LlamaModelOptions {
9
9
 
10
10
  const mods: { [key: string]: Module } = {}
11
11
 
12
+ const logListeners: Array<(level: string, text: string) => void> = []
13
+
14
+ const logCallback = (level: string, text: string) => {
15
+ logListeners.forEach((listener) => listener(level, text))
16
+ }
17
+
18
+ let logEnabled = false
19
+
20
+ const refreshNativeLogSetup = () => {
21
+ Object.entries(mods).forEach(([, mod]) => {
22
+ mod.LlamaContext.toggleNativeLog(logEnabled, logCallback)
23
+ })
24
+ }
25
+
26
+ export const toggleNativeLog = async (enable: boolean) => {
27
+ logEnabled = enable
28
+ refreshNativeLogSetup()
29
+ }
30
+
31
+ export function addNativeLogListener(
32
+ listener: (level: string, text: string) => void,
33
+ ): { remove: () => void } {
34
+ logListeners.push(listener)
35
+ return {
36
+ remove: () => {
37
+ logListeners.splice(logListeners.indexOf(listener), 1)
38
+ },
39
+ }
40
+ }
41
+
12
42
  export const loadModel = async (
13
43
  options: LlamaModelOptionsExtended,
14
44
  ): Promise<LlamaContext> => {
15
45
  const variant = options.lib_variant ?? 'default'
16
46
  mods[variant] ??= await loadModule(options.lib_variant)
47
+ refreshNativeLogSetup()
17
48
  return new mods[variant].LlamaContext(options)
18
49
  }
19
50
 
@@ -30,33 +61,6 @@ const modelInfoSkip = [
30
61
  export const loadLlamaModelInfo = async (path: string): Promise<Object> => {
31
62
  const variant = 'default'
32
63
  mods[variant] ??= await loadModule(variant)
64
+ refreshNativeLogSetup()
33
65
  return mods[variant].LlamaContext.loadModelInfo(path, modelInfoSkip)
34
66
  }
35
-
36
- const logListeners: Array<(level: string, text: string) => void> = []
37
-
38
- const logCallback = (level: string, text: string) => {
39
- logListeners.forEach((listener) => listener(level, text))
40
- }
41
-
42
- export const toggleNativeLog = async (
43
- enable: boolean,
44
- options?: {
45
- variant?: LibVariant
46
- },
47
- ) => {
48
- const v = options?.variant ?? 'default'
49
- mods[v] ??= await loadModule(v)
50
- return mods[v].LlamaContext.toggleNativeLog(enable, logCallback)
51
- }
52
-
53
- export function addNativeLogListener(
54
- listener: (level: string, text: string) => void,
55
- ): { remove: () => void } {
56
- logListeners.push(listener)
57
- return {
58
- remove: () => {
59
- logListeners.splice(logListeners.indexOf(listener), 1)
60
- },
61
- }
62
- }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fugood/llama.node",
3
3
  "access": "public",
4
- "version": "0.3.11",
4
+ "version": "0.3.12",
5
5
  "description": "An another Node binding of llama.cpp",
6
6
  "main": "lib/index.js",
7
7
  "scripts": {