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.
- package/README.md +550 -721
- package/android/src/main/java/com/cactus/Cactus.java +41 -0
- package/android/src/main/java/com/cactus/LlamaContext.java +19 -0
- package/android/src/main/jni.cpp +36 -11
- package/android/src/main/jniLibs/arm64-v8a/libcactus.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod_i8mm.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_i8mm.so +0 -0
- package/android/src/main/jniLibs/x86_64/libcactus.so +0 -0
- package/android/src/main/jniLibs/x86_64/libcactus_x86_64.so +0 -0
- package/android/src/newarch/java/com/cactus/CactusModule.java +5 -0
- package/android/src/oldarch/java/com/cactus/CactusModule.java +5 -0
- package/ios/Cactus.mm +14 -0
- package/ios/CactusContext.h +1 -0
- package/ios/CactusContext.mm +18 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
- package/lib/commonjs/NativeCactus.js.map +1 -1
- package/lib/commonjs/index.js +92 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lm.js +64 -21
- package/lib/commonjs/lm.js.map +1 -1
- package/lib/commonjs/projectId.js +8 -0
- package/lib/commonjs/projectId.js.map +1 -0
- package/lib/commonjs/remote.js +153 -0
- package/lib/commonjs/remote.js.map +1 -0
- package/lib/commonjs/telemetry.js +11 -5
- package/lib/commonjs/telemetry.js.map +1 -1
- package/lib/commonjs/vlm.js +90 -23
- package/lib/commonjs/vlm.js.map +1 -1
- package/lib/module/NativeCactus.js.map +1 -1
- package/lib/module/index.js +48 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/lm.js +63 -21
- package/lib/module/lm.js.map +1 -1
- package/lib/module/projectId.js +4 -0
- package/lib/module/projectId.js.map +1 -0
- package/lib/module/remote.js +144 -0
- package/lib/module/remote.js.map +1 -0
- package/lib/module/telemetry.js +11 -5
- package/lib/module/telemetry.js.map +1 -1
- package/lib/module/vlm.js +90 -23
- package/lib/module/vlm.js.map +1 -1
- package/lib/typescript/NativeCactus.d.ts +7 -0
- package/lib/typescript/NativeCactus.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/lm.d.ts +4 -3
- package/lib/typescript/lm.d.ts.map +1 -1
- package/lib/typescript/projectId.d.ts +2 -0
- package/lib/typescript/projectId.d.ts.map +1 -0
- package/lib/typescript/remote.d.ts +7 -0
- package/lib/typescript/remote.d.ts.map +1 -0
- package/lib/typescript/telemetry.d.ts +7 -3
- package/lib/typescript/telemetry.d.ts.map +1 -1
- package/lib/typescript/vlm.d.ts +4 -2
- package/lib/typescript/vlm.d.ts.map +1 -1
- package/package.json +4 -4
- package/scripts/postInstall.js +33 -0
- package/src/NativeCactus.ts +7 -0
- package/src/index.ts +58 -5
- package/src/lm.ts +66 -28
- package/src/projectId.ts +1 -0
- package/src/remote.ts +175 -0
- package/src/telemetry.ts +27 -12
- 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
|
}
|
package/android/src/main/jni.cpp
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
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
|
-
|
|
349
|
-
|
|
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
|
-
|
|
382
|
-
|
|
383
|
-
|
|
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);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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)
|
package/ios/CactusContext.h
CHANGED
|
@@ -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;
|
package/ios/CactusContext.mm
CHANGED
|
@@ -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
|
|
Binary file
|
|
Binary file
|
|
@@ -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,
|
|
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":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":[]}
|
package/lib/commonjs/lm.js
CHANGED
|
@@ -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
|
|
14
|
+
constructor(context) {
|
|
11
15
|
this.context = context;
|
|
12
|
-
this.initParams = initParams;
|
|
13
16
|
}
|
|
14
|
-
static async init(params, onProgress) {
|
|
15
|
-
|
|
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
|
|
35
|
+
lm: new CactusLM(context),
|
|
24
36
|
error: null
|
|
25
37
|
};
|
|
26
38
|
} catch (e) {
|
|
27
|
-
_telemetry.Telemetry.error(e,
|
|
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
|
-
|
|
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
|
-
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
|
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();
|