cactus-react-native 0.2.1 → 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 +2 -2
- 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/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/lm.js +10 -1
- package/lib/commonjs/lm.js.map +1 -1
- package/lib/module/lm.js +9 -1
- package/lib/module/lm.js.map +1 -1
- package/lib/typescript/lm.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lm.ts +7 -4
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Cactus React Native
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Run LLMs, VLMs, and TTS models directly on mobile devices.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```json
|
|
8
8
|
{
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"cactus-react-native": "^0.2.
|
|
10
|
+
"cactus-react-native": "^0.2.1",
|
|
11
11
|
"react-native-fs": "^2.20.0"
|
|
12
12
|
}
|
|
13
13
|
}
|
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
|
|
Binary file
|
|
Binary file
|
package/lib/commonjs/lm.js
CHANGED
|
@@ -5,8 +5,11 @@ 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");
|
|
9
10
|
var _remote = require("./remote");
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
|
|
10
13
|
class CactusLM {
|
|
11
14
|
constructor(context) {
|
|
12
15
|
this.context = context;
|
|
@@ -15,7 +18,13 @@ class CactusLM {
|
|
|
15
18
|
if (cactusToken) {
|
|
16
19
|
(0, _remote.setCactusToken)(cactusToken);
|
|
17
20
|
}
|
|
18
|
-
|
|
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
|
+
}] : [{
|
|
19
28
|
...params,
|
|
20
29
|
n_gpu_layers: 0
|
|
21
30
|
}];
|
package/lib/commonjs/lm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_index","require","_telemetry","_remote","CactusLM","constructor","context","init","params","onProgress","cactusToken","setCactusToken","
|
|
1
|
+
{"version":3,"names":["_index","require","_reactNative","_telemetry","_remote","CactusLM","constructor","context","init","params","onProgress","cactusToken","setCactusToken","needGpuAttempt","Platform","OS","n_gpu_layers","configs","config","initLlama","lm","error","e","Telemetry","n_ctx","model","indexOf","length","Error","completion","messages","callback","embedding","text","mode","result","lastError","_handleRemoteEmbedding","_handleLocalEmbedding","remoteError","localError","embeddingValues","getVertexAIEmbedding","rewind","release","exports"],"sourceRoot":"../../src","sources":["lm.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/lm.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { initLlama } from './index';
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
import { Platform } from 'react-native';
|
|
4
6
|
import { Telemetry } from './telemetry';
|
|
5
7
|
import { setCactusToken, getVertexAIEmbedding } from './remote';
|
|
6
8
|
export class CactusLM {
|
|
@@ -11,7 +13,13 @@ export class CactusLM {
|
|
|
11
13
|
if (cactusToken) {
|
|
12
14
|
setCactusToken(cactusToken);
|
|
13
15
|
}
|
|
14
|
-
|
|
16
|
+
|
|
17
|
+
// Avoid two back-to-back loads on devices where GPU off-load is unsupported (Android).
|
|
18
|
+
const needGpuAttempt = Platform.OS !== 'android' && (params.n_gpu_layers ?? 0) > 0;
|
|
19
|
+
const configs = needGpuAttempt ? [params, {
|
|
20
|
+
...params,
|
|
21
|
+
n_gpu_layers: 0
|
|
22
|
+
}] : [{
|
|
15
23
|
...params,
|
|
16
24
|
n_gpu_layers: 0
|
|
17
25
|
}];
|
package/lib/module/lm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["initLlama","Telemetry","setCactusToken","getVertexAIEmbedding","CactusLM","constructor","context","init","params","onProgress","cactusToken","
|
|
1
|
+
{"version":3,"names":["initLlama","Platform","Telemetry","setCactusToken","getVertexAIEmbedding","CactusLM","constructor","context","init","params","onProgress","cactusToken","needGpuAttempt","OS","n_gpu_layers","configs","config","lm","error","e","n_ctx","model","indexOf","length","Error","completion","messages","callback","embedding","text","mode","result","lastError","_handleRemoteEmbedding","_handleLocalEmbedding","remoteError","localError","embeddingValues","rewind","release"],"sourceRoot":"../../src","sources":["lm.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lm.d.ts","sourceRoot":"","sources":["../../src/lm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lm.d.ts","sourceRoot":"","sources":["../../src/lm.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,UAAU,cAAc;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO;WAIM,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC;IA6BpB,UAAU,CACd,QAAQ,EAAE,0BAA0B,EAAE,EACtC,MAAM,GAAE,gBAAqB,EAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAI5B,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,qBAAqB,CAAC;YAoCnB,qBAAqB;YAIrB,sBAAsB;IAO9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
package/package.json
CHANGED
package/src/lm.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { initLlama, LlamaContext } from './index'
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
import { Platform } from 'react-native'
|
|
2
4
|
import type {
|
|
3
5
|
ContextParams,
|
|
4
6
|
CompletionParams,
|
|
@@ -31,10 +33,11 @@ export class CactusLM {
|
|
|
31
33
|
setCactusToken(cactusToken);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
// Avoid two back-to-back loads on devices where GPU off-load is unsupported (Android).
|
|
37
|
+
const needGpuAttempt = Platform.OS !== 'android' && (params.n_gpu_layers ?? 0) > 0
|
|
38
|
+
const configs = needGpuAttempt
|
|
39
|
+
? [params, { ...params, n_gpu_layers: 0 }]
|
|
40
|
+
: [{ ...params, n_gpu_layers: 0 }]
|
|
38
41
|
|
|
39
42
|
for (const config of configs) {
|
|
40
43
|
try {
|