cactus-react-native 0.2.3 → 0.2.5

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.
Files changed (80) hide show
  1. package/README.md +1 -1
  2. package/android/src/main/java/com/cactus/Cactus.java +35 -0
  3. package/android/src/main/java/com/cactus/LlamaContext.java +5 -0
  4. package/android/src/main/jni.cpp +46 -15
  5. package/android/src/main/jniLibs/arm64-v8a/libcactus.so +0 -0
  6. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8.so +0 -0
  7. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2.so +0 -0
  8. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod.so +0 -0
  9. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod_i8mm.so +0 -0
  10. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_i8mm.so +0 -0
  11. package/android/src/newarch/java/com/cactus/CactusModule.java +5 -0
  12. package/android/src/oldarch/java/com/cactus/CactusModule.java +5 -0
  13. package/ios/Cactus.mm +21 -0
  14. package/ios/CactusContext.h +1 -0
  15. package/ios/CactusContext.mm +6 -2
  16. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +0 -12
  17. package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
  18. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/cactus_ffi.h +0 -12
  19. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  20. package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/cactus_ffi.h +0 -12
  21. package/ios/cactus.xcframework/tvos-arm64/cactus.framework/cactus +0 -0
  22. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/cactus_ffi.h +0 -12
  23. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  24. package/lib/commonjs/NativeCactus.js +0 -1
  25. package/lib/commonjs/NativeCactus.js.map +1 -1
  26. package/lib/commonjs/chat.js +36 -0
  27. package/lib/commonjs/chat.js.map +1 -1
  28. package/lib/commonjs/index.js +0 -23
  29. package/lib/commonjs/index.js.map +1 -1
  30. package/lib/commonjs/lm.js +102 -57
  31. package/lib/commonjs/lm.js.map +1 -1
  32. package/lib/commonjs/tools.js +0 -7
  33. package/lib/commonjs/tools.js.map +1 -1
  34. package/lib/commonjs/tts.js +1 -4
  35. package/lib/commonjs/tts.js.map +1 -1
  36. package/lib/commonjs/vlm.js +100 -31
  37. package/lib/commonjs/vlm.js.map +1 -1
  38. package/lib/module/NativeCactus.js +0 -3
  39. package/lib/module/NativeCactus.js.map +1 -1
  40. package/lib/module/chat.js +34 -0
  41. package/lib/module/chat.js.map +1 -1
  42. package/lib/module/index.js +1 -10
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/lm.js +102 -57
  45. package/lib/module/lm.js.map +1 -1
  46. package/lib/module/tools.js +0 -7
  47. package/lib/module/tools.js.map +1 -1
  48. package/lib/module/tts.js +1 -4
  49. package/lib/module/tts.js.map +1 -1
  50. package/lib/module/vlm.js +100 -31
  51. package/lib/module/vlm.js.map +1 -1
  52. package/lib/typescript/NativeCactus.d.ts +1 -142
  53. package/lib/typescript/NativeCactus.d.ts.map +1 -1
  54. package/lib/typescript/chat.d.ts +11 -0
  55. package/lib/typescript/chat.d.ts.map +1 -1
  56. package/lib/typescript/index.d.ts +2 -4
  57. package/lib/typescript/index.d.ts.map +1 -1
  58. package/lib/typescript/lm.d.ts +12 -6
  59. package/lib/typescript/lm.d.ts.map +1 -1
  60. package/lib/typescript/tools.d.ts.map +1 -1
  61. package/lib/typescript/tts.d.ts.map +1 -1
  62. package/lib/typescript/vlm.d.ts +10 -2
  63. package/lib/typescript/vlm.d.ts.map +1 -1
  64. package/package.json +1 -1
  65. package/src/NativeCactus.ts +6 -175
  66. package/src/chat.ts +46 -1
  67. package/src/index.ts +6 -17
  68. package/src/lm.ts +112 -58
  69. package/src/tools.ts +0 -5
  70. package/src/tts.ts +1 -4
  71. package/src/vlm.ts +113 -31
  72. package/android/src/main/jniLibs/x86_64/libcactus.so +0 -0
  73. package/android/src/main/jniLibs/x86_64/libcactus_x86_64.so +0 -0
  74. package/lib/commonjs/grammar.js +0 -560
  75. package/lib/commonjs/grammar.js.map +0 -1
  76. package/lib/module/grammar.js +0 -553
  77. package/lib/module/grammar.js.map +0 -1
  78. package/lib/typescript/grammar.d.ts +0 -37
  79. package/lib/typescript/grammar.d.ts.map +0 -1
  80. package/src/grammar.ts +0 -854
@@ -7,44 +7,94 @@ exports.CactusVLM = void 0;
7
7
  var _index = require("./index");
8
8
  var _telemetry = require("./telemetry");
9
9
  var _remote = require("./remote");
10
+ var _chat = require("./chat");
10
11
  class CactusVLM {
12
+ // see CactusLM for detailed docs
13
+ static _initCache = new Map();
14
+ static getCacheKey(params, cactusToken, retryOptions) {
15
+ return JSON.stringify({
16
+ params,
17
+ cactusToken,
18
+ retryOptions
19
+ });
20
+ }
11
21
  constructor(context) {
12
22
  this.context = context;
23
+ this.conversationHistoryManager = new _chat.ConversationHistoryManager();
13
24
  }
14
- static async init(params, onProgress, cactusToken) {
25
+ static async init(params, onProgress, cactusToken, retryOptions) {
15
26
  if (cactusToken) {
16
27
  (0, _remote.setCactusToken)(cactusToken);
17
28
  }
18
- const configs = [params, {
19
- ...params,
20
- n_gpu_layers: 0
21
- }];
22
- for (const config of configs) {
23
- try {
24
- const context = await (0, _index.initLlama)(config, onProgress);
25
- await (0, _index.initMultimodal)(context.id, params.mmproj, false);
26
- return {
27
- vlm: new CactusVLM(context),
28
- error: null
29
- };
30
- } catch (e) {
31
- _telemetry.Telemetry.error(e, {
32
- n_gpu_layers: config.n_gpu_layers ?? null,
33
- n_ctx: config.n_ctx ?? null,
34
- model: config.model ?? null
29
+ const key = CactusVLM.getCacheKey(params, cactusToken, retryOptions);
30
+ if (CactusVLM._initCache.has(key)) {
31
+ return CactusVLM._initCache.get(key);
32
+ }
33
+ const initPromise = (async () => {
34
+ const maxRetries = retryOptions?.maxRetries ?? 3;
35
+ const delayMs = retryOptions?.delayMs ?? 1000;
36
+ const configs = [params, {
37
+ ...params,
38
+ n_gpu_layers: 0
39
+ }];
40
+ const sleep = ms => {
41
+ return new Promise(resolve => {
42
+ const start = Date.now();
43
+ const wait = () => {
44
+ if (Date.now() - start >= ms) {
45
+ resolve();
46
+ } else {
47
+ Promise.resolve().then(wait);
48
+ }
49
+ };
50
+ wait();
35
51
  });
36
- if (configs.indexOf(config) === configs.length - 1) {
52
+ };
53
+ for (const config of configs) {
54
+ let lastError = null;
55
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
56
+ try {
57
+ const context = await (0, _index.initLlama)(config, onProgress);
58
+ await (0, _index.initMultimodal)(context.id, params.mmproj, false);
59
+ return {
60
+ vlm: new CactusVLM(context),
61
+ error: null
62
+ };
63
+ } catch (e) {
64
+ lastError = e;
65
+ const isLastConfig = configs.indexOf(config) === configs.length - 1;
66
+ const isLastAttempt = attempt === maxRetries;
67
+ _telemetry.Telemetry.error(e, {
68
+ n_gpu_layers: config.n_gpu_layers ?? null,
69
+ n_ctx: config.n_ctx ?? null,
70
+ model: config.model ?? null
71
+ });
72
+ if (!isLastAttempt) {
73
+ const delay = delayMs * Math.pow(2, attempt - 1);
74
+ await sleep(delay);
75
+ } else if (!isLastConfig) {
76
+ break;
77
+ }
78
+ }
79
+ }
80
+ if (configs.indexOf(config) === configs.length - 1 && lastError) {
37
81
  return {
38
82
  vlm: null,
39
- error: e
83
+ error: lastError
40
84
  };
41
85
  }
42
86
  }
87
+ return {
88
+ vlm: null,
89
+ error: new Error('Failed to initialize CactusVLM')
90
+ };
91
+ })();
92
+ CactusVLM._initCache.set(key, initPromise);
93
+ const result = await initPromise;
94
+ if (result.error) {
95
+ CactusVLM._initCache.delete(key);
43
96
  }
44
- return {
45
- vlm: null,
46
- error: new Error('Failed to initialize CactusVLM')
47
- };
97
+ return result;
48
98
  }
49
99
  async completion(messages, params = {}, callback) {
50
100
  const mode = params.mode || 'local';
@@ -81,22 +131,39 @@ class CactusVLM {
81
131
  }
82
132
  return result;
83
133
  }
84
- async _handleLocalCompletion(messages, params, callback) {
134
+ _handleLocalCompletion = async (messages, params, callback) => {
135
+ const {
136
+ newMessages,
137
+ requiresReset
138
+ } = this.conversationHistoryManager.processNewMessages(messages);
139
+ if (requiresReset) {
140
+ this.context?.rewind();
141
+ this.conversationHistoryManager.reset();
142
+ }
143
+ if (newMessages.length === 0) {
144
+ console.warn('No messages to complete!');
145
+ }
146
+ let result;
85
147
  if (params.images && params.images.length > 0) {
86
- const formattedPrompt = await this.context.getFormattedChat(messages);
148
+ const formattedPrompt = await this.context.getFormattedChat(newMessages);
87
149
  const prompt = typeof formattedPrompt === 'string' ? formattedPrompt : formattedPrompt.prompt;
88
- return await (0, _index.multimodalCompletion)(this.context.id, prompt, params.images, {
150
+ result = await (0, _index.multimodalCompletion)(this.context.id, prompt, params.images, {
89
151
  ...params,
90
152
  prompt,
91
153
  emit_partial_completion: !!callback
92
154
  });
93
155
  } else {
94
- return await this.context.completion({
95
- messages,
156
+ result = await this.context.completion({
157
+ messages: newMessages,
96
158
  ...params
97
159
  }, callback);
98
160
  }
99
- }
161
+ this.conversationHistoryManager.update(newMessages, {
162
+ role: 'assistant',
163
+ content: result.content || result.text
164
+ });
165
+ return result;
166
+ };
100
167
  async _handleRemoteCompletion(messages, params, callback) {
101
168
  const prompt = messages.map(m => `${m.role}: ${m.content}`).join('\n');
102
169
  const imagePath = params.images && params.images.length > 0 ? params.images[0] : '';
@@ -139,12 +206,14 @@ class CactusVLM {
139
206
  };
140
207
  }
141
208
  async rewind() {
142
- // @ts-ignore
143
209
  return this.context?.rewind();
144
210
  }
145
211
  async release() {
146
212
  return this.context.release();
147
213
  }
214
+ async stopCompletion() {
215
+ return await this.context.stopCompletion();
216
+ }
148
217
  }
149
218
  exports.CactusVLM = CactusVLM;
150
219
  //# sourceMappingURL=vlm.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_index","require","_telemetry","_remote","CactusVLM","constructor","context","init","params","onProgress","cactusToken","setCactusToken","configs","n_gpu_layers","config","initLlama","initMultimodal","id","mmproj","vlm","error","e","Telemetry","n_ctx","model","indexOf","length","Error","completion","messages","callback","mode","result","lastError","_handleRemoteCompletion","_handleLocalCompletion","remoteError","localError","images","formattedPrompt","getFormattedChat","prompt","multimodalCompletion","emit_partial_completion","map","m","role","content","join","imagePath","responseText","getVisionCompletion","getTextCompletion","i","token","text","reasoning_content","tool_calls","tokens_predicted","split","tokens_evaluated","truncated","stopped_eos","stopped_word","stopped_limit","stopping_word","tokens_cached","timings","prompt_n","prompt_ms","prompt_per_token_ms","prompt_per_second","predicted_n","predicted_ms","predicted_per_token_ms","predicted_per_second","rewind","release","exports"],"sourceRoot":"../../src","sources":["vlm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_index","require","_telemetry","_remote","_chat","CactusVLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","conversationHistoryManager","ConversationHistoryManager","init","onProgress","setCactusToken","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","initLlama","initMultimodal","id","mmproj","vlm","error","e","isLastConfig","indexOf","length","isLastAttempt","Telemetry","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","mode","_handleRemoteCompletion","_handleLocalCompletion","remoteError","localError","newMessages","requiresReset","processNewMessages","rewind","reset","console","warn","images","formattedPrompt","getFormattedChat","prompt","multimodalCompletion","emit_partial_completion","update","role","content","text","map","m","join","imagePath","responseText","getVisionCompletion","getTextCompletion","i","token","reasoning_content","tool_calls","tokens_predicted","split","tokens_evaluated","truncated","stopped_eos","stopped_word","stopped_limit","stopping_word","tokens_cached","timings","prompt_n","prompt_ms","prompt_per_token_ms","prompt_per_second","predicted_n","predicted_ms","predicted_per_token_ms","predicted_per_second","release","stopCompletion","exports"],"sourceRoot":"../../src","sources":["vlm.ts"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  import { TurboModuleRegistry } from 'react-native';
4
-
5
- // New TTS/Audio types
6
-
7
4
  export default TurboModuleRegistry.get('Cactus');
8
5
  //# sourceMappingURL=NativeCactus.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeCactus.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAkSlD;;AAkMA,eAAeA,mBAAmB,CAACC,GAAG,CAAO,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeCactus.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA2TlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,QAAQ,CAAC","ignoreList":[]}
@@ -30,4 +30,38 @@ export function formatChat(messages) {
30
30
  });
31
31
  return chat;
32
32
  }
33
+ export class ConversationHistoryManager {
34
+ history = [];
35
+ processNewMessages(fullMessageHistory) {
36
+ let divergent = fullMessageHistory.length < this.history.length;
37
+ if (!divergent) {
38
+ for (let i = 0; i < this.history.length; i++) {
39
+ if (JSON.stringify(this.history[i]) !== JSON.stringify(fullMessageHistory[i])) {
40
+ divergent = true;
41
+ break;
42
+ }
43
+ }
44
+ }
45
+ if (divergent) {
46
+ return {
47
+ newMessages: fullMessageHistory,
48
+ requiresReset: true
49
+ };
50
+ }
51
+ const newMessages = fullMessageHistory.slice(this.history.length);
52
+ return {
53
+ newMessages,
54
+ requiresReset: false
55
+ };
56
+ }
57
+ update(newMessages, assistantResponse) {
58
+ this.history.push(...newMessages, assistantResponse);
59
+ }
60
+ reset() {
61
+ this.history = [];
62
+ }
63
+ getMessages() {
64
+ return this.history;
65
+ }
66
+ }
33
67
  //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["formatChat","messages","chat","forEach","currMsg","role","content","Array","isArray","part","text","TypeError","Error","push"],"sourceRoot":"../../src","sources":["chat.ts"],"mappings":";;AAWA,OAAO,SAASA,UAAUA,CACxBC,QAAsC,EACZ;EAC1B,MAAMC,IAA8B,GAAG,EAAE;EAEzCD,QAAQ,CAACE,OAAO,CAAEC,OAAO,IAAK;IAC5B,MAAMC,IAAY,GAAGD,OAAO,CAACC,IAAI,IAAI,EAAE;IAEvC,IAAIC,OAAe,GAAG,EAAE;IACxB,IAAI,SAAS,IAAIF,OAAO,EAAE;MACxB,IAAI,OAAOA,OAAO,CAACE,OAAO,KAAK,QAAQ,EAAE;QACvC;QAAC,CAAC;UAAEA;QAAQ,CAAC,GAAGF,OAAO;MACzB,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACJ,OAAO,CAACE,OAAO,CAAC,EAAE;QACzCF,OAAO,CAACE,OAAO,CAACH,OAAO,CAAEM,IAAI,IAAK;UAChC,IAAI,MAAM,IAAIA,IAAI,EAAE;YAClBH,OAAO,IAAI,GAAGA,OAAO,GAAG,IAAI,GAAG,EAAE,GAAGG,IAAI,CAACC,IAAI,EAAE;UACjD;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAM,IAAIC,SAAS,CACjB,kFACF,CAAC;MACH;IACF,CAAC,MAAM;MACL,MAAM,IAAIC,KAAK,CACb,6EACF,CAAC;IACH;IAEAV,IAAI,CAACW,IAAI,CAAC;MAAER,IAAI;MAAEC;IAAQ,CAAC,CAAC;EAC9B,CAAC,CAAC;EACF,OAAOJ,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["formatChat","messages","chat","forEach","currMsg","role","content","Array","isArray","part","text","TypeError","Error","push","ConversationHistoryManager","history","processNewMessages","fullMessageHistory","divergent","length","i","JSON","stringify","newMessages","requiresReset","slice","update","assistantResponse","reset","getMessages"],"sourceRoot":"../../src","sources":["chat.ts"],"mappings":";;AAWA,OAAO,SAASA,UAAUA,CACxBC,QAAsC,EACZ;EAC1B,MAAMC,IAA8B,GAAG,EAAE;EAEzCD,QAAQ,CAACE,OAAO,CAAEC,OAAO,IAAK;IAC5B,MAAMC,IAAY,GAAGD,OAAO,CAACC,IAAI,IAAI,EAAE;IAEvC,IAAIC,OAAe,GAAG,EAAE;IACxB,IAAI,SAAS,IAAIF,OAAO,EAAE;MACxB,IAAI,OAAOA,OAAO,CAACE,OAAO,KAAK,QAAQ,EAAE;QACvC;QAAC,CAAC;UAAEA;QAAQ,CAAC,GAAGF,OAAO;MACzB,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACJ,OAAO,CAACE,OAAO,CAAC,EAAE;QACzCF,OAAO,CAACE,OAAO,CAACH,OAAO,CAAEM,IAAI,IAAK;UAChC,IAAI,MAAM,IAAIA,IAAI,EAAE;YAClBH,OAAO,IAAI,GAAGA,OAAO,GAAG,IAAI,GAAG,EAAE,GAAGG,IAAI,CAACC,IAAI,EAAE;UACjD;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAM,IAAIC,SAAS,CACjB,kFACF,CAAC;MACH;IACF,CAAC,MAAM;MACL,MAAM,IAAIC,KAAK,CACb,6EACF,CAAC;IACH;IAEAV,IAAI,CAACW,IAAI,CAAC;MAAER,IAAI;MAAEC;IAAQ,CAAC,CAAC;EAC9B,CAAC,CAAC;EACF,OAAOJ,IAAI;AACb;AAOA,OAAO,MAAMY,0BAA0B,CAAC;EAC9BC,OAAO,GAAiC,EAAE;EAE3CC,kBAAkBA,CACvBC,kBAAgD,EAC7B;IACnB,IAAIC,SAAS,GAAGD,kBAAkB,CAACE,MAAM,GAAG,IAAI,CAACJ,OAAO,CAACI,MAAM;IAC/D,IAAI,CAACD,SAAS,EAAE;MACd,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACL,OAAO,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;QAC5C,IAAIC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACP,OAAO,CAACK,CAAC,CAAC,CAAC,KAAKC,IAAI,CAACC,SAAS,CAACL,kBAAkB,CAACG,CAAC,CAAC,CAAC,EAAE;UAC7EF,SAAS,GAAG,IAAI;UAChB;QACF;MACF;IACF;IAEA,IAAIA,SAAS,EAAE;MACb,OAAO;QAAEK,WAAW,EAAEN,kBAAkB;QAAEO,aAAa,EAAE;MAAK,CAAC;IACjE;IAEA,MAAMD,WAAW,GAAGN,kBAAkB,CAACQ,KAAK,CAAC,IAAI,CAACV,OAAO,CAACI,MAAM,CAAC;IACjE,OAAO;MAAEI,WAAW;MAAEC,aAAa,EAAE;IAAM,CAAC;EAC9C;EAEOE,MAAMA,CACXH,WAAyC,EACzCI,iBAA6C,EAC7C;IACA,IAAI,CAACZ,OAAO,CAACF,IAAI,CAAC,GAAGU,WAAW,EAAEI,iBAAiB,CAAC;EACtD;EAEOC,KAAKA,CAAA,EAAG;IACb,IAAI,CAACb,OAAO,GAAG,EAAE;EACnB;EAEOc,WAAWA,CAAA,EAAiC;IACjD,OAAO,IAAI,CAACd,OAAO;EACrB;AACF","ignoreList":[]}
@@ -2,11 +2,10 @@
2
2
 
3
3
  import { NativeEventEmitter, DeviceEventEmitter, Platform } from 'react-native';
4
4
  import Cactus from './NativeCactus';
5
- import { SchemaGrammarConverter, convertJsonSchemaToGrammar } from './grammar';
6
5
  import { formatChat } from './chat';
7
6
  import { Tools, parseAndExecuteTool } from './tools';
8
7
  import { Telemetry } from './telemetry';
9
- export { SchemaGrammarConverter, convertJsonSchemaToGrammar, Tools };
8
+ export { Tools };
10
9
  export * from './remote';
11
10
  const EVENT_ON_INIT_CONTEXT_PROGRESS = '@Cactus_onInitContextProgress';
12
11
  const EVENT_ON_TOKEN = '@Cactus_onToken';
@@ -106,7 +105,6 @@ export class LlamaContext {
106
105
  return this.completion(params, callback);
107
106
  }
108
107
  if (recursionCount >= recursionLimit) {
109
- // console.log(`Recursion limit reached (${recursionCount}/${recursionLimit}), returning default completion`)
110
108
  return this.completion({
111
109
  ...params,
112
110
  jinja: true,
@@ -115,15 +113,12 @@ export class LlamaContext {
115
113
  }
116
114
  const messages = [...params.messages]; // avoid mutating the original messages
117
115
 
118
- // console.log('Calling completion...')
119
116
  const result = await this.completion({
120
117
  ...params,
121
118
  messages: messages,
122
119
  jinja: true,
123
120
  tools: params.tools.getSchemas()
124
121
  }, callback);
125
- // console.log('Completion result:', result);
126
-
127
122
  const {
128
123
  toolCalled,
129
124
  toolName,
@@ -144,9 +139,6 @@ export class LlamaContext {
144
139
  tool_call_id: toolCallId
145
140
  };
146
141
  messages.push(toolMessage);
147
-
148
- // console.log('Messages being sent to next completion:', JSON.stringify(messages, null, 2));
149
-
150
142
  return await this.completionWithTools({
151
143
  ...params,
152
144
  messages: messages
@@ -274,7 +266,6 @@ export class LlamaContext {
274
266
  return Cactus.releaseContext(this.id);
275
267
  }
276
268
  async rewind() {
277
- // @ts-ignore
278
269
  return Cactus.rewind(this.id);
279
270
  }
280
271
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","Cactus","SchemaGrammarConverter","convertJsonSchemaToGrammar","formatChat","Tools","parseAndExecuteTool","Telemetry","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EVENT_ON_NATIVE_LOG","EventEmitter","OS","logListeners","addListener","evt","forEach","listener","level","text","toggleNativeLog","catch","getJsonSchema","responseFormat","type","json_schema","schema","telemetryParams","n_gpu_layers","n_ctx","model","LlamaContext","gpu","reasonNoGPU","constructor","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","isLlamaChatSupported","chatTemplates","llamaChat","isJinjaSupported","minja","toolUse","default","getFormattedChat","messages","template","params","chat","useJinja","jinja","tmpl","undefined","jsonSchema","response_format","JSON","stringify","tools","parallel_tool_calls","tool_choice","completionWithTools","callback","recursionCount","recursionLimit","completion","getSchemas","result","toolCalled","toolName","toolInput","toolOutput","assistantMessage","role","content","tool_calls","push","toolCallId","toolMessage","tool_call_id","nativeParams","prompt","emit_partial_completion","formattedResult","chat_template","chatTemplate","chat_format","grammar","grammar_lazy","grammar_triggers","preserved_tokens","additional_stops","stop","startTime","Date","now","firstTokenTime","deviceInfo","getDeviceInfo","wrappedCallback","data","tokenListener","tokenResult","Error","promise","then","completionResult","track","event","tok_per_sec","timings","predicted_per_second","toks_generated","predicted_n","ttft","remove","err","stopCompletion","tokenize","detokenize","tokens","embedding","embeddingResult","totalTime","mode","embedding_time","bench","pp","tg","pl","nr","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","parse","applyLoraAdapters","loraList","loraAdapters","map","l","replace","scaled","removeLoraAdapters","getLoadedLoraAdapters","release","releaseContext","rewind","enabled","addNativeLogListener","splice","indexOf","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","is_model_asset","isModelAsset","pooling_type","poolingType","lora","lora_list","rest","onProgress","loraPath","removeProgressListener","progress","poolType","modelDetails","androidLib","initContext","use_progress_callback","releaseAllLlama","releaseAllContexts","initMultimodal","mmprojPath","useGpu","isMultimodalEnabled","isMultimodalSupportVision","isMultimodalSupportAudio","releaseMultimodal","multimodalCompletion","mediaPaths","num_images","length","initVocoder","vocoderModelPath","isVocoderEnabled","getTTSType","getFormattedAudioCompletion","speakerJsonStr","textToSpeak","getAudioCompletionGuideTokens","decodeAudioTokens","releaseVocoder","CactusLM","CactusVLM","CactusTTS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","Cactus","formatChat","Tools","parseAndExecuteTool","Telemetry","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EVENT_ON_NATIVE_LOG","EventEmitter","OS","logListeners","addListener","evt","forEach","listener","level","text","toggleNativeLog","catch","getJsonSchema","responseFormat","type","json_schema","schema","telemetryParams","n_gpu_layers","n_ctx","model","LlamaContext","gpu","reasonNoGPU","constructor","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","isLlamaChatSupported","chatTemplates","llamaChat","isJinjaSupported","minja","toolUse","default","getFormattedChat","messages","template","params","chat","useJinja","jinja","tmpl","undefined","jsonSchema","response_format","JSON","stringify","tools","parallel_tool_calls","tool_choice","completionWithTools","callback","recursionCount","recursionLimit","completion","getSchemas","result","toolCalled","toolName","toolInput","toolOutput","assistantMessage","role","content","tool_calls","push","toolCallId","toolMessage","tool_call_id","nativeParams","prompt","emit_partial_completion","formattedResult","chat_template","chatTemplate","chat_format","grammar","grammar_lazy","grammar_triggers","preserved_tokens","additional_stops","stop","startTime","Date","now","firstTokenTime","deviceInfo","getDeviceInfo","wrappedCallback","data","tokenListener","tokenResult","Error","promise","then","completionResult","track","event","tok_per_sec","timings","predicted_per_second","toks_generated","predicted_n","ttft","remove","err","stopCompletion","tokenize","detokenize","tokens","embedding","embeddingResult","totalTime","mode","embedding_time","bench","pp","tg","pl","nr","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","parse","applyLoraAdapters","loraList","loraAdapters","map","l","replace","scaled","removeLoraAdapters","getLoadedLoraAdapters","release","releaseContext","rewind","enabled","addNativeLogListener","splice","indexOf","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","is_model_asset","isModelAsset","pooling_type","poolingType","lora","lora_list","rest","onProgress","loraPath","removeProgressListener","progress","poolType","modelDetails","androidLib","initContext","use_progress_callback","releaseAllLlama","releaseAllContexts","initMultimodal","mmprojPath","useGpu","isMultimodalEnabled","isMultimodalSupportVision","isMultimodalSupportAudio","releaseMultimodal","multimodalCompletion","mediaPaths","num_images","length","initVocoder","vocoderModelPath","isVocoderEnabled","getTTSType","getFormattedAudioCompletion","speakerJsonStr","textToSpeak","getAudioCompletionGuideTokens","decodeAudioTokens","releaseVocoder","CactusLM","CactusVLM","CactusTTS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
package/lib/module/lm.js CHANGED
@@ -1,79 +1,122 @@
1
1
  "use strict";
2
2
 
3
3
  import { initLlama } from './index';
4
+ // @ts-ignore
5
+
4
6
  import { Telemetry } from './telemetry';
5
7
  import { setCactusToken, getVertexAIEmbedding } from './remote';
8
+ import { ConversationHistoryManager } from './chat';
6
9
  export class CactusLM {
10
+ // the initPromise enables a "async singleton" initialization pattern which
11
+ // protects against a race condition in the event of multiple init attempts
12
+ static _initCache = new Map();
13
+ static getCacheKey(params, cactusToken, retryOptions) {
14
+ return JSON.stringify({
15
+ params,
16
+ cactusToken,
17
+ retryOptions
18
+ });
19
+ }
7
20
  constructor(context) {
8
21
  this.context = context;
22
+ this.conversationHistoryManager = new ConversationHistoryManager();
9
23
  }
10
24
  static async init(params, onProgress, cactusToken, retryOptions) {
11
25
  if (cactusToken) {
12
26
  setCactusToken(cactusToken);
13
27
  }
14
- const maxRetries = retryOptions?.maxRetries ?? 3;
15
- const delayMs = retryOptions?.delayMs ?? 1000;
16
- const configs = [params, {
17
- ...params,
18
- n_gpu_layers: 0
19
- }];
20
- const sleep = ms => {
21
- return new Promise(resolve => {
22
- const start = Date.now();
23
- const wait = () => {
24
- if (Date.now() - start >= ms) {
25
- resolve();
26
- } else {
27
- Promise.resolve().then(wait);
28
+ const key = CactusLM.getCacheKey(params, cactusToken, retryOptions);
29
+ if (CactusLM._initCache.has(key)) {
30
+ // concurrent initialization calls with the same params all get the same cached Promise
31
+ return CactusLM._initCache.get(key);
32
+ }
33
+ const initPromise = (async () => {
34
+ const maxRetries = retryOptions?.maxRetries ?? 3;
35
+ const delayMs = retryOptions?.delayMs ?? 1000;
36
+ const configs = [params, {
37
+ ...params,
38
+ n_gpu_layers: 0
39
+ }];
40
+ const sleep = ms => {
41
+ return new Promise(resolve => {
42
+ const start = Date.now();
43
+ const wait = () => {
44
+ if (Date.now() - start >= ms) {
45
+ resolve();
46
+ } else {
47
+ Promise.resolve().then(wait);
48
+ }
49
+ };
50
+ wait();
51
+ });
52
+ };
53
+ for (const config of configs) {
54
+ let lastError = null;
55
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
56
+ try {
57
+ const context = await initLlama(config, onProgress);
58
+ return {
59
+ lm: new CactusLM(context),
60
+ error: null
61
+ };
62
+ } catch (e) {
63
+ lastError = e;
64
+ const isLastConfig = configs.indexOf(config) === configs.length - 1;
65
+ const isLastAttempt = attempt === maxRetries;
66
+ Telemetry.error(e, {
67
+ n_gpu_layers: config.n_gpu_layers ?? null,
68
+ n_ctx: config.n_ctx ?? null,
69
+ model: config.model ?? null
70
+ });
71
+ if (!isLastAttempt) {
72
+ const delay = delayMs * Math.pow(2, attempt - 1);
73
+ await sleep(delay);
74
+ } else if (!isLastConfig) {
75
+ break;
76
+ }
28
77
  }
29
- };
30
- wait();
31
- });
32
- };
33
- for (const config of configs) {
34
- let lastError = null;
35
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
36
- try {
37
- const context = await initLlama(config, onProgress);
78
+ }
79
+ if (configs.indexOf(config) === configs.length - 1 && lastError) {
38
80
  return {
39
- lm: new CactusLM(context),
40
- error: null
81
+ lm: null,
82
+ error: lastError
41
83
  };
42
- } catch (e) {
43
- lastError = e;
44
- const isLastConfig = configs.indexOf(config) === configs.length - 1;
45
- const isLastAttempt = attempt === maxRetries;
46
- Telemetry.error(e, {
47
- n_gpu_layers: config.n_gpu_layers ?? null,
48
- n_ctx: config.n_ctx ?? null,
49
- model: config.model ?? null
50
- });
51
- if (!isLastAttempt) {
52
- const delay = delayMs * Math.pow(2, attempt - 1);
53
- await sleep(delay);
54
- } else if (!isLastConfig) {
55
- break;
56
- }
57
84
  }
58
85
  }
59
- if (configs.indexOf(config) === configs.length - 1 && lastError) {
60
- return {
61
- lm: null,
62
- error: lastError
63
- };
64
- }
86
+ return {
87
+ lm: null,
88
+ error: new Error('Failed to initialize CactusLM after all retries')
89
+ };
90
+ })();
91
+ CactusLM._initCache.set(key, initPromise);
92
+ const result = await initPromise;
93
+ if (result.error) {
94
+ CactusLM._initCache.delete(key); // Reset on failure to allow retries
65
95
  }
66
- return {
67
- lm: null,
68
- error: new Error('Failed to initialize CactusLM after all retries')
69
- };
96
+ return result;
70
97
  }
71
- async completion(messages, params = {}, callback) {
72
- return await this.context.completion({
73
- messages,
98
+ completion = async (messages, params = {}, callback) => {
99
+ const {
100
+ newMessages,
101
+ requiresReset
102
+ } = this.conversationHistoryManager.processNewMessages(messages);
103
+ if (requiresReset) {
104
+ this.context?.rewind();
105
+ this.conversationHistoryManager.reset();
106
+ }
107
+ if (newMessages.length === 0) {
108
+ console.warn('No messages to complete!');
109
+ }
110
+ const result = await this.context.completion({
111
+ messages: newMessages,
74
112
  ...params
75
113
  }, callback);
76
- }
114
+ this.conversationHistoryManager.update(newMessages, {
115
+ role: 'assistant',
116
+ content: result.content
117
+ });
118
+ return result;
119
+ };
77
120
  async embedding(text, params, mode = 'local') {
78
121
  let result;
79
122
  let lastError = null;
@@ -117,12 +160,14 @@ export class CactusLM {
117
160
  embedding: embeddingValues
118
161
  };
119
162
  }
120
- async rewind() {
121
- // @ts-ignore
163
+ rewind = async () => {
122
164
  return this.context?.rewind();
123
- }
165
+ };
124
166
  async release() {
125
167
  return this.context.release();
126
168
  }
169
+ async stopCompletion() {
170
+ return await this.context.stopCompletion();
171
+ }
127
172
  }
128
173
  //# sourceMappingURL=lm.js.map