@novastera-oss/llamarn 0.1.5-beta.3 → 0.2.1
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/cpp/LlamaCppModel.cpp +148 -5
- package/cpp/LlamaCppModel.h +11 -2
- package/cpp/PureCppImpl.cpp +3 -3
- package/cpp/PureCppImpl.h +3 -0
- package/lib/module/NativeRNLlamaCpp.js.map +1 -1
- package/lib/typescript/src/NativeRNLlamaCpp.d.ts +3 -0
- package/lib/typescript/src/NativeRNLlamaCpp.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/NativeRNLlamaCpp.ts +1 -0
package/cpp/LlamaCppModel.cpp
CHANGED
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
|
|
36
36
|
namespace facebook::react {
|
|
37
37
|
|
|
38
|
-
LlamaCppModel::LlamaCppModel(rn_llama_context* rn_ctx)
|
|
39
|
-
: rn_ctx_(rn_ctx), should_stop_completion_(false), is_predicting_(false) {
|
|
38
|
+
LlamaCppModel::LlamaCppModel(rn_llama_context* rn_ctx, std::shared_ptr<CallInvoker> jsInvoker)
|
|
39
|
+
: rn_ctx_(rn_ctx), should_stop_completion_(false), is_predicting_(false), jsInvoker_(jsInvoker) {
|
|
40
40
|
initHelpers();
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -435,11 +435,18 @@ CompletionResult LlamaCppModel::completion(const CompletionOptions& options, std
|
|
|
435
435
|
rn_ctx_->params.n_predict = options.n_predict;
|
|
436
436
|
|
|
437
437
|
// Check for a partial callback
|
|
438
|
-
auto callback_adapter = [&partialCallback, runtime](const std::string& token, bool is_done) -> bool {
|
|
438
|
+
auto callback_adapter = [&partialCallback, runtime, this](const std::string& token, bool is_done) -> bool {
|
|
439
|
+
// Check for stop condition first
|
|
440
|
+
if (should_stop_completion_) {
|
|
441
|
+
return false; // Signal to stop completion
|
|
442
|
+
}
|
|
443
|
+
|
|
439
444
|
if (partialCallback && runtime && !is_done) {
|
|
440
445
|
partialCallback(*runtime, token.c_str());
|
|
441
446
|
}
|
|
442
|
-
|
|
447
|
+
|
|
448
|
+
// Return true to continue, false to stop
|
|
449
|
+
return !should_stop_completion_;
|
|
443
450
|
};
|
|
444
451
|
|
|
445
452
|
// Run the completion based on whether we have messages or prompt
|
|
@@ -546,7 +553,7 @@ jsi::Value LlamaCppModel::jsonToJsi(jsi::Runtime& rt, const json& j) {
|
|
|
546
553
|
return jsi::Value::undefined();
|
|
547
554
|
}
|
|
548
555
|
|
|
549
|
-
// JSI method for completions
|
|
556
|
+
// JSI method for completions (synchronous - kept for compatibility)
|
|
550
557
|
jsi::Value LlamaCppModel::completionJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count) {
|
|
551
558
|
if (count < 1 || !args[0].isObject()) {
|
|
552
559
|
throw jsi::JSError(rt, "completion requires an options object");
|
|
@@ -581,6 +588,116 @@ jsi::Value LlamaCppModel::completionJsi(jsi::Runtime& rt, const jsi::Value* args
|
|
|
581
588
|
}
|
|
582
589
|
}
|
|
583
590
|
|
|
591
|
+
// JSI method for async completions (recommended approach)
|
|
592
|
+
jsi::Value LlamaCppModel::completionAsyncJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count) {
|
|
593
|
+
if (count < 1 || !args[0].isObject()) {
|
|
594
|
+
throw jsi::JSError(rt, "completion requires an options object");
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
if (!jsInvoker_) {
|
|
598
|
+
// Fallback to synchronous if no CallInvoker available
|
|
599
|
+
return completionJsi(rt, args, count);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
// Parse options and callback on the current thread
|
|
603
|
+
CompletionOptions options;
|
|
604
|
+
std::shared_ptr<jsi::Function> callbackFn = nullptr;
|
|
605
|
+
|
|
606
|
+
try {
|
|
607
|
+
options = parseCompletionOptions(rt, args[0].getObject(rt));
|
|
608
|
+
|
|
609
|
+
if (count > 1 && args[1].isObject() && args[1].getObject(rt).isFunction(rt)) {
|
|
610
|
+
callbackFn = std::make_shared<jsi::Function>(args[1].getObject(rt).getFunction(rt));
|
|
611
|
+
options.stream = true;
|
|
612
|
+
}
|
|
613
|
+
} catch (const std::exception& e) {
|
|
614
|
+
throw jsi::JSError(rt, e.what());
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// Create Promise constructor
|
|
618
|
+
auto Promise = rt.global().getPropertyAsFunction(rt, "Promise");
|
|
619
|
+
|
|
620
|
+
auto executor = jsi::Function::createFromHostFunction(
|
|
621
|
+
rt,
|
|
622
|
+
jsi::PropNameID::forAscii(rt, "executor"),
|
|
623
|
+
2,
|
|
624
|
+
[this, options, callbackFn](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* args, size_t count) -> jsi::Value {
|
|
625
|
+
|
|
626
|
+
auto resolve = std::make_shared<jsi::Function>(args[0].asObject(runtime).asFunction(runtime));
|
|
627
|
+
auto reject = std::make_shared<jsi::Function>(args[1].asObject(runtime).asFunction(runtime));
|
|
628
|
+
|
|
629
|
+
// Create shared references to runtime and invoker for thread safety
|
|
630
|
+
auto runtimePtr = &runtime;
|
|
631
|
+
auto invoker = jsInvoker_;
|
|
632
|
+
auto selfPtr = shared_from_this(); // This requires LlamaCppModel to inherit from std::enable_shared_from_this
|
|
633
|
+
|
|
634
|
+
// Launch background thread for completion
|
|
635
|
+
std::thread([selfPtr, options, callbackFn, resolve, reject, runtimePtr, invoker]() {
|
|
636
|
+
try {
|
|
637
|
+
// Create callback that schedules token updates on JS thread
|
|
638
|
+
std::function<void(jsi::Runtime&, const char*)> partialCallback = nullptr;
|
|
639
|
+
|
|
640
|
+
if (callbackFn && invoker) {
|
|
641
|
+
partialCallback = [callbackFn, invoker, runtimePtr](jsi::Runtime& rt, const char* token) {
|
|
642
|
+
std::string tokenCopy(token);
|
|
643
|
+
invoker->invokeAsync([callbackFn, tokenCopy, runtimePtr]() {
|
|
644
|
+
try {
|
|
645
|
+
jsi::Object data(*runtimePtr);
|
|
646
|
+
data.setProperty(*runtimePtr, "token", jsi::String::createFromUtf8(*runtimePtr, tokenCopy));
|
|
647
|
+
callbackFn->call(*runtimePtr, data);
|
|
648
|
+
} catch (...) {
|
|
649
|
+
// Ignore callback errors
|
|
650
|
+
}
|
|
651
|
+
});
|
|
652
|
+
};
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
// Run completion
|
|
656
|
+
CompletionResult result = selfPtr->completion(options, partialCallback, runtimePtr);
|
|
657
|
+
|
|
658
|
+
// Schedule success callback on JS thread
|
|
659
|
+
invoker->invokeAsync([selfPtr, resolve, result, runtimePtr]() {
|
|
660
|
+
try {
|
|
661
|
+
jsi::Object jsResult = selfPtr->completionResultToJsi(*runtimePtr, result);
|
|
662
|
+
resolve->call(*runtimePtr, jsResult);
|
|
663
|
+
} catch (const std::exception& e) {
|
|
664
|
+
// If conversion fails, create a simple error response
|
|
665
|
+
jsi::Object errorObj(*runtimePtr);
|
|
666
|
+
errorObj.setProperty(*runtimePtr, "error", jsi::String::createFromUtf8(*runtimePtr, e.what()));
|
|
667
|
+
resolve->call(*runtimePtr, errorObj);
|
|
668
|
+
}
|
|
669
|
+
});
|
|
670
|
+
|
|
671
|
+
} catch (const std::exception& e) {
|
|
672
|
+
// Schedule error callback on JS thread
|
|
673
|
+
std::string errorMsg(e.what());
|
|
674
|
+
invoker->invokeAsync([reject, errorMsg, runtimePtr]() {
|
|
675
|
+
try {
|
|
676
|
+
reject->call(*runtimePtr, jsi::String::createFromUtf8(*runtimePtr, errorMsg));
|
|
677
|
+
} catch (...) {
|
|
678
|
+
// Ignore rejection errors
|
|
679
|
+
}
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
}).detach();
|
|
683
|
+
|
|
684
|
+
return jsi::Value::undefined();
|
|
685
|
+
}
|
|
686
|
+
);
|
|
687
|
+
|
|
688
|
+
return Promise.callAsConstructor(rt, std::move(executor));
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
// JSI method for stopping completion
|
|
692
|
+
jsi::Value LlamaCppModel::stopCompletionJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count) {
|
|
693
|
+
try {
|
|
694
|
+
setShouldStopCompletion(true);
|
|
695
|
+
return jsi::Value(true);
|
|
696
|
+
} catch (const std::exception& e) {
|
|
697
|
+
throw jsi::JSError(rt, e.what());
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
|
|
584
701
|
jsi::Value LlamaCppModel::tokenizeJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count) {
|
|
585
702
|
if (count < 1 || !args[0].isObject()) {
|
|
586
703
|
throw jsi::JSError(rt, "tokenize requires an options object with 'content' field");
|
|
@@ -930,12 +1047,36 @@ jsi::Value LlamaCppModel::get(jsi::Runtime& rt, const jsi::PropNameID& name) {
|
|
|
930
1047
|
});
|
|
931
1048
|
}
|
|
932
1049
|
else if (nameStr == "completion") {
|
|
1050
|
+
// Use async completion as the default to provide better UX
|
|
1051
|
+
if (jsInvoker_) {
|
|
1052
|
+
return jsi::Function::createFromHostFunction(
|
|
1053
|
+
rt, name, 2,
|
|
1054
|
+
[this](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* args, size_t count) {
|
|
1055
|
+
return this->completionAsyncJsi(runtime, args, count);
|
|
1056
|
+
});
|
|
1057
|
+
} else {
|
|
1058
|
+
// Fallback to sync completion if no CallInvoker
|
|
1059
|
+
return jsi::Function::createFromHostFunction(
|
|
1060
|
+
rt, name, 2,
|
|
1061
|
+
[this](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* args, size_t count) {
|
|
1062
|
+
return this->completionJsi(runtime, args, count);
|
|
1063
|
+
});
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
else if (nameStr == "completionSync") {
|
|
933
1067
|
return jsi::Function::createFromHostFunction(
|
|
934
1068
|
rt, name, 2,
|
|
935
1069
|
[this](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* args, size_t count) {
|
|
936
1070
|
return this->completionJsi(runtime, args, count);
|
|
937
1071
|
});
|
|
938
1072
|
}
|
|
1073
|
+
else if (nameStr == "stopCompletion") {
|
|
1074
|
+
return jsi::Function::createFromHostFunction(
|
|
1075
|
+
rt, name, 0,
|
|
1076
|
+
[this](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* args, size_t count) {
|
|
1077
|
+
return this->stopCompletionJsi(runtime, args, count);
|
|
1078
|
+
});
|
|
1079
|
+
}
|
|
939
1080
|
else if (nameStr == "embedding") {
|
|
940
1081
|
return jsi::Function::createFromHostFunction(
|
|
941
1082
|
rt, name, 1,
|
|
@@ -973,6 +1114,8 @@ std::vector<jsi::PropNameID> LlamaCppModel::getPropertyNames(jsi::Runtime& rt) {
|
|
|
973
1114
|
result.push_back(jsi::PropNameID::forAscii(rt, "tokenize"));
|
|
974
1115
|
result.push_back(jsi::PropNameID::forAscii(rt, "detokenize"));
|
|
975
1116
|
result.push_back(jsi::PropNameID::forAscii(rt, "completion"));
|
|
1117
|
+
result.push_back(jsi::PropNameID::forAscii(rt, "completionSync"));
|
|
1118
|
+
result.push_back(jsi::PropNameID::forAscii(rt, "stopCompletion"));
|
|
976
1119
|
result.push_back(jsi::PropNameID::forAscii(rt, "embedding"));
|
|
977
1120
|
result.push_back(jsi::PropNameID::forAscii(rt, "release"));
|
|
978
1121
|
result.push_back(jsi::PropNameID::forAscii(rt, "n_vocab"));
|
package/cpp/LlamaCppModel.h
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
#include <unordered_map>
|
|
9
9
|
#include <functional>
|
|
10
10
|
|
|
11
|
+
// Add ReactCommon includes for proper async handling
|
|
12
|
+
#include <ReactCommon/CallInvoker.h>
|
|
13
|
+
|
|
11
14
|
// Include all necessary common headers from llama.cpp
|
|
12
15
|
#include "common.h"
|
|
13
16
|
#include "sampling.h"
|
|
@@ -70,13 +73,14 @@ struct ToolCall {
|
|
|
70
73
|
* - Uses common_token_to_piece for token->text conversion
|
|
71
74
|
* - Leverages the llama.cpp chat template system
|
|
72
75
|
*/
|
|
73
|
-
class LlamaCppModel : public jsi::HostObject {
|
|
76
|
+
class LlamaCppModel : public jsi::HostObject, public std::enable_shared_from_this<LlamaCppModel> {
|
|
74
77
|
public:
|
|
75
78
|
/**
|
|
76
79
|
* Constructor
|
|
77
80
|
* @param rn_ctx A pointer to an initialized rn_llama_context
|
|
81
|
+
* @param jsInvoker CallInvoker for async operations (optional, for async completion)
|
|
78
82
|
*/
|
|
79
|
-
LlamaCppModel(rn_llama_context* rn_ctx);
|
|
83
|
+
LlamaCppModel(rn_llama_context* rn_ctx, std::shared_ptr<CallInvoker> jsInvoker = nullptr);
|
|
80
84
|
virtual ~LlamaCppModel();
|
|
81
85
|
|
|
82
86
|
/**
|
|
@@ -124,6 +128,8 @@ private:
|
|
|
124
128
|
* JSI method implementations
|
|
125
129
|
*/
|
|
126
130
|
jsi::Value completionJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count);
|
|
131
|
+
jsi::Value completionAsyncJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count);
|
|
132
|
+
jsi::Value stopCompletionJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count);
|
|
127
133
|
jsi::Value tokenizeJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count);
|
|
128
134
|
jsi::Value detokenizeJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count);
|
|
129
135
|
jsi::Value embeddingJsi(jsi::Runtime& rt, const jsi::Value* args, size_t count);
|
|
@@ -157,6 +163,9 @@ private:
|
|
|
157
163
|
// Completion state
|
|
158
164
|
bool should_stop_completion_;
|
|
159
165
|
bool is_predicting_;
|
|
166
|
+
|
|
167
|
+
// Add CallInvoker for async operations
|
|
168
|
+
std::shared_ptr<CallInvoker> jsInvoker_;
|
|
160
169
|
};
|
|
161
170
|
|
|
162
171
|
} // namespace facebook::react
|
package/cpp/PureCppImpl.cpp
CHANGED
|
@@ -35,7 +35,7 @@ std::shared_ptr<TurboModule> PureCppImpl::create(std::shared_ptr<CallInvoker> js
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
PureCppImpl::PureCppImpl(std::shared_ptr<CallInvoker> jsInvoker)
|
|
38
|
-
: NativeRNLlamaCppCxxSpec(
|
|
38
|
+
: NativeRNLlamaCppCxxSpec(jsInvoker), jsInvoker_(jsInvoker) {
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
double PureCppImpl::multiply(jsi::Runtime& rt, double a, double b) {
|
|
@@ -325,8 +325,8 @@ jsi::Value PureCppImpl::initLlama(jsi::Runtime &runtime, jsi::Object options) {
|
|
|
325
325
|
}
|
|
326
326
|
|
|
327
327
|
jsi::Object PureCppImpl::createModelObject(jsi::Runtime& runtime, rn_llama_context* rn_ctx) {
|
|
328
|
-
// Create a shared_ptr to a new LlamaCppModel instance
|
|
329
|
-
auto llamaModel = std::make_shared<LlamaCppModel>(rn_ctx);
|
|
328
|
+
// Create a shared_ptr to a new LlamaCppModel instance with CallInvoker
|
|
329
|
+
auto llamaModel = std::make_shared<LlamaCppModel>(rn_ctx, jsInvoker_);
|
|
330
330
|
|
|
331
331
|
// Create a host object from the LlamaCppModel instance
|
|
332
332
|
return jsi::Object::createFromHostObject(runtime, std::move(llamaModel));
|
package/cpp/PureCppImpl.h
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","LlamaCppRn","getEnforcing","initLlama","params","loadLlamaModelInfo","modelPath"],"sourceRoot":"../../src","sources":["NativeRNLlamaCpp.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiKA;;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","LlamaCppRn","getEnforcing","initLlama","params","loadLlamaModelInfo","modelPath"],"sourceRoot":"../../src","sources":["NativeRNLlamaCpp.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiKA;;AA+EA,MAAMC,UAAU,GAAGD,mBAAmB,CAACE,YAAY,CAAO,YAAY,CAAC;AACvE;AACA;AACA;;AAGA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAACC,MAAwB,EAAmD;EACnG,OAAOH,UAAU,CAACE,SAAS,CAACC,MAAM,CAAC;AACrC;;AAEA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,SAAiB,EAWhB;EACD,OAAOL,UAAU,CAACI,kBAAkB,CAACC,SAAS,CAAC;AACjD;AAEA,eAAeL,UAAU","ignoreList":[]}
|
|
@@ -152,6 +152,9 @@ export interface LlamaContextMethods {
|
|
|
152
152
|
completion(params: LlamaCompletionParams, partialCallback?: (data: {
|
|
153
153
|
token: string;
|
|
154
154
|
}) => void): Promise<LlamaCompletionResult>;
|
|
155
|
+
completionSync(params: LlamaCompletionParams, partialCallback?: (data: {
|
|
156
|
+
token: string;
|
|
157
|
+
}) => void): LlamaCompletionResult;
|
|
155
158
|
tokenize(options: {
|
|
156
159
|
content: string;
|
|
157
160
|
add_special?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeRNLlamaCpp.d.ts","sourceRoot":"","sources":["../../../src/NativeRNLlamaCpp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NativeRNLlamaCpp.d.ts","sourceRoot":"","sources":["../../../src/NativeRNLlamaCpp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novastera-oss/llamarn",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "An attempt at a pure cpp turbo module library",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"build-android-external": "bash scripts/build_android_external.sh",
|
|
67
67
|
"build-android-clean": "bash scripts/build_android_external.sh --clean-prebuilt",
|
|
68
68
|
"build-android-macos": "npm run clean-android && npm run clean-prebuilt && bash scripts/build_android_gpu_backend.sh --no-vulkan --no-opencl --clean && bash scripts/build_android_external.sh --no-vulkan --no-opencl --clean"
|
|
69
|
+
|
|
69
70
|
},
|
|
70
71
|
"keywords": [
|
|
71
72
|
"react-native",
|
package/src/NativeRNLlamaCpp.ts
CHANGED
|
@@ -195,6 +195,7 @@ export interface EmbeddingResponse {
|
|
|
195
195
|
|
|
196
196
|
export interface LlamaContextMethods {
|
|
197
197
|
completion(params: LlamaCompletionParams, partialCallback?: (data: {token: string}) => void): Promise<LlamaCompletionResult>;
|
|
198
|
+
completionSync(params: LlamaCompletionParams, partialCallback?: (data: {token: string}) => void): LlamaCompletionResult;
|
|
198
199
|
|
|
199
200
|
// Updated tokenize method to match server.cpp interface
|
|
200
201
|
tokenize(options: {
|