cactus-react-native 0.1.4 → 0.2.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.
Files changed (68) hide show
  1. package/README.md +550 -721
  2. package/android/src/main/java/com/cactus/Cactus.java +41 -0
  3. package/android/src/main/java/com/cactus/LlamaContext.java +19 -0
  4. package/android/src/main/jni.cpp +36 -11
  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/main/jniLibs/x86_64/libcactus.so +0 -0
  12. package/android/src/main/jniLibs/x86_64/libcactus_x86_64.so +0 -0
  13. package/android/src/newarch/java/com/cactus/CactusModule.java +5 -0
  14. package/android/src/oldarch/java/com/cactus/CactusModule.java +5 -0
  15. package/ios/Cactus.mm +14 -0
  16. package/ios/CactusContext.h +1 -0
  17. package/ios/CactusContext.mm +18 -0
  18. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  19. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  20. package/lib/commonjs/NativeCactus.js.map +1 -1
  21. package/lib/commonjs/index.js +92 -6
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/lm.js +64 -21
  24. package/lib/commonjs/lm.js.map +1 -1
  25. package/lib/commonjs/projectId.js +8 -0
  26. package/lib/commonjs/projectId.js.map +1 -0
  27. package/lib/commonjs/remote.js +153 -0
  28. package/lib/commonjs/remote.js.map +1 -0
  29. package/lib/commonjs/telemetry.js +11 -5
  30. package/lib/commonjs/telemetry.js.map +1 -1
  31. package/lib/commonjs/vlm.js +90 -23
  32. package/lib/commonjs/vlm.js.map +1 -1
  33. package/lib/module/NativeCactus.js.map +1 -1
  34. package/lib/module/index.js +48 -5
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/module/lm.js +63 -21
  37. package/lib/module/lm.js.map +1 -1
  38. package/lib/module/projectId.js +4 -0
  39. package/lib/module/projectId.js.map +1 -0
  40. package/lib/module/remote.js +144 -0
  41. package/lib/module/remote.js.map +1 -0
  42. package/lib/module/telemetry.js +11 -5
  43. package/lib/module/telemetry.js.map +1 -1
  44. package/lib/module/vlm.js +90 -23
  45. package/lib/module/vlm.js.map +1 -1
  46. package/lib/typescript/NativeCactus.d.ts +7 -0
  47. package/lib/typescript/NativeCactus.d.ts.map +1 -1
  48. package/lib/typescript/index.d.ts +3 -1
  49. package/lib/typescript/index.d.ts.map +1 -1
  50. package/lib/typescript/lm.d.ts +4 -3
  51. package/lib/typescript/lm.d.ts.map +1 -1
  52. package/lib/typescript/projectId.d.ts +2 -0
  53. package/lib/typescript/projectId.d.ts.map +1 -0
  54. package/lib/typescript/remote.d.ts +7 -0
  55. package/lib/typescript/remote.d.ts.map +1 -0
  56. package/lib/typescript/telemetry.d.ts +7 -3
  57. package/lib/typescript/telemetry.d.ts.map +1 -1
  58. package/lib/typescript/vlm.d.ts +4 -2
  59. package/lib/typescript/vlm.d.ts.map +1 -1
  60. package/package.json +4 -4
  61. package/scripts/postInstall.js +33 -0
  62. package/src/NativeCactus.ts +7 -0
  63. package/src/index.ts +58 -5
  64. package/src/lm.ts +66 -28
  65. package/src/projectId.ts +1 -0
  66. package/src/remote.ts +175 -0
  67. package/src/telemetry.ts +27 -12
  68. package/src/vlm.ts +104 -25
@@ -2,6 +2,7 @@ package com.cactus;
2
2
 
3
3
  import androidx.annotation.NonNull;
4
4
  import android.util.Log;
5
+ import android.provider.Settings;
5
6
  import android.os.Build;
6
7
  import android.os.Handler;
7
8
  import android.os.AsyncTask;
@@ -1080,6 +1081,46 @@ public class Cactus implements LifecycleEventListener {
1080
1081
  tasks.put(task, "decodeAudioTokens-" + contextId);
1081
1082
  }
1082
1083
 
1084
+ @ReactMethod
1085
+ public void getDeviceInfo(double id, final Promise promise) {
1086
+ AsyncTask task = new AsyncTask<Void, Void, WritableMap>() {
1087
+ private Exception exception;
1088
+
1089
+ @Override
1090
+ protected WritableMap doInBackground(Void... voids) {
1091
+ try {
1092
+ WritableMap deviceInfo = Arguments.createMap();
1093
+
1094
+ String deviceId = Settings.Secure.getString(reactContext.getContentResolver(), Settings.Secure.ANDROID_ID);
1095
+
1096
+ String make = Build.MANUFACTURER;
1097
+ String model = Build.MODEL;
1098
+ String osVersion = Build.VERSION.RELEASE;
1099
+
1100
+ deviceInfo.putString("deviceId", deviceId);
1101
+ deviceInfo.putString("make", make);
1102
+ deviceInfo.putString("model", model);
1103
+ deviceInfo.putString("os", "Android");
1104
+ deviceInfo.putString("osVersion", osVersion);
1105
+
1106
+ return deviceInfo;
1107
+ } catch (Exception e) {
1108
+ exception = e;
1109
+ }
1110
+ return null;
1111
+ }
1112
+
1113
+ @Override
1114
+ protected void onPostExecute(WritableMap result) {
1115
+ if (exception != null) {
1116
+ promise.reject(exception);
1117
+ return;
1118
+ }
1119
+ promise.resolve(result);
1120
+ }
1121
+ }.executeOnExecutor(singleThreadExecutor);
1122
+ }
1123
+
1083
1124
  public void releaseVocoder(double id, final Promise promise) {
1084
1125
  final int contextId = (int) id;
1085
1126
  AsyncTask task = new AsyncTask<Void, Void, Void>() {
@@ -9,6 +9,7 @@ import com.facebook.react.bridge.ReactApplicationContext;
9
9
  import com.facebook.react.modules.core.DeviceEventManagerModule;
10
10
 
11
11
  import android.util.Log;
12
+ import android.provider.Settings;
12
13
  import android.os.Build;
13
14
  import android.content.res.AssetManager;
14
15
 
@@ -520,6 +521,24 @@ public class LlamaContext {
520
521
  return decodeAudioTokens(this.context, toks);
521
522
  }
522
523
 
524
+ public WritableMap getDeviceInfo() {
525
+ WritableMap deviceInfo = Arguments.createMap();
526
+
527
+ String deviceId = Settings.Secure.getString(this.reactContext.getContentResolver(), Settings.Secure.ANDROID_ID);
528
+
529
+ String make = Build.MANUFACTURER;
530
+ String model = Build.MODEL;
531
+ String osVersion = Build.VERSION.RELEASE;
532
+
533
+ deviceInfo.putString("deviceId", deviceId);
534
+ deviceInfo.putString("make", make);
535
+ deviceInfo.putString("model", model);
536
+ deviceInfo.putString("os", "Android");
537
+ deviceInfo.putString("osVersion", osVersion);
538
+
539
+ return deviceInfo;
540
+ }
541
+
523
542
  public void releaseVocoder() {
524
543
  releaseVocoder(this.context);
525
544
  }
@@ -307,6 +307,7 @@ Java_com_cactus_LlamaContext_initContext(
307
307
  llama->is_load_interrupted = false;
308
308
  llama->loading_progress = 0;
309
309
 
310
+ callback_context *cb_ctx = nullptr;
310
311
  if (load_progress_callback != nullptr) {
311
312
  defaultParams.progress_callback = [](float progress, void * user_data) {
312
313
  callback_context *cb_ctx = (callback_context *)user_data;
@@ -323,7 +324,7 @@ Java_com_cactus_LlamaContext_initContext(
323
324
  return !llama->is_load_interrupted;
324
325
  };
325
326
 
326
- callback_context *cb_ctx = new callback_context;
327
+ cb_ctx = new callback_context;
327
328
  cb_ctx->env = env;
328
329
  cb_ctx->llama = llama;
329
330
  cb_ctx->callback = env->NewGlobalRef(load_progress_callback);
@@ -339,17 +340,30 @@ Java_com_cactus_LlamaContext_initContext(
339
340
  env->ReleaseStringUTFChars(cache_type_v, cache_type_v_chars);
340
341
 
341
342
  LOGI("[CACTUS] is_model_loaded %s", (is_model_loaded ? "true" : "false"));
342
- if (is_model_loaded) {
343
- if (embedding && llama_model_has_encoder(llama->model) && llama_model_has_decoder(llama->model)) {
344
- LOGI("[CACTUS] computing embeddings in encoder-decoder models is not supported");
345
- llama_free(llama->ctx);
346
- return -1;
343
+
344
+ if (!is_model_loaded) {
345
+ llama_free(llama->ctx);
346
+ if (cb_ctx) {
347
+ env->DeleteGlobalRef(cb_ctx->callback);
348
+ delete cb_ctx;
347
349
  }
348
- context_map[(long) llama->ctx] = llama;
349
- } else {
350
+ delete llama;
351
+ return -1;
352
+ }
353
+
354
+ if (embedding && llama_model_has_encoder(llama->model) && llama_model_has_decoder(llama->model)) {
355
+ LOGI("[CACTUS] computing embeddings in encoder-decoder models is not supported");
350
356
  llama_free(llama->ctx);
357
+ if (cb_ctx) {
358
+ env->DeleteGlobalRef(cb_ctx->callback);
359
+ delete cb_ctx;
360
+ }
361
+ delete llama;
362
+ return -1;
351
363
  }
352
364
 
365
+ context_map[(long) llama->ctx] = llama;
366
+
353
367
  std::vector<common_adapter_lora_info> lora;
354
368
  const char *lora_chars = env->GetStringUTFChars(lora_str, nullptr);
355
369
  if (lora_chars != nullptr && lora_chars[0] != '\0') {
@@ -378,9 +392,20 @@ Java_com_cactus_LlamaContext_initContext(
378
392
  env->ReleaseStringUTFChars(lora_str, lora_chars);
379
393
  int result = llama->applyLoraAdapters(lora);
380
394
  if (result != 0) {
381
- LOGI("[Cactus] Failed to apply lora adapters");
382
- llama_free(llama->ctx);
383
- return -1;
395
+ LOGI("[Cactus] Failed to apply lora adapters");
396
+ context_map.erase((long) llama->ctx);
397
+ llama_free(llama->ctx);
398
+ if (cb_ctx) {
399
+ env->DeleteGlobalRef(cb_ctx->callback);
400
+ delete cb_ctx;
401
+ }
402
+ delete llama;
403
+ return -1;
404
+ }
405
+
406
+ if (cb_ctx) {
407
+ env->DeleteGlobalRef(cb_ctx->callback);
408
+ delete cb_ctx;
384
409
  }
385
410
 
386
411
  return reinterpret_cast<jlong>(llama->ctx);
@@ -179,6 +179,11 @@ public class CactusModule extends NativeCactusSpec {
179
179
  cactus.decodeAudioTokens(id, tokens, promise);
180
180
  }
181
181
 
182
+ @ReactMethod
183
+ public void getDeviceInfo(double id, Promise promise) {
184
+ cactus.getDeviceInfo(id, promise);
185
+ }
186
+
182
187
  @ReactMethod
183
188
  public void releaseVocoder(double id, Promise promise) {
184
189
  cactus.releaseVocoder(id, promise);
@@ -178,6 +178,11 @@ public class CactusModule extends ReactContextBaseJavaModule {
178
178
  cactus.decodeAudioTokens(id, tokens, promise);
179
179
  }
180
180
 
181
+ @ReactMethod
182
+ public void getDeviceInfo(double id, final Promise promise) {
183
+ cactus.getDeviceInfo(id, promise);
184
+ }
185
+
181
186
  @ReactMethod
182
187
  public void releaseVocoder(double id, final Promise promise) {
183
188
  cactus.releaseVocoder(id, promise);
package/ios/Cactus.mm CHANGED
@@ -597,6 +597,20 @@ RCT_EXPORT_METHOD(decodeAudioTokens:(double)contextId
597
597
  }
598
598
  }
599
599
 
600
+ RCT_EXPORT_METHOD(getDeviceInfo:(double)contextId
601
+ withResolver:(RCTPromiseResolveBlock)resolve
602
+ withRejecter:(RCTPromiseRejectBlock)reject)
603
+ {
604
+ CactusContext *context = llamaContexts[[NSNumber numberWithDouble:contextId]];
605
+ if (context == nil) {
606
+ reject(@"llama_error", @"Context not found", nil);
607
+ return;
608
+ }
609
+ NSDictionary *deviceInfo = [context getDeviceInfo];
610
+ resolve(deviceInfo);
611
+ }
612
+
613
+
600
614
  RCT_EXPORT_METHOD(releaseVocoder:(double)contextId
601
615
  withResolver:(RCTPromiseResolveBlock)resolve
602
616
  withRejecter:(RCTPromiseRejectBlock)reject)
@@ -72,6 +72,7 @@
72
72
  - (NSString *)getFormattedAudioCompletion:(NSString *)speakerJsonStr textToSpeak:(NSString *)textToSpeak;
73
73
  - (NSArray *)getAudioCompletionGuideTokens:(NSString *)textToSpeak;
74
74
  - (NSArray *)decodeAudioTokens:(NSArray *)tokens;
75
+ - (NSDictionary *)getDeviceInfo;
75
76
  - (void)releaseVocoder;
76
77
 
77
78
  - (void)invalidate;
@@ -1,5 +1,6 @@
1
1
  #import "CactusContext.h"
2
2
  #import <Metal/Metal.h>
3
+ #import <sys/utsname.h>
3
4
 
4
5
  @implementation CactusContext
5
6
 
@@ -1007,4 +1008,21 @@
1007
1008
  return result;
1008
1009
  }
1009
1010
 
1011
+ - (NSDictionary *)getDeviceInfo {
1012
+ UIDevice *device = [UIDevice currentDevice];
1013
+ NSString *deviceId = [[device identifierForVendor] UUIDString];
1014
+ struct utsname systemInfo;
1015
+ uname(&systemInfo);
1016
+ NSString *model = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
1017
+ NSString *os = [device systemName];
1018
+ NSDictionary *deviceInfo = @{
1019
+ @"deviceId": deviceId,
1020
+ @"model": model,
1021
+ @"make": @"Apple",
1022
+ @"os": os
1023
+ };
1024
+
1025
+ return deviceInfo;
1026
+ }
1027
+
1010
1028
  @end
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeCactus.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAkSA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA2LeC,gCAAmB,CAACC,GAAG,CAAO,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeCactus.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAkSA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAkMeC,gCAAmB,CAACC,GAAG,CAAO,QAAQ,CAAC","ignoreList":[]}
@@ -3,6 +3,37 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ LlamaContext: true,
8
+ toggleNativeLog: true,
9
+ addNativeLogListener: true,
10
+ setContextLimit: true,
11
+ loadLlamaModelInfo: true,
12
+ initLlama: true,
13
+ releaseAllLlama: true,
14
+ initContext: true,
15
+ initMultimodal: true,
16
+ isMultimodalEnabled: true,
17
+ isMultimodalSupportVision: true,
18
+ isMultimodalSupportAudio: true,
19
+ releaseMultimodal: true,
20
+ multimodalCompletion: true,
21
+ initVocoder: true,
22
+ isVocoderEnabled: true,
23
+ getTTSType: true,
24
+ getFormattedAudioCompletion: true,
25
+ getAudioCompletionGuideTokens: true,
26
+ decodeAudioTokens: true,
27
+ releaseVocoder: true,
28
+ tokenize: true,
29
+ getDeviceInfo: true,
30
+ SchemaGrammarConverter: true,
31
+ convertJsonSchemaToGrammar: true,
32
+ Tools: true,
33
+ CactusLM: true,
34
+ CactusVLM: true,
35
+ CactusTTS: true
36
+ };
6
37
  Object.defineProperty(exports, "CactusLM", {
7
38
  enumerable: true,
8
39
  get: function () {
@@ -41,7 +72,7 @@ Object.defineProperty(exports, "convertJsonSchemaToGrammar", {
41
72
  return _grammar.convertJsonSchemaToGrammar;
42
73
  }
43
74
  });
44
- exports.initContext = exports.getTTSType = exports.getFormattedAudioCompletion = exports.getAudioCompletionGuideTokens = exports.decodeAudioTokens = void 0;
75
+ exports.initContext = exports.getTTSType = exports.getFormattedAudioCompletion = exports.getDeviceInfo = exports.getAudioCompletionGuideTokens = exports.decodeAudioTokens = void 0;
45
76
  exports.initLlama = initLlama;
46
77
  exports.isVocoderEnabled = exports.isMultimodalSupportVision = exports.isMultimodalSupportAudio = exports.isMultimodalEnabled = exports.initVocoder = exports.initMultimodal = void 0;
47
78
  exports.loadLlamaModelInfo = loadLlamaModelInfo;
@@ -56,6 +87,19 @@ var _NativeCactus = _interopRequireDefault(require("./NativeCactus"));
56
87
  var _grammar = require("./grammar");
57
88
  var _chat = require("./chat");
58
89
  var _tools = require("./tools");
90
+ var _telemetry = require("./telemetry");
91
+ var _remote = require("./remote");
92
+ Object.keys(_remote).forEach(function (key) {
93
+ if (key === "default" || key === "__esModule") return;
94
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
95
+ if (key in exports && exports[key] === _remote[key]) return;
96
+ Object.defineProperty(exports, key, {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _remote[key];
100
+ }
101
+ });
102
+ });
59
103
  var _lm = require("./lm");
60
104
  var _vlm = require("./vlm");
61
105
  var _tts = require("./tts");
@@ -90,6 +134,11 @@ const getJsonSchema = responseFormat => {
90
134
  }
91
135
  return null;
92
136
  };
137
+ const telemetryParams = {
138
+ n_gpu_layers: null,
139
+ n_ctx: null,
140
+ model: null
141
+ };
93
142
  class LlamaContext {
94
143
  gpu = false;
95
144
  reasonNoGPU = '';
@@ -236,17 +285,30 @@ class LlamaContext {
236
285
  const jsonSchema = getJsonSchema(params.response_format);
237
286
  if (jsonSchema) nativeParams.json_schema = JSON.stringify(jsonSchema);
238
287
  }
239
- let tokenListener = callback && EventEmitter.addListener(EVENT_ON_TOKEN, evt => {
288
+ const startTime = Date.now();
289
+ let firstTokenTime = null;
290
+ const deviceInfo = await getDeviceInfo(this.id);
291
+ const wrappedCallback = callback ? data => {
292
+ if (firstTokenTime === null) firstTokenTime = Date.now();
293
+ callback(data);
294
+ } : undefined;
295
+ let tokenListener = wrappedCallback && EventEmitter.addListener(EVENT_ON_TOKEN, evt => {
240
296
  const {
241
297
  contextId,
242
298
  tokenResult
243
299
  } = evt;
244
300
  if (contextId !== this.id) return;
245
- callback(tokenResult);
301
+ wrappedCallback(tokenResult);
246
302
  });
247
303
  if (!nativeParams.prompt) throw new Error('Prompt is required');
248
304
  const promise = _NativeCactus.default.completion(this.id, nativeParams);
249
305
  return promise.then(completionResult => {
306
+ _telemetry.Telemetry.track({
307
+ event: 'completion',
308
+ tok_per_sec: completionResult.timings?.predicted_per_second,
309
+ toks_generated: completionResult.timings?.predicted_n,
310
+ ttft: firstTokenTime ? firstTokenTime - startTime : null
311
+ }, telemetryParams, deviceInfo);
250
312
  tokenListener?.remove();
251
313
  tokenListener = null;
252
314
  return completionResult;
@@ -265,8 +327,17 @@ class LlamaContext {
265
327
  detokenize(tokens) {
266
328
  return _NativeCactus.default.detokenize(this.id, tokens);
267
329
  }
268
- embedding(text, params) {
269
- return _NativeCactus.default.embedding(this.id, text, params || {});
330
+ async embedding(text, params) {
331
+ const startTime = Date.now();
332
+ const embeddingResult = await _NativeCactus.default.embedding(this.id, text, params || {});
333
+ const totalTime = Date.now() - startTime;
334
+ const deviceInfo = await getDeviceInfo(this.id);
335
+ _telemetry.Telemetry.track({
336
+ event: 'embedding',
337
+ mode: 'local',
338
+ embedding_time: totalTime
339
+ }, telemetryParams, deviceInfo);
340
+ return embeddingResult;
270
341
  }
271
342
  async bench(pp, tg, pl, nr) {
272
343
  const result = await _NativeCactus.default.bench(this.id, pp, tg, pl, nr);
@@ -353,6 +424,9 @@ async function initLlama({
353
424
  path: l.path.replace(/file:\/\//, ''),
354
425
  scaled: l.scaled
355
426
  }));
427
+ telemetryParams.n_gpu_layers = rest.n_gpu_layers || null;
428
+ telemetryParams.n_ctx = rest.n_ctx || null;
429
+ telemetryParams.model = model;
356
430
  const contextId = contextIdCounter + contextIdRandom();
357
431
  contextIdCounter += 1;
358
432
  let removeProgressListener = null;
@@ -417,7 +491,15 @@ const releaseMultimodal = async contextId => {
417
491
  };
418
492
  exports.releaseMultimodal = releaseMultimodal;
419
493
  const multimodalCompletion = async (contextId, prompt, mediaPaths, params) => {
420
- return await _NativeCactus.default.multimodalCompletion(contextId, prompt, mediaPaths, params);
494
+ const result = await _NativeCactus.default.multimodalCompletion(contextId, prompt, mediaPaths, params);
495
+ const deviceInfo = await getDeviceInfo(contextId);
496
+ _telemetry.Telemetry.track({
497
+ event: 'completion',
498
+ tok_per_sec: result.timings?.predicted_per_second,
499
+ toks_generated: result.timings?.predicted_n,
500
+ num_images: mediaPaths?.length
501
+ }, telemetryParams, deviceInfo);
502
+ return result;
421
503
  };
422
504
  exports.multimodalCompletion = multimodalCompletion;
423
505
  const initVocoder = async (contextId, vocoderModelPath) => {
@@ -456,4 +538,8 @@ const tokenize = async (contextId, text, mediaPaths) => {
456
538
  }
457
539
  };
458
540
  exports.tokenize = tokenize;
541
+ const getDeviceInfo = async contextId => {
542
+ return await _NativeCactus.default.getDeviceInfo(contextId);
543
+ };
544
+ exports.getDeviceInfo = getDeviceInfo;
459
545
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_NativeCactus","_interopRequireDefault","_grammar","_chat","_tools","_lm","_vlm","_tts","e","__esModule","default","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EVENT_ON_NATIVE_LOG","EventEmitter","Platform","OS","NativeEventEmitter","Cactus","DeviceEventEmitter","logListeners","addListener","evt","forEach","listener","level","text","toggleNativeLog","catch","getJsonSchema","responseFormat","type","json_schema","schema","LlamaContext","gpu","reasonNoGPU","constructor","contextId","model","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","isLlamaChatSupported","chatTemplates","llamaChat","isJinjaSupported","minja","toolUse","getFormattedChat","messages","template","params","chat","formatChat","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","parseAndExecuteTool","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","tokenListener","tokenResult","Error","promise","then","completionResult","remove","err","stopCompletion","tokenize","detokenize","tokens","embedding","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","exports","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","initVocoder","vocoderModelPath","isVocoderEnabled","getTTSType","getFormattedAudioCompletion","speakerJsonStr","textToSpeak","getAudioCompletionGuideTokens","decodeAudioTokens","releaseVocoder","length"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_NativeCactus","_interopRequireDefault","_grammar","_chat","_tools","_telemetry","_remote","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_lm","_vlm","_tts","e","__esModule","default","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EVENT_ON_NATIVE_LOG","EventEmitter","Platform","OS","NativeEventEmitter","Cactus","DeviceEventEmitter","logListeners","addListener","evt","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","getFormattedChat","messages","template","params","chat","formatChat","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","parseAndExecuteTool","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","Telemetry","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"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -5,14 +5,26 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CactusLM = void 0;
7
7
  var _index = require("./index");
8
+ var _reactNative = require("react-native");
8
9
  var _telemetry = require("./telemetry");
10
+ var _remote = require("./remote");
11
+ // @ts-ignore
12
+
9
13
  class CactusLM {
10
- constructor(context, initParams) {
14
+ constructor(context) {
11
15
  this.context = context;
12
- this.initParams = initParams;
13
16
  }
14
- static async init(params, onProgress) {
15
- const configs = [params, {
17
+ static async init(params, onProgress, cactusToken) {
18
+ if (cactusToken) {
19
+ (0, _remote.setCactusToken)(cactusToken);
20
+ }
21
+
22
+ // Avoid two back-to-back loads on devices where GPU off-load is unsupported (Android).
23
+ const needGpuAttempt = _reactNative.Platform.OS !== 'android' && (params.n_gpu_layers ?? 0) > 0;
24
+ const configs = needGpuAttempt ? [params, {
25
+ ...params,
26
+ n_gpu_layers: 0
27
+ }] : [{
16
28
  ...params,
17
29
  n_gpu_layers: 0
18
30
  }];
@@ -20,11 +32,15 @@ class CactusLM {
20
32
  try {
21
33
  const context = await (0, _index.initLlama)(config, onProgress);
22
34
  return {
23
- lm: new CactusLM(context, config),
35
+ lm: new CactusLM(context),
24
36
  error: null
25
37
  };
26
38
  } catch (e) {
27
- _telemetry.Telemetry.error(e, config);
39
+ _telemetry.Telemetry.error(e, {
40
+ n_gpu_layers: config.n_gpu_layers ?? null,
41
+ n_ctx: config.n_ctx ?? null,
42
+ model: config.model ?? null
43
+ });
28
44
  if (configs.indexOf(config) === configs.length - 1) {
29
45
  return {
30
46
  lm: null,
@@ -39,27 +55,54 @@ class CactusLM {
39
55
  };
40
56
  }
41
57
  async completion(messages, params = {}, callback) {
42
- const startTime = Date.now();
43
- let firstTokenTime = null;
44
- const wrappedCallback = callback ? data => {
45
- if (firstTokenTime === null) firstTokenTime = Date.now();
46
- callback(data);
47
- } : undefined;
48
- const result = await this.context.completion({
58
+ return await this.context.completion({
49
59
  messages,
50
60
  ...params
51
- }, wrappedCallback);
52
- _telemetry.Telemetry.track({
53
- event: 'completion',
54
- tok_per_sec: result.timings?.predicted_per_second,
55
- toks_generated: result.timings?.predicted_n,
56
- ttft: firstTokenTime ? firstTokenTime - startTime : null
57
- }, this.initParams);
61
+ }, callback);
62
+ }
63
+ async embedding(text, params, mode = 'local') {
64
+ let result;
65
+ let lastError = null;
66
+ if (mode === 'remote') {
67
+ result = await this._handleRemoteEmbedding(text);
68
+ } else if (mode === 'local') {
69
+ result = await this._handleLocalEmbedding(text, params);
70
+ } else if (mode === 'localfirst') {
71
+ try {
72
+ result = await this._handleLocalEmbedding(text, params);
73
+ } catch (e) {
74
+ lastError = e;
75
+ try {
76
+ result = await this._handleRemoteEmbedding(text);
77
+ } catch (remoteError) {
78
+ throw lastError;
79
+ }
80
+ }
81
+ } else if (mode === 'remotefirst') {
82
+ try {
83
+ result = await this._handleRemoteEmbedding(text);
84
+ } catch (e) {
85
+ lastError = e;
86
+ try {
87
+ result = await this._handleLocalEmbedding(text, params);
88
+ } catch (localError) {
89
+ throw lastError;
90
+ }
91
+ }
92
+ } else {
93
+ throw new Error('Invalid mode: ' + mode + '. Must be "local", "remote", "localfirst", or "remotefirst"');
94
+ }
58
95
  return result;
59
96
  }
60
- async embedding(text, params) {
97
+ async _handleLocalEmbedding(text, params) {
61
98
  return this.context.embedding(text, params);
62
99
  }
100
+ async _handleRemoteEmbedding(text) {
101
+ const embeddingValues = await (0, _remote.getVertexAIEmbedding)(text);
102
+ return {
103
+ embedding: embeddingValues
104
+ };
105
+ }
63
106
  async rewind() {
64
107
  // @ts-ignore
65
108
  return this.context?.rewind();